{"version":3,"sources":["../node_modules/.pnpm/bn.js@5.2.2/node_modules/bn.js/lib/bn.js","../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js","../node_modules/.pnpm/base-x@3.0.11/node_modules/base-x/src/index.js","../node_modules/.pnpm/bs58@4.0.1/node_modules/bs58/index.js","../node_modules/.pnpm/text-encoding-utf-8@1.0.2/node_modules/text-encoding-utf-8/lib/encoding.lib.js","../node_modules/.pnpm/borsh@0.7.0/node_modules/borsh/lib/index.js","../node_modules/.pnpm/@solana+buffer-layout@4.0.1/node_modules/@solana/buffer-layout/src/Layout.ts","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/rng.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/regex.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/validate.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/stringify.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v1.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/parse.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v35.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/md5.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v3.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v4.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/sha1.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/v5.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/nil.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/version.js","../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-node/index.js","../node_modules/.pnpm/jayson@4.2.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/jayson/lib/generateRequest.js","../node_modules/.pnpm/jayson@4.2.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/jayson/lib/client/browser/index.js","../node_modules/.pnpm/webidl-conversions@3.0.1/node_modules/webidl-conversions/lib/index.js","../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/utils.js","../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/lib/mappingTable.json","../node_modules/.pnpm/tr46@0.0.3/node_modules/tr46/index.js","../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/url-state-machine.js","../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL-impl.js","../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/URL.js","../node_modules/.pnpm/whatwg-url@5.0.0/node_modules/whatwg-url/lib/public-api.js","../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js","../node_modules/.pnpm/file-uri-to-path@1.0.0/node_modules/file-uri-to-path/index.js","../node_modules/.pnpm/bindings@1.5.0/node_modules/bindings/bindings.js","../node_modules/.pnpm/bigint-buffer@1.1.5/node_modules/bigint-buffer/dist/node.js","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/invalid-prompt-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/invalid-response-data-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/load-api-key-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/load-setting-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/no-content-generated-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/no-such-model-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/too-many-embedding-values-for-call-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/errors/unsupported-functionality-error.ts","../node_modules/.pnpm/@ai-sdk+provider@2.0.0/node_modules/@ai-sdk/provider/src/json-value/is-json.ts","../node_modules/.pnpm/eventsource-parser@3.0.5/node_modules/eventsource-parser/src/errors.ts","../node_modules/.pnpm/eventsource-parser@3.0.5/node_modules/eventsource-parser/src/parse.ts","../node_modules/.pnpm/eventsource-parser@3.0.5/node_modules/eventsource-parser/src/stream.ts","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/external.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/index.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/core.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/util.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/errors.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/parse.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/regexes.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/checks.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/doc.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/versions.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/schemas.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/index.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ar.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/az.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/be.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ca.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/cs.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/da.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/de.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/en.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/eo.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/es.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/fa.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/fi.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/fr.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/fr-CA.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/he.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/hu.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/id.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/is.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/it.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ja.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/kh.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ko.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/mk.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ms.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/nl.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/no.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ota.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ps.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/pl.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/pt.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ru.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/sl.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/sv.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ta.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/th.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/tr.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ua.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/ur.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/vi.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/zh-CN.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/zh-TW.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/locales/yo.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/registries.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/api.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/function.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/to-json-schema.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/core/json-schema.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/iso.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/errors.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/parse.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/schemas.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/compat.js","../node_modules/.pnpm/zod@4.0.17/node_modules/zod/v4/classic/coerce.js","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/combine-headers.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/convert-async-iterator-to-readable-stream.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/delay.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/generate-id.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/get-from-api.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/handle-fetch-error.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/remove-undefined-entries.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/inject-json-instruction.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/is-url-supported.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/load-api-key.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/load-setting.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/media-type-to-extension.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/parse-json.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/secure-json-parse.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/validate-types.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/validator.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/parse-json-event-stream.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/parse-provider-options.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/types/tool.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/provider-defined-tool-factory.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/resolve.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/response-handler.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-schema.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/get-relative-path.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/options.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/select-parser.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/any.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/array.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/bigint.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/boolean.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/branded.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/catch.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/date.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/default.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/effects.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/enum.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/intersection.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/literal.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/record.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/string.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/map.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/native-enum.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/never.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/null.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/union.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/nullable.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/number.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/object.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/optional.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/pipeline.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/promise.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/set.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/tuple.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/undefined.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/unknown.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/readonly.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parse-def.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/refs.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/zod-to-json-schema.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/index.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/schema.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/uint8-utils.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/is-async-iterable.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/types/execute-tool.ts","../node_modules/.pnpm/@ai-sdk+provider-utils@3.0.7_zod@4.0.17/node_modules/@ai-sdk/provider-utils/src/index.ts","../src/schemas/reasoning-details.ts","../src/schemas/error-response.ts","../src/utils/map-finish-reason.ts","../src/chat/is-url.ts","../src/chat/file-url-utils.ts","../src/chat/convert-to-openrouter-chat-messages.ts","../src/chat/get-tool-choice.ts","../src/chat/schemas.ts","../src/chat/index.ts","../src/completion/convert-to-openrouter-completion-prompt.ts","../src/completion/schemas.ts","../src/completion/index.ts","../src/utils/payment-cache.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/evm/config.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/evm/erc20PermitABI.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/evm/usdc.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/evm/erc20.ts","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/getAction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/log.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/abi/encodeEventTopics.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/filters/createFilterRequestScope.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/createContractEventFilter.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/errors/getContractError.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/publicKeyToAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/recoverPublicKey.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/recoverAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/encoding/toRlp.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/authorization/hashAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/authorization/recoverAuthorizationAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/estimateGas.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/errors/getEstimateGasError.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/fee.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/block.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/transaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/block.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getBlock.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getGasPrice.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/estimateMaxPriorityFeePerGas.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/estimateFeesPerGas.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getTransactionCount.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/blobsToCommitments.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/blobsToProofs.ts","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha256.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/hash/sha256.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/commitmentToVersionedHash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/commitmentsToVersionedHashes.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/constants/blob.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/constants/kzg.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/blob.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/toBlobs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/blob/toBlobSidecars.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/transaction/getTransactionType.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getChainId.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/prepareTransactionRequest.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getBalance.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/estimateGas.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/estimateContractGas.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/abi/decodeEventLog.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/abi/parseEventLogs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/log.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getLogs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getContractEvents.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/readContract.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/simulateContract.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/observe.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/wait.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/poll.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/promise/withCache.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getBlockNumber.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getFilterChanges.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/uninstallFilter.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/watchContractEvent.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/account.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/chain/assertCurrentChain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/errors/getTransactionError.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/sendRawTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/sendTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/writeContract.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/calls.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/promise/withRetry.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/transactionReceipt.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/sendCalls.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/getCallsStatus.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/waitForCallsStatus.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/uid.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/createClient.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/errors.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/encodedLabelToLabelhash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/namehash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/encodeLabelhash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/labelhash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/packetToBytes.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/ens/getEnsAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/ens.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/avatar/utils.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/ens/avatar/parseAvatarRecord.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/ens/getEnsText.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/ens/getEnsAvatar.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/ens/getEnsName.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/ens/getEnsResolver.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/createAccessList.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/createBlockFilter.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/createEventFilter.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/createPendingTransactionFilter.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getBlobBaseFee.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getBlockTransactionCount.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getCode.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/eip712.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getEip712Domain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/feeHistory.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getFeeHistory.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getFilterLogs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/transaction/assertTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/transaction/serializeAccessList.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/transaction/serializeTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/authorization/serializeAuthorizationList.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/promise/withDedupe.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/buildRequest.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/chain/defineChain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/promise/withTimeout.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/rpc/id.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/rpc/http.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/constants/strings.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/toPrefixedMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/hashMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/typedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/typedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/hashTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/constants/bytes.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/isErc6492Signature.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/parseErc6492Signature.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/serializeErc6492Signature.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/formatters/proof.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getProof.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getStorageAt.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getTransactionConfirmations.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/getTransactionReceipt.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/multicall.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/simulateBlocks.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/Hash.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/internal/lru.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/Caches.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/Address.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/internal/abiItem.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/AbiItem.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/Solidity.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/internal/abiParameters.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/AbiParameters.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/AbiConstructor.ts","../node_modules/.pnpm/ox@0.9.1_typescript@5.8.3_zod@3.25.76/node_modules/ox/core/AbiFunction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/constants/address.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/simulateCalls.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/signature/serializeSignature.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/verifyHash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/verifyMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/verifyTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/watchBlockNumber.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/waitForTransactionReceipt.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/watchBlocks.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/watchEvent.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/public/watchPendingTransactions.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/siwe/parseSiweMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/utils/siwe/validateSiweMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/siwe/verifySiweMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/decorators/public.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/createPublicClient.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/addChain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/deployContract.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/getAddresses.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/getCapabilities.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/getPermissions.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/prepareAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/requestAddresses.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/requestPermissions.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/showCallsStatus.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/signAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/signMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/signTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/signTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/switchChain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/actions/wallet/watchAsset.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/decorators/wallet.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/createWalletClient.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/transports/createTransport.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/errors/transport.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/clients/transports/http.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/op-stack/contracts.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/op-stack/formatters.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/op-stack/serializers.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/op-stack/chainConfig.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/chains/definitions/avalancheFuji.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/chains/definitions/base.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/chains/definitions/baseSepolia.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/chains/definitions/sei.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/chains/definitions/seiTestnet.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/toAccount.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/sign.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/signAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/signMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/signTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/utils/signTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@3.25.76/node_modules/viem/accounts/privateKeyToAccount.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/money.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/network.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/evm/index.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/evm/eip3009.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/shared/evm/wallet.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/verify/x402Specs.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/types/verify/facilitator.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/json.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/paywall/gen/template.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/paywall.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/base64.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/network.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/shared/middleware.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/evm/utils/paymentUtils.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/evm/sign.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/evm/client.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/index.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/evm/index.ts","../node_modules/.pnpm/x402@0.5.3_@tanstack+query-core@5.85.5_@tanstack+react-query@5.85.5_react@18.3.1__buffe_51561b50450f303b91dcc86f1e5c55ca/node_modules/x402/src/schemes/exact/evm/facilitator.ts","../src/wallet/x402-payment-utils.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/utils.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/abstract/modular.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/abstract/curve.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/abstract/edwards.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/ed25519.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/codes.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/context.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/messages.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/message-formatter.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/error.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/stack-trace.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/rpc-enum-errors.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/instruction-error.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/transaction-error.ts","../node_modules/.pnpm/@solana+errors@2.3.0_typescript@5.8.3/node_modules/@solana/errors/src/json-rpc-error.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/bytes.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/combine-codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/add-codec-sentinel.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/assertions.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/add-codec-size-prefix.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/fix-codec-size.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/offset-codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/resize-codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/pad-codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/reverse-codec.ts","../node_modules/.pnpm/@solana+codecs-core@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-core/src/transform-codec.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/assertions.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/common.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/utils.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/f32.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/f64.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/i128.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/i16.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/i32.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/i64.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/i8.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/short-u16.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/u128.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/u16.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/u32.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/u64.ts","../node_modules/.pnpm/@solana+codecs-numbers@2.3.0_typescript@5.8.3/node_modules/@solana/codecs-numbers/src/u8.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/error.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/utils.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/struct.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/structs/utilities.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/structs/types.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/structs/coercions.ts","../node_modules/.pnpm/superstruct@2.0.2/node_modules/superstruct/src/structs/refinements.ts","../node_modules/.pnpm/node-fetch@2.7.0/node_modules/node-fetch/lib/index.mjs","../node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.mjs","../node_modules/.pnpm/rpc-websockets@9.1.3/node_modules/rpc-websockets/src/lib/client/websocket.ts","../node_modules/.pnpm/rpc-websockets@9.1.3/node_modules/rpc-websockets/src/lib/utils.ts","../node_modules/.pnpm/rpc-websockets@9.1.3/node_modules/rpc-websockets/src/lib/client.ts","../node_modules/.pnpm/rpc-websockets@9.1.3/node_modules/rpc-websockets/src/lib/server.ts","../node_modules/.pnpm/rpc-websockets@9.1.3/node_modules/rpc-websockets/src/index.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/abstract/weierstrass.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/_shortw_utils.ts","../node_modules/.pnpm/@noble+curves@1.9.7/node_modules/@noble/curves/src/secp256k1.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/ed25519.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/to-buffer.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/borsh-schema.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/publickey.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/account.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/bpf-loader-deprecated.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/transaction/constants.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/transaction/expiry-custom-errors.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/message/account-keys.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/layout.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/shortvec-encoding.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/assert.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/message/compiled-keys.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/guarded-array-utils.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/message/legacy.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/message/v0.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/message/versioned.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/transaction/legacy.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/transaction/message.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/transaction/versioned.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/timing.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/sysvar.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/errors.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/send-and-confirm-transaction.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/sleep.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/instruction.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/fee-calculator.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/nonce-account.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/bigint.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/system.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/loader.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/bpf-loader.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/humanize-ms@1.2.1/node_modules/humanize-ms/index.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/constants.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/agent.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/lib/https_agent.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/agentkeepalive@4.5.0/node_modules/agentkeepalive/index.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/node_modules/.pnpm/fast-stable-stringify@1.0.0/node_modules/fast-stable-stringify/index.js","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/epoch-schedule.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/fetch-impl.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/rpc-websocket.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/account-data.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/address-lookup-table/state.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/makeWebsocketUrl.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/connection.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/keypair.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/address-lookup-table/index.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/compute-budget.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/ed25519.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/secp256k1.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/secp256k1.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/stake.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/programs/vote.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/validator-info.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/vote-account.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/cluster.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/utils/send-and-confirm-raw-transaction.ts","../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/src/index.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/constants.ts","../node_modules/.pnpm/@solana+buffer-layout-utils@0.2.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/buffer-layout-utils/src/base.ts","../node_modules/.pnpm/@solana+buffer-layout-utils@0.2.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/buffer-layout-utils/src/bigint.ts","../node_modules/.pnpm/bignumber.js@9.3.1/node_modules/bignumber.js/bignumber.mjs","../node_modules/.pnpm/@solana+buffer-layout-utils@0.2.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/buffer-layout-utils/src/decimal.ts","../node_modules/.pnpm/@solana+buffer-layout-utils@0.2.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/buffer-layout-utils/src/native.ts","../node_modules/.pnpm/@solana+buffer-layout-utils@0.2.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10/node_modules/@solana/buffer-layout-utils/src/web3.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/errors.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/instructions/types.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/state/mint.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/extensions/accountType.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/state/account.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/state/multisig.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/instructions/internal.ts","../node_modules/.pnpm/@solana+spl-token@0.4.13_@solana+web3.js@1.98.4_bufferutil@4.0.9_typescript@5.8.3_utf-8_0e7f47c7f2521ebedca52612f504a18b/node_modules/@solana/spl-token/src/instructions/transferChecked.ts","../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","../src/wallet/x402-solana-utils.ts","../src/wallet/x402-fetch-wrapper.ts","../src/provider.ts","../src/wallet/unified-account-types.ts","../src/wallet/dreams-router-api-client.ts","../src/wallet/unified-wallet-auth.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/version.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/base.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/encoding.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/isHex.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/size.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/trim.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/data.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/pad.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/encoding/toHex.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/encoding/toBytes.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/encoding/fromHex.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/lru.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/signature/serializeSignature.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/address.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/hash/keccak256.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/address/getAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/address/isAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/toAccount.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/publicKeyToAddress.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/sign.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/concat.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/cursor.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/cursor.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/encoding/toRlp.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/authorization/hashAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/signAuthorization.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/constants/strings.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/signature/toPrefixedMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/signature/hashMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/signMessage.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/constants/unit.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/unit/formatUnits.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/unit/formatGwei.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/transaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/authorization/serializeAuthorizationList.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/blobsToCommitments.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/blobsToProofs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/hash/sha256.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/commitmentToVersionedHash.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/commitmentsToVersionedHashes.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/constants/blob.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/constants/kzg.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/blob.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/toBlobs.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/blob/toBlobSidecars.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/constants/number.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/chain.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/node.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/data/slice.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/transaction/assertTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/transaction/getTransactionType.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/transaction/serializeAccessList.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/transaction/serializeTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/signTransaction.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/abi.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/regex.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/abi/encodeAbiParameters.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/stringify.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/errors/typedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/typedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/utils/signature/hashTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/utils/signTypedData.ts","../node_modules/.pnpm/viem@2.36.0_bufferutil@4.0.9_typescript@5.8.3_utf-8-validate@5.0.10_zod@4.0.17/node_modules/viem/accounts/privateKeyToAccount.ts","../src/wallet/account-helpers.ts","../src/wallet/separated-auth.ts","../src/wallet/wallet-auth-utils.ts"],"sourcesContent":["(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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\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    }\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    this.length = num === 0 ? 1 : this.length;\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    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.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(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\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\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","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n  if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n  var BASE_MAP = new Uint8Array(256)\n  for (var j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255\n  }\n  for (var i = 0; i < ALPHABET.length; i++) {\n    var x = ALPHABET.charAt(i)\n    var xc = x.charCodeAt(0)\n    if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n    BASE_MAP[xc] = i\n  }\n  var BASE = ALPHABET.length\n  var LEADER = ALPHABET.charAt(0)\n  var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n  var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n  function encode (source) {\n    if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n    if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n    if (source.length === 0) { return '' }\n        // Skip & count leading zeroes.\n    var zeroes = 0\n    var length = 0\n    var pbegin = 0\n    var pend = source.length\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++\n      zeroes++\n    }\n        // Allocate enough space in big-endian base58 representation.\n    var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n    var b58 = new Uint8Array(size)\n        // Process the bytes.\n    while (pbegin !== pend) {\n      var carry = source[pbegin]\n            // Apply \"b58 = b58 * 256 + ch\".\n      var i = 0\n      for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n        carry += (256 * b58[it1]) >>> 0\n        b58[it1] = (carry % BASE) >>> 0\n        carry = (carry / BASE) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      pbegin++\n    }\n        // Skip leading zeroes in base58 result.\n    var it2 = size - length\n    while (it2 !== size && b58[it2] === 0) {\n      it2++\n    }\n        // Translate the result into a string.\n    var str = LEADER.repeat(zeroes)\n    for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n    return str\n  }\n  function decodeUnsafe (source) {\n    if (typeof source !== 'string') { throw new TypeError('Expected String') }\n    if (source.length === 0) { return _Buffer.alloc(0) }\n    var psz = 0\n        // Skip and count leading '1's.\n    var zeroes = 0\n    var length = 0\n    while (source[psz] === LEADER) {\n      zeroes++\n      psz++\n    }\n        // Allocate enough space in big-endian base256 representation.\n    var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n    var b256 = new Uint8Array(size)\n        // Process the characters.\n    while (psz < source.length) {\n            // Find code of next character\n      var charCode = source.charCodeAt(psz)\n            // Base map can not be indexed using char code\n      if (charCode > 255) { return }\n            // Decode character\n      var carry = BASE_MAP[charCode]\n            // Invalid character\n      if (carry === 255) { return }\n      var i = 0\n      for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n        carry += (BASE * b256[it3]) >>> 0\n        b256[it3] = (carry % 256) >>> 0\n        carry = (carry / 256) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      psz++\n    }\n        // Skip leading zeroes in b256.\n    var it4 = size - length\n    while (it4 !== size && b256[it4] === 0) {\n      it4++\n    }\n    var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n    vch.fill(0x00, 0, zeroes)\n    var j = zeroes\n    while (it4 !== size) {\n      vch[j++] = b256[it4++]\n    }\n    return vch\n  }\n  function decode (string) {\n    var buffer = decodeUnsafe(string)\n    if (buffer) { return buffer }\n    throw new Error('Non-base' + BASE + ' character')\n  }\n  return {\n    encode: encode,\n    decodeUnsafe: decodeUnsafe,\n    decode: decode\n  }\n}\nmodule.exports = base\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n  return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n  if (o === undefined) return {};\n  if (o === Object(o)) return o;\n  throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.<number>} Code points.\n */\nfunction stringToCodePoints(string) {\n  // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n  // 1. Let S be the DOMString value.\n  var s = String(string);\n\n  // 2. Let n be the length of S.\n  var n = s.length;\n\n  // 3. Initialize i to 0.\n  var i = 0;\n\n  // 4. Initialize U to be an empty sequence of Unicode characters.\n  var u = [];\n\n  // 5. While i < n:\n  while (i < n) {\n\n    // 1. Let c be the code unit in S at index i.\n    var c = s.charCodeAt(i);\n\n    // 2. Depending on the value of c:\n\n    // c < 0xD800 or c > 0xDFFF\n    if (c < 0xD800 || c > 0xDFFF) {\n      // Append to U the Unicode character with code point c.\n      u.push(c);\n    }\n\n    // 0xDC00 ≤ c ≤ 0xDFFF\n    else if (0xDC00 <= c && c <= 0xDFFF) {\n      // Append to U a U+FFFD REPLACEMENT CHARACTER.\n      u.push(0xFFFD);\n    }\n\n    // 0xD800 ≤ c ≤ 0xDBFF\n    else if (0xD800 <= c && c <= 0xDBFF) {\n      // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n      // CHARACTER.\n      if (i === n - 1) {\n        u.push(0xFFFD);\n      }\n      // 2. Otherwise, i < n−1:\n      else {\n        // 1. Let d be the code unit in S at index i+1.\n        var d = string.charCodeAt(i + 1);\n\n        // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n        if (0xDC00 <= d && d <= 0xDFFF) {\n          // 1. Let a be c & 0x3FF.\n          var a = c & 0x3FF;\n\n          // 2. Let b be d & 0x3FF.\n          var b = d & 0x3FF;\n\n          // 3. Append to U the Unicode character with code point\n          // 2^16+2^10*a+b.\n          u.push(0x10000 + (a << 10) + b);\n\n          // 4. Set i to i+1.\n          i += 1;\n        }\n\n        // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n        // U+FFFD REPLACEMENT CHARACTER.\n        else  {\n          u.push(0xFFFD);\n        }\n      }\n    }\n\n    // 3. Set i to i+1.\n    i += 1;\n  }\n\n  // 6. Return U.\n  return u;\n}\n\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n  var s = '';\n  for (var i = 0; i < code_points.length; ++i) {\n    var cp = code_points[i];\n    if (cp <= 0xFFFF) {\n      s += String.fromCharCode(cp);\n    } else {\n      cp -= 0x10000;\n      s += String.fromCharCode((cp >> 10) + 0xD800,\n                               (cp & 0x3FF) + 0xDC00);\n    }\n  }\n  return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n  /** @type {!Array.<number>} */\n  this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n  /**\n   * @return {boolean} True if end-of-stream has been hit.\n   */\n  endOfStream: function() {\n    return !this.tokens.length;\n  },\n\n  /**\n   * When a token is read from a stream, the first token in the\n   * stream must be returned and subsequently removed, and\n   * end-of-stream must be returned otherwise.\n   *\n   * @return {number} Get the next token from the stream, or\n   * end_of_stream.\n   */\n   read: function() {\n    if (!this.tokens.length)\n      return end_of_stream;\n     return this.tokens.shift();\n   },\n\n  /**\n   * When one or more tokens are prepended to a stream, those tokens\n   * must be inserted, in given order, before the first token in the\n   * stream.\n   *\n   * @param {(number|!Array.<number>)} token The token(s) to prepend to the stream.\n   */\n  prepend: function(token) {\n    if (Array.isArray(token)) {\n      var tokens = /**@type {!Array.<number>}*/(token);\n      while (tokens.length)\n        this.tokens.unshift(tokens.pop());\n    } else {\n      this.tokens.unshift(token);\n    }\n  },\n\n  /**\n   * When one or more tokens are pushed to a stream, those tokens\n   * must be inserted, in given order, after the last token in the\n   * stream.\n   *\n   * @param {(number|!Array.<number>)} token The tokens(s) to prepend to the stream.\n   */\n  push: function(token) {\n    if (Array.isArray(token)) {\n      var tokens = /**@type {!Array.<number>}*/(token);\n      while (tokens.length)\n        this.tokens.push(tokens.shift());\n    } else {\n      this.tokens.push(token);\n    }\n  }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n  if (fatal)\n    throw TypeError('Decoder error');\n  return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n *     defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n  if (!(this instanceof TextDecoder)) {\n    return new TextDecoder(encoding, options);\n  }\n  encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n  if (encoding !== DEFAULT_ENCODING) {\n    throw new Error('Encoding not supported. Only utf-8 is supported');\n  }\n  options = ToDictionary(options);\n\n  /** @private @type {boolean} */\n  this._streaming = false;\n  /** @private @type {boolean} */\n  this._BOMseen = false;\n  /** @private @type {?Decoder} */\n  this._decoder = null;\n  /** @private @type {boolean} */\n  this._fatal = Boolean(options['fatal']);\n  /** @private @type {boolean} */\n  this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n  Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n  Object.defineProperty(this, 'fatal', {value: this._fatal});\n  Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n  /**\n   * @param {ArrayBufferView=} input The buffer of bytes to decode.\n   * @param {Object=} options\n   * @return {string} The decoded string.\n   */\n  decode: function decode(input, options) {\n    var bytes;\n    if (typeof input === 'object' && input instanceof ArrayBuffer) {\n      bytes = new Uint8Array(input);\n    } else if (typeof input === 'object' && 'buffer' in input &&\n               input.buffer instanceof ArrayBuffer) {\n      bytes = new Uint8Array(input.buffer,\n                             input.byteOffset,\n                             input.byteLength);\n    } else {\n      bytes = new Uint8Array(0);\n    }\n\n    options = ToDictionary(options);\n\n    if (!this._streaming) {\n      this._decoder = new UTF8Decoder({fatal: this._fatal});\n      this._BOMseen = false;\n    }\n    this._streaming = Boolean(options['stream']);\n\n    var input_stream = new Stream(bytes);\n\n    var code_points = [];\n\n    /** @type {?(number|!Array.<number>)} */\n    var result;\n\n    while (!input_stream.endOfStream()) {\n      result = this._decoder.handler(input_stream, input_stream.read());\n      if (result === finished)\n        break;\n      if (result === null)\n        continue;\n      if (Array.isArray(result))\n        code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n      else\n        code_points.push(result);\n    }\n    if (!this._streaming) {\n      do {\n        result = this._decoder.handler(input_stream, input_stream.read());\n        if (result === finished)\n          break;\n        if (result === null)\n          continue;\n        if (Array.isArray(result))\n          code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n        else\n          code_points.push(result);\n      } while (!input_stream.endOfStream());\n      this._decoder = null;\n    }\n\n    if (code_points.length) {\n      // If encoding is one of utf-8, utf-16be, and utf-16le, and\n      // ignore BOM flag and BOM seen flag are unset, run these\n      // subsubsteps:\n      if (['utf-8'].indexOf(this.encoding) !== -1 &&\n          !this._ignoreBOM && !this._BOMseen) {\n        // If token is U+FEFF, set BOM seen flag.\n        if (code_points[0] === 0xFEFF) {\n          this._BOMseen = true;\n          code_points.shift();\n        } else {\n          // Otherwise, if token is not end-of-stream, set BOM seen\n          // flag and append token to output.\n          this._BOMseen = true;\n        }\n      }\n    }\n\n    return codePointsToString(code_points);\n  }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n *     defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n  if (!(this instanceof TextEncoder))\n    return new TextEncoder(encoding, options);\n  encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n  if (encoding !== DEFAULT_ENCODING) {\n    throw new Error('Encoding not supported. Only utf-8 is supported');\n  }\n  options = ToDictionary(options);\n\n  /** @private @type {boolean} */\n  this._streaming = false;\n  /** @private @type {?Encoder} */\n  this._encoder = null;\n  /** @private @type {{fatal: boolean}} */\n  this._options = {fatal: Boolean(options['fatal'])};\n\n  Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n  /**\n   * @param {string=} opt_string The string to encode.\n   * @param {Object=} options\n   * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n   */\n  encode: function encode(opt_string, options) {\n    opt_string = opt_string ? String(opt_string) : '';\n    options = ToDictionary(options);\n\n    // NOTE: This option is nonstandard. None of the encodings\n    // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n    // so streaming is not necessary.\n    if (!this._streaming)\n      this._encoder = new UTF8Encoder(this._options);\n    this._streaming = Boolean(options['stream']);\n\n    var bytes = [];\n    var input_stream = new Stream(stringToCodePoints(opt_string));\n    /** @type {?(number|!Array.<number>)} */\n    var result;\n    while (!input_stream.endOfStream()) {\n      result = this._encoder.handler(input_stream, input_stream.read());\n      if (result === finished)\n        break;\n      if (Array.isArray(result))\n        bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n      else\n        bytes.push(result);\n    }\n    if (!this._streaming) {\n      while (true) {\n        result = this._encoder.handler(input_stream, input_stream.read());\n        if (result === finished)\n          break;\n        if (Array.isArray(result))\n          bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n        else\n          bytes.push(result);\n      }\n      this._encoder = null;\n    }\n    return new Uint8Array(bytes);\n  }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n  var fatal = options.fatal;\n\n  // utf-8's decoder's has an associated utf-8 code point, utf-8\n  // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n  // lower boundary (initially 0x80), and a utf-8 upper boundary\n  // (initially 0xBF).\n  var /** @type {number} */ utf8_code_point = 0,\n      /** @type {number} */ utf8_bytes_seen = 0,\n      /** @type {number} */ utf8_bytes_needed = 0,\n      /** @type {number} */ utf8_lower_boundary = 0x80,\n      /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n  /**\n   * @param {Stream} stream The stream of bytes being decoded.\n   * @param {number} bite The next byte read from the stream.\n   * @return {?(number|!Array.<number>)} The next code point(s)\n   *     decoded, or null if not enough data exists in the input\n   *     stream to decode a complete code point.\n   */\n  this.handler = function(stream, bite) {\n    // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n    // set utf-8 bytes needed to 0 and return error.\n    if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n      utf8_bytes_needed = 0;\n      return decoderError(fatal);\n    }\n\n    // 2. If byte is end-of-stream, return finished.\n    if (bite === end_of_stream)\n      return finished;\n\n    // 3. If utf-8 bytes needed is 0, based on byte:\n    if (utf8_bytes_needed === 0) {\n\n      // 0x00 to 0x7F\n      if (inRange(bite, 0x00, 0x7F)) {\n        // Return a code point whose value is byte.\n        return bite;\n      }\n\n      // 0xC2 to 0xDF\n      if (inRange(bite, 0xC2, 0xDF)) {\n        // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n        // − 0xC0.\n        utf8_bytes_needed = 1;\n        utf8_code_point = bite - 0xC0;\n      }\n\n      // 0xE0 to 0xEF\n      else if (inRange(bite, 0xE0, 0xEF)) {\n        // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n        if (bite === 0xE0)\n          utf8_lower_boundary = 0xA0;\n        // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n        if (bite === 0xED)\n          utf8_upper_boundary = 0x9F;\n        // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n        // byte − 0xE0.\n        utf8_bytes_needed = 2;\n        utf8_code_point = bite - 0xE0;\n      }\n\n      // 0xF0 to 0xF4\n      else if (inRange(bite, 0xF0, 0xF4)) {\n        // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n        if (bite === 0xF0)\n          utf8_lower_boundary = 0x90;\n        // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n        if (bite === 0xF4)\n          utf8_upper_boundary = 0x8F;\n        // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n        // byte − 0xF0.\n        utf8_bytes_needed = 3;\n        utf8_code_point = bite - 0xF0;\n      }\n\n      // Otherwise\n      else {\n        // Return error.\n        return decoderError(fatal);\n      }\n\n      // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n      // point to utf-8 code point << (6 × utf-8 bytes needed) and\n      // return continue.\n      utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n      return null;\n    }\n\n    // 4. If byte is not in the range utf-8 lower boundary to utf-8\n    // upper boundary, run these substeps:\n    if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n      // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n      // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n      // utf-8 upper boundary to 0xBF.\n      utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n      utf8_lower_boundary = 0x80;\n      utf8_upper_boundary = 0xBF;\n\n      // 2. Prepend byte to stream.\n      stream.prepend(bite);\n\n      // 3. Return error.\n      return decoderError(fatal);\n    }\n\n    // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n    // to 0xBF.\n    utf8_lower_boundary = 0x80;\n    utf8_upper_boundary = 0xBF;\n\n    // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n    // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n    // needed − utf-8 bytes seen)).\n    utf8_bytes_seen += 1;\n    utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n    // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n    // continue.\n    if (utf8_bytes_seen !== utf8_bytes_needed)\n      return null;\n\n    // 8. Let code point be utf-8 code point.\n    var code_point = utf8_code_point;\n\n    // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n    // seen to 0.\n    utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n    // 10. Return a code point whose value is code point.\n    return code_point;\n  };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n  var fatal = options.fatal;\n  /**\n   * @param {Stream} stream Input stream.\n   * @param {number} code_point Next code point read from the stream.\n   * @return {(number|!Array.<number>)} Byte(s) to emit.\n   */\n  this.handler = function(stream, code_point) {\n    // 1. If code point is end-of-stream, return finished.\n    if (code_point === end_of_stream)\n      return finished;\n\n    // 2. If code point is in the range U+0000 to U+007F, return a\n    // byte whose value is code point.\n    if (inRange(code_point, 0x0000, 0x007f))\n      return code_point;\n\n    // 3. Set count and offset based on the range code point is in:\n    var count, offset;\n    // U+0080 to U+07FF:    1 and 0xC0\n    if (inRange(code_point, 0x0080, 0x07FF)) {\n      count = 1;\n      offset = 0xC0;\n    }\n    // U+0800 to U+FFFF:    2 and 0xE0\n    else if (inRange(code_point, 0x0800, 0xFFFF)) {\n      count = 2;\n      offset = 0xE0;\n    }\n    // U+10000 to U+10FFFF: 3 and 0xF0\n    else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n      count = 3;\n      offset = 0xF0;\n    }\n\n    // 4.Let bytes be a byte sequence whose first byte is (code\n    // point >> (6 × count)) + offset.\n    var bytes = [(code_point >> (6 * count)) + offset];\n\n    // 5. Run these substeps while count is greater than 0:\n    while (count > 0) {\n\n      // 1. Set temp to code point >> (6 × (count − 1)).\n      var temp = code_point >> (6 * (count - 1));\n\n      // 2. Append to bytes 0x80 | (temp & 0x3F).\n      bytes.push(0x80 | (temp & 0x3F));\n\n      // 3. Decrease count by one.\n      count -= 1;\n    }\n\n    // 6. Return bytes bytes, in order.\n    return bytes;\n  };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst ResolvedTextDecoder = typeof TextDecoder !== \"function\" ? encoding.TextDecoder : TextDecoder;\nconst textDecoder = new ResolvedTextDecoder(\"utf-8\", { fatal: true });\nfunction baseEncode(value) {\n    if (typeof value === \"string\") {\n        value = Buffer.from(value, \"utf8\");\n    }\n    return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n    return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n    constructor(message) {\n        super(message);\n        this.fieldPath = [];\n        this.originalMessage = message;\n    }\n    addToFieldPath(fieldName) {\n        this.fieldPath.splice(0, 0, fieldName);\n        // NOTE: Modifying message directly as jest doesn't use .toString()\n        this.message = this.originalMessage + \": \" + this.fieldPath.join(\".\");\n    }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n    constructor() {\n        this.buf = Buffer.alloc(INITIAL_LENGTH);\n        this.length = 0;\n    }\n    maybeResize() {\n        if (this.buf.length < 16 + this.length) {\n            this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n        }\n    }\n    writeU8(value) {\n        this.maybeResize();\n        this.buf.writeUInt8(value, this.length);\n        this.length += 1;\n    }\n    writeU16(value) {\n        this.maybeResize();\n        this.buf.writeUInt16LE(value, this.length);\n        this.length += 2;\n    }\n    writeU32(value) {\n        this.maybeResize();\n        this.buf.writeUInt32LE(value, this.length);\n        this.length += 4;\n    }\n    writeU64(value) {\n        this.maybeResize();\n        this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 8)));\n    }\n    writeU128(value) {\n        this.maybeResize();\n        this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 16)));\n    }\n    writeU256(value) {\n        this.maybeResize();\n        this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 32)));\n    }\n    writeU512(value) {\n        this.maybeResize();\n        this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray(\"le\", 64)));\n    }\n    writeBuffer(buffer) {\n        // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n        this.buf = Buffer.concat([\n            Buffer.from(this.buf.subarray(0, this.length)),\n            buffer,\n            Buffer.alloc(INITIAL_LENGTH),\n        ]);\n        this.length += buffer.length;\n    }\n    writeString(str) {\n        this.maybeResize();\n        const b = Buffer.from(str, \"utf8\");\n        this.writeU32(b.length);\n        this.writeBuffer(b);\n    }\n    writeFixedArray(array) {\n        this.writeBuffer(Buffer.from(array));\n    }\n    writeArray(array, fn) {\n        this.maybeResize();\n        this.writeU32(array.length);\n        for (const elem of array) {\n            this.maybeResize();\n            fn(elem);\n        }\n    }\n    toArray() {\n        return this.buf.subarray(0, this.length);\n    }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n    const originalMethod = propertyDescriptor.value;\n    propertyDescriptor.value = function (...args) {\n        try {\n            return originalMethod.apply(this, args);\n        }\n        catch (e) {\n            if (e instanceof RangeError) {\n                const code = e.code;\n                if ([\"ERR_BUFFER_OUT_OF_BOUNDS\", \"ERR_OUT_OF_RANGE\"].indexOf(code) >= 0) {\n                    throw new BorshError(\"Reached the end of buffer when deserializing\");\n                }\n            }\n            throw e;\n        }\n    };\n}\nclass BinaryReader {\n    constructor(buf) {\n        this.buf = buf;\n        this.offset = 0;\n    }\n    readU8() {\n        const value = this.buf.readUInt8(this.offset);\n        this.offset += 1;\n        return value;\n    }\n    readU16() {\n        const value = this.buf.readUInt16LE(this.offset);\n        this.offset += 2;\n        return value;\n    }\n    readU32() {\n        const value = this.buf.readUInt32LE(this.offset);\n        this.offset += 4;\n        return value;\n    }\n    readU64() {\n        const buf = this.readBuffer(8);\n        return new bn_js_1.default(buf, \"le\");\n    }\n    readU128() {\n        const buf = this.readBuffer(16);\n        return new bn_js_1.default(buf, \"le\");\n    }\n    readU256() {\n        const buf = this.readBuffer(32);\n        return new bn_js_1.default(buf, \"le\");\n    }\n    readU512() {\n        const buf = this.readBuffer(64);\n        return new bn_js_1.default(buf, \"le\");\n    }\n    readBuffer(len) {\n        if (this.offset + len > this.buf.length) {\n            throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n        }\n        const result = this.buf.slice(this.offset, this.offset + len);\n        this.offset += len;\n        return result;\n    }\n    readString() {\n        const len = this.readU32();\n        const buf = this.readBuffer(len);\n        try {\n            // NOTE: Using TextDecoder to fail on invalid UTF-8\n            return textDecoder.decode(buf);\n        }\n        catch (e) {\n            throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n        }\n    }\n    readFixedArray(len) {\n        return new Uint8Array(this.readBuffer(len));\n    }\n    readArray(fn) {\n        const len = this.readU32();\n        const result = Array();\n        for (let i = 0; i < len; ++i) {\n            result.push(fn());\n        }\n        return result;\n    }\n}\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n    handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n    try {\n        // TODO: Handle missing values properly (make sure they never result in just skipped write)\n        if (typeof fieldType === \"string\") {\n            writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n        }\n        else if (fieldType instanceof Array) {\n            if (typeof fieldType[0] === \"number\") {\n                if (value.length !== fieldType[0]) {\n                    throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n                }\n                writer.writeFixedArray(value);\n            }\n            else if (fieldType.length === 2 && typeof fieldType[1] === \"number\") {\n                if (value.length !== fieldType[1]) {\n                    throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n                }\n                for (let i = 0; i < fieldType[1]; i++) {\n                    serializeField(schema, null, value[i], fieldType[0], writer);\n                }\n            }\n            else {\n                writer.writeArray(value, (item) => {\n                    serializeField(schema, fieldName, item, fieldType[0], writer);\n                });\n            }\n        }\n        else if (fieldType.kind !== undefined) {\n            switch (fieldType.kind) {\n                case \"option\": {\n                    if (value === null || value === undefined) {\n                        writer.writeU8(0);\n                    }\n                    else {\n                        writer.writeU8(1);\n                        serializeField(schema, fieldName, value, fieldType.type, writer);\n                    }\n                    break;\n                }\n                case \"map\": {\n                    writer.writeU32(value.size);\n                    value.forEach((val, key) => {\n                        serializeField(schema, fieldName, key, fieldType.key, writer);\n                        serializeField(schema, fieldName, val, fieldType.value, writer);\n                    });\n                    break;\n                }\n                default:\n                    throw new BorshError(`FieldType ${fieldType} unrecognized`);\n            }\n        }\n        else {\n            serializeStruct(schema, value, writer);\n        }\n    }\n    catch (error) {\n        if (error instanceof BorshError) {\n            error.addToFieldPath(fieldName);\n        }\n        throw error;\n    }\n}\nfunction serializeStruct(schema, obj, writer) {\n    if (typeof obj.borshSerialize === \"function\") {\n        obj.borshSerialize(writer);\n        return;\n    }\n    const structSchema = schema.get(obj.constructor);\n    if (!structSchema) {\n        throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n    }\n    if (structSchema.kind === \"struct\") {\n        structSchema.fields.map(([fieldName, fieldType]) => {\n            serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n        });\n    }\n    else if (structSchema.kind === \"enum\") {\n        const name = obj[structSchema.field];\n        for (let idx = 0; idx < structSchema.values.length; ++idx) {\n            const [fieldName, fieldType] = structSchema.values[idx];\n            if (fieldName === name) {\n                writer.writeU8(idx);\n                serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n                break;\n            }\n        }\n    }\n    else {\n        throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n    }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n    const writer = new Writer();\n    serializeStruct(schema, obj, writer);\n    return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n    try {\n        if (typeof fieldType === \"string\") {\n            return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n        }\n        if (fieldType instanceof Array) {\n            if (typeof fieldType[0] === \"number\") {\n                return reader.readFixedArray(fieldType[0]);\n            }\n            else if (typeof fieldType[1] === \"number\") {\n                const arr = [];\n                for (let i = 0; i < fieldType[1]; i++) {\n                    arr.push(deserializeField(schema, null, fieldType[0], reader));\n                }\n                return arr;\n            }\n            else {\n                return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n            }\n        }\n        if (fieldType.kind === \"option\") {\n            const option = reader.readU8();\n            if (option) {\n                return deserializeField(schema, fieldName, fieldType.type, reader);\n            }\n            return undefined;\n        }\n        if (fieldType.kind === \"map\") {\n            let map = new Map();\n            const length = reader.readU32();\n            for (let i = 0; i < length; i++) {\n                const key = deserializeField(schema, fieldName, fieldType.key, reader);\n                const val = deserializeField(schema, fieldName, fieldType.value, reader);\n                map.set(key, val);\n            }\n            return map;\n        }\n        return deserializeStruct(schema, fieldType, reader);\n    }\n    catch (error) {\n        if (error instanceof BorshError) {\n            error.addToFieldPath(fieldName);\n        }\n        throw error;\n    }\n}\nfunction deserializeStruct(schema, classType, reader) {\n    if (typeof classType.borshDeserialize === \"function\") {\n        return classType.borshDeserialize(reader);\n    }\n    const structSchema = schema.get(classType);\n    if (!structSchema) {\n        throw new BorshError(`Class ${classType.name} is missing in schema`);\n    }\n    if (structSchema.kind === \"struct\") {\n        const result = {};\n        for (const [fieldName, fieldType] of schema.get(classType).fields) {\n            result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n        }\n        return new classType(result);\n    }\n    if (structSchema.kind === \"enum\") {\n        const idx = reader.readU8();\n        if (idx >= structSchema.values.length) {\n            throw new BorshError(`Enum index: ${idx} is out of range`);\n        }\n        const [fieldName, fieldType] = structSchema.values[idx];\n        const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n        return new classType({ [fieldName]: fieldValue });\n    }\n    throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n    const reader = new Reader(buffer);\n    const result = deserializeStruct(schema, classType, reader);\n    if (reader.offset < buffer.length) {\n        throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n    }\n    return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n    const reader = new Reader(buffer);\n    return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n",null,"import crypto from 'crypto';\nconst rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate\n\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n  if (poolPtr > rnds8Pool.length - 16) {\n    crypto.randomFillSync(rnds8Pool);\n    poolPtr = 0;\n  }\n\n  return rnds8Pool.slice(poolPtr, poolPtr += 16);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n  return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr, offset = 0) {\n  // Note: Be careful editing this code!  It's been tuned for performance\n  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n  const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID.  If this throws, it's likely due to one\n  // of the following:\n  // - One or more input array values don't map to a hex octet (leading to\n  // \"undefined\" in the uuid)\n  // - Invalid input values for the RFC `version` or `variant` fields\n\n  if (!validate(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n\n  return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js'; // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n  let i = buf && offset || 0;\n  const b = buf || new Array(16);\n  options = options || {};\n  let node = options.node || _nodeId;\n  let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n  // specified.  We do this lazily to minimize issues related to insufficient\n  // system entropy.  See #189\n\n  if (node == null || clockseq == null) {\n    const seedBytes = options.random || (options.rng || rng)();\n\n    if (node == null) {\n      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n    }\n\n    if (clockseq == null) {\n      // Per 4.2.2, randomize (14 bit) clockseq\n      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n    }\n  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so\n  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n  let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n  // cycle to simulate higher resolution clock\n\n  let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n  const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n  if (dt < 0 && options.clockseq === undefined) {\n    clockseq = clockseq + 1 & 0x3fff;\n  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n  // time interval\n\n\n  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n    nsecs = 0;\n  } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n  if (nsecs >= 10000) {\n    throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n  }\n\n  _lastMSecs = msecs;\n  _lastNSecs = nsecs;\n  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n  msecs += 12219292800000; // `time_low`\n\n  const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n  b[i++] = tl >>> 24 & 0xff;\n  b[i++] = tl >>> 16 & 0xff;\n  b[i++] = tl >>> 8 & 0xff;\n  b[i++] = tl & 0xff; // `time_mid`\n\n  const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n  b[i++] = tmh >>> 8 & 0xff;\n  b[i++] = tmh & 0xff; // `time_high_and_version`\n\n  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n  b[i++] = clockseq & 0xff; // `node`\n\n  for (let n = 0; n < 6; ++n) {\n    b[i + n] = node[n];\n  }\n\n  return buf || stringify(b);\n}\n\nexport default v1;","import validate from './validate.js';\n\nfunction parse(uuid) {\n  if (!validate(uuid)) {\n    throw TypeError('Invalid UUID');\n  }\n\n  let v;\n  const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n  arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n  arr[1] = v >>> 16 & 0xff;\n  arr[2] = v >>> 8 & 0xff;\n  arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n  arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n  arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n  arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n  arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n  arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n  arr[9] = v & 0xff; // Parse ........-....-....-....-############\n  // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n  arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n  arr[11] = v / 0x100000000 & 0xff;\n  arr[12] = v >>> 24 & 0xff;\n  arr[13] = v >>> 16 & 0xff;\n  arr[14] = v >>> 8 & 0xff;\n  arr[15] = v & 0xff;\n  return arr;\n}\n\nexport default parse;","import stringify from './stringify.js';\nimport parse from './parse.js';\n\nfunction stringToBytes(str) {\n  str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n  const bytes = [];\n\n  for (let i = 0; i < str.length; ++i) {\n    bytes.push(str.charCodeAt(i));\n  }\n\n  return bytes;\n}\n\nexport const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexport const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexport default function (name, version, hashfunc) {\n  function generateUUID(value, namespace, buf, offset) {\n    if (typeof value === 'string') {\n      value = stringToBytes(value);\n    }\n\n    if (typeof namespace === 'string') {\n      namespace = parse(namespace);\n    }\n\n    if (namespace.length !== 16) {\n      throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n    } // Compute hash of namespace and value, Per 4.3\n    // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n    // hashfunc([...namespace, ... value])`\n\n\n    let bytes = new Uint8Array(16 + value.length);\n    bytes.set(namespace);\n    bytes.set(value, namespace.length);\n    bytes = hashfunc(bytes);\n    bytes[6] = bytes[6] & 0x0f | version;\n    bytes[8] = bytes[8] & 0x3f | 0x80;\n\n    if (buf) {\n      offset = offset || 0;\n\n      for (let i = 0; i < 16; ++i) {\n        buf[offset + i] = bytes[i];\n      }\n\n      return buf;\n    }\n\n    return stringify(bytes);\n  } // Function#name is not settable on some platforms (#270)\n\n\n  try {\n    generateUUID.name = name; // eslint-disable-next-line no-empty\n  } catch (err) {} // For CommonJS default export support\n\n\n  generateUUID.DNS = DNS;\n  generateUUID.URL = URL;\n  return generateUUID;\n}","import crypto from 'crypto';\n\nfunction md5(bytes) {\n  if (Array.isArray(bytes)) {\n    bytes = Buffer.from(bytes);\n  } else if (typeof bytes === 'string') {\n    bytes = Buffer.from(bytes, 'utf8');\n  }\n\n  return crypto.createHash('md5').update(bytes).digest();\n}\n\nexport default md5;","import v35 from './v35.js';\nimport md5 from './md5.js';\nconst v3 = v35('v3', 0x30, md5);\nexport default v3;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n  options = options || {};\n  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    offset = offset || 0;\n\n    for (let i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n\n    return buf;\n  }\n\n  return stringify(rnds);\n}\n\nexport default v4;","import crypto from 'crypto';\n\nfunction sha1(bytes) {\n  if (Array.isArray(bytes)) {\n    bytes = Buffer.from(bytes);\n  } else if (typeof bytes === 'string') {\n    bytes = Buffer.from(bytes, 'utf8');\n  }\n\n  return crypto.createHash('sha1').update(bytes).digest();\n}\n\nexport default sha1;","import v35 from './v35.js';\nimport sha1 from './sha1.js';\nconst v5 = v35('v5', 0x50, sha1);\nexport default v5;","export default '00000000-0000-0000-0000-000000000000';","import validate from './validate.js';\n\nfunction version(uuid) {\n  if (!validate(uuid)) {\n    throw TypeError('Invalid UUID');\n  }\n\n  return parseInt(uuid.substr(14, 1), 16);\n}\n\nexport default version;","export { default as v1 } from './v1.js';\nexport { default as v3 } from './v3.js';\nexport { default as v4 } from './v4.js';\nexport { default as v5 } from './v5.js';\nexport { default as NIL } from './nil.js';\nexport { default as version } from './version.js';\nexport { default as validate } from './validate.js';\nexport { default as stringify } from './stringify.js';\nexport { default as parse } from './parse.js';","'use strict';\n\nconst uuid = require('uuid').v4;\n\n/**\n *  Generates a JSON-RPC 1.0 or 2.0 request\n *  @param {String} method Name of method to call\n *  @param {Array|Object} params Array of parameters passed to the method as specified, or an object of parameter names and corresponding value\n *  @param {String|Number|null} [id] Request ID can be a string, number, null for explicit notification or left out for automatic generation\n *  @param {Object} [options]\n *  @param {Number} [options.version=2] JSON-RPC version to use (1 or 2)\n *  @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n *  @param {Function} [options.generator] Passed the request, and the options object and is expected to return a request ID\n *  @throws {TypeError} If any of the parameters are invalid\n *  @return {Object} A JSON-RPC 1.0 or 2.0 request\n *  @memberOf Utils\n */\nconst generateRequest = function(method, params, id, options) {\n  if(typeof method !== 'string') {\n    throw new TypeError(method + ' must be a string');\n  }\n\n  options = options || {};\n\n  // check valid version provided\n  const version = typeof options.version === 'number' ? options.version : 2;\n  if (version !== 1 && version !== 2) {\n    throw new TypeError(version + ' must be 1 or 2');\n  }\n\n  const request = {\n    method: method\n  };\n\n  if(version === 2) {\n    request.jsonrpc = '2.0';\n  }\n\n  if(params) {\n    // params given, but invalid?\n    if(typeof params !== 'object' && !Array.isArray(params)) {\n      throw new TypeError(params + ' must be an object, array or omitted');\n    }\n    request.params = params;\n  }\n\n  // if id was left out, generate one (null means explicit notification)\n  if(typeof(id) === 'undefined') {\n    const generator = typeof options.generator === 'function' ? options.generator : function() { return uuid(); };\n    request.id = generator(request, options);\n  } else if (version === 2 && id === null) {\n    // we have a version 2 notification\n    if (options.notificationIdNull) {\n      request.id = null; // id will not be set at all unless option provided\n    }\n  } else {\n    request.id = id;\n  }\n\n  return request;\n};\n\nmodule.exports = generateRequest;\n","'use strict';\n\nconst uuid = require('uuid').v4;\nconst generateRequest = require('../../generateRequest');\n\n/**\n * Constructor for a Jayson Browser Client that does not depend any node.js core libraries\n * @class ClientBrowser\n * @param {Function} callServer Method that calls the server, receives the stringified request and a regular node-style callback\n * @param {Object} [options]\n * @param {Function} [options.reviver] Reviver function for JSON\n * @param {Function} [options.replacer] Replacer function for JSON\n * @param {Number} [options.version=2] JSON-RPC version to use (1|2)\n * @param {Function} [options.generator] Function to use for generating request IDs\n *  @param {Boolean} [options.notificationIdNull=false] When true, version 2 requests will set id to null instead of omitting it\n * @return {ClientBrowser}\n */\nconst ClientBrowser = function(callServer, options) {\n  if(!(this instanceof ClientBrowser)) {\n    return new ClientBrowser(callServer, options);\n  }\n\n  if (!options) {\n    options = {};\n  }\n\n  this.options = {\n    reviver: typeof options.reviver !== 'undefined' ? options.reviver : null,\n    replacer: typeof options.replacer !== 'undefined' ? options.replacer : null,\n    generator: typeof options.generator !== 'undefined' ? options.generator : function() { return uuid(); },\n    version: typeof options.version !== 'undefined' ? options.version : 2,\n    notificationIdNull: typeof options.notificationIdNull === 'boolean' ? options.notificationIdNull : false,\n  };\n\n  this.callServer = callServer;\n};\n\nmodule.exports = ClientBrowser;\n\n/**\n *  Creates a request and dispatches it if given a callback.\n *  @param {String|Array} method A batch request if passed an Array, or a method name if passed a String\n *  @param {Array|Object} [params] Parameters for the method\n *  @param {String|Number} [id] Optional id. If undefined an id will be generated. If null it creates a notification request\n *  @param {Function} [callback] Request callback. If specified, executes the request rather than only returning it.\n *  @throws {TypeError} Invalid parameters\n *  @return {Object} JSON-RPC 1.0 or 2.0 compatible request\n */\nClientBrowser.prototype.request = function(method, params, id, callback) {\n  const self = this;\n  let request = null;\n\n  // is this a batch request?\n  const isBatch = Array.isArray(method) && typeof params === 'function';\n\n  if (this.options.version === 1 && isBatch) {\n    throw new TypeError('JSON-RPC 1.0 does not support batching');\n  }\n\n  // is this a raw request?\n  const isRaw = !isBatch && method && typeof method === 'object' && typeof params === 'function';\n\n  if(isBatch || isRaw) {\n    callback = params;\n    request = method;\n  } else {\n    if(typeof id === 'function') {\n      callback = id;\n      // specifically undefined because \"null\" is a notification request\n      id = undefined;\n    }\n\n    const hasCallback = typeof callback === 'function';\n\n    try {\n      request = generateRequest(method, params, id, {\n        generator: this.options.generator,\n        version: this.options.version,\n        notificationIdNull: this.options.notificationIdNull,\n      });\n    } catch(err) {\n      if(hasCallback) {\n        return callback(err);\n      }\n      throw err;\n    }\n\n    // no callback means we should just return a raw request\n    if(!hasCallback) {\n      return request;\n    }\n\n  }\n\n  let message;\n  try {\n    message = JSON.stringify(request, this.options.replacer);\n  } catch(err) {\n    return callback(err);\n  }\n\n  this.callServer(message, function(err, response) {\n    self._parseResponse(err, response, callback);\n  });\n\n  // always return the raw request\n  return request;\n};\n\n/**\n * Parses a response from a server\n * @param {Object} err Error to pass on that is unrelated to the actual response\n * @param {String} responseText JSON-RPC 1.0 or 2.0 response\n * @param {Function} callback Callback that will receive different arguments depending on the amount of parameters\n * @private\n */\nClientBrowser.prototype._parseResponse = function(err, responseText, callback) {\n  if(err) {\n    callback(err);\n    return;\n  }\n\n  if(!responseText) {\n    // empty response text, assume that is correct because it could be a\n    // notification which jayson does not give any body for\n    return callback();\n  }\n\n  let response;\n  try {\n    response = JSON.parse(responseText, this.options.reviver);\n  } catch(err) {\n    return callback(err);\n  }\n\n  if(callback.length === 3) {\n    // if callback length is 3, we split callback arguments on error and response\n\n    // is batch response?\n    if(Array.isArray(response)) {\n\n      // neccesary to split strictly on validity according to spec here\n      const isError = function(res) {\n        return typeof res.error !== 'undefined';\n      };\n\n      const isNotError = function (res) {\n        return !isError(res);\n      };\n\n      return callback(null, response.filter(isError), response.filter(isNotError));\n    \n    } else {\n\n      // split regardless of validity\n      return callback(null, response.error, response.result);\n    \n    }\n  \n  }\n\n  callback(null, response);\n};\n","\"use strict\";\n\nvar conversions = {};\nmodule.exports = conversions;\n\nfunction sign(x) {\n    return x < 0 ? -1 : 1;\n}\n\nfunction evenRound(x) {\n    // Round x to the nearest integer, choosing the even integer if it lies halfway between two.\n    if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)\n        return Math.floor(x);\n    } else {\n        return Math.round(x);\n    }\n}\n\nfunction createNumberConversion(bitLength, typeOpts) {\n    if (!typeOpts.unsigned) {\n        --bitLength;\n    }\n    const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);\n    const upperBound = Math.pow(2, bitLength) - 1;\n\n    const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);\n    const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);\n\n    return function(V, opts) {\n        if (!opts) opts = {};\n\n        let x = +V;\n\n        if (opts.enforceRange) {\n            if (!Number.isFinite(x)) {\n                throw new TypeError(\"Argument is not a finite number\");\n            }\n\n            x = sign(x) * Math.floor(Math.abs(x));\n            if (x < lowerBound || x > upperBound) {\n                throw new TypeError(\"Argument is not in byte range\");\n            }\n\n            return x;\n        }\n\n        if (!isNaN(x) && opts.clamp) {\n            x = evenRound(x);\n\n            if (x < lowerBound) x = lowerBound;\n            if (x > upperBound) x = upperBound;\n            return x;\n        }\n\n        if (!Number.isFinite(x) || x === 0) {\n            return 0;\n        }\n\n        x = sign(x) * Math.floor(Math.abs(x));\n        x = x % moduloVal;\n\n        if (!typeOpts.unsigned && x >= moduloBound) {\n            return x - moduloVal;\n        } else if (typeOpts.unsigned) {\n            if (x < 0) {\n              x += moduloVal;\n            } else if (x === -0) { // don't return negative zero\n              return 0;\n            }\n        }\n\n        return x;\n    }\n}\n\nconversions[\"void\"] = function () {\n    return undefined;\n};\n\nconversions[\"boolean\"] = function (val) {\n    return !!val;\n};\n\nconversions[\"byte\"] = createNumberConversion(8, { unsigned: false });\nconversions[\"octet\"] = createNumberConversion(8, { unsigned: true });\n\nconversions[\"short\"] = createNumberConversion(16, { unsigned: false });\nconversions[\"unsigned short\"] = createNumberConversion(16, { unsigned: true });\n\nconversions[\"long\"] = createNumberConversion(32, { unsigned: false });\nconversions[\"unsigned long\"] = createNumberConversion(32, { unsigned: true });\n\nconversions[\"long long\"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });\nconversions[\"unsigned long long\"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });\n\nconversions[\"double\"] = function (V) {\n    const x = +V;\n\n    if (!Number.isFinite(x)) {\n        throw new TypeError(\"Argument is not a finite floating-point value\");\n    }\n\n    return x;\n};\n\nconversions[\"unrestricted double\"] = function (V) {\n    const x = +V;\n\n    if (isNaN(x)) {\n        throw new TypeError(\"Argument is NaN\");\n    }\n\n    return x;\n};\n\n// not quite valid, but good enough for JS\nconversions[\"float\"] = conversions[\"double\"];\nconversions[\"unrestricted float\"] = conversions[\"unrestricted double\"];\n\nconversions[\"DOMString\"] = function (V, opts) {\n    if (!opts) opts = {};\n\n    if (opts.treatNullAsEmptyString && V === null) {\n        return \"\";\n    }\n\n    return String(V);\n};\n\nconversions[\"ByteString\"] = function (V, opts) {\n    const x = String(V);\n    let c = undefined;\n    for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {\n        if (c > 255) {\n            throw new TypeError(\"Argument is not a valid bytestring\");\n        }\n    }\n\n    return x;\n};\n\nconversions[\"USVString\"] = function (V) {\n    const S = String(V);\n    const n = S.length;\n    const U = [];\n    for (let i = 0; i < n; ++i) {\n        const c = S.charCodeAt(i);\n        if (c < 0xD800 || c > 0xDFFF) {\n            U.push(String.fromCodePoint(c));\n        } else if (0xDC00 <= c && c <= 0xDFFF) {\n            U.push(String.fromCodePoint(0xFFFD));\n        } else {\n            if (i === n - 1) {\n                U.push(String.fromCodePoint(0xFFFD));\n            } else {\n                const d = S.charCodeAt(i + 1);\n                if (0xDC00 <= d && d <= 0xDFFF) {\n                    const a = c & 0x3FF;\n                    const b = d & 0x3FF;\n                    U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));\n                    ++i;\n                } else {\n                    U.push(String.fromCodePoint(0xFFFD));\n                }\n            }\n        }\n    }\n\n    return U.join('');\n};\n\nconversions[\"Date\"] = function (V, opts) {\n    if (!(V instanceof Date)) {\n        throw new TypeError(\"Argument is not a Date object\");\n    }\n    if (isNaN(V)) {\n        return undefined;\n    }\n\n    return V;\n};\n\nconversions[\"RegExp\"] = function (V, opts) {\n    if (!(V instanceof RegExp)) {\n        V = new RegExp(V);\n    }\n\n    return V;\n};\n","\"use strict\";\n\nmodule.exports.mixin = function mixin(target, source) {\n  const keys = Object.getOwnPropertyNames(source);\n  for (let i = 0; i < keys.length; ++i) {\n    Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));\n  }\n};\n\nmodule.exports.wrapperSymbol = Symbol(\"wrapper\");\nmodule.exports.implSymbol = Symbol(\"impl\");\n\nmodule.exports.wrapperForImpl = function (impl) {\n  return impl[module.exports.wrapperSymbol];\n};\n\nmodule.exports.implForWrapper = function (wrapper) {\n  return wrapper[module.exports.implSymbol];\n};\n\n","[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,308],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[1115]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[2555,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[3396,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,4815],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,11711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,13006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,55291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,63868],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[64505,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,1580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,1609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,1582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,65268],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,67670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,120276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,120566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[194860,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]","\"use strict\";\n\nvar punycode = require(\"punycode\");\nvar mappingTable = require(\"./lib/mappingTable.json\");\n\nvar PROCESSING_OPTIONS = {\n  TRANSITIONAL: 0,\n  NONTRANSITIONAL: 1\n};\n\nfunction normalize(str) { // fix bug in v8\n  return str.split('\\u0000').map(function (s) { return s.normalize('NFC'); }).join('\\u0000');\n}\n\nfunction findStatus(val) {\n  var start = 0;\n  var end = mappingTable.length - 1;\n\n  while (start <= end) {\n    var mid = Math.floor((start + end) / 2);\n\n    var target = mappingTable[mid];\n    if (target[0][0] <= val && target[0][1] >= val) {\n      return target;\n    } else if (target[0][0] > val) {\n      end = mid - 1;\n    } else {\n      start = mid + 1;\n    }\n  }\n\n  return null;\n}\n\nvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\nfunction countSymbols(string) {\n  return string\n    // replace every surrogate pair with a BMP symbol\n    .replace(regexAstralSymbols, '_')\n    // then get the length\n    .length;\n}\n\nfunction mapChars(domain_name, useSTD3, processing_option) {\n  var hasError = false;\n  var processed = \"\";\n\n  var len = countSymbols(domain_name);\n  for (var i = 0; i < len; ++i) {\n    var codePoint = domain_name.codePointAt(i);\n    var status = findStatus(codePoint);\n\n    switch (status[1]) {\n      case \"disallowed\":\n        hasError = true;\n        processed += String.fromCodePoint(codePoint);\n        break;\n      case \"ignored\":\n        break;\n      case \"mapped\":\n        processed += String.fromCodePoint.apply(String, status[2]);\n        break;\n      case \"deviation\":\n        if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {\n          processed += String.fromCodePoint.apply(String, status[2]);\n        } else {\n          processed += String.fromCodePoint(codePoint);\n        }\n        break;\n      case \"valid\":\n        processed += String.fromCodePoint(codePoint);\n        break;\n      case \"disallowed_STD3_mapped\":\n        if (useSTD3) {\n          hasError = true;\n          processed += String.fromCodePoint(codePoint);\n        } else {\n          processed += String.fromCodePoint.apply(String, status[2]);\n        }\n        break;\n      case \"disallowed_STD3_valid\":\n        if (useSTD3) {\n          hasError = true;\n        }\n\n        processed += String.fromCodePoint(codePoint);\n        break;\n    }\n  }\n\n  return {\n    string: processed,\n    error: hasError\n  };\n}\n\nvar combiningMarksRegex = /[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFC-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2D]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDE2C-\\uDE37\\uDEDF-\\uDEEA\\uDF01-\\uDF03\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDE30-\\uDE40\\uDEAB-\\uDEB7]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD83A[\\uDCD0-\\uDCD6]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nfunction validateLabel(label, processing_option) {\n  if (label.substr(0, 4) === \"xn--\") {\n    label = punycode.toUnicode(label);\n    processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;\n  }\n\n  var error = false;\n\n  if (normalize(label) !== label ||\n      (label[3] === \"-\" && label[4] === \"-\") ||\n      label[0] === \"-\" || label[label.length - 1] === \"-\" ||\n      label.indexOf(\".\") !== -1 ||\n      label.search(combiningMarksRegex) === 0) {\n    error = true;\n  }\n\n  var len = countSymbols(label);\n  for (var i = 0; i < len; ++i) {\n    var status = findStatus(label.codePointAt(i));\n    if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== \"valid\") ||\n        (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&\n         status[1] !== \"valid\" && status[1] !== \"deviation\")) {\n      error = true;\n      break;\n    }\n  }\n\n  return {\n    label: label,\n    error: error\n  };\n}\n\nfunction processing(domain_name, useSTD3, processing_option) {\n  var result = mapChars(domain_name, useSTD3, processing_option);\n  result.string = normalize(result.string);\n\n  var labels = result.string.split(\".\");\n  for (var i = 0; i < labels.length; ++i) {\n    try {\n      var validation = validateLabel(labels[i]);\n      labels[i] = validation.label;\n      result.error = result.error || validation.error;\n    } catch(e) {\n      result.error = true;\n    }\n  }\n\n  return {\n    string: labels.join(\".\"),\n    error: result.error\n  };\n}\n\nmodule.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {\n  var result = processing(domain_name, useSTD3, processing_option);\n  var labels = result.string.split(\".\");\n  labels = labels.map(function(l) {\n    try {\n      return punycode.toASCII(l);\n    } catch(e) {\n      result.error = true;\n      return l;\n    }\n  });\n\n  if (verifyDnsLength) {\n    var total = labels.slice(0, labels.length - 1).join(\".\").length;\n    if (total.length > 253 || total.length === 0) {\n      result.error = true;\n    }\n\n    for (var i=0; i < labels.length; ++i) {\n      if (labels.length > 63 || labels.length === 0) {\n        result.error = true;\n        break;\n      }\n    }\n  }\n\n  if (result.error) return null;\n  return labels.join(\".\");\n};\n\nmodule.exports.toUnicode = function(domain_name, useSTD3) {\n  var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);\n\n  return {\n    domain: result.string,\n    error: result.error\n  };\n};\n\nmodule.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;\n","\"use strict\";\r\nconst punycode = require(\"punycode\");\r\nconst tr46 = require(\"tr46\");\r\n\r\nconst specialSchemes = {\r\n  ftp: 21,\r\n  file: null,\r\n  gopher: 70,\r\n  http: 80,\r\n  https: 443,\r\n  ws: 80,\r\n  wss: 443\r\n};\r\n\r\nconst failure = Symbol(\"failure\");\r\n\r\nfunction countSymbols(str) {\r\n  return punycode.ucs2.decode(str).length;\r\n}\r\n\r\nfunction at(input, idx) {\r\n  const c = input[idx];\r\n  return isNaN(c) ? undefined : String.fromCodePoint(c);\r\n}\r\n\r\nfunction isASCIIDigit(c) {\r\n  return c >= 0x30 && c <= 0x39;\r\n}\r\n\r\nfunction isASCIIAlpha(c) {\r\n  return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);\r\n}\r\n\r\nfunction isASCIIAlphanumeric(c) {\r\n  return isASCIIAlpha(c) || isASCIIDigit(c);\r\n}\r\n\r\nfunction isASCIIHex(c) {\r\n  return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);\r\n}\r\n\r\nfunction isSingleDot(buffer) {\r\n  return buffer === \".\" || buffer.toLowerCase() === \"%2e\";\r\n}\r\n\r\nfunction isDoubleDot(buffer) {\r\n  buffer = buffer.toLowerCase();\r\n  return buffer === \"..\" || buffer === \"%2e.\" || buffer === \".%2e\" || buffer === \"%2e%2e\";\r\n}\r\n\r\nfunction isWindowsDriveLetterCodePoints(cp1, cp2) {\r\n  return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);\r\n}\r\n\r\nfunction isWindowsDriveLetterString(string) {\r\n  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === \":\" || string[1] === \"|\");\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetterString(string) {\r\n  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === \":\";\r\n}\r\n\r\nfunction containsForbiddenHostCodePoint(string) {\r\n  return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|%|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction containsForbiddenHostCodePointExcludingPercent(string) {\r\n  return string.search(/\\u0000|\\u0009|\\u000A|\\u000D|\\u0020|#|\\/|:|\\?|@|\\[|\\\\|\\]/) !== -1;\r\n}\r\n\r\nfunction isSpecialScheme(scheme) {\r\n  return specialSchemes[scheme] !== undefined;\r\n}\r\n\r\nfunction isSpecial(url) {\r\n  return isSpecialScheme(url.scheme);\r\n}\r\n\r\nfunction defaultPort(scheme) {\r\n  return specialSchemes[scheme];\r\n}\r\n\r\nfunction percentEncode(c) {\r\n  let hex = c.toString(16).toUpperCase();\r\n  if (hex.length === 1) {\r\n    hex = \"0\" + hex;\r\n  }\r\n\r\n  return \"%\" + hex;\r\n}\r\n\r\nfunction utf8PercentEncode(c) {\r\n  const buf = new Buffer(c);\r\n\r\n  let str = \"\";\r\n\r\n  for (let i = 0; i < buf.length; ++i) {\r\n    str += percentEncode(buf[i]);\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\nfunction utf8PercentDecode(str) {\r\n  const input = new Buffer(str);\r\n  const output = [];\r\n  for (let i = 0; i < input.length; ++i) {\r\n    if (input[i] !== 37) {\r\n      output.push(input[i]);\r\n    } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {\r\n      output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));\r\n      i += 2;\r\n    } else {\r\n      output.push(input[i]);\r\n    }\r\n  }\r\n  return new Buffer(output).toString();\r\n}\r\n\r\nfunction isC0ControlPercentEncode(c) {\r\n  return c <= 0x1F || c > 0x7E;\r\n}\r\n\r\nconst extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);\r\nfunction isPathPercentEncode(c) {\r\n  return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);\r\n}\r\n\r\nconst extraUserinfoPercentEncodeSet =\r\n  new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);\r\nfunction isUserinfoPercentEncode(c) {\r\n  return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);\r\n}\r\n\r\nfunction percentEncodeChar(c, encodeSetPredicate) {\r\n  const cStr = String.fromCodePoint(c);\r\n\r\n  if (encodeSetPredicate(c)) {\r\n    return utf8PercentEncode(cStr);\r\n  }\r\n\r\n  return cStr;\r\n}\r\n\r\nfunction parseIPv4Number(input) {\r\n  let R = 10;\r\n\r\n  if (input.length >= 2 && input.charAt(0) === \"0\" && input.charAt(1).toLowerCase() === \"x\") {\r\n    input = input.substring(2);\r\n    R = 16;\r\n  } else if (input.length >= 2 && input.charAt(0) === \"0\") {\r\n    input = input.substring(1);\r\n    R = 8;\r\n  }\r\n\r\n  if (input === \"\") {\r\n    return 0;\r\n  }\r\n\r\n  const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);\r\n  if (regex.test(input)) {\r\n    return failure;\r\n  }\r\n\r\n  return parseInt(input, R);\r\n}\r\n\r\nfunction parseIPv4(input) {\r\n  const parts = input.split(\".\");\r\n  if (parts[parts.length - 1] === \"\") {\r\n    if (parts.length > 1) {\r\n      parts.pop();\r\n    }\r\n  }\r\n\r\n  if (parts.length > 4) {\r\n    return input;\r\n  }\r\n\r\n  const numbers = [];\r\n  for (const part of parts) {\r\n    if (part === \"\") {\r\n      return input;\r\n    }\r\n    const n = parseIPv4Number(part);\r\n    if (n === failure) {\r\n      return input;\r\n    }\r\n\r\n    numbers.push(n);\r\n  }\r\n\r\n  for (let i = 0; i < numbers.length - 1; ++i) {\r\n    if (numbers[i] > 255) {\r\n      return failure;\r\n    }\r\n  }\r\n  if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {\r\n    return failure;\r\n  }\r\n\r\n  let ipv4 = numbers.pop();\r\n  let counter = 0;\r\n\r\n  for (const n of numbers) {\r\n    ipv4 += n * Math.pow(256, 3 - counter);\r\n    ++counter;\r\n  }\r\n\r\n  return ipv4;\r\n}\r\n\r\nfunction serializeIPv4(address) {\r\n  let output = \"\";\r\n  let n = address;\r\n\r\n  for (let i = 1; i <= 4; ++i) {\r\n    output = String(n % 256) + output;\r\n    if (i !== 4) {\r\n      output = \".\" + output;\r\n    }\r\n    n = Math.floor(n / 256);\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction parseIPv6(input) {\r\n  const address = [0, 0, 0, 0, 0, 0, 0, 0];\r\n  let pieceIndex = 0;\r\n  let compress = null;\r\n  let pointer = 0;\r\n\r\n  input = punycode.ucs2.decode(input);\r\n\r\n  if (input[pointer] === 58) {\r\n    if (input[pointer + 1] !== 58) {\r\n      return failure;\r\n    }\r\n\r\n    pointer += 2;\r\n    ++pieceIndex;\r\n    compress = pieceIndex;\r\n  }\r\n\r\n  while (pointer < input.length) {\r\n    if (pieceIndex === 8) {\r\n      return failure;\r\n    }\r\n\r\n    if (input[pointer] === 58) {\r\n      if (compress !== null) {\r\n        return failure;\r\n      }\r\n      ++pointer;\r\n      ++pieceIndex;\r\n      compress = pieceIndex;\r\n      continue;\r\n    }\r\n\r\n    let value = 0;\r\n    let length = 0;\r\n\r\n    while (length < 4 && isASCIIHex(input[pointer])) {\r\n      value = value * 0x10 + parseInt(at(input, pointer), 16);\r\n      ++pointer;\r\n      ++length;\r\n    }\r\n\r\n    if (input[pointer] === 46) {\r\n      if (length === 0) {\r\n        return failure;\r\n      }\r\n\r\n      pointer -= length;\r\n\r\n      if (pieceIndex > 6) {\r\n        return failure;\r\n      }\r\n\r\n      let numbersSeen = 0;\r\n\r\n      while (input[pointer] !== undefined) {\r\n        let ipv4Piece = null;\r\n\r\n        if (numbersSeen > 0) {\r\n          if (input[pointer] === 46 && numbersSeen < 4) {\r\n            ++pointer;\r\n          } else {\r\n            return failure;\r\n          }\r\n        }\r\n\r\n        if (!isASCIIDigit(input[pointer])) {\r\n          return failure;\r\n        }\r\n\r\n        while (isASCIIDigit(input[pointer])) {\r\n          const number = parseInt(at(input, pointer));\r\n          if (ipv4Piece === null) {\r\n            ipv4Piece = number;\r\n          } else if (ipv4Piece === 0) {\r\n            return failure;\r\n          } else {\r\n            ipv4Piece = ipv4Piece * 10 + number;\r\n          }\r\n          if (ipv4Piece > 255) {\r\n            return failure;\r\n          }\r\n          ++pointer;\r\n        }\r\n\r\n        address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;\r\n\r\n        ++numbersSeen;\r\n\r\n        if (numbersSeen === 2 || numbersSeen === 4) {\r\n          ++pieceIndex;\r\n        }\r\n      }\r\n\r\n      if (numbersSeen !== 4) {\r\n        return failure;\r\n      }\r\n\r\n      break;\r\n    } else if (input[pointer] === 58) {\r\n      ++pointer;\r\n      if (input[pointer] === undefined) {\r\n        return failure;\r\n      }\r\n    } else if (input[pointer] !== undefined) {\r\n      return failure;\r\n    }\r\n\r\n    address[pieceIndex] = value;\r\n    ++pieceIndex;\r\n  }\r\n\r\n  if (compress !== null) {\r\n    let swaps = pieceIndex - compress;\r\n    pieceIndex = 7;\r\n    while (pieceIndex !== 0 && swaps > 0) {\r\n      const temp = address[compress + swaps - 1];\r\n      address[compress + swaps - 1] = address[pieceIndex];\r\n      address[pieceIndex] = temp;\r\n      --pieceIndex;\r\n      --swaps;\r\n    }\r\n  } else if (compress === null && pieceIndex !== 8) {\r\n    return failure;\r\n  }\r\n\r\n  return address;\r\n}\r\n\r\nfunction serializeIPv6(address) {\r\n  let output = \"\";\r\n  const seqResult = findLongestZeroSequence(address);\r\n  const compress = seqResult.idx;\r\n  let ignore0 = false;\r\n\r\n  for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {\r\n    if (ignore0 && address[pieceIndex] === 0) {\r\n      continue;\r\n    } else if (ignore0) {\r\n      ignore0 = false;\r\n    }\r\n\r\n    if (compress === pieceIndex) {\r\n      const separator = pieceIndex === 0 ? \"::\" : \":\";\r\n      output += separator;\r\n      ignore0 = true;\r\n      continue;\r\n    }\r\n\r\n    output += address[pieceIndex].toString(16);\r\n\r\n    if (pieceIndex !== 7) {\r\n      output += \":\";\r\n    }\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction parseHost(input, isSpecialArg) {\r\n  if (input[0] === \"[\") {\r\n    if (input[input.length - 1] !== \"]\") {\r\n      return failure;\r\n    }\r\n\r\n    return parseIPv6(input.substring(1, input.length - 1));\r\n  }\r\n\r\n  if (!isSpecialArg) {\r\n    return parseOpaqueHost(input);\r\n  }\r\n\r\n  const domain = utf8PercentDecode(input);\r\n  const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);\r\n  if (asciiDomain === null) {\r\n    return failure;\r\n  }\r\n\r\n  if (containsForbiddenHostCodePoint(asciiDomain)) {\r\n    return failure;\r\n  }\r\n\r\n  const ipv4Host = parseIPv4(asciiDomain);\r\n  if (typeof ipv4Host === \"number\" || ipv4Host === failure) {\r\n    return ipv4Host;\r\n  }\r\n\r\n  return asciiDomain;\r\n}\r\n\r\nfunction parseOpaqueHost(input) {\r\n  if (containsForbiddenHostCodePointExcludingPercent(input)) {\r\n    return failure;\r\n  }\r\n\r\n  let output = \"\";\r\n  const decoded = punycode.ucs2.decode(input);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);\r\n  }\r\n  return output;\r\n}\r\n\r\nfunction findLongestZeroSequence(arr) {\r\n  let maxIdx = null;\r\n  let maxLen = 1; // only find elements > 1\r\n  let currStart = null;\r\n  let currLen = 0;\r\n\r\n  for (let i = 0; i < arr.length; ++i) {\r\n    if (arr[i] !== 0) {\r\n      if (currLen > maxLen) {\r\n        maxIdx = currStart;\r\n        maxLen = currLen;\r\n      }\r\n\r\n      currStart = null;\r\n      currLen = 0;\r\n    } else {\r\n      if (currStart === null) {\r\n        currStart = i;\r\n      }\r\n      ++currLen;\r\n    }\r\n  }\r\n\r\n  // if trailing zeros\r\n  if (currLen > maxLen) {\r\n    maxIdx = currStart;\r\n    maxLen = currLen;\r\n  }\r\n\r\n  return {\r\n    idx: maxIdx,\r\n    len: maxLen\r\n  };\r\n}\r\n\r\nfunction serializeHost(host) {\r\n  if (typeof host === \"number\") {\r\n    return serializeIPv4(host);\r\n  }\r\n\r\n  // IPv6 serializer\r\n  if (host instanceof Array) {\r\n    return \"[\" + serializeIPv6(host) + \"]\";\r\n  }\r\n\r\n  return host;\r\n}\r\n\r\nfunction trimControlChars(url) {\r\n  return url.replace(/^[\\u0000-\\u001F\\u0020]+|[\\u0000-\\u001F\\u0020]+$/g, \"\");\r\n}\r\n\r\nfunction trimTabAndNewline(url) {\r\n  return url.replace(/\\u0009|\\u000A|\\u000D/g, \"\");\r\n}\r\n\r\nfunction shortenPath(url) {\r\n  const path = url.path;\r\n  if (path.length === 0) {\r\n    return;\r\n  }\r\n  if (url.scheme === \"file\" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {\r\n    return;\r\n  }\r\n\r\n  path.pop();\r\n}\r\n\r\nfunction includesCredentials(url) {\r\n  return url.username !== \"\" || url.password !== \"\";\r\n}\r\n\r\nfunction cannotHaveAUsernamePasswordPort(url) {\r\n  return url.host === null || url.host === \"\" || url.cannotBeABaseURL || url.scheme === \"file\";\r\n}\r\n\r\nfunction isNormalizedWindowsDriveLetter(string) {\r\n  return /^[A-Za-z]:$/.test(string);\r\n}\r\n\r\nfunction URLStateMachine(input, base, encodingOverride, url, stateOverride) {\r\n  this.pointer = 0;\r\n  this.input = input;\r\n  this.base = base || null;\r\n  this.encodingOverride = encodingOverride || \"utf-8\";\r\n  this.stateOverride = stateOverride;\r\n  this.url = url;\r\n  this.failure = false;\r\n  this.parseError = false;\r\n\r\n  if (!this.url) {\r\n    this.url = {\r\n      scheme: \"\",\r\n      username: \"\",\r\n      password: \"\",\r\n      host: null,\r\n      port: null,\r\n      path: [],\r\n      query: null,\r\n      fragment: null,\r\n\r\n      cannotBeABaseURL: false\r\n    };\r\n\r\n    const res = trimControlChars(this.input);\r\n    if (res !== this.input) {\r\n      this.parseError = true;\r\n    }\r\n    this.input = res;\r\n  }\r\n\r\n  const res = trimTabAndNewline(this.input);\r\n  if (res !== this.input) {\r\n    this.parseError = true;\r\n  }\r\n  this.input = res;\r\n\r\n  this.state = stateOverride || \"scheme start\";\r\n\r\n  this.buffer = \"\";\r\n  this.atFlag = false;\r\n  this.arrFlag = false;\r\n  this.passwordTokenSeenFlag = false;\r\n\r\n  this.input = punycode.ucs2.decode(this.input);\r\n\r\n  for (; this.pointer <= this.input.length; ++this.pointer) {\r\n    const c = this.input[this.pointer];\r\n    const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);\r\n\r\n    // exec state machine\r\n    const ret = this[\"parse \" + this.state](c, cStr);\r\n    if (!ret) {\r\n      break; // terminate algorithm\r\n    } else if (ret === failure) {\r\n      this.failure = true;\r\n      break;\r\n    }\r\n  }\r\n}\r\n\r\nURLStateMachine.prototype[\"parse scheme start\"] = function parseSchemeStart(c, cStr) {\r\n  if (isASCIIAlpha(c)) {\r\n    this.buffer += cStr.toLowerCase();\r\n    this.state = \"scheme\";\r\n  } else if (!this.stateOverride) {\r\n    this.state = \"no scheme\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse scheme\"] = function parseScheme(c, cStr) {\r\n  if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {\r\n    this.buffer += cStr.toLowerCase();\r\n  } else if (c === 58) {\r\n    if (this.stateOverride) {\r\n      if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {\r\n        return false;\r\n      }\r\n\r\n      if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {\r\n        return false;\r\n      }\r\n\r\n      if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === \"file\") {\r\n        return false;\r\n      }\r\n\r\n      if (this.url.scheme === \"file\" && (this.url.host === \"\" || this.url.host === null)) {\r\n        return false;\r\n      }\r\n    }\r\n    this.url.scheme = this.buffer;\r\n    this.buffer = \"\";\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n    if (this.url.scheme === \"file\") {\r\n      if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {\r\n        this.parseError = true;\r\n      }\r\n      this.state = \"file\";\r\n    } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {\r\n      this.state = \"special relative or authority\";\r\n    } else if (isSpecial(this.url)) {\r\n      this.state = \"special authority slashes\";\r\n    } else if (this.input[this.pointer + 1] === 47) {\r\n      this.state = \"path or authority\";\r\n      ++this.pointer;\r\n    } else {\r\n      this.url.cannotBeABaseURL = true;\r\n      this.url.path.push(\"\");\r\n      this.state = \"cannot-be-a-base-URL path\";\r\n    }\r\n  } else if (!this.stateOverride) {\r\n    this.buffer = \"\";\r\n    this.state = \"no scheme\";\r\n    this.pointer = -1;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse no scheme\"] = function parseNoScheme(c) {\r\n  if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {\r\n    return failure;\r\n  } else if (this.base.cannotBeABaseURL && c === 35) {\r\n    this.url.scheme = this.base.scheme;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n    this.url.fragment = \"\";\r\n    this.url.cannotBeABaseURL = true;\r\n    this.state = \"fragment\";\r\n  } else if (this.base.scheme === \"file\") {\r\n    this.state = \"file\";\r\n    --this.pointer;\r\n  } else {\r\n    this.state = \"relative\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special relative or authority\"] = function parseSpecialRelativeOrAuthority(c) {\r\n  if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n    this.state = \"special authority ignore slashes\";\r\n    ++this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    this.state = \"relative\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path or authority\"] = function parsePathOrAuthority(c) {\r\n  if (c === 47) {\r\n    this.state = \"authority\";\r\n  } else {\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative\"] = function parseRelative(c) {\r\n  this.url.scheme = this.base.scheme;\r\n  if (isNaN(c)) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n  } else if (c === 47) {\r\n    this.state = \"relative slash\";\r\n  } else if (c === 63) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (c === 35) {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice();\r\n    this.url.query = this.base.query;\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else if (isSpecial(this.url) && c === 92) {\r\n    this.parseError = true;\r\n    this.state = \"relative slash\";\r\n  } else {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.url.path = this.base.path.slice(0, this.base.path.length - 1);\r\n\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse relative slash\"] = function parseRelativeSlash(c) {\r\n  if (isSpecial(this.url) && (c === 47 || c === 92)) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"special authority ignore slashes\";\r\n  } else if (c === 47) {\r\n    this.state = \"authority\";\r\n  } else {\r\n    this.url.username = this.base.username;\r\n    this.url.password = this.base.password;\r\n    this.url.host = this.base.host;\r\n    this.url.port = this.base.port;\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority slashes\"] = function parseSpecialAuthoritySlashes(c) {\r\n  if (c === 47 && this.input[this.pointer + 1] === 47) {\r\n    this.state = \"special authority ignore slashes\";\r\n    ++this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    this.state = \"special authority ignore slashes\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse special authority ignore slashes\"] = function parseSpecialAuthorityIgnoreSlashes(c) {\r\n  if (c !== 47 && c !== 92) {\r\n    this.state = \"authority\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse authority\"] = function parseAuthority(c, cStr) {\r\n  if (c === 64) {\r\n    this.parseError = true;\r\n    if (this.atFlag) {\r\n      this.buffer = \"%40\" + this.buffer;\r\n    }\r\n    this.atFlag = true;\r\n\r\n    // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars\r\n    const len = countSymbols(this.buffer);\r\n    for (let pointer = 0; pointer < len; ++pointer) {\r\n      const codePoint = this.buffer.codePointAt(pointer);\r\n\r\n      if (codePoint === 58 && !this.passwordTokenSeenFlag) {\r\n        this.passwordTokenSeenFlag = true;\r\n        continue;\r\n      }\r\n      const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);\r\n      if (this.passwordTokenSeenFlag) {\r\n        this.url.password += encodedCodePoints;\r\n      } else {\r\n        this.url.username += encodedCodePoints;\r\n      }\r\n    }\r\n    this.buffer = \"\";\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92)) {\r\n    if (this.atFlag && this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    }\r\n    this.pointer -= countSymbols(this.buffer) + 1;\r\n    this.buffer = \"\";\r\n    this.state = \"host\";\r\n  } else {\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse hostname\"] =\r\nURLStateMachine.prototype[\"parse host\"] = function parseHostName(c, cStr) {\r\n  if (this.stateOverride && this.url.scheme === \"file\") {\r\n    --this.pointer;\r\n    this.state = \"file host\";\r\n  } else if (c === 58 && !this.arrFlag) {\r\n    if (this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    }\r\n\r\n    const host = parseHost(this.buffer, isSpecial(this.url));\r\n    if (host === failure) {\r\n      return failure;\r\n    }\r\n\r\n    this.url.host = host;\r\n    this.buffer = \"\";\r\n    this.state = \"port\";\r\n    if (this.stateOverride === \"hostname\") {\r\n      return false;\r\n    }\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92)) {\r\n    --this.pointer;\r\n    if (isSpecial(this.url) && this.buffer === \"\") {\r\n      this.parseError = true;\r\n      return failure;\r\n    } else if (this.stateOverride && this.buffer === \"\" &&\r\n               (includesCredentials(this.url) || this.url.port !== null)) {\r\n      this.parseError = true;\r\n      return false;\r\n    }\r\n\r\n    const host = parseHost(this.buffer, isSpecial(this.url));\r\n    if (host === failure) {\r\n      return failure;\r\n    }\r\n\r\n    this.url.host = host;\r\n    this.buffer = \"\";\r\n    this.state = \"path start\";\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n  } else {\r\n    if (c === 91) {\r\n      this.arrFlag = true;\r\n    } else if (c === 93) {\r\n      this.arrFlag = false;\r\n    }\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse port\"] = function parsePort(c, cStr) {\r\n  if (isASCIIDigit(c)) {\r\n    this.buffer += cStr;\r\n  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||\r\n             (isSpecial(this.url) && c === 92) ||\r\n             this.stateOverride) {\r\n    if (this.buffer !== \"\") {\r\n      const port = parseInt(this.buffer);\r\n      if (port > Math.pow(2, 16) - 1) {\r\n        this.parseError = true;\r\n        return failure;\r\n      }\r\n      this.url.port = port === defaultPort(this.url.scheme) ? null : port;\r\n      this.buffer = \"\";\r\n    }\r\n    if (this.stateOverride) {\r\n      return false;\r\n    }\r\n    this.state = \"path start\";\r\n    --this.pointer;\r\n  } else {\r\n    this.parseError = true;\r\n    return failure;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nconst fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);\r\n\r\nURLStateMachine.prototype[\"parse file\"] = function parseFile(c) {\r\n  this.url.scheme = \"file\";\r\n\r\n  if (c === 47 || c === 92) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"file slash\";\r\n  } else if (this.base !== null && this.base.scheme === \"file\") {\r\n    if (isNaN(c)) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = this.base.query;\r\n    } else if (c === 63) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = \"\";\r\n      this.state = \"query\";\r\n    } else if (c === 35) {\r\n      this.url.host = this.base.host;\r\n      this.url.path = this.base.path.slice();\r\n      this.url.query = this.base.query;\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    } else {\r\n      if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points\r\n          !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||\r\n          (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points\r\n           !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {\r\n        this.url.host = this.base.host;\r\n        this.url.path = this.base.path.slice();\r\n        shortenPath(this.url);\r\n      } else {\r\n        this.parseError = true;\r\n      }\r\n\r\n      this.state = \"path\";\r\n      --this.pointer;\r\n    }\r\n  } else {\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file slash\"] = function parseFileSlash(c) {\r\n  if (c === 47 || c === 92) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"file host\";\r\n  } else {\r\n    if (this.base !== null && this.base.scheme === \"file\") {\r\n      if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {\r\n        this.url.path.push(this.base.path[0]);\r\n      } else {\r\n        this.url.host = this.base.host;\r\n      }\r\n    }\r\n    this.state = \"path\";\r\n    --this.pointer;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse file host\"] = function parseFileHost(c, cStr) {\r\n  if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {\r\n    --this.pointer;\r\n    if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {\r\n      this.parseError = true;\r\n      this.state = \"path\";\r\n    } else if (this.buffer === \"\") {\r\n      this.url.host = \"\";\r\n      if (this.stateOverride) {\r\n        return false;\r\n      }\r\n      this.state = \"path start\";\r\n    } else {\r\n      let host = parseHost(this.buffer, isSpecial(this.url));\r\n      if (host === failure) {\r\n        return failure;\r\n      }\r\n      if (host === \"localhost\") {\r\n        host = \"\";\r\n      }\r\n      this.url.host = host;\r\n\r\n      if (this.stateOverride) {\r\n        return false;\r\n      }\r\n\r\n      this.buffer = \"\";\r\n      this.state = \"path start\";\r\n    }\r\n  } else {\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path start\"] = function parsePathStart(c) {\r\n  if (isSpecial(this.url)) {\r\n    if (c === 92) {\r\n      this.parseError = true;\r\n    }\r\n    this.state = \"path\";\r\n\r\n    if (c !== 47 && c !== 92) {\r\n      --this.pointer;\r\n    }\r\n  } else if (!this.stateOverride && c === 63) {\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (!this.stateOverride && c === 35) {\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else if (c !== undefined) {\r\n    this.state = \"path\";\r\n    if (c !== 47) {\r\n      --this.pointer;\r\n    }\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse path\"] = function parsePath(c) {\r\n  if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||\r\n      (!this.stateOverride && (c === 63 || c === 35))) {\r\n    if (isSpecial(this.url) && c === 92) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (isDoubleDot(this.buffer)) {\r\n      shortenPath(this.url);\r\n      if (c !== 47 && !(isSpecial(this.url) && c === 92)) {\r\n        this.url.path.push(\"\");\r\n      }\r\n    } else if (isSingleDot(this.buffer) && c !== 47 &&\r\n               !(isSpecial(this.url) && c === 92)) {\r\n      this.url.path.push(\"\");\r\n    } else if (!isSingleDot(this.buffer)) {\r\n      if (this.url.scheme === \"file\" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {\r\n        if (this.url.host !== \"\" && this.url.host !== null) {\r\n          this.parseError = true;\r\n          this.url.host = \"\";\r\n        }\r\n        this.buffer = this.buffer[0] + \":\";\r\n      }\r\n      this.url.path.push(this.buffer);\r\n    }\r\n    this.buffer = \"\";\r\n    if (this.url.scheme === \"file\" && (c === undefined || c === 63 || c === 35)) {\r\n      while (this.url.path.length > 1 && this.url.path[0] === \"\") {\r\n        this.parseError = true;\r\n        this.url.path.shift();\r\n      }\r\n    }\r\n    if (c === 63) {\r\n      this.url.query = \"\";\r\n      this.state = \"query\";\r\n    }\r\n    if (c === 35) {\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    }\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.buffer += percentEncodeChar(c, isPathPercentEncode);\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse cannot-be-a-base-URL path\"] = function parseCannotBeABaseURLPath(c) {\r\n  if (c === 63) {\r\n    this.url.query = \"\";\r\n    this.state = \"query\";\r\n  } else if (c === 35) {\r\n    this.url.fragment = \"\";\r\n    this.state = \"fragment\";\r\n  } else {\r\n    // TODO: Add: not a URL code point\r\n    if (!isNaN(c) && c !== 37) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (c === 37 &&\r\n        (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n         !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    if (!isNaN(c)) {\r\n      this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);\r\n    }\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse query\"] = function parseQuery(c, cStr) {\r\n  if (isNaN(c) || (!this.stateOverride && c === 35)) {\r\n    if (!isSpecial(this.url) || this.url.scheme === \"ws\" || this.url.scheme === \"wss\") {\r\n      this.encodingOverride = \"utf-8\";\r\n    }\r\n\r\n    const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead\r\n    for (let i = 0; i < buffer.length; ++i) {\r\n      if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||\r\n          buffer[i] === 0x3C || buffer[i] === 0x3E) {\r\n        this.url.query += percentEncode(buffer[i]);\r\n      } else {\r\n        this.url.query += String.fromCodePoint(buffer[i]);\r\n      }\r\n    }\r\n\r\n    this.buffer = \"\";\r\n    if (c === 35) {\r\n      this.url.fragment = \"\";\r\n      this.state = \"fragment\";\r\n    }\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.buffer += cStr;\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nURLStateMachine.prototype[\"parse fragment\"] = function parseFragment(c) {\r\n  if (isNaN(c)) { // do nothing\r\n  } else if (c === 0x0) {\r\n    this.parseError = true;\r\n  } else {\r\n    // TODO: If c is not a URL code point and not \"%\", parse error.\r\n    if (c === 37 &&\r\n      (!isASCIIHex(this.input[this.pointer + 1]) ||\r\n        !isASCIIHex(this.input[this.pointer + 2]))) {\r\n      this.parseError = true;\r\n    }\r\n\r\n    this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);\r\n  }\r\n\r\n  return true;\r\n};\r\n\r\nfunction serializeURL(url, excludeFragment) {\r\n  let output = url.scheme + \":\";\r\n  if (url.host !== null) {\r\n    output += \"//\";\r\n\r\n    if (url.username !== \"\" || url.password !== \"\") {\r\n      output += url.username;\r\n      if (url.password !== \"\") {\r\n        output += \":\" + url.password;\r\n      }\r\n      output += \"@\";\r\n    }\r\n\r\n    output += serializeHost(url.host);\r\n\r\n    if (url.port !== null) {\r\n      output += \":\" + url.port;\r\n    }\r\n  } else if (url.host === null && url.scheme === \"file\") {\r\n    output += \"//\";\r\n  }\r\n\r\n  if (url.cannotBeABaseURL) {\r\n    output += url.path[0];\r\n  } else {\r\n    for (const string of url.path) {\r\n      output += \"/\" + string;\r\n    }\r\n  }\r\n\r\n  if (url.query !== null) {\r\n    output += \"?\" + url.query;\r\n  }\r\n\r\n  if (!excludeFragment && url.fragment !== null) {\r\n    output += \"#\" + url.fragment;\r\n  }\r\n\r\n  return output;\r\n}\r\n\r\nfunction serializeOrigin(tuple) {\r\n  let result = tuple.scheme + \"://\";\r\n  result += serializeHost(tuple.host);\r\n\r\n  if (tuple.port !== null) {\r\n    result += \":\" + tuple.port;\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\nmodule.exports.serializeURL = serializeURL;\r\n\r\nmodule.exports.serializeURLOrigin = function (url) {\r\n  // https://url.spec.whatwg.org/#concept-url-origin\r\n  switch (url.scheme) {\r\n    case \"blob\":\r\n      try {\r\n        return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));\r\n      } catch (e) {\r\n        // serializing an opaque origin returns \"null\"\r\n        return \"null\";\r\n      }\r\n    case \"ftp\":\r\n    case \"gopher\":\r\n    case \"http\":\r\n    case \"https\":\r\n    case \"ws\":\r\n    case \"wss\":\r\n      return serializeOrigin({\r\n        scheme: url.scheme,\r\n        host: url.host,\r\n        port: url.port\r\n      });\r\n    case \"file\":\r\n      // spec says \"exercise to the reader\", chrome says \"file://\"\r\n      return \"file://\";\r\n    default:\r\n      // serializing an opaque origin returns \"null\"\r\n      return \"null\";\r\n  }\r\n};\r\n\r\nmodule.exports.basicURLParse = function (input, options) {\r\n  if (options === undefined) {\r\n    options = {};\r\n  }\r\n\r\n  const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);\r\n  if (usm.failure) {\r\n    return \"failure\";\r\n  }\r\n\r\n  return usm.url;\r\n};\r\n\r\nmodule.exports.setTheUsername = function (url, username) {\r\n  url.username = \"\";\r\n  const decoded = punycode.ucs2.decode(username);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n  }\r\n};\r\n\r\nmodule.exports.setThePassword = function (url, password) {\r\n  url.password = \"\";\r\n  const decoded = punycode.ucs2.decode(password);\r\n  for (let i = 0; i < decoded.length; ++i) {\r\n    url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);\r\n  }\r\n};\r\n\r\nmodule.exports.serializeHost = serializeHost;\r\n\r\nmodule.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;\r\n\r\nmodule.exports.serializeInteger = function (integer) {\r\n  return String(integer);\r\n};\r\n\r\nmodule.exports.parseURL = function (input, options) {\r\n  if (options === undefined) {\r\n    options = {};\r\n  }\r\n\r\n  // We don't handle blobs, so this just delegates:\r\n  return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });\r\n};\r\n","\"use strict\";\nconst usm = require(\"./url-state-machine\");\n\nexports.implementation = class URLImpl {\n  constructor(constructorArgs) {\n    const url = constructorArgs[0];\n    const base = constructorArgs[1];\n\n    let parsedBase = null;\n    if (base !== undefined) {\n      parsedBase = usm.basicURLParse(base);\n      if (parsedBase === \"failure\") {\n        throw new TypeError(\"Invalid base URL\");\n      }\n    }\n\n    const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });\n    if (parsedURL === \"failure\") {\n      throw new TypeError(\"Invalid URL\");\n    }\n\n    this._url = parsedURL;\n\n    // TODO: query stuff\n  }\n\n  get href() {\n    return usm.serializeURL(this._url);\n  }\n\n  set href(v) {\n    const parsedURL = usm.basicURLParse(v);\n    if (parsedURL === \"failure\") {\n      throw new TypeError(\"Invalid URL\");\n    }\n\n    this._url = parsedURL;\n  }\n\n  get origin() {\n    return usm.serializeURLOrigin(this._url);\n  }\n\n  get protocol() {\n    return this._url.scheme + \":\";\n  }\n\n  set protocol(v) {\n    usm.basicURLParse(v + \":\", { url: this._url, stateOverride: \"scheme start\" });\n  }\n\n  get username() {\n    return this._url.username;\n  }\n\n  set username(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    usm.setTheUsername(this._url, v);\n  }\n\n  get password() {\n    return this._url.password;\n  }\n\n  set password(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    usm.setThePassword(this._url, v);\n  }\n\n  get host() {\n    const url = this._url;\n\n    if (url.host === null) {\n      return \"\";\n    }\n\n    if (url.port === null) {\n      return usm.serializeHost(url.host);\n    }\n\n    return usm.serializeHost(url.host) + \":\" + usm.serializeInteger(url.port);\n  }\n\n  set host(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"host\" });\n  }\n\n  get hostname() {\n    if (this._url.host === null) {\n      return \"\";\n    }\n\n    return usm.serializeHost(this._url.host);\n  }\n\n  set hostname(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"hostname\" });\n  }\n\n  get port() {\n    if (this._url.port === null) {\n      return \"\";\n    }\n\n    return usm.serializeInteger(this._url.port);\n  }\n\n  set port(v) {\n    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {\n      return;\n    }\n\n    if (v === \"\") {\n      this._url.port = null;\n    } else {\n      usm.basicURLParse(v, { url: this._url, stateOverride: \"port\" });\n    }\n  }\n\n  get pathname() {\n    if (this._url.cannotBeABaseURL) {\n      return this._url.path[0];\n    }\n\n    if (this._url.path.length === 0) {\n      return \"\";\n    }\n\n    return \"/\" + this._url.path.join(\"/\");\n  }\n\n  set pathname(v) {\n    if (this._url.cannotBeABaseURL) {\n      return;\n    }\n\n    this._url.path = [];\n    usm.basicURLParse(v, { url: this._url, stateOverride: \"path start\" });\n  }\n\n  get search() {\n    if (this._url.query === null || this._url.query === \"\") {\n      return \"\";\n    }\n\n    return \"?\" + this._url.query;\n  }\n\n  set search(v) {\n    // TODO: query stuff\n\n    const url = this._url;\n\n    if (v === \"\") {\n      url.query = null;\n      return;\n    }\n\n    const input = v[0] === \"?\" ? v.substring(1) : v;\n    url.query = \"\";\n    usm.basicURLParse(input, { url, stateOverride: \"query\" });\n  }\n\n  get hash() {\n    if (this._url.fragment === null || this._url.fragment === \"\") {\n      return \"\";\n    }\n\n    return \"#\" + this._url.fragment;\n  }\n\n  set hash(v) {\n    if (v === \"\") {\n      this._url.fragment = null;\n      return;\n    }\n\n    const input = v[0] === \"#\" ? v.substring(1) : v;\n    this._url.fragment = \"\";\n    usm.basicURLParse(input, { url: this._url, stateOverride: \"fragment\" });\n  }\n\n  toJSON() {\n    return this.href;\n  }\n};\n","\"use strict\";\n\nconst conversions = require(\"webidl-conversions\");\nconst utils = require(\"./utils.js\");\nconst Impl = require(\".//URL-impl.js\");\n\nconst impl = utils.implSymbol;\n\nfunction URL(url) {\n  if (!this || this[impl] || !(this instanceof URL)) {\n    throw new TypeError(\"Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.\");\n  }\n  if (arguments.length < 1) {\n    throw new TypeError(\"Failed to construct 'URL': 1 argument required, but only \" + arguments.length + \" present.\");\n  }\n  const args = [];\n  for (let i = 0; i < arguments.length && i < 2; ++i) {\n    args[i] = arguments[i];\n  }\n  args[0] = conversions[\"USVString\"](args[0]);\n  if (args[1] !== undefined) {\n  args[1] = conversions[\"USVString\"](args[1]);\n  }\n\n  module.exports.setup(this, args);\n}\n\nURL.prototype.toJSON = function toJSON() {\n  if (!this || !module.exports.is(this)) {\n    throw new TypeError(\"Illegal invocation\");\n  }\n  const args = [];\n  for (let i = 0; i < arguments.length && i < 0; ++i) {\n    args[i] = arguments[i];\n  }\n  return this[impl].toJSON.apply(this[impl], args);\n};\nObject.defineProperty(URL.prototype, \"href\", {\n  get() {\n    return this[impl].href;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].href = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nURL.prototype.toString = function () {\n  if (!this || !module.exports.is(this)) {\n    throw new TypeError(\"Illegal invocation\");\n  }\n  return this.href;\n};\n\nObject.defineProperty(URL.prototype, \"origin\", {\n  get() {\n    return this[impl].origin;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"protocol\", {\n  get() {\n    return this[impl].protocol;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].protocol = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"username\", {\n  get() {\n    return this[impl].username;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].username = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"password\", {\n  get() {\n    return this[impl].password;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].password = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"host\", {\n  get() {\n    return this[impl].host;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].host = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hostname\", {\n  get() {\n    return this[impl].hostname;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].hostname = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"port\", {\n  get() {\n    return this[impl].port;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].port = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"pathname\", {\n  get() {\n    return this[impl].pathname;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].pathname = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"search\", {\n  get() {\n    return this[impl].search;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].search = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\nObject.defineProperty(URL.prototype, \"hash\", {\n  get() {\n    return this[impl].hash;\n  },\n  set(V) {\n    V = conversions[\"USVString\"](V);\n    this[impl].hash = V;\n  },\n  enumerable: true,\n  configurable: true\n});\n\n\nmodule.exports = {\n  is(obj) {\n    return !!obj && obj[impl] instanceof Impl.implementation;\n  },\n  create(constructorArgs, privateData) {\n    let obj = Object.create(URL.prototype);\n    this.setup(obj, constructorArgs, privateData);\n    return obj;\n  },\n  setup(obj, constructorArgs, privateData) {\n    if (!privateData) privateData = {};\n    privateData.wrapper = obj;\n\n    obj[impl] = new Impl.implementation(constructorArgs, privateData);\n    obj[impl][utils.wrapperSymbol] = obj;\n  },\n  interface: URL,\n  expose: {\n    Window: { URL: URL },\n    Worker: { URL: URL }\n  }\n};\n\n","\"use strict\";\n\nexports.URL = require(\"./URL\").interface;\nexports.serializeURL = require(\"./url-state-machine\").serializeURL;\nexports.serializeURLOrigin = require(\"./url-state-machine\").serializeURLOrigin;\nexports.basicURLParse = require(\"./url-state-machine\").basicURLParse;\nexports.setTheUsername = require(\"./url-state-machine\").setTheUsername;\nexports.setThePassword = require(\"./url-state-machine\").setThePassword;\nexports.serializeHost = require(\"./url-state-machine\").serializeHost;\nexports.serializeInteger = require(\"./url-state-machine\").serializeInteger;\nexports.parseURL = require(\"./url-state-machine\").parseURL;\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n  module.exports = EventEmitter;\n}\n","\n/**\n * Module dependencies.\n */\n\nvar sep = require('path').sep || '/';\n\n/**\n * Module exports.\n */\n\nmodule.exports = fileUriToPath;\n\n/**\n * File URI to Path function.\n *\n * @param {String} uri\n * @return {String} path\n * @api public\n */\n\nfunction fileUriToPath (uri) {\n  if ('string' != typeof uri ||\n      uri.length <= 7 ||\n      'file://' != uri.substring(0, 7)) {\n    throw new TypeError('must pass in a file:// URI to convert to a file path');\n  }\n\n  var rest = decodeURI(uri.substring(7));\n  var firstSlash = rest.indexOf('/');\n  var host = rest.substring(0, firstSlash);\n  var path = rest.substring(firstSlash + 1);\n\n  // 2.  Scheme Definition\n  // As a special case, <host> can be the string \"localhost\" or the empty\n  // string; this is interpreted as \"the machine from which the URL is\n  // being interpreted\".\n  if ('localhost' == host) host = '';\n\n  if (host) {\n    host = sep + sep + host;\n  }\n\n  // 3.2  Drives, drive letters, mount points, file system root\n  // Drive letters are mapped into the top of a file URI in various ways,\n  // depending on the implementation; some applications substitute\n  // vertical bar (\"|\") for the colon after the drive letter, yielding\n  // \"file:///c|/tmp/test.txt\".  In some cases, the colon is left\n  // unchanged, as in \"file:///c:/tmp/test.txt\".  In other cases, the\n  // colon is simply omitted, as in \"file:///c/tmp/test.txt\".\n  path = path.replace(/^(.+)\\|/, '$1:');\n\n  // for Windows, we need to invert the path separators from what a URI uses\n  if (sep == '\\\\') {\n    path = path.replace(/\\//g, '\\\\');\n  }\n\n  if (/^.+\\:/.test(path)) {\n    // has Windows drive at beginning of path\n  } else {\n    // unix path…\n    path = sep + path;\n  }\n\n  return host + path;\n}\n","/**\n * Module dependencies.\n */\n\nvar fs = require('fs'),\n  path = require('path'),\n  fileURLToPath = require('file-uri-to-path'),\n  join = path.join,\n  dirname = path.dirname,\n  exists =\n    (fs.accessSync &&\n      function(path) {\n        try {\n          fs.accessSync(path);\n        } catch (e) {\n          return false;\n        }\n        return true;\n      }) ||\n    fs.existsSync ||\n    path.existsSync,\n  defaults = {\n    arrow: process.env.NODE_BINDINGS_ARROW || ' → ',\n    compiled: process.env.NODE_BINDINGS_COMPILED_DIR || 'compiled',\n    platform: process.platform,\n    arch: process.arch,\n    nodePreGyp:\n      'node-v' +\n      process.versions.modules +\n      '-' +\n      process.platform +\n      '-' +\n      process.arch,\n    version: process.versions.node,\n    bindings: 'bindings.node',\n    try: [\n      // node-gyp's linked version in the \"build\" dir\n      ['module_root', 'build', 'bindings'],\n      // node-waf and gyp_addon (a.k.a node-gyp)\n      ['module_root', 'build', 'Debug', 'bindings'],\n      ['module_root', 'build', 'Release', 'bindings'],\n      // Debug files, for development (legacy behavior, remove for node v0.9)\n      ['module_root', 'out', 'Debug', 'bindings'],\n      ['module_root', 'Debug', 'bindings'],\n      // Release files, but manually compiled (legacy behavior, remove for node v0.9)\n      ['module_root', 'out', 'Release', 'bindings'],\n      ['module_root', 'Release', 'bindings'],\n      // Legacy from node-waf, node <= 0.4.x\n      ['module_root', 'build', 'default', 'bindings'],\n      // Production \"Release\" buildtype binary (meh...)\n      ['module_root', 'compiled', 'version', 'platform', 'arch', 'bindings'],\n      // node-qbs builds\n      ['module_root', 'addon-build', 'release', 'install-root', 'bindings'],\n      ['module_root', 'addon-build', 'debug', 'install-root', 'bindings'],\n      ['module_root', 'addon-build', 'default', 'install-root', 'bindings'],\n      // node-pre-gyp path ./lib/binding/{node_abi}-{platform}-{arch}\n      ['module_root', 'lib', 'binding', 'nodePreGyp', 'bindings']\n    ]\n  };\n\n/**\n * The main `bindings()` function loads the compiled bindings for a given module.\n * It uses V8's Error API to determine the parent filename that this function is\n * being invoked from, which is then used to find the root directory.\n */\n\nfunction bindings(opts) {\n  // Argument surgery\n  if (typeof opts == 'string') {\n    opts = { bindings: opts };\n  } else if (!opts) {\n    opts = {};\n  }\n\n  // maps `defaults` onto `opts` object\n  Object.keys(defaults).map(function(i) {\n    if (!(i in opts)) opts[i] = defaults[i];\n  });\n\n  // Get the module root\n  if (!opts.module_root) {\n    opts.module_root = exports.getRoot(exports.getFileName());\n  }\n\n  // Ensure the given bindings name ends with .node\n  if (path.extname(opts.bindings) != '.node') {\n    opts.bindings += '.node';\n  }\n\n  // https://github.com/webpack/webpack/issues/4175#issuecomment-342931035\n  var requireFunc =\n    typeof __webpack_require__ === 'function'\n      ? __non_webpack_require__\n      : require;\n\n  var tries = [],\n    i = 0,\n    l = opts.try.length,\n    n,\n    b,\n    err;\n\n  for (; i < l; i++) {\n    n = join.apply(\n      null,\n      opts.try[i].map(function(p) {\n        return opts[p] || p;\n      })\n    );\n    tries.push(n);\n    try {\n      b = opts.path ? requireFunc.resolve(n) : requireFunc(n);\n      if (!opts.path) {\n        b.path = n;\n      }\n      return b;\n    } catch (e) {\n      if (e.code !== 'MODULE_NOT_FOUND' &&\n          e.code !== 'QUALIFIED_PATH_RESOLUTION_FAILED' &&\n          !/not find/i.test(e.message)) {\n        throw e;\n      }\n    }\n  }\n\n  err = new Error(\n    'Could not locate the bindings file. Tried:\\n' +\n      tries\n        .map(function(a) {\n          return opts.arrow + a;\n        })\n        .join('\\n')\n  );\n  err.tries = tries;\n  throw err;\n}\nmodule.exports = exports = bindings;\n\n/**\n * Gets the filename of the JavaScript file that invokes this function.\n * Used to help find the root directory of a module.\n * Optionally accepts an filename argument to skip when searching for the invoking filename\n */\n\nexports.getFileName = function getFileName(calling_file) {\n  var origPST = Error.prepareStackTrace,\n    origSTL = Error.stackTraceLimit,\n    dummy = {},\n    fileName;\n\n  Error.stackTraceLimit = 10;\n\n  Error.prepareStackTrace = function(e, st) {\n    for (var i = 0, l = st.length; i < l; i++) {\n      fileName = st[i].getFileName();\n      if (fileName !== __filename) {\n        if (calling_file) {\n          if (fileName !== calling_file) {\n            return;\n          }\n        } else {\n          return;\n        }\n      }\n    }\n  };\n\n  // run the 'prepareStackTrace' function above\n  Error.captureStackTrace(dummy);\n  dummy.stack;\n\n  // cleanup\n  Error.prepareStackTrace = origPST;\n  Error.stackTraceLimit = origSTL;\n\n  // handle filename that starts with \"file://\"\n  var fileSchema = 'file://';\n  if (fileName.indexOf(fileSchema) === 0) {\n    fileName = fileURLToPath(fileName);\n  }\n\n  return fileName;\n};\n\n/**\n * Gets the root directory of a module, given an arbitrary filename\n * somewhere in the module tree. The \"root directory\" is the directory\n * containing the `package.json` file.\n *\n *   In:  /home/nate/node-native-module/lib/index.js\n *   Out: /home/nate/node-native-module\n */\n\nexports.getRoot = function getRoot(file) {\n  var dir = dirname(file),\n    prev;\n  while (true) {\n    if (dir === '.') {\n      // Avoids an infinite loop in rare cases, like the REPL\n      dir = process.cwd();\n    }\n    if (\n      exists(join(dir, 'package.json')) ||\n      exists(join(dir, 'node_modules'))\n    ) {\n      // Found the 'package.json' file or 'node_modules' dir; we're done\n      return dir;\n    }\n    if (prev === dir) {\n      // Got to the top\n      throw new Error(\n        'Could not find module root given file: \"' +\n          file +\n          '\". Do you have a `package.json` file? '\n      );\n    }\n    // Try the parent dir next\n    prev = dir;\n    dir = join(dir, '..');\n  }\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet converter;\n{\n    try {\n        converter = require('bindings')('bigint_buffer');\n    }\n    catch (e) {\n        console.warn('bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)');\n    }\n}\n/**\n * Convert a little-endian buffer into a BigInt.\n * @param buf The little-endian buffer to convert\n * @returns A BigInt with the little-endian representation of buf.\n */\nfunction toBigIntLE(buf) {\n    if (converter === undefined) {\n        const reversed = Buffer.from(buf);\n        reversed.reverse();\n        const hex = reversed.toString('hex');\n        if (hex.length === 0) {\n            return BigInt(0);\n        }\n        return BigInt(`0x${hex}`);\n    }\n    return converter.toBigInt(buf, false);\n}\nexports.toBigIntLE = toBigIntLE;\n/**\n * Convert a big-endian buffer into a BigInt\n * @param buf The big-endian buffer to convert.\n * @returns A BigInt with the big-endian representation of buf.\n */\nfunction toBigIntBE(buf) {\n    if (converter === undefined) {\n        const hex = buf.toString('hex');\n        if (hex.length === 0) {\n            return BigInt(0);\n        }\n        return BigInt(`0x${hex}`);\n    }\n    return converter.toBigInt(buf, true);\n}\nexports.toBigIntBE = toBigIntBE;\n/**\n * Convert a BigInt to a little-endian buffer.\n * @param num   The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A little-endian buffer representation of num.\n */\nfunction toBufferLE(num, width) {\n    if (converter === undefined) {\n        const hex = num.toString(16);\n        const buffer = Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n        buffer.reverse();\n        return buffer;\n    }\n    // Allocation is done here, since it is slower using napi in C\n    return converter.fromBigInt(num, Buffer.allocUnsafe(width), false);\n}\nexports.toBufferLE = toBufferLE;\n/**\n * Convert a BigInt to a big-endian buffer.\n * @param num   The BigInt to convert.\n * @param width The number of bytes that the resulting buffer should be.\n * @returns A big-endian buffer representation of num.\n */\nfunction toBufferBE(num, width) {\n    if (converter === undefined) {\n        const hex = num.toString(16);\n        return Buffer.from(hex.padStart(width * 2, '0').slice(0, width * 2), 'hex');\n    }\n    return converter.fromBigInt(num, Buffer.allocUnsafe(width), true);\n}\nexports.toBufferBE = toBufferBE;\n","/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n  private readonly [symbol] = true; // used in isInstance\n\n  /**\n   * The underlying cause of the error, if any.\n   */\n  readonly cause?: unknown;\n\n  /**\n   * Creates an AI SDK Error.\n   *\n   * @param {Object} params - The parameters for creating the error.\n   * @param {string} params.name - The name of the error.\n   * @param {string} params.message - The error message.\n   * @param {unknown} [params.cause] - The underlying cause of the error.\n   */\n  constructor({\n    name,\n    message,\n    cause,\n  }: {\n    name: string;\n    message: string;\n    cause?: unknown;\n  }) {\n    super(message);\n\n    this.name = name;\n    this.cause = cause;\n  }\n\n  /**\n   * Checks if the given error is an AI SDK Error.\n   * @param {unknown} error - The error to check.\n   * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n   */\n  static isInstance(error: unknown): error is AISDKError {\n    return AISDKError.hasMarker(error, marker);\n  }\n\n  protected static hasMarker(error: unknown, marker: string): boolean {\n    const markerSymbol = Symbol.for(marker);\n    return (\n      error != null &&\n      typeof error === 'object' &&\n      markerSymbol in error &&\n      typeof error[markerSymbol] === 'boolean' &&\n      error[markerSymbol] === true\n    );\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly url: string;\n  readonly requestBodyValues: unknown;\n  readonly statusCode?: number;\n\n  readonly responseHeaders?: Record<string, string>;\n  readonly responseBody?: string;\n\n  readonly isRetryable: boolean;\n  readonly data?: unknown;\n\n  constructor({\n    message,\n    url,\n    requestBodyValues,\n    statusCode,\n    responseHeaders,\n    responseBody,\n    cause,\n    isRetryable = statusCode != null &&\n      (statusCode === 408 || // request timeout\n        statusCode === 409 || // conflict\n        statusCode === 429 || // too many requests\n        statusCode >= 500), // server error\n    data,\n  }: {\n    message: string;\n    url: string;\n    requestBodyValues: unknown;\n    statusCode?: number;\n    responseHeaders?: Record<string, string>;\n    responseBody?: string;\n    cause?: unknown;\n    isRetryable?: boolean;\n    data?: unknown;\n  }) {\n    super({ name, message, cause });\n\n    this.url = url;\n    this.requestBodyValues = requestBodyValues;\n    this.statusCode = statusCode;\n    this.responseHeaders = responseHeaders;\n    this.responseBody = responseBody;\n    this.isRetryable = isRetryable;\n    this.data = data;\n  }\n\n  static isInstance(error: unknown): error is APICallError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_EmptyResponseBodyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class EmptyResponseBodyError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  constructor({ message = 'Empty response body' }: { message?: string } = {}) {\n    super({ name, message });\n  }\n\n  static isInstance(error: unknown): error is EmptyResponseBodyError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","export function getErrorMessage(error: unknown | undefined) {\n  if (error == null) {\n    return 'unknown error';\n  }\n\n  if (typeof error === 'string') {\n    return error;\n  }\n\n  if (error instanceof Error) {\n    return error.message;\n  }\n\n  return JSON.stringify(error);\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly argument: string;\n\n  constructor({\n    message,\n    cause,\n    argument,\n  }: {\n    argument: string;\n    message: string;\n    cause?: unknown;\n  }) {\n    super({ name, message, cause });\n\n    this.argument = argument;\n  }\n\n  static isInstance(error: unknown): error is InvalidArgumentError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidPromptError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A prompt is invalid. This error should be thrown by providers when they cannot\n * process a prompt.\n */\nexport class InvalidPromptError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly prompt: unknown;\n\n  constructor({\n    prompt,\n    message,\n    cause,\n  }: {\n    prompt: unknown;\n    message: string;\n    cause?: unknown;\n  }) {\n    super({ name, message: `Invalid prompt: ${message}`, cause });\n\n    this.prompt = prompt;\n  }\n\n  static isInstance(error: unknown): error is InvalidPromptError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidResponseDataError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Server returned a response with invalid data content.\n * This should be thrown by providers when they cannot parse the response from the API.\n */\nexport class InvalidResponseDataError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly data: unknown;\n\n  constructor({\n    data,\n    message = `Invalid response data: ${JSON.stringify(data)}.`,\n  }: {\n    data: unknown;\n    message?: string;\n  }) {\n    super({ name, message });\n\n    this.data = data;\n  }\n\n  static isInstance(error: unknown): error is InvalidResponseDataError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n// TODO v5: rename to ParseError\nexport class JSONParseError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly text: string;\n\n  constructor({ text, cause }: { text: string; cause: unknown }) {\n    super({\n      name,\n      message:\n        `JSON parsing failed: ` +\n        `Text: ${text}.\\n` +\n        `Error message: ${getErrorMessage(cause)}`,\n      cause,\n    });\n\n    this.text = text;\n  }\n\n  static isInstance(error: unknown): error is JSONParseError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadAPIKeyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadAPIKeyError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  constructor({ message }: { message: string }) {\n    super({ name, message });\n  }\n\n  static isInstance(error: unknown): error is LoadAPIKeyError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_LoadSettingError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class LoadSettingError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  constructor({ message }: { message: string }) {\n    super({ name, message });\n  }\n\n  static isInstance(error: unknown): error is LoadSettingError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoContentGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\nThrown when the AI provider fails to generate any content.\n */\nexport class NoContentGeneratedError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  constructor({\n    message = 'No content generated.',\n  }: { message?: string } = {}) {\n    super({ name, message });\n  }\n\n  static isInstance(error: unknown): error is NoContentGeneratedError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_NoSuchModelError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class NoSuchModelError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly modelId: string;\n  readonly modelType:\n    | 'languageModel'\n    | 'textEmbeddingModel'\n    | 'imageModel'\n    | 'transcriptionModel'\n    | 'speechModel';\n\n  constructor({\n    errorName = name,\n    modelId,\n    modelType,\n    message = `No such ${modelType}: ${modelId}`,\n  }: {\n    errorName?: string;\n    modelId: string;\n    modelType:\n      | 'languageModel'\n      | 'textEmbeddingModel'\n      | 'imageModel'\n      | 'transcriptionModel'\n      | 'speechModel';\n    message?: string;\n  }) {\n    super({ name: errorName, message });\n\n    this.modelId = modelId;\n    this.modelType = modelType;\n  }\n\n  static isInstance(error: unknown): error is NoSuchModelError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_TooManyEmbeddingValuesForCallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TooManyEmbeddingValuesForCallError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly provider: string;\n  readonly modelId: string;\n  readonly maxEmbeddingsPerCall: number;\n  readonly values: Array<unknown>;\n\n  constructor(options: {\n    provider: string;\n    modelId: string;\n    maxEmbeddingsPerCall: number;\n    values: Array<unknown>;\n  }) {\n    super({\n      name,\n      message:\n        `Too many values for a single embedding call. ` +\n        `The ${options.provider} model \"${options.modelId}\" can only embed up to ` +\n        `${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`,\n    });\n\n    this.provider = options.provider;\n    this.modelId = options.modelId;\n    this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n    this.values = options.values;\n  }\n\n  static isInstance(\n    error: unknown,\n  ): error is TooManyEmbeddingValuesForCallError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TypeValidationError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly value: unknown;\n\n  constructor({ value, cause }: { value: unknown; cause: unknown }) {\n    super({\n      name,\n      message:\n        `Type validation failed: ` +\n        `Value: ${JSON.stringify(value)}.\\n` +\n        `Error message: ${getErrorMessage(cause)}`,\n      cause,\n    });\n\n    this.value = value;\n  }\n\n  static isInstance(error: unknown): error is TypeValidationError {\n    return AISDKError.hasMarker(error, marker);\n  }\n\n  /**\n   * Wraps an error into a TypeValidationError.\n   * If the cause is already a TypeValidationError with the same value, it returns the cause.\n   * Otherwise, it creates a new TypeValidationError.\n   *\n   * @param {Object} params - The parameters for wrapping the error.\n   * @param {unknown} params.value - The value that failed validation.\n   * @param {unknown} params.cause - The original error or cause of the validation failure.\n   * @returns {TypeValidationError} A TypeValidationError instance.\n   */\n  static wrap({\n    value,\n    cause,\n  }: {\n    value: unknown;\n    cause: unknown;\n  }): TypeValidationError {\n    return TypeValidationError.isInstance(cause) && cause.value === value\n      ? cause\n      : new TypeValidationError({ value, cause });\n  }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_UnsupportedFunctionalityError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class UnsupportedFunctionalityError extends AISDKError {\n  private readonly [symbol] = true; // used in isInstance\n\n  readonly functionality: string;\n\n  constructor({\n    functionality,\n    message = `'${functionality}' functionality not supported.`,\n  }: {\n    functionality: string;\n    message?: string;\n  }) {\n    super({ name, message });\n    this.functionality = functionality;\n  }\n\n  static isInstance(error: unknown): error is UnsupportedFunctionalityError {\n    return AISDKError.hasMarker(error, marker);\n  }\n}\n","import { JSONArray, JSONObject, JSONValue } from './json-value';\n\nexport function isJSONValue(value: unknown): value is JSONValue {\n  if (\n    value === null ||\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    typeof value === 'boolean'\n  ) {\n    return true;\n  }\n\n  if (Array.isArray(value)) {\n    return value.every(isJSONValue);\n  }\n\n  if (typeof value === 'object') {\n    return Object.entries(value).every(\n      ([key, val]) => typeof key === 'string' && isJSONValue(val),\n    );\n  }\n\n  return false;\n}\n\nexport function isJSONArray(value: unknown): value is JSONArray {\n  return Array.isArray(value) && value.every(isJSONValue);\n}\n\nexport function isJSONObject(value: unknown): value is JSONObject {\n  return (\n    value != null &&\n    typeof value === 'object' &&\n    Object.entries(value).every(\n      ([key, val]) => typeof key === 'string' && isJSONValue(val),\n    )\n  );\n}\n","/**\n * The type of error that occurred.\n * @public\n */\nexport type ErrorType = 'invalid-retry' | 'unknown-field'\n\n/**\n * Error thrown when encountering an issue during parsing.\n *\n * @public\n */\nexport class ParseError extends Error {\n  /**\n   * The type of error that occurred.\n   */\n  type: ErrorType\n\n  /**\n   * In the case of an unknown field encountered in the stream, this will be the field name.\n   */\n  field?: string | undefined\n\n  /**\n   * In the case of an unknown field encountered in the stream, this will be the value of the field.\n   */\n  value?: string | undefined\n\n  /**\n   * The line that caused the error, if available.\n   */\n  line?: string | undefined\n\n  constructor(\n    message: string,\n    options: {type: ErrorType; field?: string; value?: string; line?: string},\n  ) {\n    super(message)\n    this.name = 'ParseError'\n    this.type = options.type\n    this.field = options.field\n    this.value = options.value\n    this.line = options.line\n  }\n}\n","/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n */\nimport {ParseError} from './errors.ts'\nimport type {EventSourceParser, ParserCallbacks} from './types.ts'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction noop(_arg: unknown) {\n  // intentional noop\n}\n\n/**\n * Creates a new EventSource parser.\n *\n * @param callbacks - Callbacks to invoke on different parsing events:\n *   - `onEvent` when a new event is parsed\n *   - `onError` when an error occurs\n *   - `onRetry` when a new reconnection interval has been sent from the server\n *   - `onComment` when a comment is encountered in the stream\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(callbacks: ParserCallbacks): EventSourceParser {\n  if (typeof callbacks === 'function') {\n    throw new TypeError(\n      '`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?',\n    )\n  }\n\n  const {onEvent = noop, onError = noop, onRetry = noop, onComment} = callbacks\n\n  let incompleteLine = ''\n\n  let isFirstChunk = true\n  let id: string | undefined\n  let data = ''\n  let eventType = ''\n\n  function feed(newChunk: string) {\n    // Strip any UTF8 byte order mark (BOM) at the start of the stream\n    const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, '') : newChunk\n\n    // If there was a previous incomplete line, append it to the new chunk,\n    // so we may process it together as a new (hopefully complete) chunk.\n    const [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`)\n\n    for (const line of complete) {\n      parseLine(line)\n    }\n\n    incompleteLine = incomplete\n    isFirstChunk = false\n  }\n\n  function parseLine(line: string) {\n    // If the line is empty (a blank line), dispatch the event\n    if (line === '') {\n      dispatchEvent()\n      return\n    }\n\n    // If the line starts with a U+003A COLON character (:), ignore the line.\n    if (line.startsWith(':')) {\n      if (onComment) {\n        onComment(line.slice(line.startsWith(': ') ? 2 : 1))\n      }\n      return\n    }\n\n    // If the line contains a U+003A COLON character (:)\n    const fieldSeparatorIndex = line.indexOf(':')\n    if (fieldSeparatorIndex !== -1) {\n      // Collect the characters on the line before the first U+003A COLON character (:),\n      // and let `field` be that string.\n      const field = line.slice(0, fieldSeparatorIndex)\n\n      // Collect the characters on the line after the first U+003A COLON character (:),\n      // and let `value` be that string. If value starts with a U+0020 SPACE character,\n      // remove it from value.\n      const offset = line[fieldSeparatorIndex + 1] === ' ' ? 2 : 1\n      const value = line.slice(fieldSeparatorIndex + offset)\n\n      processField(field, value, line)\n      return\n    }\n\n    // Otherwise, the string is not empty but does not contain a U+003A COLON character (:)\n    // Process the field using the whole line as the field name, and an empty string as the field value.\n    // 👆 This is according to spec. That means that a line that has the value `data` will result in\n    // a newline being added to the current `data` buffer, for instance.\n    processField(line, '', line)\n  }\n\n  function processField(field: string, value: string, line: string) {\n    // Field names must be compared literally, with no case folding performed.\n    switch (field) {\n      case 'event':\n        // Set the `event type` buffer to field value\n        eventType = value\n        break\n      case 'data':\n        // Append the field value to the `data` buffer, then append a single U+000A LINE FEED(LF)\n        // character to the `data` buffer.\n        data = `${data}${value}\\n`\n        break\n      case 'id':\n        // If the field value does not contain U+0000 NULL, then set the `ID` buffer to\n        // the field value. Otherwise, ignore the field.\n        id = value.includes('\\0') ? undefined : value\n        break\n      case 'retry':\n        // If the field value consists of only ASCII digits, then interpret the field value as an\n        // integer in base ten, and set the event stream's reconnection time to that integer.\n        // Otherwise, ignore the field.\n        if (/^\\d+$/.test(value)) {\n          onRetry(parseInt(value, 10))\n        } else {\n          onError(\n            new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n              type: 'invalid-retry',\n              value,\n              line,\n            }),\n          )\n        }\n        break\n      default:\n        // Otherwise, the field is ignored.\n        onError(\n          new ParseError(\n            `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}…` : field}\"`,\n            {type: 'unknown-field', field, value, line},\n          ),\n        )\n        break\n    }\n  }\n\n  function dispatchEvent() {\n    const shouldDispatch = data.length > 0\n    if (shouldDispatch) {\n      onEvent({\n        id,\n        event: eventType || undefined,\n        // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n        // then remove the last character from the data buffer.\n        data: data.endsWith('\\n') ? data.slice(0, -1) : data,\n      })\n    }\n\n    // Reset for the next event\n    id = undefined\n    data = ''\n    eventType = ''\n  }\n\n  function reset(options: {consume?: boolean} = {}) {\n    if (incompleteLine && options.consume) {\n      parseLine(incompleteLine)\n    }\n\n    isFirstChunk = true\n    id = undefined\n    data = ''\n    eventType = ''\n    incompleteLine = ''\n  }\n\n  return {feed, reset}\n}\n\n/**\n * For the given `chunk`, split it into lines according to spec, and return any remaining incomplete line.\n *\n * @param chunk - The chunk to split into lines\n * @returns A tuple containing an array of complete lines, and any remaining incomplete line\n * @internal\n */\nfunction splitLines(chunk: string): [complete: Array<string>, incomplete: string] {\n  /**\n   * According to the spec, a line is terminated by either:\n   * - U+000D CARRIAGE RETURN U+000A LINE FEED (CRLF) character pair\n   * - a single U+000A LINE FEED(LF) character not preceded by a U+000D CARRIAGE RETURN(CR) character\n   * - a single U+000D CARRIAGE RETURN(CR) character not followed by a U+000A LINE FEED(LF) character\n   */\n  const lines: Array<string> = []\n  let incompleteLine = ''\n  let searchIndex = 0\n\n  while (searchIndex < chunk.length) {\n    // Find next line terminator\n    const crIndex = chunk.indexOf('\\r', searchIndex)\n    const lfIndex = chunk.indexOf('\\n', searchIndex)\n\n    // Determine line end\n    let lineEnd = -1\n    if (crIndex !== -1 && lfIndex !== -1) {\n      // CRLF case\n      lineEnd = Math.min(crIndex, lfIndex)\n    } else if (crIndex !== -1) {\n      // CR at the end of a chunk might be part of a CRLF sequence that spans chunks,\n      // so we shouldn't treat it as a line terminator (yet)\n      if (crIndex === chunk.length - 1) {\n        lineEnd = -1\n      } else {\n        lineEnd = crIndex\n      }\n    } else if (lfIndex !== -1) {\n      lineEnd = lfIndex\n    }\n\n    // Extract line if terminator found\n    if (lineEnd === -1) {\n      // No terminator found, rest is incomplete\n      incompleteLine = chunk.slice(searchIndex)\n      break\n    } else {\n      const line = chunk.slice(searchIndex, lineEnd)\n      lines.push(line)\n\n      // Move past line terminator\n      searchIndex = lineEnd + 1\n      if (chunk[searchIndex - 1] === '\\r' && chunk[searchIndex] === '\\n') {\n        searchIndex++\n      }\n    }\n  }\n\n  return [lines, incompleteLine]\n}\n","import {createParser} from './parse.ts'\nimport type {EventSourceMessage, EventSourceParser} from './types.ts'\n\n/**\n * Options for the EventSourceParserStream.\n *\n * @public\n */\nexport interface StreamOptions {\n  /**\n   * Behavior when a parsing error occurs.\n   *\n   * - A custom function can be provided to handle the error.\n   * - `'terminate'` will error the stream and stop parsing.\n   * - Any other value will ignore the error and continue parsing.\n   *\n   * @defaultValue `undefined`\n   */\n  onError?: ('terminate' | ((error: Error) => void)) | undefined\n\n  /**\n   * Callback for when a reconnection interval is sent from the server.\n   *\n   * @param retry - The number of milliseconds to wait before reconnecting.\n   */\n  onRetry?: ((retry: number) => void) | undefined\n\n  /**\n   * Callback for when a comment is encountered in the stream.\n   *\n   * @param comment - The comment encountered in the stream.\n   */\n  onComment?: ((comment: string) => void) | undefined\n}\n\n/**\n * A TransformStream that ingests a stream of strings and produces a stream of `EventSourceMessage`.\n *\n * @example Basic usage\n * ```\n * const eventStream =\n *   response.body\n *     .pipeThrough(new TextDecoderStream())\n *     .pipeThrough(new EventSourceParserStream())\n * ```\n *\n * @example Terminate stream on parsing errors\n * ```\n * const eventStream =\n *  response.body\n *   .pipeThrough(new TextDecoderStream())\n *   .pipeThrough(new EventSourceParserStream({terminateOnError: true}))\n * ```\n *\n * @public\n */\nexport class EventSourceParserStream extends TransformStream<string, EventSourceMessage> {\n  constructor({onError, onRetry, onComment}: StreamOptions = {}) {\n    let parser!: EventSourceParser\n\n    super({\n      start(controller) {\n        parser = createParser({\n          onEvent: (event) => {\n            controller.enqueue(event)\n          },\n          onError(error) {\n            if (onError === 'terminate') {\n              controller.error(error)\n            } else if (typeof onError === 'function') {\n              onError(error)\n            }\n\n            // Ignore by default\n          },\n          onRetry,\n          onComment,\n        })\n      },\n      transform(chunk) {\n        parser.feed(chunk)\n      },\n    })\n  }\n}\n\nexport {type ErrorType, ParseError} from './errors.ts'\nexport type {EventSourceMessage} from './types.ts'\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, function, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./function.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n    status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n    function init(inst, def) {\n        var _a;\n        Object.defineProperty(inst, \"_zod\", {\n            value: inst._zod ?? {},\n            enumerable: false,\n        });\n        (_a = inst._zod).traits ?? (_a.traits = new Set());\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        // support prototype modifications\n        for (const k in _.prototype) {\n            if (!(k in inst))\n                Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n        }\n        inst._zod.constr = _;\n        inst._zod.def = def;\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        var _a;\n        const inst = params?.Parent ? new Definition() : this;\n        init(inst, def);\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        for (const fn of inst._zod.deferred) {\n            fn();\n        }\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\nexport function cached(getter) {\n    const set = false;\n    return {\n        get value() {\n            if (!set) {\n                const value = getter();\n                Object.defineProperty(this, \"value\", { value });\n                return value;\n            }\n            throw new Error(\"cached value already set\");\n        },\n    };\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepString = step.toString();\n    let stepDecCount = (stepString.split(\".\")[1] || \"\").length;\n    if (stepDecCount === 0 && /\\d?e-\\d?/.test(stepString)) {\n        const match = stepString.match(/\\d?e-(\\d?)/);\n        if (match?.[1]) {\n            stepDecCount = Number.parseInt(match[1]);\n        }\n    }\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nconst EVALUATING = Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n    let value = undefined;\n    Object.defineProperty(object, key, {\n        get() {\n            if (value === EVALUATING) {\n                // Circular reference detected, return undefined to break the cycle\n                return undefined;\n            }\n            if (value === undefined) {\n                value = EVALUATING;\n                value = getter();\n            }\n            return value;\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function objectClone(obj) {\n    return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\nexport function mergeDefs(...defs) {\n    const mergedDescriptors = {};\n    for (const def of defs) {\n        const descriptors = Object.getOwnPropertyDescriptors(def);\n        Object.assign(mergedDescriptors, descriptors);\n    }\n    return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n    return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n    // @ts-ignore\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function shallowClone(o) {\n    if (isPlainObject(o))\n        return { ...o };\n    return o;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            // @ts-ignore\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n    });\n}\nexport const NUMBER_FORMAT_RANGES = {\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = {};\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                newShape[key] = currDef.shape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function omit(schema, mask) {\n    const currDef = schema._zod.def;\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const newShape = { ...schema._zod.def.shape };\n            for (const key in mask) {\n                if (!(key in currDef.shape)) {\n                    throw new Error(`Unrecognized key: \"${key}\"`);\n                }\n                if (!mask[key])\n                    continue;\n                delete newShape[key];\n            }\n            assignProp(this, \"shape\", newShape); // self-caching\n            return newShape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function extend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to extend: expected a plain object\");\n    }\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const _shape = { ...schema._zod.def.shape, ...shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function merge(a, b) {\n    const def = mergeDefs(a._zod.def, {\n        get shape() {\n            const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n            assignProp(this, \"shape\", _shape); // self-caching\n            return _shape;\n        },\n        get catchall() {\n            return b._zod.def.catchall;\n        },\n        checks: [], // delete existing checks\n    });\n    return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in oldShape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // if (oldShape[key]!._zod.optin === \"optional\") continue;\n                    shape[key] = Class\n                        ? new Class({\n                            type: \"optional\",\n                            innerType: oldShape[key],\n                        })\n                        : oldShape[key];\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n    const def = mergeDefs(schema._zod.def, {\n        get shape() {\n            const oldShape = schema._zod.def.shape;\n            const shape = { ...oldShape };\n            if (mask) {\n                for (const key in mask) {\n                    if (!(key in shape)) {\n                        throw new Error(`Unrecognized key: \"${key}\"`);\n                    }\n                    if (!mask[key])\n                        continue;\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            else {\n                for (const key in oldShape) {\n                    // overwrite with non-optional\n                    shape[key] = new Class({\n                        type: \"nonoptional\",\n                        innerType: oldShape[key],\n                    });\n                }\n            }\n            assignProp(this, \"shape\", shape); // self-caching\n            return shape;\n        },\n        checks: [],\n    });\n    return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue !== true) {\n            return true;\n        }\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n    const full = { ...iss, path: iss.path ?? [] };\n    // for backwards compatibility\n    if (!iss.message) {\n        const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\";\n        full.message = message;\n    }\n    // delete (full as any).def;\n    delete full.inst;\n    delete full.continue;\n    if (!ctx?.reportInput) {\n        delete full.input;\n    }\n    return full;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    // @ts-ignore\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    Object.defineProperty(inst, \"_zod\", {\n        value: inst._zod,\n        enumerable: false,\n    });\n    Object.defineProperty(inst, \"issues\", {\n        value: def,\n        enumerable: false,\n    });\n    inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n    Object.defineProperty(inst, \"toString\", {\n        value: () => inst.message,\n        enumerable: false,\n    });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n            fieldErrors[sub.path[0]].push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const fieldErrors = { _errors: [] };\n    const processError = (error) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues });\n            }\n            else if (issue.path.length === 0) {\n                fieldErrors._errors.push(mapper(issue));\n            }\n            else {\n                let curr = fieldErrors;\n                let i = 0;\n                while (i < issue.path.length) {\n                    const el = issue.path[i];\n                    const terminal = i === issue.path.length - 1;\n                    if (!terminal) {\n                        curr[el] = curr[el] || { _errors: [] };\n                    }\n                    else {\n                        curr[el] = curr[el] || { _errors: [] };\n                        curr[el]._errors.push(mapper(issue));\n                    }\n                    curr = curr[el];\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n    const mapper = _mapper ||\n        function (issue) {\n            return issue.message;\n        };\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a, _b;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, issue.path));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, issue.path);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n *   ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n    const segs = [];\n    const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`✖ ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  → at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    if (result.issues.length) {\n        const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, _params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    if (result.issues.length) {\n        const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n        util.captureStackTrace(e, params?.callee);\n        throw e;\n    }\n    return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length\n        ? {\n            success: false,\n            error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length\n        ? {\n            success: false,\n            error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        }\n        : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n    return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const time = timeSource({ precision: args.precision });\n    const opts = [\"Z\"];\n    if (args.local)\n        opts.push(\"\");\n    // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    if (args.offset)\n        opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n    const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n        if (def.value < curr) {\n            if (def.inclusive)\n                bag.maximum = def.value;\n            else\n                bag.exclusiveMaximum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n        if (def.value > curr) {\n            if (def.inclusive)\n                bag.minimum = def.value;\n            else\n                bag.exclusiveMinimum = def.value;\n        }\n    });\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        var _a;\n        (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n    });\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n        if (isInt)\n            bag.pattern = regexes.integer;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    continue: false,\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        bag.minimum = minimum;\n        bag.maximum = maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inst,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.size !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.size;\n        bag.maximum = def.size;\n        bag.size = def.size;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n        if (def.maximum < curr)\n            inst._zod.bag.maximum = def.maximum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n        if (def.minimum > curr)\n            inst._zod.bag.minimum = def.minimum;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n        const val = payload.value;\n        return !util.nullish(val) && val.length !== undefined;\n    });\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.minimum = def.length;\n        bag.maximum = def.length;\n        bag.length = def.length;\n    });\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const length = input.length;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a, _b;\n    $ZodCheck.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = def.format;\n        if (def.pattern) {\n            bag.patterns ?? (bag.patterns = new Set());\n            bag.patterns.add(def.pattern);\n        }\n    });\n    if (def.pattern)\n        (_a = inst._zod).check ?? (_a.check = (payload) => {\n            def.pattern.lastIndex = 0;\n            if (def.pattern.test(payload.value))\n                return;\n            payload.issues.push({\n                origin: \"string\",\n                code: \"invalid_format\",\n                format: def.format,\n                input: payload.value,\n                ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n                inst,\n                continue: !def.abort,\n            });\n        });\n    else\n        (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.patterns ?? (bag.patterns = new Set());\n        bag.patterns.add(pattern);\n    });\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.mime = def.mime;\n    });\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n","export class Doc {\n    constructor(args = []) {\n        this.content = [];\n        this.indent = 0;\n        if (this)\n            this.args = args;\n    }\n    indented(fn) {\n        this.indent += 1;\n        fn(this);\n        this.indent -= 1;\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const args = this?.args;\n        const content = this?.content ?? [``];\n        const lines = [...content.map((x) => `  ${x}`)];\n        // console.log(lines.join(\"\\n\"));\n        return new F(...args, lines.join(\"\\n\"));\n    }\n}\n","export const version = {\n    major: 4,\n    minor: 0,\n    patch: 17,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const checks = [...(inst._zod.def.checks ?? [])];\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    if (inst._zod.traits.has(\"$ZodCheck\")) {\n        checks.unshift(inst);\n    }\n    //\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer\n        // inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.def.when) {\n                    const shouldRun = ch._zod.def.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        inst._zod.run = (payload, ctx) => {\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n    inst[\"~standard\"] = {\n        validate: (value) => {\n            try {\n                const r = safeParse(inst, value);\n                return r.success ? { value: r.data } : { issues: r.error?.issues };\n            }\n            catch (_) {\n                return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n            }\n        },\n        vendor: \"zod\",\n        version: 1,\n    };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            // Trim whitespace from input\n            const trimmed = payload.value.trim();\n            // @ts-ignore\n            const url = new URL(trimmed);\n            if (def.hostname) {\n                def.hostname.lastIndex = 0;\n                if (!def.hostname.test(url.hostname)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid hostname\",\n                        pattern: regexes.hostname.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            if (def.protocol) {\n                def.protocol.lastIndex = 0;\n                if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n                    payload.issues.push({\n                        code: \"invalid_format\",\n                        format: \"url\",\n                        note: \"Invalid protocol\",\n                        pattern: def.protocol.source,\n                        input: payload.value,\n                        inst,\n                        continue: !def.abort,\n                    });\n                }\n            }\n            // Set the output value based on normalize flag\n            if (def.normalize) {\n                // Use normalized URL\n                payload.value = url.href;\n            }\n            else {\n                // Preserve the original input (trimmed)\n                payload.value = trimmed;\n            }\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.nanoid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv4`;\n    });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        const bag = inst._zod.bag;\n        bag.format = `ipv6`;\n    });\n    inst._zod.check = (payload) => {\n        try {\n            // @ts-ignore\n            new URL(`http://[${payload.value}]`);\n            // return;\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        const [address, prefix] = payload.value.split(\"/\");\n        try {\n            if (!prefix)\n                throw new Error();\n            const prefixNum = Number(prefix);\n            if (`${prefixNum}` !== prefix)\n                throw new Error();\n            if (prefixNum < 0 || prefixNum > 128)\n                throw new Error();\n            // @ts-ignore\n            new URL(`http://[${address}]`);\n        }\n        catch {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        // @ts-ignore\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64URL(data) {\n    if (!regexes.base64url.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.base64url);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.onattach.push((inst) => {\n        inst._zod.bag.contentEncoding = \"base64url\";\n    });\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        if (!header)\n            return false;\n        // @ts-ignore\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (def.fn(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? \"Infinity\"\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = Array(input.length);\n        const proms = [];\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handlePropertyResult(result, final, key, input) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    if (result.value === undefined) {\n        if (key in input) {\n            final.value[key] = undefined;\n        }\n    }\n    else {\n        final.value[key] = result.value;\n    }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    const _normalized = util.cached(() => {\n        const keys = Object.keys(def.shape);\n        for (const k of keys) {\n            if (!def.shape[k]._zod.traits.has(\"$ZodType\")) {\n                throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n            }\n        }\n        const okeys = util.optionalKeys(def.shape);\n        return {\n            shape: def.shape,\n            keys,\n            keySet: new Set(keys),\n            numKeys: keys.length,\n            optionalKeys: new Set(okeys),\n        };\n    });\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const shape = def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                propValues[key] ?? (propValues[key] = new Set());\n                for (const v of field.values)\n                    propValues[key].add(v);\n            }\n        }\n        return propValues;\n    });\n    const generateFastpass = (shape) => {\n        const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n        const normalized = _normalized.value;\n        const parseStr = (key) => {\n            const k = util.esc(key);\n            return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        };\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        let counter = 0;\n        for (const key of normalized.keys) {\n            ids[key] = `key_${counter++}`;\n        }\n        // A: preserve key order {\n        doc.write(`const newResult = {}`);\n        for (const key of normalized.keys) {\n            const id = ids[key];\n            const k = util.esc(key);\n            doc.write(`const ${id} = ${parseStr(key)};`);\n            doc.write(`\n        if (${id}.issues.length) {\n          payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n            ...iss,\n            path: iss.path ? [${k}, ...iss.path] : [${k}]\n          })));\n        }\n        \n        if (${id}.value === undefined) {\n          if (${k} in input) {\n            newResult[${k}] = undefined;\n          }\n        } else {\n          newResult[${k}] = ${id}.value;\n        }\n      `);\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        const fn = doc.compile();\n        return (payload, ctx) => fn(shape, payload, ctx);\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n        }\n        else {\n            payload.value = {};\n            const shape = value.shape;\n            for (const key of value.keys) {\n                const el = shape[key];\n                const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n                if (r instanceof Promise) {\n                    proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n                }\n                else {\n                    handlePropertyResult(r, payload, key, input);\n                }\n            }\n        }\n        if (!catchall) {\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        const unrecognized = [];\n        // iterate over input keys\n        const keySet = value.keySet;\n        const _catchall = catchall._zod;\n        const t = _catchall.def.type;\n        for (const key of Object.keys(input)) {\n            if (keySet.has(key))\n                continue;\n            if (t === \"never\") {\n                unrecognized.push(key);\n                continue;\n            }\n            const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handlePropertyResult(r, payload, key, input)));\n            }\n            else {\n                handlePropertyResult(r, payload, key, input);\n            }\n        }\n        if (unrecognized.length) {\n            payload.issues.push({\n                code: \"unrecognized_keys\",\n                keys: unrecognized,\n                input,\n                inst,\n            });\n        }\n        if (!proms.length)\n            return payload;\n        return Promise.all(proms).then(() => {\n            return payload;\n        });\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    const nonaborted = results.filter((r) => !util.aborted(r));\n    if (nonaborted.length === 1) {\n        final.value = nonaborted[0].value;\n        return nonaborted[0];\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n    util.defineLazy(inst._zod, \"values\", () => {\n        if (def.options.every((o) => o._zod.values)) {\n            return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        if (def.options.every((o) => o._zod.pattern)) {\n            const patterns = def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    const single = def.options.length === 1;\n    const first = def.options[0]._zod.run;\n    inst._zod.parse = (payload, ctx) => {\n        if (single) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazy(inst._zod, \"propValues\", () => {\n        const propValues = {};\n        for (const option of def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n            for (const [k, v] of Object.entries(pv)) {\n                if (!propValues[k])\n                    propValues[k] = new Set();\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        return propValues;\n    });\n    const disc = util.cached(() => {\n        const opts = def.options;\n        const map = new Map();\n        for (const o of opts) {\n            const values = o._zod.propValues?.[def.discriminator];\n            if (!values || values.size === 0)\n                throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n            for (const v of values) {\n                if (map.has(v)) {\n                    throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n                }\n                map.set(v, o);\n            }\n        }\n        return map;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const opt = disc.value.get(input?.[def.discriminator]);\n        if (opt) {\n            return opt._zod.run(payload, ctx);\n        }\n        if (def.unionFallback) {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            discriminator: def.discriminator,\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nfunction mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    if (left.issues.length) {\n        result.issues.push(...left.issues);\n    }\n    if (right.issues.length) {\n        result.issues.push(...right.issues);\n    }\n    if (util.aborted(result))\n        return result;\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = [];\n        const proms = [];\n        if (!def.rest) {\n            const tooBig = input.length > items.length;\n            const tooSmall = input.length < optStart - 1;\n            if (tooBig || tooSmall) {\n                payload.issues.push({\n                    ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n                return payload;\n            }\n        }\n        let i = -1;\n        for (const item of items) {\n            i++;\n            if (i >= input.length)\n                if (i >= optStart)\n                    continue;\n            const result = item._zod.run({\n                value: input[i],\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n            }\n            else {\n                handleTupleResult(result, payload, i);\n            }\n        }\n        if (def.rest) {\n            const rest = input.slice(items.length);\n            for (const el of rest) {\n                i++;\n                const result = def.rest._zod.run({\n                    value: el,\n                    issues: [],\n                }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        if (def.keyType._zod.values) {\n            const values = def.keyType._zod.values;\n            payload.value = {};\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[key] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[key] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!values.has(key)) {\n                    unrecognized = unrecognized ?? [];\n                    unrecognized.push(key);\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                });\n            }\n        }\n        else {\n            payload.value = {};\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                if (keyResult.issues.length) {\n                    payload.issues.push({\n                        code: \"invalid_key\",\n                        origin: \"record\",\n                        issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        input: key,\n                        path: [key],\n                        inst,\n                    });\n                    payload.value[keyResult.value] = keyResult.value;\n                    continue;\n                }\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[keyResult.value] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[keyResult.value] = result.value;\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Map();\n        for (const [key, value] of input) {\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                code: \"invalid_key\",\n                origin: \"map\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = new Set();\n        for (const item of input) {\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    const valuesSet = new Set(values);\n    inst._zod.values = valuesSet;\n    inst._zod.pattern = new RegExp(`^(${values\n        .filter((k) => util.propertyKeyTypes.has(typeof k))\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (valuesSet.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    if (def.values.length === 0) {\n        throw new Error(\"Cannot create literal schema with no valid values\");\n    }\n    inst._zod.values = new Set(def.values);\n    inst._zod.pattern = new RegExp(`^(${def.values\n        .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n        .join(\"|\")})$`);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (inst._zod.values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        // @ts-ignore\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const _out = def.transform(payload.value, payload);\n        if (_ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        return payload;\n    };\n});\nfunction handleOptionalResult(result, input) {\n    if (result.issues.length && input === undefined) {\n        return { issues: [], value: undefined };\n    }\n    return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    inst._zod.optout = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n    });\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (def.innerType._zod.optin === \"optional\") {\n            const result = def.innerType._zod.run(payload, ctx);\n            if (result instanceof Promise)\n                return result.then((r) => handleOptionalResult(r, payload.value));\n            return handleOptionalResult(result, payload.value);\n        }\n        if (payload.value === undefined) {\n            return payload;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"pattern\", () => {\n        const pattern = def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazy(inst._zod, \"values\", () => {\n        return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault always returns the default value immediately.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => {\n        const v = def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.value;\n                if (result.issues.length) {\n                    payload.value = def.catchValue({\n                        ...payload,\n                        error: {\n                            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                        },\n                        input: payload.value,\n                    });\n                    payload.issues = [];\n                }\n                return payload;\n            });\n        }\n        payload.value = result.value;\n        if (result.issues.length) {\n            payload.value = def.catchValue({\n                ...payload,\n                error: {\n                    issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                },\n                input: payload.value,\n            });\n            payload.issues = [];\n        }\n        return payload;\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n    util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def, ctx));\n        }\n        return handlePipeResult(left, def, ctx);\n    };\n});\nfunction handlePipeResult(left, def, ctx) {\n    if (left.issues.length) {\n        return left;\n    }\n    return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n    util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n    util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    payload.value = Object.freeze(payload.value);\n    return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (typeof part === \"object\" && part !== null) {\n            // is Zod schema\n            if (!part._zod.pattern) {\n                // if (!source)\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n            if (!source)\n                throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n            const start = source.startsWith(\"^\") ? 1 : 0;\n            const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n            regexParts.push(source.slice(start, end));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"template_literal\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: def.format ?? \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // let _innerType!: any;\n    // util.defineLazy(def, \"getter\", () => {\n    //   if (!_innerType) {\n    //     _innerType = def.getter();\n    //   }\n    //   return () => _innerType;\n    // });\n    util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n    util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n    util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n    util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin ?? undefined);\n    util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout ?? undefined);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"حرف\", verb: \"أن يحوي\" },\n        file: { unit: \"بايت\", verb: \"أن يحوي\" },\n        array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n        set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"مدخل\",\n        email: \"بريد إلكتروني\",\n        url: \"رابط\",\n        emoji: \"إيموجي\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"تاريخ ووقت بمعيار ISO\",\n        date: \"تاريخ بمعيار ISO\",\n        time: \"وقت بمعيار ISO\",\n        duration: \"مدة بمعيار ISO\",\n        ipv4: \"عنوان IPv4\",\n        ipv6: \"عنوان IPv6\",\n        cidrv4: \"مدى عناوين بصيغة IPv4\",\n        cidrv6: \"مدى عناوين بصيغة IPv6\",\n        base64: \"نَص بترميز base64-encoded\",\n        base64url: \"نَص بترميز base64url-encoded\",\n        json_string: \"نَص على هيئة JSON\",\n        e164: \"رقم هاتف بمعيار E.164\",\n        jwt: \"JWT\",\n        template_literal: \"مدخل\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `مدخلات غير مقبولة: يفترض إدخال ${issue.expected}، ولكن تم إدخال ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n                return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n                return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} غير مقبول`;\n            }\n            case \"not_multiple_of\":\n                return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n            case \"invalid_key\":\n                return `معرف غير مقبول في ${issue.origin}`;\n            case \"invalid_union\":\n                return \"مدخل غير مقبول\";\n            case \"invalid_element\":\n                return `مدخل غير مقبول في ${issue.origin}`;\n            default:\n                return \"مدخل غير مقبول\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"simvol\", verb: \"olmalıdır\" },\n        file: { unit: \"bayt\", verb: \"olmalıdır\" },\n        array: { unit: \"element\", verb: \"olmalıdır\" },\n        set: { unit: \"element\", verb: \"olmalıdır\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Yanlış dəyər: gözlənilən ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n                return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n                if (_issue.format === \"ends_with\")\n                    return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n                if (_issue.format === \"includes\")\n                    return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n                if (_issue.format === \"regex\")\n                    return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n                return `Yanlış ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n            case \"unrecognized_keys\":\n                return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} daxilində yanlış açar`;\n            case \"invalid_union\":\n                return \"Yanlış dəyər\";\n            case \"invalid_element\":\n                return `${issue.origin} daxilində yanlış dəyər`;\n            default:\n                return `Yanlış dəyər`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n    const absCount = Math.abs(count);\n    const lastDigit = absCount % 10;\n    const lastTwoDigits = absCount % 100;\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n        return many;\n    }\n    if (lastDigit === 1) {\n        return one;\n    }\n    if (lastDigit >= 2 && lastDigit <= 4) {\n        return few;\n    }\n    return many;\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"сімвал\",\n                few: \"сімвалы\",\n                many: \"сімвалаў\",\n            },\n            verb: \"мець\",\n        },\n        array: {\n            unit: {\n                one: \"элемент\",\n                few: \"элементы\",\n                many: \"элементаў\",\n            },\n            verb: \"мець\",\n        },\n        set: {\n            unit: {\n                one: \"элемент\",\n                few: \"элементы\",\n                many: \"элементаў\",\n            },\n            verb: \"мець\",\n        },\n        file: {\n            unit: {\n                one: \"байт\",\n                few: \"байты\",\n                many: \"байтаў\",\n            },\n            verb: \"мець\",\n        },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"лік\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"масіў\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"увод\",\n        email: \"email адрас\",\n        url: \"URL\",\n        emoji: \"эмодзі\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO дата і час\",\n        date: \"ISO дата\",\n        time: \"ISO час\",\n        duration: \"ISO працягласць\",\n        ipv4: \"IPv4 адрас\",\n        ipv6: \"IPv6 адрас\",\n        cidrv4: \"IPv4 дыяпазон\",\n        cidrv6: \"IPv6 дыяпазон\",\n        base64: \"радок у фармаце base64\",\n        base64url: \"радок у фармаце base64url\",\n        json_string: \"JSON радок\",\n        e164: \"нумар E.164\",\n        jwt: \"JWT\",\n        template_literal: \"увод\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Няправільны ўвод: чакаўся ${issue.expected}, атрымана ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const maxValue = Number(issue.maximum);\n                    const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n                }\n                return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const minValue = Number(issue.minimum);\n                    const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n                }\n                return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n                return `Няправільны ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Няправільны ключ у ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Няправільны ўвод\";\n            case \"invalid_element\":\n                return `Няправільнае значэнне ў ${issue.origin}`;\n            default:\n                return `Няправільны ўвод`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caràcters\", verb: \"contenir\" },\n        file: { unit: \"bytes\", verb: \"contenir\" },\n        array: { unit: \"elements\", verb: \"contenir\" },\n        set: { unit: \"elements\", verb: \"contenir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"entrada\",\n        email: \"adreça electrònica\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data i hora ISO\",\n        date: \"data ISO\",\n        time: \"hora ISO\",\n        duration: \"durada ISO\",\n        ipv4: \"adreça IPv4\",\n        ipv6: \"adreça IPv6\",\n        cidrv4: \"rang IPv4\",\n        cidrv6: \"rang IPv6\",\n        base64: \"cadena codificada en base64\",\n        base64url: \"cadena codificada en base64url\",\n        json_string: \"cadena JSON\",\n        e164: \"número E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n            // return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n                return `Format invàlid per a ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Clau invàlida a ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n            case \"invalid_element\":\n                return `Element invàlid a ${issue.origin}`;\n            default:\n                return `Entrada invàlida`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znaků\", verb: \"mít\" },\n        file: { unit: \"bajtů\", verb: \"mít\" },\n        array: { unit: \"prvků\", verb: \"mít\" },\n        set: { unit: \"prvků\", verb: \"mít\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"číslo\";\n            }\n            case \"string\": {\n                return \"řetězec\";\n            }\n            case \"boolean\": {\n                return \"boolean\";\n            }\n            case \"bigint\": {\n                return \"bigint\";\n            }\n            case \"function\": {\n                return \"funkce\";\n            }\n            case \"symbol\": {\n                return \"symbol\";\n            }\n            case \"undefined\": {\n                return \"undefined\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"pole\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"regulární výraz\",\n        email: \"e-mailová adresa\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"datum a čas ve formátu ISO\",\n        date: \"datum ve formátu ISO\",\n        time: \"čas ve formátu ISO\",\n        duration: \"doba trvání ISO\",\n        ipv4: \"IPv4 adresa\",\n        ipv6: \"IPv6 adresa\",\n        cidrv4: \"rozsah IPv4\",\n        cidrv6: \"rozsah IPv6\",\n        base64: \"řetězec zakódovaný ve formátu base64\",\n        base64url: \"řetězec zakódovaný ve formátu base64url\",\n        json_string: \"řetězec ve formátu JSON\",\n        e164: \"číslo E.164\",\n        jwt: \"JWT\",\n        template_literal: \"vstup\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Neplatný vstup: očekáváno ${issue.expected}, obdrženo ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n                }\n                return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n                }\n                return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n                return `Neplatný formát ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Neplatný klíč v ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Neplatný vstup\";\n            case \"invalid_element\":\n                return `Neplatná hodnota v ${issue.origin}`;\n            default:\n                return `Neplatný vstup`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tegn\", verb: \"havde\" },\n        file: { unit: \"bytes\", verb: \"havde\" },\n        array: { unit: \"elementer\", verb: \"indeholdt\" },\n        set: { unit: \"elementer\", verb: \"indeholdt\" },\n    };\n    const TypeNames = {\n        string: \"streng\",\n        number: \"tal\",\n        boolean: \"boolean\",\n        array: \"liste\",\n        object: \"objekt\",\n        set: \"sæt\",\n        file: \"fil\",\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    function getTypeName(type) {\n        return TypeNames[type] ?? type;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"tal\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"liste\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n                return \"objekt\";\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"e-mailadresse\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dato- og klokkeslæt\",\n        date: \"ISO-dato\",\n        time: \"ISO-klokkeslæt\",\n        duration: \"ISO-varighed\",\n        ipv4: \"IPv4-område\",\n        ipv6: \"IPv6-område\",\n        cidrv4: \"IPv4-spektrum\",\n        cidrv6: \"IPv6-spektrum\",\n        base64: \"base64-kodet streng\",\n        base64url: \"base64url-kodet streng\",\n        json_string: \"JSON-streng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ugyldigt input: forventede ${getTypeName(issue.expected)}, fik ${getTypeName(parsedType(issue.input))}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ugyldig værdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ugyldigt valg: forventede en af følgende ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                const origin = getTypeName(issue.origin);\n                if (sizing)\n                    return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n                return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                const origin = getTypeName(issue.origin);\n                if (sizing) {\n                    return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;\n                return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ugyldigt tal: skal være deleligt med ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Ukendte nøgler\" : \"Ukendt nøgle\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ugyldig nøgle i ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n            case \"invalid_element\":\n                return `Ugyldig værdi i ${issue.origin}`;\n            default:\n                return `Ugyldigt input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"Zeichen\", verb: \"zu haben\" },\n        file: { unit: \"Bytes\", verb: \"zu haben\" },\n        array: { unit: \"Elemente\", verb: \"zu haben\" },\n        set: { unit: \"Elemente\", verb: \"zu haben\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"Array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"Eingabe\",\n        email: \"E-Mail-Adresse\",\n        url: \"URL\",\n        emoji: \"Emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-Datum und -Uhrzeit\",\n        date: \"ISO-Datum\",\n        time: \"ISO-Uhrzeit\",\n        duration: \"ISO-Dauer\",\n        ipv4: \"IPv4-Adresse\",\n        ipv6: \"IPv6-Adresse\",\n        cidrv4: \"IPv4-Bereich\",\n        cidrv6: \"IPv6-Bereich\",\n        base64: \"Base64-codierter String\",\n        base64url: \"Base64-URL-codierter String\",\n        json_string: \"JSON-String\",\n        e164: \"E.164-Nummer\",\n        jwt: \"JWT\",\n        template_literal: \"Eingabe\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ungültige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n                return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n                }\n                return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n                if (_issue.format === \"ends_with\")\n                    return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n                if (_issue.format === \"includes\")\n                    return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n                if (_issue.format === \"regex\")\n                    return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n                return `Ungültig: ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ungültiger Schlüssel in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ungültige Eingabe\";\n            case \"invalid_element\":\n                return `Ungültiger Wert in ${issue.origin}`;\n            default:\n                return `Ungültige Eingabe`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"NaN\" : \"number\";\n        }\n        case \"object\": {\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                return data.constructor.name;\n            }\n        }\n    }\n    return t;\n};\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"characters\", verb: \"to have\" },\n        file: { unit: \"bytes\", verb: \"to have\" },\n        array: { unit: \"items\", verb: \"to have\" },\n        set: { unit: \"items\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const Nouns = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Invalid string: must start with \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Invalid string: must end with \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Invalid string: must include \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Invalid string: must match pattern ${_issue.pattern}`;\n                return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Invalid number: must be a multiple of ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Invalid key in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Invalid input\";\n            case \"invalid_element\":\n                return `Invalid value in ${issue.origin}`;\n            default:\n                return `Invalid input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n        }\n        case \"object\": {\n            if (Array.isArray(data)) {\n                return \"tabelo\";\n            }\n            if (data === null) {\n                return \"senvalora\";\n            }\n            if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                return data.constructor.name;\n            }\n        }\n    }\n    return t;\n};\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karaktrojn\", verb: \"havi\" },\n        file: { unit: \"bajtojn\", verb: \"havi\" },\n        array: { unit: \"elementojn\", verb: \"havi\" },\n        set: { unit: \"elementojn\", verb: \"havi\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const Nouns = {\n        regex: \"enigo\",\n        email: \"retadreso\",\n        url: \"URL\",\n        emoji: \"emoĝio\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-datotempo\",\n        date: \"ISO-dato\",\n        time: \"ISO-tempo\",\n        duration: \"ISO-daŭro\",\n        ipv4: \"IPv4-adreso\",\n        ipv6: \"IPv6-adreso\",\n        cidrv4: \"IPv4-rango\",\n        cidrv6: \"IPv6-rango\",\n        base64: \"64-ume kodita karaktraro\",\n        base64url: \"URL-64-ume kodita karaktraro\",\n        json_string: \"JSON-karaktraro\",\n        e164: \"E.164-nombro\",\n        jwt: \"JWT\",\n        template_literal: \"enigo\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Nevalida enigo: atendiĝis ${issue.expected}, riceviĝis ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n                return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n                return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Nevalida ŝlosilo en ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Nevalida enigo\";\n            case \"invalid_element\":\n                return `Nevalida valoro en ${issue.origin}`;\n            default:\n                return `Nevalida enigo`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caracteres\", verb: \"tener\" },\n        file: { unit: \"bytes\", verb: \"tener\" },\n        array: { unit: \"elementos\", verb: \"tener\" },\n        set: { unit: \"elementos\", verb: \"tener\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"número\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"arreglo\";\n                }\n                if (data === null) {\n                    return \"nulo\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"entrada\",\n        email: \"dirección de correo electrónico\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"fecha y hora ISO\",\n        date: \"fecha ISO\",\n        time: \"hora ISO\",\n        duration: \"duración ISO\",\n        ipv4: \"dirección IPv4\",\n        ipv6: \"dirección IPv6\",\n        cidrv4: \"rango IPv4\",\n        cidrv6: \"rango IPv6\",\n        base64: \"cadena codificada en base64\",\n        base64url: \"URL codificada en base64\",\n        json_string: \"cadena JSON\",\n        e164: \"número E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Entrada inválida: se esperaba ${issue.expected}, recibido ${parsedType(issue.input)}`;\n            // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n                return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Demasiado pequeño: se esperaba que ${issue.origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Demasiado pequeño: se esperaba que ${issue.origin} fuera ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n                return `Inválido ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Llave inválida en ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada inválida\";\n            case \"invalid_element\":\n                return `Valor inválido en ${issue.origin}`;\n            default:\n                return `Entrada inválida`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n        file: { unit: \"بایت\", verb: \"داشته باشد\" },\n        array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n        set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"آرایه\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ورودی\",\n        email: \"آدرس ایمیل\",\n        url: \"URL\",\n        emoji: \"ایموجی\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"تاریخ و زمان ایزو\",\n        date: \"تاریخ ایزو\",\n        time: \"زمان ایزو\",\n        duration: \"مدت زمان ایزو\",\n        ipv4: \"IPv4 آدرس\",\n        ipv6: \"IPv6 آدرس\",\n        cidrv4: \"IPv4 دامنه\",\n        cidrv6: \"IPv6 دامنه\",\n        base64: \"base64-encoded رشته\",\n        base64url: \"base64url-encoded رشته\",\n        json_string: \"JSON رشته\",\n        e164: \"E.164 عدد\",\n        jwt: \"JWT\",\n        template_literal: \"ورودی\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `ورودی نامعتبر: می‌بایست ${issue.expected} می‌بود، ${parsedType(issue.input)} دریافت شد`;\n            case \"invalid_value\":\n                if (issue.values.length === 1) {\n                    return `ورودی نامعتبر: می‌بایست ${util.stringifyPrimitive(issue.values[0])} می‌بود`;\n                }\n                return `گزینه نامعتبر: می‌بایست یکی از ${util.joinValues(issue.values, \"|\")} می‌بود`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n                }\n                return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n                }\n                return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n                }\n                if (_issue.format === \"ends_with\") {\n                    return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n                }\n                if (_issue.format === \"includes\") {\n                    return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n                }\n                if (_issue.format === \"regex\") {\n                    return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n                }\n                return `${Nouns[_issue.format] ?? issue.format} نامعتبر`;\n            }\n            case \"not_multiple_of\":\n                return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n            case \"unrecognized_keys\":\n                return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `کلید ناشناس در ${issue.origin}`;\n            case \"invalid_union\":\n                return `ورودی نامعتبر`;\n            case \"invalid_element\":\n                return `مقدار نامعتبر در ${issue.origin}`;\n            default:\n                return `ورودی نامعتبر`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n        file: { unit: \"tavua\", subject: \"tiedoston\" },\n        array: { unit: \"alkiota\", subject: \"listan\" },\n        set: { unit: \"alkiota\", subject: \"joukon\" },\n        number: { unit: \"\", subject: \"luvun\" },\n        bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n        int: { unit: \"\", subject: \"kokonaisluvun\" },\n        date: { unit: \"\", subject: \"päivämäärän\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"säännöllinen lauseke\",\n        email: \"sähköpostiosoite\",\n        url: \"URL-osoite\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-aikaleima\",\n        date: \"ISO-päivämäärä\",\n        time: \"ISO-aika\",\n        duration: \"ISO-kesto\",\n        ipv4: \"IPv4-osoite\",\n        ipv6: \"IPv6-osoite\",\n        cidrv4: \"IPv4-alue\",\n        cidrv6: \"IPv6-alue\",\n        base64: \"base64-koodattu merkkijono\",\n        base64url: \"base64url-koodattu merkkijono\",\n        json_string: \"JSON-merkkijono\",\n        e164: \"E.164-luku\",\n        jwt: \"JWT\",\n        template_literal: \"templaattimerkkijono\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n                }\n                return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n                }\n                return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\") {\n                    return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n                }\n                return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return \"Virheellinen avain tietueessa\";\n            case \"invalid_union\":\n                return \"Virheellinen unioni\";\n            case \"invalid_element\":\n                return \"Virheellinen arvo joukossa\";\n            default:\n                return `Virheellinen syöte`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caractères\", verb: \"avoir\" },\n        file: { unit: \"octets\", verb: \"avoir\" },\n        array: { unit: \"éléments\", verb: \"avoir\" },\n        set: { unit: \"éléments\", verb: \"avoir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"tableau\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"entrée\",\n        email: \"adresse e-mail\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"date et heure ISO\",\n        date: \"date ISO\",\n        time: \"heure ISO\",\n        duration: \"durée ISO\",\n        ipv4: \"adresse IPv4\",\n        ipv6: \"adresse IPv6\",\n        cidrv4: \"plage IPv4\",\n        cidrv6: \"plage IPv6\",\n        base64: \"chaîne encodée en base64\",\n        base64url: \"chaîne encodée en base64url\",\n        json_string: \"chaîne JSON\",\n        e164: \"numéro E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrée\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Entrée invalide : ${issue.expected} attendu, ${parsedType(issue.input)} reçu`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n                return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n                return `Trop grand : ${issue.origin ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} invalide`;\n            }\n            case \"not_multiple_of\":\n                return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Clé invalide dans ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrée invalide\";\n            case \"invalid_element\":\n                return `Valeur invalide dans ${issue.origin}`;\n            default:\n                return `Entrée invalide`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caractères\", verb: \"avoir\" },\n        file: { unit: \"octets\", verb: \"avoir\" },\n        array: { unit: \"éléments\", verb: \"avoir\" },\n        set: { unit: \"éléments\", verb: \"avoir\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"entrée\",\n        email: \"adresse courriel\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"date-heure ISO\",\n        date: \"date ISO\",\n        time: \"heure ISO\",\n        duration: \"durée ISO\",\n        ipv4: \"adresse IPv4\",\n        ipv6: \"adresse IPv6\",\n        cidrv4: \"plage IPv4\",\n        cidrv6: \"plage IPv6\",\n        base64: \"chaîne encodée en base64\",\n        base64url: \"chaîne encodée en base64url\",\n        json_string: \"chaîne JSON\",\n        e164: \"numéro E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrée\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Entrée invalide : attendu ${issue.expected}, reçu ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"≤\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n                return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"≥\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} invalide`;\n            }\n            case \"not_multiple_of\":\n                return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Clé invalide dans ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrée invalide\";\n            case \"invalid_element\":\n                return `Valeur invalide dans ${issue.origin}`;\n            default:\n                return `Entrée invalide`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"אותיות\", verb: \"לכלול\" },\n        file: { unit: \"בייטים\", verb: \"לכלול\" },\n        array: { unit: \"פריטים\", verb: \"לכלול\" },\n        set: { unit: \"פריטים\", verb: \"לכלול\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"קלט\",\n        email: \"כתובת אימייל\",\n        url: \"כתובת רשת\",\n        emoji: \"אימוג'י\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"תאריך וזמן ISO\",\n        date: \"תאריך ISO\",\n        time: \"זמן ISO\",\n        duration: \"משך זמן ISO\",\n        ipv4: \"כתובת IPv4\",\n        ipv6: \"כתובת IPv6\",\n        cidrv4: \"טווח IPv4\",\n        cidrv6: \"טווח IPv6\",\n        base64: \"מחרוזת בבסיס 64\",\n        base64url: \"מחרוזת בבסיס 64 לכתובות רשת\",\n        json_string: \"מחרוזת JSON\",\n        e164: \"מספר E.164\",\n        jwt: \"JWT\",\n        template_literal: \"קלט\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;\n            // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;\n                return `קלט לא תקין: צריך אחת מהאפשרויות  ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `מחרוזת לא תקינה: חייבת להתחיל ב\"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `מחרוזת לא תקינה: חייבת להסתיים ב \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `מחרוזת לא תקינה: חייבת לכלול \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} לא תקין`;\n            }\n            case \"not_multiple_of\":\n                return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `מפתח לא תקין ב${issue.origin}`;\n            case \"invalid_union\":\n                return \"קלט לא תקין\";\n            case \"invalid_element\":\n                return `ערך לא תקין ב${issue.origin}`;\n            default:\n                return `קלט לא תקין`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"legyen\" },\n        file: { unit: \"byte\", verb: \"legyen\" },\n        array: { unit: \"elem\", verb: \"legyen\" },\n        set: { unit: \"elem\", verb: \"legyen\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"szám\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"tömb\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"bemenet\",\n        email: \"email cím\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO időbélyeg\",\n        date: \"ISO dátum\",\n        time: \"ISO idő\",\n        duration: \"ISO időintervallum\",\n        ipv4: \"IPv4 cím\",\n        ipv6: \"IPv6 cím\",\n        cidrv4: \"IPv4 tartomány\",\n        cidrv6: \"IPv6 tartomány\",\n        base64: \"base64-kódolt string\",\n        base64url: \"base64url-kódolt string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 szám\",\n        jwt: \"JWT\",\n        template_literal: \"bemenet\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Érvénytelen bemenet: a várt érték ${issue.expected}, a kapott érték ${parsedType(issue.input)}`;\n            // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n                return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n                if (_issue.format === \"ends_with\")\n                    return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n                if (_issue.format === \"includes\")\n                    return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n                if (_issue.format === \"regex\")\n                    return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n                return `Érvénytelen ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n            case \"unrecognized_keys\":\n                return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Érvénytelen kulcs ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Érvénytelen bemenet\";\n            case \"invalid_element\":\n                return `Érvénytelen érték: ${issue.origin}`;\n            default:\n                return `Érvénytelen bemenet`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"memiliki\" },\n        file: { unit: \"byte\", verb: \"memiliki\" },\n        array: { unit: \"item\", verb: \"memiliki\" },\n        set: { unit: \"item\", verb: \"memiliki\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"alamat email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"tanggal dan waktu format ISO\",\n        date: \"tanggal format ISO\",\n        time: \"jam format ISO\",\n        duration: \"durasi format ISO\",\n        ipv4: \"alamat IPv4\",\n        ipv6: \"alamat IPv6\",\n        cidrv4: \"rentang alamat IPv4\",\n        cidrv6: \"rentang alamat IPv6\",\n        base64: \"string dengan enkode base64\",\n        base64url: \"string dengan enkode base64url\",\n        json_string: \"string JSON\",\n        e164: \"angka E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n                return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n            }\n            case \"not_multiple_of\":\n                return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Kunci tidak valid di ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input tidak valid\";\n            case \"invalid_element\":\n                return `Nilai tidak valid di ${issue.origin}`;\n            default:\n                return `Input tidak valid`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"NaN\" : \"númer\";\n        }\n        case \"object\": {\n            if (Array.isArray(data)) {\n                return \"fylki\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                return data.constructor.name;\n            }\n        }\n    }\n    return t;\n};\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"stafi\", verb: \"að hafa\" },\n        file: { unit: \"bæti\", verb: \"að hafa\" },\n        array: { unit: \"hluti\", verb: \"að hafa\" },\n        set: { unit: \"hluti\", verb: \"að hafa\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const Nouns = {\n        regex: \"gildi\",\n        email: \"netfang\",\n        url: \"vefslóð\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dagsetning og tími\",\n        date: \"ISO dagsetning\",\n        time: \"ISO tími\",\n        duration: \"ISO tímalengd\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded strengur\",\n        base64url: \"base64url-encoded strengur\",\n        json_string: \"JSON strengur\",\n        e164: \"E.164 tölugildi\",\n        jwt: \"JWT\",\n        template_literal: \"gildi\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Rangt gildi: Þú slóst inn ${parsedType(issue.input)} þar sem á að vera ${issue.expected}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Rangt gildi: gert ráð fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ógilt val: má vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n                return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} sé ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Ógildur strengur: verður að byrja á \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Ógildur strengur: verður að enda á \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ógildur strengur: verður að innihalda \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`;\n                return `Rangt ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Röng tala: verður að vera margfeldi af ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Óþekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Rangur lykill í ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Rangt gildi\";\n            case \"invalid_element\":\n                return `Rangt gildi í ${issue.origin}`;\n            default:\n                return `Rangt gildi`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caratteri\", verb: \"avere\" },\n        file: { unit: \"byte\", verb: \"avere\" },\n        array: { unit: \"elementi\", verb: \"avere\" },\n        set: { unit: \"elementi\", verb: \"avere\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"numero\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"vettore\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"indirizzo email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data e ora ISO\",\n        date: \"data ISO\",\n        time: \"ora ISO\",\n        duration: \"durata ISO\",\n        ipv4: \"indirizzo IPv4\",\n        ipv6: \"indirizzo IPv6\",\n        cidrv4: \"intervallo IPv4\",\n        cidrv6: \"intervallo IPv6\",\n        base64: \"stringa codificata in base64\",\n        base64url: \"URL codificata in base64\",\n        json_string: \"stringa JSON\",\n        e164: \"numero E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n            // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n                return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n                return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Chiave non valida in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input non valido\";\n            case \"invalid_element\":\n                return `Valore non valido in ${issue.origin}`;\n            default:\n                return `Input non valido`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"文字\", verb: \"である\" },\n        file: { unit: \"バイト\", verb: \"である\" },\n        array: { unit: \"要素\", verb: \"である\" },\n        set: { unit: \"要素\", verb: \"である\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"数値\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"配列\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"入力値\",\n        email: \"メールアドレス\",\n        url: \"URL\",\n        emoji: \"絵文字\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO日時\",\n        date: \"ISO日付\",\n        time: \"ISO時刻\",\n        duration: \"ISO期間\",\n        ipv4: \"IPv4アドレス\",\n        ipv6: \"IPv6アドレス\",\n        cidrv4: \"IPv4範囲\",\n        cidrv6: \"IPv6範囲\",\n        base64: \"base64エンコード文字列\",\n        base64url: \"base64urlエンコード文字列\",\n        json_string: \"JSON文字列\",\n        e164: \"E.164番号\",\n        jwt: \"JWT\",\n        template_literal: \"入力値\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `無効な入力: ${issue.expected}が期待されましたが、${parsedType(issue.input)}が入力されました`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n                return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n                return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n                return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n                if (_issue.format === \"ends_with\")\n                    return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n                if (_issue.format === \"includes\")\n                    return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n                if (_issue.format === \"regex\")\n                    return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n                return `無効な${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n            case \"unrecognized_keys\":\n                return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n            case \"invalid_key\":\n                return `${issue.origin}内の無効なキー`;\n            case \"invalid_union\":\n                return \"無効な入力\";\n            case \"invalid_element\":\n                return `${issue.origin}内の無効な値`;\n            default:\n                return `無効な入力`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n        file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n        array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n        set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"មិនមែនជាលេខ (NaN)\" : \"លេខ\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"អារេ (Array)\";\n                }\n                if (data === null) {\n                    return \"គ្មានតម្លៃ (null)\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ទិន្នន័យបញ្ចូល\",\n        email: \"អាសយដ្ឋានអ៊ីមែល\",\n        url: \"URL\",\n        emoji: \"សញ្ញាអារម្មណ៍\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n        date: \"កាលបរិច្ឆេទ ISO\",\n        time: \"ម៉ោង ISO\",\n        duration: \"រយៈពេល ISO\",\n        ipv4: \"អាសយដ្ឋាន IPv4\",\n        ipv6: \"អាសយដ្ឋាន IPv6\",\n        cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n        cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n        base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n        base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n        json_string: \"ខ្សែអក្សរ JSON\",\n        e164: \"លេខ E.164\",\n        jwt: \"JWT\",\n        template_literal: \"ទិន្នន័យបញ្ចូល\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n                return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n                return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n                return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n            case \"invalid_union\":\n                return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n            case \"invalid_element\":\n                return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n            default:\n                return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"문자\", verb: \"to have\" },\n        file: { unit: \"바이트\", verb: \"to have\" },\n        array: { unit: \"개\", verb: \"to have\" },\n        set: { unit: \"개\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"입력\",\n        email: \"이메일 주소\",\n        url: \"URL\",\n        emoji: \"이모지\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO 날짜시간\",\n        date: \"ISO 날짜\",\n        time: \"ISO 시간\",\n        duration: \"ISO 기간\",\n        ipv4: \"IPv4 주소\",\n        ipv6: \"IPv6 주소\",\n        cidrv4: \"IPv4 범위\",\n        cidrv6: \"IPv6 범위\",\n        base64: \"base64 인코딩 문자열\",\n        base64url: \"base64url 인코딩 문자열\",\n        json_string: \"JSON 문자열\",\n        e164: \"E.164 번호\",\n        jwt: \"JWT\",\n        template_literal: \"입력\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `잘못된 입력: 예상 타입은 ${issue.expected}, 받은 타입은 ${parsedType(issue.input)}입니다`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n                return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"이하\" : \"미만\";\n                const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n                const sizing = getSizing(issue.origin);\n                const unit = sizing?.unit ?? \"요소\";\n                if (sizing)\n                    return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n                return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"이상\" : \"초과\";\n                const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n                const sizing = getSizing(issue.origin);\n                const unit = sizing?.unit ?? \"요소\";\n                if (sizing) {\n                    return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n                }\n                return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n                if (_issue.format === \"includes\")\n                    return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n                if (_issue.format === \"regex\")\n                    return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n                return `잘못된 ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n            case \"unrecognized_keys\":\n                return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `잘못된 키: ${issue.origin}`;\n            case \"invalid_union\":\n                return `잘못된 입력`;\n            case \"invalid_element\":\n                return `잘못된 값: ${issue.origin}`;\n            default:\n                return `잘못된 입력`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"знаци\", verb: \"да имаат\" },\n        file: { unit: \"бајти\", verb: \"да имаат\" },\n        array: { unit: \"ставки\", verb: \"да имаат\" },\n        set: { unit: \"ставки\", verb: \"да имаат\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"број\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"низа\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"внес\",\n        email: \"адреса на е-пошта\",\n        url: \"URL\",\n        emoji: \"емоџи\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO датум и време\",\n        date: \"ISO датум\",\n        time: \"ISO време\",\n        duration: \"ISO времетраење\",\n        ipv4: \"IPv4 адреса\",\n        ipv6: \"IPv6 адреса\",\n        cidrv4: \"IPv4 опсег\",\n        cidrv6: \"IPv6 опсег\",\n        base64: \"base64-енкодирана низа\",\n        base64url: \"base64url-енкодирана низа\",\n        json_string: \"JSON низа\",\n        e164: \"E.164 број\",\n        jwt: \"JWT\",\n        template_literal: \"внес\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Грешен внес: се очекува ${issue.expected}, примено ${parsedType(issue.input)}`;\n            // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n                return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n                return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Грешен број: мора да биде делив со ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Грешен клуч во ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Грешен внес\";\n            case \"invalid_element\":\n                return `Грешна вредност во ${issue.origin}`;\n            default:\n                return `Грешен внес`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"aksara\", verb: \"mempunyai\" },\n        file: { unit: \"bait\", verb: \"mempunyai\" },\n        array: { unit: \"elemen\", verb: \"mempunyai\" },\n        set: { unit: \"elemen\", verb: \"mempunyai\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"alamat e-mel\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"tarikh masa ISO\",\n        date: \"tarikh ISO\",\n        time: \"masa ISO\",\n        duration: \"tempoh ISO\",\n        ipv4: \"alamat IPv4\",\n        ipv6: \"alamat IPv6\",\n        cidrv4: \"julat IPv4\",\n        cidrv6: \"julat IPv6\",\n        base64: \"string dikodkan base64\",\n        base64url: \"string dikodkan base64url\",\n        json_string: \"string JSON\",\n        e164: \"nombor E.164\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n                return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n            }\n            case \"not_multiple_of\":\n                return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Kunci tidak sah dalam ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Input tidak sah\";\n            case \"invalid_element\":\n                return `Nilai tidak sah dalam ${issue.origin}`;\n            default:\n                return `Input tidak sah`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tekens\" },\n        file: { unit: \"bytes\" },\n        array: { unit: \"elementen\" },\n        set: { unit: \"elementen\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"getal\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"invoer\",\n        email: \"emailadres\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datum en tijd\",\n        date: \"ISO datum\",\n        time: \"ISO tijd\",\n        duration: \"ISO duur\",\n        ipv4: \"IPv4-adres\",\n        ipv6: \"IPv6-adres\",\n        cidrv4: \"IPv4-bereik\",\n        cidrv6: \"IPv6-bereik\",\n        base64: \"base64-gecodeerde tekst\",\n        base64url: \"base64 URL-gecodeerde tekst\",\n        json_string: \"JSON string\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"invoer\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n                return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n                }\n                return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n                if (_issue.format === \"includes\")\n                    return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n                if (_issue.format === \"regex\")\n                    return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n                return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n            case \"unrecognized_keys\":\n                return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ongeldige key in ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ongeldige invoer\";\n            case \"invalid_element\":\n                return `Ongeldige waarde in ${issue.origin}`;\n            default:\n                return `Ongeldige invoer`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tegn\", verb: \"å ha\" },\n        file: { unit: \"bytes\", verb: \"å ha\" },\n        array: { unit: \"elementer\", verb: \"å inneholde\" },\n        set: { unit: \"elementer\", verb: \"å inneholde\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"tall\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"liste\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"input\",\n        email: \"e-postadresse\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO dato- og klokkeslett\",\n        date: \"ISO-dato\",\n        time: \"ISO-klokkeslett\",\n        duration: \"ISO-varighet\",\n        ipv4: \"IPv4-område\",\n        ipv6: \"IPv6-område\",\n        cidrv4: \"IPv4-spekter\",\n        cidrv6: \"IPv6-spekter\",\n        base64: \"base64-enkodet streng\",\n        base64url: \"base64url-enkodet streng\",\n        json_string: \"JSON-streng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n                return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n                return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ugyldig nøkkel i ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ugyldig input\";\n            case \"invalid_element\":\n                return `Ugyldig verdi i ${issue.origin}`;\n            default:\n                return `Ugyldig input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"harf\", verb: \"olmalıdır\" },\n        file: { unit: \"bayt\", verb: \"olmalıdır\" },\n        array: { unit: \"unsur\", verb: \"olmalıdır\" },\n        set: { unit: \"unsur\", verb: \"olmalıdır\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"numara\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"saf\";\n                }\n                if (data === null) {\n                    return \"gayb\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"giren\",\n        email: \"epostagâh\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO hengâmı\",\n        date: \"ISO tarihi\",\n        time: \"ISO zamanı\",\n        duration: \"ISO müddeti\",\n        ipv4: \"IPv4 nişânı\",\n        ipv6: \"IPv6 nişânı\",\n        cidrv4: \"IPv4 menzili\",\n        cidrv6: \"IPv6 menzili\",\n        base64: \"base64-şifreli metin\",\n        base64url: \"base64url-şifreli metin\",\n        json_string: \"JSON metin\",\n        e164: \"E.164 sayısı\",\n        jwt: \"JWT\",\n        template_literal: \"giren\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Fâsit giren: umulan ${issue.expected}, alınan ${parsedType(issue.input)}`;\n            // return `Fâsit giren: umulan ${issue.expected}, alınan ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n                return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n                }\n                return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n                if (_issue.format === \"ends_with\")\n                    return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n                if (_issue.format === \"includes\")\n                    return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n                if (_issue.format === \"regex\")\n                    return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n                return `Fâsit ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n            case \"unrecognized_keys\":\n                return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} için tanınmayan anahtar var.`;\n            case \"invalid_union\":\n                return \"Giren tanınamadı.\";\n            case \"invalid_element\":\n                return `${issue.origin} için tanınmayan kıymet var.`;\n            default:\n                return `Kıymet tanınamadı.`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"توکي\", verb: \"ولري\" },\n        file: { unit: \"بایټس\", verb: \"ولري\" },\n        array: { unit: \"توکي\", verb: \"ولري\" },\n        set: { unit: \"توکي\", verb: \"ولري\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"ارې\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ورودي\",\n        email: \"بریښنالیک\",\n        url: \"یو آر ال\",\n        emoji: \"ایموجي\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"نیټه او وخت\",\n        date: \"نېټه\",\n        time: \"وخت\",\n        duration: \"موده\",\n        ipv4: \"د IPv4 پته\",\n        ipv6: \"د IPv6 پته\",\n        cidrv4: \"د IPv4 ساحه\",\n        cidrv6: \"د IPv6 ساحه\",\n        base64: \"base64-encoded متن\",\n        base64url: \"base64url-encoded متن\",\n        json_string: \"JSON متن\",\n        e164: \"د E.164 شمېره\",\n        jwt: \"JWT\",\n        template_literal: \"ورودي\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `ناسم ورودي: باید ${issue.expected} وای, مګر ${parsedType(issue.input)} ترلاسه شو`;\n            case \"invalid_value\":\n                if (issue.values.length === 1) {\n                    return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n                }\n                return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n                }\n                return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n                }\n                return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n                }\n                if (_issue.format === \"ends_with\") {\n                    return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n                }\n                if (_issue.format === \"includes\") {\n                    return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n                }\n                if (_issue.format === \"regex\") {\n                    return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n                }\n                return `${Nouns[_issue.format] ?? issue.format} ناسم دی`;\n            }\n            case \"not_multiple_of\":\n                return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n            case \"unrecognized_keys\":\n                return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `ناسم کلیډ په ${issue.origin} کې`;\n            case \"invalid_union\":\n                return `ناسمه ورودي`;\n            case \"invalid_element\":\n                return `ناسم عنصر په ${issue.origin} کې`;\n            default:\n                return `ناسمه ورودي`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znaków\", verb: \"mieć\" },\n        file: { unit: \"bajtów\", verb: \"mieć\" },\n        array: { unit: \"elementów\", verb: \"mieć\" },\n        set: { unit: \"elementów\", verb: \"mieć\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"tablica\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"wyrażenie\",\n        email: \"adres email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data i godzina w formacie ISO\",\n        date: \"data w formacie ISO\",\n        time: \"godzina w formacie ISO\",\n        duration: \"czas trwania ISO\",\n        ipv4: \"adres IPv4\",\n        ipv6: \"adres IPv6\",\n        cidrv4: \"zakres IPv4\",\n        cidrv6: \"zakres IPv6\",\n        base64: \"ciąg znaków zakodowany w formacie base64\",\n        base64url: \"ciąg znaków zakodowany w formacie base64url\",\n        json_string: \"ciąg znaków w formacie JSON\",\n        e164: \"liczba E.164\",\n        jwt: \"JWT\",\n        template_literal: \"wejście\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Nieprawidłowe dane wejściowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n                }\n                return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n                }\n                return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n                return `Nieprawidłow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Nieprawidłowy klucz w ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Nieprawidłowe dane wejściowe\";\n            case \"invalid_element\":\n                return `Nieprawidłowa wartość w ${issue.origin}`;\n            default:\n                return `Nieprawidłowe dane wejściowe`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"caracteres\", verb: \"ter\" },\n        file: { unit: \"bytes\", verb: \"ter\" },\n        array: { unit: \"itens\", verb: \"ter\" },\n        set: { unit: \"itens\", verb: \"ter\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"número\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"nulo\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"padrão\",\n        email: \"endereço de e-mail\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"data e hora ISO\",\n        date: \"data ISO\",\n        time: \"hora ISO\",\n        duration: \"duração ISO\",\n        ipv4: \"endereço IPv4\",\n        ipv6: \"endereço IPv6\",\n        cidrv4: \"faixa de IPv4\",\n        cidrv6: \"faixa de IPv6\",\n        base64: \"texto codificado em base64\",\n        base64url: \"URL codificada em base64\",\n        json_string: \"texto JSON\",\n        e164: \"número E.164\",\n        jwt: \"JWT\",\n        template_literal: \"entrada\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Tipo inválido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n                return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} inválido`;\n            }\n            case \"not_multiple_of\":\n                return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Chave inválida em ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Entrada inválida\";\n            case \"invalid_element\":\n                return `Valor inválido em ${issue.origin}`;\n            default:\n                return `Campo inválido`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n    const absCount = Math.abs(count);\n    const lastDigit = absCount % 10;\n    const lastTwoDigits = absCount % 100;\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n        return many;\n    }\n    if (lastDigit === 1) {\n        return one;\n    }\n    if (lastDigit >= 2 && lastDigit <= 4) {\n        return few;\n    }\n    return many;\n}\nconst error = () => {\n    const Sizable = {\n        string: {\n            unit: {\n                one: \"символ\",\n                few: \"символа\",\n                many: \"символов\",\n            },\n            verb: \"иметь\",\n        },\n        file: {\n            unit: {\n                one: \"байт\",\n                few: \"байта\",\n                many: \"байт\",\n            },\n            verb: \"иметь\",\n        },\n        array: {\n            unit: {\n                one: \"элемент\",\n                few: \"элемента\",\n                many: \"элементов\",\n            },\n            verb: \"иметь\",\n        },\n        set: {\n            unit: {\n                one: \"элемент\",\n                few: \"элемента\",\n                many: \"элементов\",\n            },\n            verb: \"иметь\",\n        },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"число\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"массив\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ввод\",\n        email: \"email адрес\",\n        url: \"URL\",\n        emoji: \"эмодзи\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO дата и время\",\n        date: \"ISO дата\",\n        time: \"ISO время\",\n        duration: \"ISO длительность\",\n        ipv4: \"IPv4 адрес\",\n        ipv6: \"IPv6 адрес\",\n        cidrv4: \"IPv4 диапазон\",\n        cidrv6: \"IPv6 диапазон\",\n        base64: \"строка в формате base64\",\n        base64url: \"строка в формате base64url\",\n        json_string: \"JSON строка\",\n        e164: \"номер E.164\",\n        jwt: \"JWT\",\n        template_literal: \"ввод\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const maxValue = Number(issue.maximum);\n                    const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n                }\n                return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    const minValue = Number(issue.minimum);\n                    const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n                    return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n                }\n                return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n                return `Неверный ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Неверное число: должно быть кратным ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Неверный ключ в ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Неверные входные данные\";\n            case \"invalid_element\":\n                return `Неверное значение в ${issue.origin}`;\n            default:\n                return `Неверные входные данные`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"znakov\", verb: \"imeti\" },\n        file: { unit: \"bajtov\", verb: \"imeti\" },\n        array: { unit: \"elementov\", verb: \"imeti\" },\n        set: { unit: \"elementov\", verb: \"imeti\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"število\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"tabela\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"vnos\",\n        email: \"e-poštni naslov\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datum in čas\",\n        date: \"ISO datum\",\n        time: \"ISO čas\",\n        duration: \"ISO trajanje\",\n        ipv4: \"IPv4 naslov\",\n        ipv6: \"IPv6 naslov\",\n        cidrv4: \"obseg IPv4\",\n        cidrv6: \"obseg IPv6\",\n        base64: \"base64 kodiran niz\",\n        base64url: \"base64url kodiran niz\",\n        json_string: \"JSON niz\",\n        e164: \"E.164 številka\",\n        jwt: \"JWT\",\n        template_literal: \"vnos\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n                return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n                return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Neveljaven ključ v ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Neveljaven vnos\";\n            case \"invalid_element\":\n                return `Neveljavna vrednost v ${issue.origin}`;\n            default:\n                return \"Neveljaven vnos\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"tecken\", verb: \"att ha\" },\n        file: { unit: \"bytes\", verb: \"att ha\" },\n        array: { unit: \"objekt\", verb: \"att innehålla\" },\n        set: { unit: \"objekt\", verb: \"att innehålla\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"antal\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"lista\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"reguljärt uttryck\",\n        email: \"e-postadress\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO-datum och tid\",\n        date: \"ISO-datum\",\n        time: \"ISO-tid\",\n        duration: \"ISO-varaktighet\",\n        ipv4: \"IPv4-intervall\",\n        ipv6: \"IPv6-intervall\",\n        cidrv4: \"IPv4-spektrum\",\n        cidrv6: \"IPv6-spektrum\",\n        base64: \"base64-kodad sträng\",\n        base64url: \"base64url-kodad sträng\",\n        json_string: \"JSON-sträng\",\n        e164: \"E.164-nummer\",\n        jwt: \"JWT\",\n        template_literal: \"mall-literal\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n                }\n                return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n                return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n            case \"invalid_union\":\n                return \"Ogiltig input\";\n            case \"invalid_element\":\n                return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n            default:\n                return `Ogiltig input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n        file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n        array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n        set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"எண் அல்லாதது\" : \"எண்\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"அணி\";\n                }\n                if (data === null) {\n                    return \"வெறுமை\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"உள்ளீடு\",\n        email: \"மின்னஞ்சல் முகவரி\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO தேதி நேரம்\",\n        date: \"ISO தேதி\",\n        time: \"ISO நேரம்\",\n        duration: \"ISO கால அளவு\",\n        ipv4: \"IPv4 முகவரி\",\n        ipv6: \"IPv6 முகவரி\",\n        cidrv4: \"IPv4 வரம்பு\",\n        cidrv6: \"IPv6 வரம்பு\",\n        base64: \"base64-encoded சரம்\",\n        base64url: \"base64url-encoded சரம்\",\n        json_string: \"JSON சரம்\",\n        e164: \"E.164 எண்\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${issue.expected}, பெறப்பட்டது ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n                return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n                }\n                return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n                }\n                return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n                if (_issue.format === \"ends_with\")\n                    return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n                if (_issue.format === \"includes\")\n                    return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n                if (_issue.format === \"regex\")\n                    return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n                return `தவறான ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n            case \"unrecognized_keys\":\n                return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} இல் தவறான விசை`;\n            case \"invalid_union\":\n                return \"தவறான உள்ளீடு\";\n            case \"invalid_element\":\n                return `${issue.origin} இல் தவறான மதிப்பு`;\n            default:\n                return `தவறான உள்ளீடு`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n        file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n        array: { unit: \"รายการ\", verb: \"ควรมี\" },\n        set: { unit: \"รายการ\", verb: \"ควรมี\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"ไม่ใช่ตัวเลข (NaN)\" : \"ตัวเลข\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"อาร์เรย์ (Array)\";\n                }\n                if (data === null) {\n                    return \"ไม่มีค่า (null)\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ข้อมูลที่ป้อน\",\n        email: \"ที่อยู่อีเมล\",\n        url: \"URL\",\n        emoji: \"อิโมจิ\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"วันที่เวลาแบบ ISO\",\n        date: \"วันที่แบบ ISO\",\n        time: \"เวลาแบบ ISO\",\n        duration: \"ช่วงเวลาแบบ ISO\",\n        ipv4: \"ที่อยู่ IPv4\",\n        ipv6: \"ที่อยู่ IPv6\",\n        cidrv4: \"ช่วง IP แบบ IPv4\",\n        cidrv6: \"ช่วง IP แบบ IPv6\",\n        base64: \"ข้อความแบบ Base64\",\n        base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n        json_string: \"ข้อความแบบ JSON\",\n        e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n        jwt: \"โทเคน JWT\",\n        template_literal: \"ข้อมูลที่ป้อน\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${issue.expected} แต่ได้รับ ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n                return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n                return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n                if (_issue.format === \"regex\")\n                    return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n                return `รูปแบบไม่ถูกต้อง: ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n            case \"unrecognized_keys\":\n                return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n            case \"invalid_union\":\n                return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n            case \"invalid_element\":\n                return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n            default:\n                return `ข้อมูลไม่ถูกต้อง`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"NaN\" : \"number\";\n        }\n        case \"object\": {\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                return data.constructor.name;\n            }\n        }\n    }\n    return t;\n};\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"karakter\", verb: \"olmalı\" },\n        file: { unit: \"bayt\", verb: \"olmalı\" },\n        array: { unit: \"öğe\", verb: \"olmalı\" },\n        set: { unit: \"öğe\", verb: \"olmalı\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const Nouns = {\n        regex: \"girdi\",\n        email: \"e-posta adresi\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO tarih ve saat\",\n        date: \"ISO tarih\",\n        time: \"ISO saat\",\n        duration: \"ISO süre\",\n        ipv4: \"IPv4 adresi\",\n        ipv6: \"IPv6 adresi\",\n        cidrv4: \"IPv4 aralığı\",\n        cidrv6: \"IPv6 aralığı\",\n        base64: \"base64 ile şifrelenmiş metin\",\n        base64url: \"base64url ile şifrelenmiş metin\",\n        json_string: \"JSON dizesi\",\n        e164: \"E.164 sayısı\",\n        jwt: \"JWT\",\n        template_literal: \"Şablon dizesi\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Geçersiz değer: beklenen ${issue.expected}, alınan ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n                return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n                if (_issue.format === \"ends_with\")\n                    return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n                if (_issue.format === \"includes\")\n                    return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n                if (_issue.format === \"regex\")\n                    return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n                return `Geçersiz ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n            case \"unrecognized_keys\":\n                return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} içinde geçersiz anahtar`;\n            case \"invalid_union\":\n                return \"Geçersiz değer\";\n            case \"invalid_element\":\n                return `${issue.origin} içinde geçersiz değer`;\n            default:\n                return `Geçersiz değer`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"символів\", verb: \"матиме\" },\n        file: { unit: \"байтів\", verb: \"матиме\" },\n        array: { unit: \"елементів\", verb: \"матиме\" },\n        set: { unit: \"елементів\", verb: \"матиме\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"число\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"масив\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"вхідні дані\",\n        email: \"адреса електронної пошти\",\n        url: \"URL\",\n        emoji: \"емодзі\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"дата та час ISO\",\n        date: \"дата ISO\",\n        time: \"час ISO\",\n        duration: \"тривалість ISO\",\n        ipv4: \"адреса IPv4\",\n        ipv6: \"адреса IPv6\",\n        cidrv4: \"діапазон IPv4\",\n        cidrv6: \"діапазон IPv6\",\n        base64: \"рядок у кодуванні base64\",\n        base64url: \"рядок у кодуванні base64url\",\n        json_string: \"рядок JSON\",\n        e164: \"номер E.164\",\n        jwt: \"JWT\",\n        template_literal: \"вхідні дані\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;\n            // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n                return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n                return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Неправильний ключ у ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Неправильні вхідні дані\";\n            case \"invalid_element\":\n                return `Неправильне значення у ${issue.origin}`;\n            default:\n                return `Неправильні вхідні дані`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"حروف\", verb: \"ہونا\" },\n        file: { unit: \"بائٹس\", verb: \"ہونا\" },\n        array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n        set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"نمبر\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"آرے\";\n                }\n                if (data === null) {\n                    return \"نل\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ان پٹ\",\n        email: \"ای میل ایڈریس\",\n        url: \"یو آر ایل\",\n        emoji: \"ایموجی\",\n        uuid: \"یو یو آئی ڈی\",\n        uuidv4: \"یو یو آئی ڈی وی 4\",\n        uuidv6: \"یو یو آئی ڈی وی 6\",\n        nanoid: \"نینو آئی ڈی\",\n        guid: \"جی یو آئی ڈی\",\n        cuid: \"سی یو آئی ڈی\",\n        cuid2: \"سی یو آئی ڈی 2\",\n        ulid: \"یو ایل آئی ڈی\",\n        xid: \"ایکس آئی ڈی\",\n        ksuid: \"کے ایس یو آئی ڈی\",\n        datetime: \"آئی ایس او ڈیٹ ٹائم\",\n        date: \"آئی ایس او تاریخ\",\n        time: \"آئی ایس او وقت\",\n        duration: \"آئی ایس او مدت\",\n        ipv4: \"آئی پی وی 4 ایڈریس\",\n        ipv6: \"آئی پی وی 6 ایڈریس\",\n        cidrv4: \"آئی پی وی 4 رینج\",\n        cidrv6: \"آئی پی وی 6 رینج\",\n        base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n        base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n        json_string: \"جے ایس او این سٹرنگ\",\n        e164: \"ای 164 نمبر\",\n        jwt: \"جے ڈبلیو ٹی\",\n        template_literal: \"ان پٹ\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `غلط ان پٹ: ${issue.expected} متوقع تھا، ${parsedType(issue.input)} موصول ہوا`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n                return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n                return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n                }\n                return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n                if (_issue.format === \"includes\")\n                    return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n                if (_issue.format === \"regex\")\n                    return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n                return `غلط ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n            case \"unrecognized_keys\":\n                return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} میں غلط کی`;\n            case \"invalid_union\":\n                return \"غلط ان پٹ\";\n            case \"invalid_element\":\n                return `${issue.origin} میں غلط ویلیو`;\n            default:\n                return `غلط ان پٹ`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"ký tự\", verb: \"có\" },\n        file: { unit: \"byte\", verb: \"có\" },\n        array: { unit: \"phần tử\", verb: \"có\" },\n        set: { unit: \"phần tử\", verb: \"có\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"số\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"mảng\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"đầu vào\",\n        email: \"địa chỉ email\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ngày giờ ISO\",\n        date: \"ngày ISO\",\n        time: \"giờ ISO\",\n        duration: \"khoảng thời gian ISO\",\n        ipv4: \"địa chỉ IPv4\",\n        ipv6: \"địa chỉ IPv6\",\n        cidrv4: \"dải IPv4\",\n        cidrv6: \"dải IPv6\",\n        base64: \"chuỗi mã hóa base64\",\n        base64url: \"chuỗi mã hóa base64url\",\n        json_string: \"chuỗi JSON\",\n        e164: \"số E.164\",\n        jwt: \"JWT\",\n        template_literal: \"đầu vào\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Đầu vào không hợp lệ: mong đợi ${issue.expected}, nhận được ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n                return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n                return `${Nouns[_issue.format] ?? issue.format} không hợp lệ`;\n            }\n            case \"not_multiple_of\":\n                return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Khóa không hợp lệ trong ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Đầu vào không hợp lệ\";\n            case \"invalid_element\":\n                return `Giá trị không hợp lệ trong ${issue.origin}`;\n            default:\n                return `Đầu vào không hợp lệ`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"字符\", verb: \"包含\" },\n        file: { unit: \"字节\", verb: \"包含\" },\n        array: { unit: \"项\", verb: \"包含\" },\n        set: { unit: \"项\", verb: \"包含\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"非数字(NaN)\" : \"数字\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"数组\";\n                }\n                if (data === null) {\n                    return \"空值(null)\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"输入\",\n        email: \"电子邮件\",\n        url: \"URL\",\n        emoji: \"表情符号\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO日期时间\",\n        date: \"ISO日期\",\n        time: \"ISO时间\",\n        duration: \"ISO时长\",\n        ipv4: \"IPv4地址\",\n        ipv6: \"IPv6地址\",\n        cidrv4: \"IPv4网段\",\n        cidrv6: \"IPv6网段\",\n        base64: \"base64编码字符串\",\n        base64url: \"base64url编码字符串\",\n        json_string: \"JSON字符串\",\n        e164: \"E.164号码\",\n        jwt: \"JWT\",\n        template_literal: \"输入\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `无效输入：期望 ${issue.expected}，实际接收 ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `无效输入：期望 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `无效选项：期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `数值过大：期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n                return `数值过大：期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `数值过小：期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `数值过小：期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `无效字符串：必须以 \"${_issue.prefix}\" 开头`;\n                if (_issue.format === \"ends_with\")\n                    return `无效字符串：必须以 \"${_issue.suffix}\" 结尾`;\n                if (_issue.format === \"includes\")\n                    return `无效字符串：必须包含 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `无效字符串：必须满足正则表达式 ${_issue.pattern}`;\n                return `无效${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `无效数字：必须是 ${issue.divisor} 的倍数`;\n            case \"unrecognized_keys\":\n                return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `${issue.origin} 中的键(key)无效`;\n            case \"invalid_union\":\n                return \"无效输入\";\n            case \"invalid_element\":\n                return `${issue.origin} 中包含无效值(value)`;\n            default:\n                return `无效输入`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"字元\", verb: \"擁有\" },\n        file: { unit: \"位元組\", verb: \"擁有\" },\n        array: { unit: \"項目\", verb: \"擁有\" },\n        set: { unit: \"項目\", verb: \"擁有\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"number\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"array\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"輸入\",\n        email: \"郵件地址\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO 日期時間\",\n        date: \"ISO 日期\",\n        time: \"ISO 時間\",\n        duration: \"ISO 期間\",\n        ipv4: \"IPv4 位址\",\n        ipv6: \"IPv6 位址\",\n        cidrv4: \"IPv4 範圍\",\n        cidrv6: \"IPv6 範圍\",\n        base64: \"base64 編碼字串\",\n        base64url: \"base64url 編碼字串\",\n        json_string: \"JSON 字串\",\n        e164: \"E.164 數值\",\n        jwt: \"JWT\",\n        template_literal: \"輸入\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `無效的輸入值：預期為 ${issue.expected}，但收到 ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `無效的輸入值：預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n                return `無效的選項：預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `數值過大：預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n                return `數值過大：預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `數值過小：預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `數值過小：預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `無效的字串：必須以 \"${_issue.prefix}\" 開頭`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `無效的字串：必須以 \"${_issue.suffix}\" 結尾`;\n                if (_issue.format === \"includes\")\n                    return `無效的字串：必須包含 \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `無效的字串：必須符合格式 ${_issue.pattern}`;\n                return `無效的 ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `無效的數字：必須為 ${issue.divisor} 的倍數`;\n            case \"unrecognized_keys\":\n                return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}：${util.joinValues(issue.keys, \"、\")}`;\n            case \"invalid_key\":\n                return `${issue.origin} 中有無效的鍵值`;\n            case \"invalid_union\":\n                return \"無效的輸入值\";\n            case \"invalid_element\":\n                return `${issue.origin} 中有無效的值`;\n            default:\n                return `無效的輸入值`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"àmi\", verb: \"ní\" },\n        file: { unit: \"bytes\", verb: \"ní\" },\n        array: { unit: \"nkan\", verb: \"ní\" },\n        set: { unit: \"nkan\", verb: \"ní\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const parsedType = (data) => {\n        const t = typeof data;\n        switch (t) {\n            case \"number\": {\n                return Number.isNaN(data) ? \"NaN\" : \"nọ́mbà\";\n            }\n            case \"object\": {\n                if (Array.isArray(data)) {\n                    return \"akopọ\";\n                }\n                if (data === null) {\n                    return \"null\";\n                }\n                if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n                    return data.constructor.name;\n                }\n            }\n        }\n        return t;\n    };\n    const Nouns = {\n        regex: \"ẹ̀rọ ìbáwọlé\",\n        email: \"àdírẹ́sì ìmẹ́lì\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"àkókò ISO\",\n        date: \"ọjọ́ ISO\",\n        time: \"àkókò ISO\",\n        duration: \"àkókò tó pé ISO\",\n        ipv4: \"àdírẹ́sì IPv4\",\n        ipv6: \"àdírẹ́sì IPv6\",\n        cidrv4: \"àgbègbè IPv4\",\n        cidrv6: \"àgbègbè IPv6\",\n        base64: \"ọ̀rọ̀ tí a kọ́ ní base64\",\n        base64url: \"ọ̀rọ̀ base64url\",\n        json_string: \"ọ̀rọ̀ JSON\",\n        e164: \"nọ́mbà E.164\",\n        jwt: \"JWT\",\n        template_literal: \"ẹ̀rọ ìbáwọlé\",\n    };\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\":\n                return `Ìbáwọlé aṣìṣe: a ní láti fi ${issue.expected}, àmọ̀ a rí ${parsedType(issue.input)}`;\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Ìbáwọlé aṣìṣe: a ní láti fi ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n                return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`;\n            }\n            case \"too_small\": {\n                const adj = issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n                return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\")\n                    return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú \"${_issue.prefix}\"`;\n                if (_issue.format === \"ends_with\")\n                    return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;\n                return `Aṣìṣe: ${Nouns[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Bọtìnì àìmọ̀: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Bọtìnì aṣìṣe nínú ${issue.origin}`;\n            case \"invalid_union\":\n                return \"Ìbáwọlé aṣìṣe\";\n            case \"invalid_element\":\n                return `Iye aṣìṣe nínú ${issue.origin}`;\n            default:\n                return \"Ìbáwọlé aṣìṣe\";\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new Map();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            if (this._idmap.has(meta.id)) {\n                throw new Error(`ID ${meta.id} already exists in the registry`);\n            }\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    clear() {\n        this._map = new Map();\n        this._idmap = new Map();\n        return this;\n    }\n    remove(schema) {\n        const meta = this._map.get(schema);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.delete(meta.id);\n        }\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            const f = { ...pm, ...this._map.get(schema) };\n            return Object.keys(f).length ? f : undefined;\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n    return new Class({\n        type: \"string\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedString(Class, params) {\n    return new Class({\n        type: \"string\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _number(Class, params) {\n    return new Class({\n        type: \"number\",\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedNumber(Class, params) {\n    return new Class({\n        type: \"number\",\n        coerce: true,\n        checks: [],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\nexport function _superRefine(fn) {\n    const ch = _check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    });\n    return ch;\n}\nexport function _check(fn, params) {\n    const ch = new checks.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function _stringbool(Classes, _params) {\n    const params = util.normalizeParams(_params);\n    let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (params.case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n    const tx = new _Transform({\n        type: \"transform\",\n        transform: (input, payload) => {\n            let data = input;\n            if (params.case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: tx,\n                    continue: false,\n                });\n                return {};\n            }\n        },\n        error: params.error,\n    });\n    // params.error;\n    const innerPipe = new _Pipe({\n        type: \"pipe\",\n        in: new _String({ type: \"string\", error: params.error }),\n        out: tx,\n        error: params.error,\n    });\n    const outerPipe = new _Pipe({\n        type: \"pipe\",\n        in: innerPipe,\n        out: new _Boolean({\n            type: \"boolean\",\n            error: params.error,\n        }),\n        error: params.error,\n    });\n    return outerPipe;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n    const params = util.normalizeParams(_params);\n    const def = {\n        ...util.normalizeParams(_params),\n        check: \"string_format\",\n        type: \"string\",\n        format,\n        fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n        ...params,\n    };\n    if (fnOrRegex instanceof RegExp) {\n        def.pattern = fnOrRegex;\n    }\n    const inst = new Class(def);\n    return inst;\n}\n","import { _array, _tuple, _unknown } from \"./api.js\";\nimport { parse, parseAsync } from \"./parse.js\";\nimport * as schemas from \"./schemas.js\";\nimport { $ZodTuple } from \"./schemas.js\";\nexport class $ZodFunction {\n    constructor(def) {\n        this._def = def;\n        this.def = def;\n    }\n    implement(func) {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        const impl = ((...args) => {\n            const parsedArgs = this._def.input ? parse(this._def.input, args, undefined, { callee: impl }) : args;\n            if (!Array.isArray(parsedArgs)) {\n                throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n            }\n            const output = func(...parsedArgs);\n            return this._def.output ? parse(this._def.output, output, undefined, { callee: impl }) : output;\n        });\n        return impl;\n    }\n    implementAsync(func) {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        const impl = (async (...args) => {\n            const parsedArgs = this._def.input ? await parseAsync(this._def.input, args, undefined, { callee: impl }) : args;\n            if (!Array.isArray(parsedArgs)) {\n                throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n            }\n            const output = await func(...parsedArgs);\n            return this._def.output ? parseAsync(this._def.output, output, undefined, { callee: impl }) : output;\n        });\n        return impl;\n    }\n    input(...args) {\n        const F = this.constructor;\n        if (Array.isArray(args[0])) {\n            return new F({\n                type: \"function\",\n                input: new $ZodTuple({\n                    type: \"tuple\",\n                    items: args[0],\n                    rest: args[1],\n                }),\n                output: this._def.output,\n            });\n        }\n        return new F({\n            type: \"function\",\n            input: args[0],\n            output: this._def.output,\n        });\n    }\n    output(output) {\n        const F = this.constructor;\n        return new F({\n            type: \"function\",\n            input: this._def.input,\n            output,\n        });\n    }\n}\nfunction _function(params) {\n    return new $ZodFunction({\n        type: \"function\",\n        input: Array.isArray(params?.input)\n            ? _tuple(schemas.$ZodTuple, params?.input)\n            : (params?.input ?? _array(schemas.$ZodArray, _unknown(schemas.$ZodUnknown))),\n        output: params?.output ?? _unknown(schemas.$ZodUnknown),\n    });\n}\nexport { _function as function };\n","import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n    constructor(params) {\n        this.counter = 0;\n        this.metadataRegistry = params?.metadata ?? globalRegistry;\n        this.target = params?.target ?? \"draft-2020-12\";\n        this.unrepresentable = params?.unrepresentable ?? \"throw\";\n        this.override = params?.override ?? (() => { });\n        this.io = params?.io ?? \"output\";\n        this.seen = new Map();\n    }\n    process(schema, _params = { path: [], schemaPath: [] }) {\n        var _a;\n        const def = schema._zod.def;\n        const formatMap = {\n            guid: \"uuid\",\n            url: \"uri\",\n            datetime: \"date-time\",\n            json_string: \"json-string\",\n            regex: \"\", // do not set\n        };\n        // check for schema in seens\n        const seen = this.seen.get(schema);\n        if (seen) {\n            seen.count++;\n            // check if cycle\n            const isCycle = _params.schemaPath.includes(schema);\n            if (isCycle) {\n                seen.cycle = _params.path;\n            }\n            return seen.schema;\n        }\n        // initialize\n        const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n        this.seen.set(schema, result);\n        // custom method overrides default behavior\n        const overrideSchema = schema._zod.toJSONSchema?.();\n        if (overrideSchema) {\n            result.schema = overrideSchema;\n        }\n        else {\n            const params = {\n                ..._params,\n                schemaPath: [..._params.schemaPath, schema],\n                path: _params.path,\n            };\n            const parent = schema._zod.parent;\n            if (parent) {\n                // schema was cloned from another schema\n                result.ref = parent;\n                this.process(parent, params);\n                this.seen.get(parent).isParent = true;\n            }\n            else {\n                const _json = result.schema;\n                switch (def.type) {\n                    case \"string\": {\n                        const json = _json;\n                        json.type = \"string\";\n                        const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n                            .bag;\n                        if (typeof minimum === \"number\")\n                            json.minLength = minimum;\n                        if (typeof maximum === \"number\")\n                            json.maxLength = maximum;\n                        // custom pattern overrides format\n                        if (format) {\n                            json.format = formatMap[format] ?? format;\n                            if (json.format === \"\")\n                                delete json.format; // empty format is not valid\n                        }\n                        if (contentEncoding)\n                            json.contentEncoding = contentEncoding;\n                        if (patterns && patterns.size > 0) {\n                            const regexes = [...patterns];\n                            if (regexes.length === 1)\n                                json.pattern = regexes[0].source;\n                            else if (regexes.length > 1) {\n                                result.schema.allOf = [\n                                    ...regexes.map((regex) => ({\n                                        ...(this.target === \"draft-7\" || this.target === \"draft-4\" ? { type: \"string\" } : {}),\n                                        pattern: regex.source,\n                                    })),\n                                ];\n                            }\n                        }\n                        break;\n                    }\n                    case \"number\": {\n                        const json = _json;\n                        const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n                        if (typeof format === \"string\" && format.includes(\"int\"))\n                            json.type = \"integer\";\n                        else\n                            json.type = \"number\";\n                        if (typeof exclusiveMinimum === \"number\") {\n                            if (this.target === \"draft-4\") {\n                                json.minimum = exclusiveMinimum;\n                                json.exclusiveMinimum = true;\n                            }\n                            else {\n                                json.exclusiveMinimum = exclusiveMinimum;\n                            }\n                        }\n                        if (typeof minimum === \"number\") {\n                            json.minimum = minimum;\n                            if (typeof exclusiveMinimum === \"number\" && this.target !== \"draft-4\") {\n                                if (exclusiveMinimum >= minimum)\n                                    delete json.minimum;\n                                else\n                                    delete json.exclusiveMinimum;\n                            }\n                        }\n                        if (typeof exclusiveMaximum === \"number\") {\n                            if (this.target === \"draft-4\") {\n                                json.maximum = exclusiveMaximum;\n                                json.exclusiveMaximum = true;\n                            }\n                            else {\n                                json.exclusiveMaximum = exclusiveMaximum;\n                            }\n                        }\n                        if (typeof maximum === \"number\") {\n                            json.maximum = maximum;\n                            if (typeof exclusiveMaximum === \"number\" && this.target !== \"draft-4\") {\n                                if (exclusiveMaximum <= maximum)\n                                    delete json.maximum;\n                                else\n                                    delete json.exclusiveMaximum;\n                            }\n                        }\n                        if (typeof multipleOf === \"number\")\n                            json.multipleOf = multipleOf;\n                        break;\n                    }\n                    case \"boolean\": {\n                        const json = _json;\n                        json.type = \"boolean\";\n                        break;\n                    }\n                    case \"bigint\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"BigInt cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"symbol\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Symbols cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"null\": {\n                        _json.type = \"null\";\n                        break;\n                    }\n                    case \"any\": {\n                        break;\n                    }\n                    case \"unknown\": {\n                        break;\n                    }\n                    case \"undefined\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Undefined cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"void\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Void cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"never\": {\n                        _json.not = {};\n                        break;\n                    }\n                    case \"date\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Date cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"array\": {\n                        const json = _json;\n                        const { minimum, maximum } = schema._zod.bag;\n                        if (typeof minimum === \"number\")\n                            json.minItems = minimum;\n                        if (typeof maximum === \"number\")\n                            json.maxItems = maximum;\n                        json.type = \"array\";\n                        json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n                        break;\n                    }\n                    case \"object\": {\n                        const json = _json;\n                        json.type = \"object\";\n                        json.properties = {};\n                        const shape = def.shape; // params.shapeCache.get(schema)!;\n                        for (const key in shape) {\n                            json.properties[key] = this.process(shape[key], {\n                                ...params,\n                                path: [...params.path, \"properties\", key],\n                            });\n                        }\n                        // required keys\n                        const allKeys = new Set(Object.keys(shape));\n                        // const optionalKeys = new Set(def.optional);\n                        const requiredKeys = new Set([...allKeys].filter((key) => {\n                            const v = def.shape[key]._zod;\n                            if (this.io === \"input\") {\n                                return v.optin === undefined;\n                            }\n                            else {\n                                return v.optout === undefined;\n                            }\n                        }));\n                        if (requiredKeys.size > 0) {\n                            json.required = Array.from(requiredKeys);\n                        }\n                        // catchall\n                        if (def.catchall?._zod.def.type === \"never\") {\n                            // strict\n                            json.additionalProperties = false;\n                        }\n                        else if (!def.catchall) {\n                            // regular\n                            if (this.io === \"output\")\n                                json.additionalProperties = false;\n                        }\n                        else if (def.catchall) {\n                            json.additionalProperties = this.process(def.catchall, {\n                                ...params,\n                                path: [...params.path, \"additionalProperties\"],\n                            });\n                        }\n                        break;\n                    }\n                    case \"union\": {\n                        const json = _json;\n                        json.anyOf = def.options.map((x, i) => this.process(x, {\n                            ...params,\n                            path: [...params.path, \"anyOf\", i],\n                        }));\n                        break;\n                    }\n                    case \"intersection\": {\n                        const json = _json;\n                        const a = this.process(def.left, {\n                            ...params,\n                            path: [...params.path, \"allOf\", 0],\n                        });\n                        const b = this.process(def.right, {\n                            ...params,\n                            path: [...params.path, \"allOf\", 1],\n                        });\n                        const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n                        const allOf = [\n                            ...(isSimpleIntersection(a) ? a.allOf : [a]),\n                            ...(isSimpleIntersection(b) ? b.allOf : [b]),\n                        ];\n                        json.allOf = allOf;\n                        break;\n                    }\n                    case \"tuple\": {\n                        const json = _json;\n                        json.type = \"array\";\n                        const prefixItems = def.items.map((x, i) => this.process(x, { ...params, path: [...params.path, \"prefixItems\", i] }));\n                        if (this.target === \"draft-2020-12\") {\n                            json.prefixItems = prefixItems;\n                        }\n                        else {\n                            json.items = prefixItems;\n                        }\n                        if (def.rest) {\n                            const rest = this.process(def.rest, {\n                                ...params,\n                                path: [...params.path, \"items\"],\n                            });\n                            if (this.target === \"draft-2020-12\") {\n                                json.items = rest;\n                            }\n                            else {\n                                json.additionalItems = rest;\n                            }\n                        }\n                        // additionalItems\n                        if (def.rest) {\n                            json.items = this.process(def.rest, {\n                                ...params,\n                                path: [...params.path, \"items\"],\n                            });\n                        }\n                        // length\n                        const { minimum, maximum } = schema._zod.bag;\n                        if (typeof minimum === \"number\")\n                            json.minItems = minimum;\n                        if (typeof maximum === \"number\")\n                            json.maxItems = maximum;\n                        break;\n                    }\n                    case \"record\": {\n                        const json = _json;\n                        json.type = \"object\";\n                        if (this.target !== \"draft-4\") {\n                            json.propertyNames = this.process(def.keyType, {\n                                ...params,\n                                path: [...params.path, \"propertyNames\"],\n                            });\n                        }\n                        json.additionalProperties = this.process(def.valueType, {\n                            ...params,\n                            path: [...params.path, \"additionalProperties\"],\n                        });\n                        break;\n                    }\n                    case \"map\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Map cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"set\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Set cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"enum\": {\n                        const json = _json;\n                        const values = getEnumValues(def.entries);\n                        // Number enums can have both string and number values\n                        if (values.every((v) => typeof v === \"number\"))\n                            json.type = \"number\";\n                        if (values.every((v) => typeof v === \"string\"))\n                            json.type = \"string\";\n                        json.enum = values;\n                        break;\n                    }\n                    case \"literal\": {\n                        const json = _json;\n                        const vals = [];\n                        for (const val of def.values) {\n                            if (val === undefined) {\n                                if (this.unrepresentable === \"throw\") {\n                                    throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n                                }\n                                else {\n                                    // do not add to vals\n                                }\n                            }\n                            else if (typeof val === \"bigint\") {\n                                if (this.unrepresentable === \"throw\") {\n                                    throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n                                }\n                                else {\n                                    vals.push(Number(val));\n                                }\n                            }\n                            else {\n                                vals.push(val);\n                            }\n                        }\n                        if (vals.length === 0) {\n                            // do nothing (an undefined literal was stripped)\n                        }\n                        else if (vals.length === 1) {\n                            const val = vals[0];\n                            json.type = val === null ? \"null\" : typeof val;\n                            if (this.target === \"draft-4\") {\n                                json.enum = [val];\n                            }\n                            else {\n                                json.const = val;\n                            }\n                        }\n                        else {\n                            if (vals.every((v) => typeof v === \"number\"))\n                                json.type = \"number\";\n                            if (vals.every((v) => typeof v === \"string\"))\n                                json.type = \"string\";\n                            if (vals.every((v) => typeof v === \"boolean\"))\n                                json.type = \"string\";\n                            if (vals.every((v) => v === null))\n                                json.type = \"null\";\n                            json.enum = vals;\n                        }\n                        break;\n                    }\n                    case \"file\": {\n                        const json = _json;\n                        const file = {\n                            type: \"string\",\n                            format: \"binary\",\n                            contentEncoding: \"binary\",\n                        };\n                        const { minimum, maximum, mime } = schema._zod.bag;\n                        if (minimum !== undefined)\n                            file.minLength = minimum;\n                        if (maximum !== undefined)\n                            file.maxLength = maximum;\n                        if (mime) {\n                            if (mime.length === 1) {\n                                file.contentMediaType = mime[0];\n                                Object.assign(json, file);\n                            }\n                            else {\n                                json.anyOf = mime.map((m) => {\n                                    const mFile = { ...file, contentMediaType: m };\n                                    return mFile;\n                                });\n                            }\n                        }\n                        else {\n                            Object.assign(json, file);\n                        }\n                        // if (this.unrepresentable === \"throw\") {\n                        //   throw new Error(\"File cannot be represented in JSON Schema\");\n                        // }\n                        break;\n                    }\n                    case \"transform\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Transforms cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"nullable\": {\n                        const inner = this.process(def.innerType, params);\n                        _json.anyOf = [inner, { type: \"null\" }];\n                        break;\n                    }\n                    case \"nonoptional\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        break;\n                    }\n                    case \"success\": {\n                        const json = _json;\n                        json.type = \"boolean\";\n                        break;\n                    }\n                    case \"default\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n                        break;\n                    }\n                    case \"prefault\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        if (this.io === \"input\")\n                            _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n                        break;\n                    }\n                    case \"catch\": {\n                        // use conditionals\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        let catchValue;\n                        try {\n                            catchValue = def.catchValue(undefined);\n                        }\n                        catch {\n                            throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n                        }\n                        _json.default = catchValue;\n                        break;\n                    }\n                    case \"nan\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"NaN cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    case \"template_literal\": {\n                        const json = _json;\n                        const pattern = schema._zod.pattern;\n                        if (!pattern)\n                            throw new Error(\"Pattern not found in template literal\");\n                        json.type = \"string\";\n                        json.pattern = pattern.source;\n                        break;\n                    }\n                    case \"pipe\": {\n                        const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n                        this.process(innerType, params);\n                        result.ref = innerType;\n                        break;\n                    }\n                    case \"readonly\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        _json.readOnly = true;\n                        break;\n                    }\n                    // passthrough types\n                    case \"promise\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        break;\n                    }\n                    case \"optional\": {\n                        this.process(def.innerType, params);\n                        result.ref = def.innerType;\n                        break;\n                    }\n                    case \"lazy\": {\n                        const innerType = schema._zod.innerType;\n                        this.process(innerType, params);\n                        result.ref = innerType;\n                        break;\n                    }\n                    case \"custom\": {\n                        if (this.unrepresentable === \"throw\") {\n                            throw new Error(\"Custom types cannot be represented in JSON Schema\");\n                        }\n                        break;\n                    }\n                    default: {\n                        def;\n                    }\n                }\n            }\n        }\n        // metadata\n        const meta = this.metadataRegistry.get(schema);\n        if (meta)\n            Object.assign(result.schema, meta);\n        if (this.io === \"input\" && isTransforming(schema)) {\n            // examples/defaults only apply to output type of pipe\n            delete result.schema.examples;\n            delete result.schema.default;\n        }\n        // set prefault as default\n        if (this.io === \"input\" && result.schema._prefault)\n            (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n        delete result.schema._prefault;\n        // pulling fresh from this.seen in case it was overwritten\n        const _result = this.seen.get(schema);\n        return _result.schema;\n    }\n    emit(schema, _params) {\n        const params = {\n            cycles: _params?.cycles ?? \"ref\",\n            reused: _params?.reused ?? \"inline\",\n            // unrepresentable: _params?.unrepresentable ?? \"throw\",\n            // uri: _params?.uri ?? ((id) => `${id}`),\n            external: _params?.external ?? undefined,\n        };\n        // iterate over seen map;\n        const root = this.seen.get(schema);\n        if (!root)\n            throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n        // initialize result with root schema fields\n        // Object.assign(result, seen.cached);\n        // returns a ref to the schema\n        // defId will be empty if the ref points to an external schema (or #)\n        const makeURI = (entry) => {\n            // comparing the seen objects because sometimes\n            // multiple schemas map to the same seen object.\n            // e.g. lazy\n            // external is configured\n            const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n            if (params.external) {\n                const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n                // check if schema is in the external registry\n                const uriGenerator = params.external.uri ?? ((id) => id);\n                if (externalId) {\n                    return { ref: uriGenerator(externalId) };\n                }\n                // otherwise, add to __shared\n                const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n                entry[1].defId = id; // set defId so it will be reused if needed\n                return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n            }\n            if (entry[1] === root) {\n                return { ref: \"#\" };\n            }\n            // self-contained schema\n            const uriPrefix = `#`;\n            const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n            const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n            return { defId, ref: defUriPrefix + defId };\n        };\n        // stored cached version in `def` property\n        // remove all properties, set $ref\n        const extractToDef = (entry) => {\n            // if the schema is already a reference, do not extract it\n            if (entry[1].schema.$ref) {\n                return;\n            }\n            const seen = entry[1];\n            const { ref, defId } = makeURI(entry);\n            seen.def = { ...seen.schema };\n            // defId won't be set if the schema is a reference to an external schema\n            if (defId)\n                seen.defId = defId;\n            // wipe away all properties except $ref\n            const schema = seen.schema;\n            for (const key in schema) {\n                delete schema[key];\n            }\n            schema.$ref = ref;\n        };\n        // throw on cycles\n        // break cycles\n        if (params.cycles === \"throw\") {\n            for (const entry of this.seen.entries()) {\n                const seen = entry[1];\n                if (seen.cycle) {\n                    throw new Error(\"Cycle detected: \" +\n                        `#/${seen.cycle?.join(\"/\")}/<root>` +\n                        '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n                }\n            }\n        }\n        // extract schemas into $defs\n        for (const entry of this.seen.entries()) {\n            const seen = entry[1];\n            // convert root schema to # $ref\n            if (schema === entry[0]) {\n                extractToDef(entry); // this has special handling for the root schema\n                continue;\n            }\n            // extract schemas that are in the external registry\n            if (params.external) {\n                const ext = params.external.registry.get(entry[0])?.id;\n                if (schema !== entry[0] && ext) {\n                    extractToDef(entry);\n                    continue;\n                }\n            }\n            // extract schemas with `id` meta\n            const id = this.metadataRegistry.get(entry[0])?.id;\n            if (id) {\n                extractToDef(entry);\n                continue;\n            }\n            // break cycles\n            if (seen.cycle) {\n                // any\n                extractToDef(entry);\n                continue;\n            }\n            // extract reused schemas\n            if (seen.count > 1) {\n                if (params.reused === \"ref\") {\n                    extractToDef(entry);\n                    // biome-ignore lint:\n                    continue;\n                }\n            }\n        }\n        // flatten _refs\n        const flattenRef = (zodSchema, params) => {\n            const seen = this.seen.get(zodSchema);\n            const schema = seen.def ?? seen.schema;\n            const _cached = { ...schema };\n            // already seen\n            if (seen.ref === null) {\n                return;\n            }\n            // flatten ref if defined\n            const ref = seen.ref;\n            seen.ref = null; // prevent recursion\n            if (ref) {\n                flattenRef(ref, params);\n                // merge referenced schema into current\n                const refSchema = this.seen.get(ref).schema;\n                if (refSchema.$ref && (params.target === \"draft-7\" || params.target === \"draft-4\")) {\n                    schema.allOf = schema.allOf ?? [];\n                    schema.allOf.push(refSchema);\n                }\n                else {\n                    Object.assign(schema, refSchema);\n                    Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n                }\n            }\n            // execute overrides\n            if (!seen.isParent)\n                this.override({\n                    zodSchema: zodSchema,\n                    jsonSchema: schema,\n                    path: seen.path ?? [],\n                });\n        };\n        for (const entry of [...this.seen.entries()].reverse()) {\n            flattenRef(entry[0], { target: this.target });\n        }\n        const result = {};\n        if (this.target === \"draft-2020-12\") {\n            result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n        }\n        else if (this.target === \"draft-7\") {\n            result.$schema = \"http://json-schema.org/draft-07/schema#\";\n        }\n        else if (this.target === \"draft-4\") {\n            result.$schema = \"http://json-schema.org/draft-04/schema#\";\n        }\n        else {\n            // @ts-ignore\n            console.warn(`Invalid target: ${this.target}`);\n        }\n        if (params.external?.uri) {\n            const id = params.external.registry.get(schema)?.id;\n            if (!id)\n                throw new Error(\"Schema is missing an `id` property\");\n            result.$id = params.external.uri(id);\n        }\n        Object.assign(result, root.def);\n        // build defs object\n        const defs = params.external?.defs ?? {};\n        for (const entry of this.seen.entries()) {\n            const seen = entry[1];\n            if (seen.def && seen.defId) {\n                defs[seen.defId] = seen.def;\n            }\n        }\n        // set definitions in result\n        if (params.external) {\n        }\n        else {\n            if (Object.keys(defs).length > 0) {\n                if (this.target === \"draft-2020-12\") {\n                    result.$defs = defs;\n                }\n                else {\n                    result.definitions = defs;\n                }\n            }\n        }\n        try {\n            // this \"finalizes\" this schema and ensures all cycles are removed\n            // each call to .emit() is functionally independent\n            // though the seen map is shared\n            return JSON.parse(JSON.stringify(result));\n        }\n        catch (_err) {\n            throw new Error(\"Error converting schema to JSON.\");\n        }\n    }\n}\nexport function toJSONSchema(input, _params) {\n    if (input instanceof $ZodRegistry) {\n        const gen = new JSONSchemaGenerator(_params);\n        const defs = {};\n        for (const entry of input._idmap.entries()) {\n            const [_, schema] = entry;\n            gen.process(schema);\n        }\n        const schemas = {};\n        const external = {\n            registry: input,\n            uri: _params?.uri,\n            defs,\n        };\n        for (const entry of input._idmap.entries()) {\n            const [key, schema] = entry;\n            schemas[key] = gen.emit(schema, {\n                ..._params,\n                external,\n            });\n        }\n        if (Object.keys(defs).length > 0) {\n            const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n            schemas.__shared = {\n                [defsSegment]: defs,\n            };\n        }\n        return { schemas };\n    }\n    const gen = new JSONSchemaGenerator(_params);\n    gen.process(input);\n    return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n    const ctx = _ctx ?? { seen: new Set() };\n    if (ctx.seen.has(_schema))\n        return false;\n    ctx.seen.add(_schema);\n    const schema = _schema;\n    const def = schema._zod.def;\n    switch (def.type) {\n        case \"string\":\n        case \"number\":\n        case \"bigint\":\n        case \"boolean\":\n        case \"date\":\n        case \"symbol\":\n        case \"undefined\":\n        case \"null\":\n        case \"any\":\n        case \"unknown\":\n        case \"never\":\n        case \"void\":\n        case \"literal\":\n        case \"enum\":\n        case \"nan\":\n        case \"file\":\n        case \"template_literal\":\n            return false;\n        case \"array\": {\n            return isTransforming(def.element, ctx);\n        }\n        case \"object\": {\n            for (const key in def.shape) {\n                if (isTransforming(def.shape[key], ctx))\n                    return true;\n            }\n            return false;\n        }\n        case \"union\": {\n            for (const option of def.options) {\n                if (isTransforming(option, ctx))\n                    return true;\n            }\n            return false;\n        }\n        case \"intersection\": {\n            return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n        }\n        case \"tuple\": {\n            for (const item of def.items) {\n                if (isTransforming(item, ctx))\n                    return true;\n            }\n            if (def.rest && isTransforming(def.rest, ctx))\n                return true;\n            return false;\n        }\n        case \"record\": {\n            return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n        }\n        case \"map\": {\n            return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n        }\n        case \"set\": {\n            return isTransforming(def.valueType, ctx);\n        }\n        // inner types\n        case \"promise\":\n        case \"optional\":\n        case \"nonoptional\":\n        case \"nullable\":\n        case \"readonly\":\n            return isTransforming(def.innerType, ctx);\n        case \"lazy\":\n            return isTransforming(def.getter(), ctx);\n        case \"default\": {\n            return isTransforming(def.innerType, ctx);\n        }\n        case \"prefault\": {\n            return isTransforming(def.innerType, ctx);\n        }\n        case \"custom\": {\n            return false;\n        }\n        case \"transform\": {\n            return true;\n        }\n        case \"pipe\": {\n            return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n        }\n        case \"success\": {\n            return false;\n        }\n        case \"catch\": {\n            return false;\n        }\n        default:\n            def;\n    }\n    throw new Error(`Unknown schema type: ${def.type}`);\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n    return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n    return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n    return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n    return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    Object.defineProperties(inst, {\n        format: {\n            value: (mapper) => core.formatError(inst, mapper),\n            // enumerable: false,\n        },\n        flatten: {\n            value: (mapper) => core.flattenError(inst, mapper),\n            // enumerable: false,\n        },\n        addIssue: {\n            value: (issue) => {\n                inst.issues.push(issue);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        addIssues: {\n            value: (issues) => {\n                inst.issues.push(...issues);\n                inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n            },\n            // enumerable: false,\n        },\n        isEmpty: {\n            get() {\n                return inst.issues.length === 0;\n            },\n            // enumerable: false,\n        },\n    });\n    // Object.defineProperty(inst, \"isEmpty\", {\n    //   get() {\n    //     return inst.issues.length === 0;\n    //   },\n    // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    core.$ZodType.init(inst, def);\n    inst.def = def;\n    Object.defineProperty(inst, \"_def\", { value: def });\n    // base methods\n    inst.check = (...checks) => {\n        return inst.clone({\n            ...def,\n            checks: [\n                ...(def.checks ?? []),\n                ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n            ],\n        }\n        // { parent: true }\n        );\n    };\n    inst.clone = (def, params) => core.clone(inst, def, params);\n    inst.brand = () => inst;\n    inst.register = ((reg, meta) => {\n        reg.add(inst, meta);\n        return inst;\n    });\n    // parsing\n    inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n    inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n    inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n    inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n    inst.spa = inst.safeParseAsync;\n    // refinements\n    inst.refine = (check, params) => inst.check(refine(check, params));\n    inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n    inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n    // wrappers\n    inst.optional = () => optional(inst);\n    inst.nullable = () => nullable(inst);\n    inst.nullish = () => optional(nullable(inst));\n    inst.nonoptional = (params) => nonoptional(inst, params);\n    inst.array = () => array(inst);\n    inst.or = (arg) => union([inst, arg]);\n    inst.and = (arg) => intersection(inst, arg);\n    inst.transform = (tx) => pipe(inst, transform(tx));\n    inst.default = (def) => _default(inst, def);\n    inst.prefault = (def) => prefault(inst, def);\n    // inst.coalesce = (def, params) => coalesce(inst, def, params);\n    inst.catch = (params) => _catch(inst, params);\n    inst.pipe = (target) => pipe(inst, target);\n    inst.readonly = () => readonly(inst);\n    // meta\n    inst.describe = (description) => {\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, { description });\n        return cl;\n    };\n    Object.defineProperty(inst, \"description\", {\n        get() {\n            return core.globalRegistry.get(inst)?.description;\n        },\n        configurable: true,\n    });\n    inst.meta = (...args) => {\n        if (args.length === 0) {\n            return core.globalRegistry.get(inst);\n        }\n        const cl = inst.clone();\n        core.globalRegistry.add(cl, args[0]);\n        return cl;\n    };\n    // helpers\n    inst.isOptional = () => inst.safeParse(undefined).success;\n    inst.isNullable = () => inst.safeParse(null).success;\n    return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    const bag = inst._zod.bag;\n    inst.format = bag.format ?? null;\n    inst.minLength = bag.minimum ?? null;\n    inst.maxLength = bag.maximum ?? null;\n    // validations\n    inst.regex = (...args) => inst.check(checks.regex(...args));\n    inst.includes = (...args) => inst.check(checks.includes(...args));\n    inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n    inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n    inst.min = (...args) => inst.check(checks.minLength(...args));\n    inst.max = (...args) => inst.check(checks.maxLength(...args));\n    inst.length = (...args) => inst.check(checks.length(...args));\n    inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n    inst.lowercase = (params) => inst.check(checks.lowercase(params));\n    inst.uppercase = (params) => inst.check(checks.uppercase(params));\n    // transforms\n    inst.trim = () => inst.check(checks.trim());\n    inst.normalize = (...args) => inst.check(checks.normalize(...args));\n    inst.toLowerCase = () => inst.check(checks.toLowerCase());\n    inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n    inst.email = (params) => inst.check(core._email(ZodEmail, params));\n    inst.url = (params) => inst.check(core._url(ZodURL, params));\n    inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n    inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n    inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n    inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n    inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n    inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n    inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n    inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n    inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n    inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n    inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n    inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n    inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n    inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n    inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n    inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n    inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n    inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n    inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n    // iso\n    inst.datetime = (params) => inst.check(iso.datetime(params));\n    inst.date = (params) => inst.check(iso.date(params));\n    inst.time = (params) => inst.check(iso.time(params));\n    inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCustomStringFormat.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n    return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.int = (params) => inst.check(int(params));\n    inst.safe = (params) => inst.check(int(params));\n    inst.positive = (params) => inst.check(checks.gt(0, params));\n    inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n    inst.negative = (params) => inst.check(checks.lt(0, params));\n    inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n    // inst.finite = (params) => inst.check(core.finite(params));\n    inst.finite = () => inst;\n    const bag = inst._zod.bag;\n    inst.minValue =\n        Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n    inst.maxValue =\n        Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n    inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n    inst.isFinite = true;\n    inst.format = bag.format ?? null;\n});\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.gt = (value, params) => inst.check(checks.gt(value, params));\n    inst.gte = (value, params) => inst.check(checks.gte(value, params));\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.lt = (value, params) => inst.check(checks.lt(value, params));\n    inst.lte = (value, params) => inst.check(checks.lte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n    inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n    inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n    inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n    inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n    const bag = inst._zod.bag;\n    inst.minValue = bag.minimum ?? null;\n    inst.maxValue = bag.maximum ?? null;\n    inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n    const c = inst._zod.bag;\n    inst.minDate = c.minimum ? new Date(c.minimum) : null;\n    inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst.element = def.element;\n    inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n    inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n    inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n    inst.length = (len, params) => inst.check(checks.length(len, params));\n    inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    core.$ZodObject.init(inst, def);\n    ZodType.init(inst, def);\n    util.defineLazy(inst, \"shape\", () => def.shape);\n    inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n    inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n    inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n    inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n    inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n    inst.extend = (incoming) => {\n        return util.extend(inst, incoming);\n    };\n    inst.merge = (other) => util.merge(inst, other);\n    inst.pick = (mask) => util.pick(inst, mask);\n    inst.omit = (mask) => util.omit(inst, mask);\n    inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n    inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", shape ? util.objectClone(shape) : {});\n            return this.shape;\n        },\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", util.objectClone(shape));\n            return this.shape;\n        },\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        get shape() {\n            util.assignProp(this, \"shape\", util.objectClone(shape));\n            return this.shape;\n        },\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst.rest = (rest) => inst.clone({\n        ...inst._zod.def,\n        rest: rest,\n    });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    const k = core.clone(keyType);\n    k._zod.values = undefined;\n    return new ZodRecord({\n        type: \"record\",\n        keyType: k,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst.enum = def.entries;\n    inst.options = Object.values(def.entries);\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                _issue.input ?? (_issue.input = payload.value);\n                _issue.inst ?? (_issue.inst = inst);\n                // _issue.continue ??= true;\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        payload.value = output;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        // ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n    return core._superRefine(fn);\n}\nfunction _instanceof(cls, params = {\n    error: `Input not instance of ${cls.name}`,\n}) {\n    const inst = new ZodCustom({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Pipe: ZodPipe,\n    Boolean: ZodBoolean,\n    String: ZodString,\n    Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n    return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n    invalid_type: \"invalid_type\",\n    too_big: \"too_big\",\n    too_small: \"too_small\",\n    invalid_format: \"invalid_format\",\n    not_multiple_of: \"not_multiple_of\",\n    unrecognized_keys: \"unrecognized_keys\",\n    invalid_union: \"invalid_union\",\n    invalid_key: \"invalid_key\",\n    invalid_element: \"invalid_element\",\n    invalid_value: \"invalid_value\",\n    custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n    core.config({\n        customError: map,\n    });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n    return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n    return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n    return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n    return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n    return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n    return core._coercedDate(schemas.ZodDate, params);\n}\n","export function combineHeaders(\n  ...headers: Array<Record<string, string | undefined> | undefined>\n): Record<string, string | undefined> {\n  return headers.reduce(\n    (combinedHeaders, currentHeaders) => ({\n      ...combinedHeaders,\n      ...(currentHeaders ?? {}),\n    }),\n    {},\n  ) as Record<string, string | undefined>;\n}\n","/**\n * Converts an AsyncIterator to a ReadableStream.\n *\n * @template T - The type of elements produced by the AsyncIterator.\n * @param { <T>} iterator - The AsyncIterator to convert.\n * @returns {ReadableStream<T>} - A ReadableStream that provides the same data as the AsyncIterator.\n */\nexport function convertAsyncIteratorToReadableStream<T>(\n  iterator: AsyncIterator<T>,\n): ReadableStream<T> {\n  return new ReadableStream<T>({\n    /**\n     * Called when the consumer wants to pull more data from the stream.\n     *\n     * @param {ReadableStreamDefaultController<T>} controller - The controller to enqueue data into the stream.\n     * @returns {Promise<void>}\n     */\n    async pull(controller) {\n      try {\n        const { value, done } = await iterator.next();\n        if (done) {\n          controller.close();\n        } else {\n          controller.enqueue(value);\n        }\n      } catch (error) {\n        controller.error(error);\n      }\n    },\n    /**\n     * Called when the consumer cancels the stream.\n     */\n    cancel() {},\n  });\n}\n","/**\n * Creates a Promise that resolves after a specified delay\n * @param delayInMs - The delay duration in milliseconds. If null or undefined, resolves immediately.\n * @param signal - Optional AbortSignal to cancel the delay\n * @returns A Promise that resolves after the specified delay\n * @throws {DOMException} When the signal is aborted\n */\nexport async function delay(\n  delayInMs?: number | null,\n  options?: {\n    abortSignal?: AbortSignal;\n  },\n): Promise<void> {\n  if (delayInMs == null) {\n    return Promise.resolve();\n  }\n\n  const signal = options?.abortSignal;\n\n  return new Promise<void>((resolve, reject) => {\n    if (signal?.aborted) {\n      reject(createAbortError());\n      return;\n    }\n\n    const timeoutId = setTimeout(() => {\n      cleanup();\n      resolve();\n    }, delayInMs);\n\n    const cleanup = () => {\n      clearTimeout(timeoutId);\n      signal?.removeEventListener('abort', onAbort);\n    };\n\n    const onAbort = () => {\n      cleanup();\n      reject(createAbortError());\n    };\n\n    signal?.addEventListener('abort', onAbort);\n  });\n}\n\nfunction createAbortError(): DOMException {\n  return new DOMException('Delay was aborted', 'AbortError');\n}\n","/**\nExtracts the headers from a response object and returns them as a key-value object.\n\n@param response - The response object to extract headers from.\n@returns The headers as a key-value object.\n*/\nexport function extractResponseHeaders(response: Response) {\n  return Object.fromEntries<string>([...response.headers]);\n}\n","import { InvalidArgumentError } from '@ai-sdk/provider';\n\n/**\nCreates an ID generator.\nThe total length of the ID is the sum of the prefix, separator, and random part length.\nNot cryptographically secure.\n\n@param alphabet - The alphabet to use for the ID. Default: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.\n@param prefix - The prefix of the ID to generate. Optional.\n@param separator - The separator between the prefix and the random part of the ID. Default: '-'.\n@param size - The size of the random part of the ID to generate. Default: 16.\n */\nexport const createIdGenerator = ({\n  prefix,\n  size = 16,\n  alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n  separator = '-',\n}: {\n  prefix?: string;\n  separator?: string;\n  size?: number;\n  alphabet?: string;\n} = {}): IdGenerator => {\n  const generator = () => {\n    const alphabetLength = alphabet.length;\n    const chars = new Array(size);\n    for (let i = 0; i < size; i++) {\n      chars[i] = alphabet[(Math.random() * alphabetLength) | 0];\n    }\n    return chars.join('');\n  };\n\n  if (prefix == null) {\n    return generator;\n  }\n\n  // check that the prefix is not part of the alphabet (otherwise prefix checking can fail randomly)\n  if (alphabet.includes(separator)) {\n    throw new InvalidArgumentError({\n      argument: 'separator',\n      message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`,\n    });\n  }\n\n  return () => `${prefix}${separator}${generator()}`;\n};\n\n/**\nA function that generates an ID.\n */\nexport type IdGenerator = () => string;\n\n/**\nGenerates a 16-character random string to use for IDs.\nNot cryptographically secure.\n */\nexport const generateId = createIdGenerator();\n","export function getErrorMessage(error: unknown | undefined) {\n  if (error == null) {\n    return 'unknown error';\n  }\n\n  if (typeof error === 'string') {\n    return error;\n  }\n\n  if (error instanceof Error) {\n    return error.message;\n  }\n\n  return JSON.stringify(error);\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport { removeUndefinedEntries } from './remove-undefined-entries';\nimport { ResponseHandler } from './response-handler';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const getFromApi = async <T>({\n  url,\n  headers = {},\n  successfulResponseHandler,\n  failedResponseHandler,\n  abortSignal,\n  fetch = getOriginalFetch(),\n}: {\n  url: string;\n  headers?: Record<string, string | undefined>;\n  failedResponseHandler: ResponseHandler<Error>;\n  successfulResponseHandler: ResponseHandler<T>;\n  abortSignal?: AbortSignal;\n  fetch?: FetchFunction;\n}) => {\n  try {\n    const response = await fetch(url, {\n      method: 'GET',\n      headers: removeUndefinedEntries(headers),\n      signal: abortSignal,\n    });\n\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (!response.ok) {\n      let errorInformation: {\n        value: Error;\n        responseHeaders?: Record<string, string> | undefined;\n      };\n\n      try {\n        errorInformation = await failedResponseHandler({\n          response,\n          url,\n          requestBodyValues: {},\n        });\n      } catch (error) {\n        if (isAbortError(error) || APICallError.isInstance(error)) {\n          throw error;\n        }\n\n        throw new APICallError({\n          message: 'Failed to process error response',\n          cause: error,\n          statusCode: response.status,\n          url,\n          responseHeaders,\n          requestBodyValues: {},\n        });\n      }\n\n      throw errorInformation.value;\n    }\n\n    try {\n      return await successfulResponseHandler({\n        response,\n        url,\n        requestBodyValues: {},\n      });\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isAbortError(error) || APICallError.isInstance(error)) {\n          throw error;\n        }\n      }\n\n      throw new APICallError({\n        message: 'Failed to process successful response',\n        cause: error,\n        statusCode: response.status,\n        url,\n        responseHeaders,\n        requestBodyValues: {},\n      });\n    }\n  } catch (error) {\n    throw handleFetchError({ error, url, requestBodyValues: {} });\n  }\n};\n","import { APICallError } from '@ai-sdk/provider';\nimport { isAbortError } from './is-abort-error';\n\nconst FETCH_FAILED_ERROR_MESSAGES = ['fetch failed', 'failed to fetch'];\n\nexport function handleFetchError({\n  error,\n  url,\n  requestBodyValues,\n}: {\n  error: unknown;\n  url: string;\n  requestBodyValues: unknown;\n}) {\n  if (isAbortError(error)) {\n    return error;\n  }\n\n  // unwrap original error when fetch failed (for easier debugging):\n  if (\n    error instanceof TypeError &&\n    FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())\n  ) {\n    const cause = (error as any).cause;\n\n    if (cause != null) {\n      // Failed to connect to server:\n      return new APICallError({\n        message: `Cannot connect to API: ${cause.message}`,\n        cause,\n        url,\n        requestBodyValues,\n        isRetryable: true, // retry when network error\n      });\n    }\n  }\n\n  return error;\n}\n","export function isAbortError(error: unknown): error is Error {\n  return (\n    (error instanceof Error || error instanceof DOMException) &&\n    (error.name === 'AbortError' ||\n      error.name === 'ResponseAborted' || // Next.js\n      error.name === 'TimeoutError')\n  );\n}\n","/**\n * Removes entries from a record where the value is null or undefined.\n * @param record - The input object whose entries may be null or undefined.\n * @returns A new object containing only entries with non-null and non-undefined values.\n */\nexport function removeUndefinedEntries<T>(\n  record: Record<string, T | undefined>,\n): Record<string, T> {\n  return Object.fromEntries(\n    Object.entries(record).filter(([_key, value]) => value != null),\n  ) as Record<string, T>;\n}\n","import {\n  JSONSchema7,\n  LanguageModelV2Message,\n  LanguageModelV2Prompt,\n} from '@ai-sdk/provider';\n\nconst DEFAULT_SCHEMA_PREFIX = 'JSON schema:';\nconst DEFAULT_SCHEMA_SUFFIX =\n  'You MUST answer with a JSON object that matches the JSON schema above.';\nconst DEFAULT_GENERIC_SUFFIX = 'You MUST answer with JSON.';\n\nexport function injectJsonInstruction({\n  prompt,\n  schema,\n  schemaPrefix = schema != null ? DEFAULT_SCHEMA_PREFIX : undefined,\n  schemaSuffix = schema != null\n    ? DEFAULT_SCHEMA_SUFFIX\n    : DEFAULT_GENERIC_SUFFIX,\n}: {\n  prompt?: string;\n  schema?: JSONSchema7;\n  schemaPrefix?: string;\n  schemaSuffix?: string;\n}): string {\n  return [\n    prompt != null && prompt.length > 0 ? prompt : undefined,\n    prompt != null && prompt.length > 0 ? '' : undefined, // add a newline if prompt is not null\n    schemaPrefix,\n    schema != null ? JSON.stringify(schema) : undefined,\n    schemaSuffix,\n  ]\n    .filter(line => line != null)\n    .join('\\n');\n}\n\nexport function injectJsonInstructionIntoMessages({\n  messages,\n  schema,\n  schemaPrefix,\n  schemaSuffix,\n}: {\n  messages: LanguageModelV2Prompt;\n  schema?: JSONSchema7;\n  schemaPrefix?: string;\n  schemaSuffix?: string;\n}): LanguageModelV2Prompt {\n  const systemMessage: LanguageModelV2Message =\n    messages[0]?.role === 'system'\n      ? { ...messages[0] }\n      : { role: 'system', content: '' };\n\n  systemMessage.content = injectJsonInstruction({\n    prompt: systemMessage.content,\n    schema,\n    schemaPrefix,\n    schemaSuffix,\n  });\n\n  return [\n    systemMessage,\n    ...(messages[0]?.role === 'system' ? messages.slice(1) : messages),\n  ];\n}\n","/**\n * Checks if the given URL is supported natively by the model.\n *\n * @param mediaType - The media type of the URL. Case-sensitive.\n * @param url - The URL to check.\n * @param supportedUrls - A record where keys are case-sensitive media types (or '*')\n *                        and values are arrays of RegExp patterns for URLs.\n *\n * @returns `true` if the URL matches a pattern under the specific media type\n *          or the wildcard '*', `false` otherwise.\n */\nexport function isUrlSupported({\n  mediaType,\n  url,\n  supportedUrls,\n}: {\n  mediaType: string;\n  url: string;\n  supportedUrls: Record<string, RegExp[]>;\n}): boolean {\n  // standardize media type and url to lower case\n  url = url.toLowerCase();\n  mediaType = mediaType.toLowerCase();\n\n  return (\n    Object.entries(supportedUrls)\n      // standardize supported url map into lowercase prefixes:\n      .map(([key, value]) => {\n        const mediaType = key.toLowerCase();\n        return mediaType === '*' || mediaType === '*/*'\n          ? { mediaTypePrefix: '', regexes: value }\n          : { mediaTypePrefix: mediaType.replace(/\\*/, ''), regexes: value };\n      })\n      // gather all regexp pattern from matched media type prefixes:\n      .filter(({ mediaTypePrefix }) => mediaType.startsWith(mediaTypePrefix))\n      .flatMap(({ regexes }) => regexes)\n      // check if any pattern matches the url:\n      .some(pattern => pattern.test(url))\n  );\n}\n","import { LoadAPIKeyError } from '@ai-sdk/provider';\n\nexport function loadApiKey({\n  apiKey,\n  environmentVariableName,\n  apiKeyParameterName = 'apiKey',\n  description,\n}: {\n  apiKey: string | undefined;\n  environmentVariableName: string;\n  apiKeyParameterName?: string;\n  description: string;\n}): string {\n  if (typeof apiKey === 'string') {\n    return apiKey;\n  }\n\n  if (apiKey != null) {\n    throw new LoadAPIKeyError({\n      message: `${description} API key must be a string.`,\n    });\n  }\n\n  if (typeof process === 'undefined') {\n    throw new LoadAPIKeyError({\n      message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables is not supported in this environment.`,\n    });\n  }\n\n  apiKey = process.env[environmentVariableName];\n\n  if (apiKey == null) {\n    throw new LoadAPIKeyError({\n      message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`,\n    });\n  }\n\n  if (typeof apiKey !== 'string') {\n    throw new LoadAPIKeyError({\n      message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`,\n    });\n  }\n\n  return apiKey;\n}\n","/**\n * Loads an optional `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @returns The setting value.\n */\nexport function loadOptionalSetting({\n  settingValue,\n  environmentVariableName,\n}: {\n  settingValue: string | undefined;\n  environmentVariableName: string;\n}): string | undefined {\n  if (typeof settingValue === 'string') {\n    return settingValue;\n  }\n\n  if (settingValue != null || typeof process === 'undefined') {\n    return undefined;\n  }\n\n  settingValue = process.env[environmentVariableName];\n\n  if (settingValue == null || typeof settingValue !== 'string') {\n    return undefined;\n  }\n\n  return settingValue;\n}\n","import { LoadSettingError } from '@ai-sdk/provider';\n\n/**\n * Loads a `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @param settingName - The setting name.\n * @param description - The description of the setting.\n * @returns The setting value.\n */\nexport function loadSetting({\n  settingValue,\n  environmentVariableName,\n  settingName,\n  description,\n}: {\n  settingValue: string | undefined;\n  environmentVariableName: string;\n  settingName: string;\n  description: string;\n}): string {\n  if (typeof settingValue === 'string') {\n    return settingValue;\n  }\n\n  if (settingValue != null) {\n    throw new LoadSettingError({\n      message: `${description} setting must be a string.`,\n    });\n  }\n\n  if (typeof process === 'undefined') {\n    throw new LoadSettingError({\n      message:\n        `${description} setting is missing. ` +\n        `Pass it using the '${settingName}' parameter. ` +\n        `Environment variables is not supported in this environment.`,\n    });\n  }\n\n  settingValue = process.env[environmentVariableName];\n\n  if (settingValue == null) {\n    throw new LoadSettingError({\n      message:\n        `${description} setting is missing. ` +\n        `Pass it using the '${settingName}' parameter ` +\n        `or the ${environmentVariableName} environment variable.`,\n    });\n  }\n\n  if (typeof settingValue !== 'string') {\n    throw new LoadSettingError({\n      message:\n        `${description} setting must be a string. ` +\n        `The value of the ${environmentVariableName} environment variable is not a string.`,\n    });\n  }\n\n  return settingValue;\n}\n","/**\n * Maps a media type to its corresponding file extension.\n * It was originally introduced to set a filename for audio file uploads\n * in https://github.com/vercel/ai/pull/8159.\n *\n * @param mediaType The media type to map.\n * @returns The corresponding file extension\n * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types/Common_types\n */\nexport function mediaTypeToExtension(mediaType: string) {\n  const [_type, subtype = ''] = mediaType.toLowerCase().split('/');\n\n  return (\n    {\n      mpeg: 'mp3',\n      'x-wav': 'wav',\n      opus: 'ogg',\n      mp4: 'm4a',\n      'x-m4a': 'm4a',\n    }[subtype] ?? subtype\n  );\n}\n","import {\n  JSONParseError,\n  JSONValue,\n  TypeValidationError,\n} from '@ai-sdk/provider';\nimport * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport { secureJsonParse } from './secure-json-parse';\nimport { safeValidateTypes, validateTypes } from './validate-types';\nimport { Validator } from './validator';\n\n/**\n * Parses a JSON string into an unknown object.\n *\n * @param text - The JSON string to parse.\n * @returns {JSONValue} - The parsed JSON object.\n */\nexport async function parseJSON(options: {\n  text: string;\n  schema?: undefined;\n}): Promise<JSONValue>;\n/**\n * Parses a JSON string into a strongly-typed object using the provided schema.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator<T>} schema - The schema to use for parsing the JSON.\n * @returns {Promise<T>} - The parsed object.\n */\nexport async function parseJSON<T>(options: {\n  text: string;\n  schema: z4.core.$ZodType<T> | z3.Schema<T> | Validator<T>;\n}): Promise<T>;\nexport async function parseJSON<T>({\n  text,\n  schema,\n}: {\n  text: string;\n  schema?: z4.core.$ZodType<T> | z3.Schema<T> | Validator<T>;\n}): Promise<T> {\n  try {\n    const value = secureJsonParse(text);\n\n    if (schema == null) {\n      return value;\n    }\n\n    return validateTypes<T>({ value, schema });\n  } catch (error) {\n    if (\n      JSONParseError.isInstance(error) ||\n      TypeValidationError.isInstance(error)\n    ) {\n      throw error;\n    }\n\n    throw new JSONParseError({ text, cause: error });\n  }\n}\n\nexport type ParseResult<T> =\n  | { success: true; value: T; rawValue: unknown }\n  | {\n      success: false;\n      error: JSONParseError | TypeValidationError;\n      rawValue: unknown;\n    };\n\n/**\n * Safely parses a JSON string and returns the result as an object of type `unknown`.\n *\n * @param text - The JSON string to parse.\n * @returns {Promise<object>} Either an object with `success: true` and the parsed data, or an object with `success: false` and the error that occurred.\n */\nexport async function safeParseJSON(options: {\n  text: string;\n  schema?: undefined;\n}): Promise<ParseResult<JSONValue>>;\n/**\n * Safely parses a JSON string into a strongly-typed object, using a provided schema to validate the object.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator<T>} schema - The schema to use for parsing the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeParseJSON<T>(options: {\n  text: string;\n  schema: z4.core.$ZodType<T> | z3.Schema<T> | Validator<T>;\n}): Promise<ParseResult<T>>;\nexport async function safeParseJSON<T>({\n  text,\n  schema,\n}: {\n  text: string;\n  schema?: z4.core.$ZodType<T> | z3.Schema<T> | Validator<T>;\n}): Promise<ParseResult<T>> {\n  try {\n    const value = secureJsonParse(text);\n\n    if (schema == null) {\n      return { success: true, value: value as T, rawValue: value };\n    }\n\n    return await safeValidateTypes<T>({ value, schema });\n  } catch (error) {\n    return {\n      success: false,\n      error: JSONParseError.isInstance(error)\n        ? error\n        : new JSONParseError({ text, cause: error }),\n      rawValue: undefined,\n    };\n  }\n}\n\nexport function isParsableJson(input: string): boolean {\n  try {\n    secureJsonParse(input);\n    return true;\n  } catch {\n    return false;\n  }\n}\n","// Licensed under BSD-3-Clause (this file only)\n// Code adapted from https://github.com/fastify/secure-json-parse/blob/783fcb1b5434709466759847cec974381939673a/index.js\n//\n// Copyright (c) Vercel, Inc. (https://vercel.com)\n// Copyright (c) 2019 The Fastify Team\n// Copyright (c) 2019, Sideway Inc, and project contributors\n// All rights reserved.\n//\n// The complete list of contributors can be found at:\n// - https://github.com/hapijs/bourne/graphs/contributors\n// - https://github.com/fastify/secure-json-parse/graphs/contributors\n// - https://github.com/vercel/ai/commits/main/packages/provider-utils/src/secure-parse-json.ts\n//\n// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n//\n// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nconst suspectProtoRx = /\"__proto__\"\\s*:/;\nconst suspectConstructorRx = /\"constructor\"\\s*:/;\n\nfunction _parse(text: string) {\n  // Parse normally\n  const obj = JSON.parse(text);\n\n  // Ignore null and non-objects\n  if (obj === null || typeof obj !== 'object') {\n    return obj;\n  }\n\n  if (\n    suspectProtoRx.test(text) === false &&\n    suspectConstructorRx.test(text) === false\n  ) {\n    return obj;\n  }\n\n  // Scan result for proto keys\n  return filter(obj);\n}\n\nfunction filter(obj: any) {\n  let next = [obj];\n\n  while (next.length) {\n    const nodes = next;\n    next = [];\n\n    for (const node of nodes) {\n      if (Object.prototype.hasOwnProperty.call(node, '__proto__')) {\n        throw new SyntaxError('Object contains forbidden prototype property');\n      }\n\n      if (\n        Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n        Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')\n      ) {\n        throw new SyntaxError('Object contains forbidden prototype property');\n      }\n\n      for (const key in node) {\n        const value = node[key];\n        if (value && typeof value === 'object') {\n          next.push(value);\n        }\n      }\n    }\n  }\n  return obj;\n}\n\nexport function secureJsonParse(text: string) {\n  // Performance optimization, see https://github.com/fastify/secure-json-parse/pull/90\n  const { stackTraceLimit } = Error;\n  Error.stackTraceLimit = 0;\n  try {\n    return _parse(text);\n  } finally {\n    Error.stackTraceLimit = stackTraceLimit;\n  }\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\nimport { Validator, asValidator } from './validator';\n\n/**\n * Validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The object to validate.\n * @param {Validator<T>} options.schema - The schema to use for validating the JSON.\n * @returns {Promise<T>} - The typed object.\n */\nexport async function validateTypes<OBJECT>({\n  value,\n  schema,\n}: {\n  value: unknown;\n  schema: StandardSchemaV1<unknown, OBJECT> | Validator<OBJECT>;\n}): Promise<OBJECT> {\n  const result = await safeValidateTypes({ value, schema });\n\n  if (!result.success) {\n    throw TypeValidationError.wrap({ value, cause: result.error });\n  }\n\n  return result.value;\n}\n\n/**\n * Safely validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The JSON object to validate.\n * @param {Validator<T>} options.schema - The schema to use for validating the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeValidateTypes<OBJECT>({\n  value,\n  schema,\n}: {\n  value: unknown;\n  schema: StandardSchemaV1<unknown, OBJECT> | Validator<OBJECT>;\n}): Promise<\n  | {\n      success: true;\n      value: OBJECT;\n      rawValue: unknown;\n    }\n  | {\n      success: false;\n      error: TypeValidationError;\n      rawValue: unknown;\n    }\n> {\n  const validator = asValidator(schema);\n\n  try {\n    if (validator.validate == null) {\n      return { success: true, value: value as OBJECT, rawValue: value };\n    }\n\n    const result = await validator.validate(value);\n\n    if (result.success) {\n      return { success: true, value: result.value, rawValue: value };\n    }\n\n    return {\n      success: false,\n      error: TypeValidationError.wrap({ value, cause: result.error }),\n      rawValue: value,\n    };\n  } catch (error) {\n    return {\n      success: false,\n      error: TypeValidationError.wrap({ value, cause: error }),\n      rawValue: value,\n    };\n  }\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport { StandardSchemaV1 } from '@standard-schema/spec';\n\n/**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\nexport const validatorSymbol = Symbol.for('vercel.ai.validator');\n\nexport type ValidationResult<OBJECT> =\n  | { success: true; value: OBJECT }\n  | { success: false; error: Error };\n\nexport type Validator<OBJECT = unknown> = {\n  /**\n   * Used to mark validator functions so we can support both Zod and custom schemas.\n   */\n  [validatorSymbol]: true;\n\n  /**\n   * Optional. Validates that the structure of a value matches this schema,\n   * and returns a typed version of the value if it does.\n   */\n  readonly validate?: (\n    value: unknown,\n  ) => ValidationResult<OBJECT> | PromiseLike<ValidationResult<OBJECT>>;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator<OBJECT>(\n  validate?:\n    | undefined\n    | ((\n        value: unknown,\n      ) => ValidationResult<OBJECT> | PromiseLike<ValidationResult<OBJECT>>),\n): Validator<OBJECT> {\n  return { [validatorSymbol]: true, validate };\n}\n\nexport function isValidator(value: unknown): value is Validator {\n  return (\n    typeof value === 'object' &&\n    value !== null &&\n    validatorSymbol in value &&\n    value[validatorSymbol] === true &&\n    'validate' in value\n  );\n}\n\nexport function asValidator<OBJECT>(\n  value: Validator<OBJECT> | StandardSchemaV1<unknown, OBJECT>,\n): Validator<OBJECT> {\n  return isValidator(value) ? value : standardSchemaValidator(value);\n}\n\nexport function standardSchemaValidator<OBJECT>(\n  standardSchema: StandardSchemaV1<unknown, OBJECT>,\n): Validator<OBJECT> {\n  return validator(async value => {\n    const result = await standardSchema['~standard'].validate(value);\n\n    return result.issues == null\n      ? { success: true, value: result.value }\n      : {\n          success: false,\n          error: new TypeValidationError({\n            value,\n            cause: result.issues,\n          }),\n        };\n  });\n}\n","import {\n  EventSourceMessage,\n  EventSourceParserStream,\n} from 'eventsource-parser/stream';\nimport { ZodType } from 'zod/v4';\nimport { ParseResult, safeParseJSON } from './parse-json';\n\n/**\n * Parses a JSON event stream into a stream of parsed JSON objects.\n */\nexport function parseJsonEventStream<T>({\n  stream,\n  schema,\n}: {\n  stream: ReadableStream<Uint8Array>;\n  schema: ZodType<T>;\n}): ReadableStream<ParseResult<T>> {\n  return stream\n    .pipeThrough(new TextDecoderStream())\n    .pipeThrough(new EventSourceParserStream())\n    .pipeThrough(\n      new TransformStream<EventSourceMessage, ParseResult<T>>({\n        async transform({ data }, controller) {\n          // ignore the 'DONE' event that e.g. OpenAI sends:\n          if (data === '[DONE]') {\n            return;\n          }\n\n          controller.enqueue(await safeParseJSON({ text: data, schema }));\n        },\n      }),\n    );\n}\n","import { InvalidArgumentError } from '@ai-sdk/provider';\nimport { safeValidateTypes } from './validate-types';\nimport { z } from 'zod/v4';\n\nexport async function parseProviderOptions<T>({\n  provider,\n  providerOptions,\n  schema,\n}: {\n  provider: string;\n  providerOptions: Record<string, unknown> | undefined;\n  schema: z.core.$ZodType<T, any>;\n}): Promise<T | undefined> {\n  if (providerOptions?.[provider] == null) {\n    return undefined;\n  }\n\n  const parsedProviderOptions = await safeValidateTypes<T | undefined>({\n    value: providerOptions[provider],\n    schema,\n  });\n\n  if (!parsedProviderOptions.success) {\n    throw new InvalidArgumentError({\n      argument: 'providerOptions',\n      message: `invalid ${provider} provider options`,\n      cause: parsedProviderOptions.error,\n    });\n  }\n\n  return parsedProviderOptions.value;\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport { removeUndefinedEntries } from './remove-undefined-entries';\nimport { ResponseHandler } from './response-handler';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const postJsonToApi = async <T>({\n  url,\n  headers,\n  body,\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch,\n}: {\n  url: string;\n  headers?: Record<string, string | undefined>;\n  body: unknown;\n  failedResponseHandler: ResponseHandler<APICallError>;\n  successfulResponseHandler: ResponseHandler<T>;\n  abortSignal?: AbortSignal;\n  fetch?: FetchFunction;\n}) =>\n  postToApi({\n    url,\n    headers: {\n      'Content-Type': 'application/json',\n      ...headers,\n    },\n    body: {\n      content: JSON.stringify(body),\n      values: body,\n    },\n    failedResponseHandler,\n    successfulResponseHandler,\n    abortSignal,\n    fetch,\n  });\n\nexport const postFormDataToApi = async <T>({\n  url,\n  headers,\n  formData,\n  failedResponseHandler,\n  successfulResponseHandler,\n  abortSignal,\n  fetch,\n}: {\n  url: string;\n  headers?: Record<string, string | undefined>;\n  formData: FormData;\n  failedResponseHandler: ResponseHandler<APICallError>;\n  successfulResponseHandler: ResponseHandler<T>;\n  abortSignal?: AbortSignal;\n  fetch?: FetchFunction;\n}) =>\n  postToApi({\n    url,\n    headers,\n    body: {\n      content: formData,\n      values: Object.fromEntries((formData as any).entries()),\n    },\n    failedResponseHandler,\n    successfulResponseHandler,\n    abortSignal,\n    fetch,\n  });\n\nexport const postToApi = async <T>({\n  url,\n  headers = {},\n  body,\n  successfulResponseHandler,\n  failedResponseHandler,\n  abortSignal,\n  fetch = getOriginalFetch(),\n}: {\n  url: string;\n  headers?: Record<string, string | undefined>;\n  body: {\n    content: string | FormData | Uint8Array;\n    values: unknown;\n  };\n  failedResponseHandler: ResponseHandler<Error>;\n  successfulResponseHandler: ResponseHandler<T>;\n  abortSignal?: AbortSignal;\n  fetch?: FetchFunction;\n}) => {\n  try {\n    const response = await fetch(url, {\n      method: 'POST',\n      headers: removeUndefinedEntries(headers),\n      body: body.content,\n      signal: abortSignal,\n    });\n\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (!response.ok) {\n      let errorInformation: {\n        value: Error;\n        responseHeaders?: Record<string, string> | undefined;\n      };\n\n      try {\n        errorInformation = await failedResponseHandler({\n          response,\n          url,\n          requestBodyValues: body.values,\n        });\n      } catch (error) {\n        if (isAbortError(error) || APICallError.isInstance(error)) {\n          throw error;\n        }\n\n        throw new APICallError({\n          message: 'Failed to process error response',\n          cause: error,\n          statusCode: response.status,\n          url,\n          responseHeaders,\n          requestBodyValues: body.values,\n        });\n      }\n\n      throw errorInformation.value;\n    }\n\n    try {\n      return await successfulResponseHandler({\n        response,\n        url,\n        requestBodyValues: body.values,\n      });\n    } catch (error) {\n      if (error instanceof Error) {\n        if (isAbortError(error) || APICallError.isInstance(error)) {\n          throw error;\n        }\n      }\n\n      throw new APICallError({\n        message: 'Failed to process successful response',\n        cause: error,\n        statusCode: response.status,\n        url,\n        responseHeaders,\n        requestBodyValues: body.values,\n      });\n    }\n  } catch (error) {\n    throw handleFetchError({ error, url, requestBodyValues: body.values });\n  }\n};\n","import { JSONValue, LanguageModelV2ToolResultPart } from '@ai-sdk/provider';\nimport { FlexibleSchema } from '../schema';\nimport { ModelMessage } from './model-message';\nimport { ProviderOptions } from './provider-options';\n\n/**\n * Additional options that are sent into each tool call.\n */\n// TODO AI SDK 6: rename to ToolExecutionOptions\nexport interface ToolCallOptions {\n  /**\n   * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n   */\n  toolCallId: string;\n\n  /**\n   * Messages that were sent to the language model to initiate the response that contained the tool call.\n   * The messages **do not** include the system prompt nor the assistant response that contained the tool call.\n   */\n  messages: ModelMessage[];\n\n  /**\n   * An optional abort signal that indicates that the overall operation should be aborted.\n   */\n  abortSignal?: AbortSignal;\n\n  /**\n   * Additional context.\n   *\n   * Experimental (can break in patch releases).\n   */\n  experimental_context?: unknown;\n}\n\nexport type ToolExecuteFunction<INPUT, OUTPUT> = (\n  input: INPUT,\n  options: ToolCallOptions,\n) => AsyncIterable<OUTPUT> | PromiseLike<OUTPUT> | OUTPUT;\n\n// 0 extends 1 & N checks for any\n// [N] extends [never] checks for never\ntype NeverOptional<N, T> = 0 extends 1 & N\n  ? Partial<T>\n  : [N] extends [never]\n    ? Partial<Record<keyof T, undefined>>\n    : T;\n\n/**\nA tool contains the description and the schema of the input that the tool expects.\nThis enables the language model to generate the input.\n\nThe tool can also contain an optional execute function for the actual execution function of the tool.\n */\nexport type Tool<\n  INPUT extends JSONValue | unknown | never = any,\n  OUTPUT extends JSONValue | unknown | never = any,\n> = {\n  /**\nAn optional description of what the tool does.\nWill be used by the language model to decide whether to use the tool.\nNot used for provider-defined tools.\n   */\n  description?: string;\n\n  /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n   */\n  providerOptions?: ProviderOptions;\n\n  /**\nThe schema of the input that the tool expects. The language model will use this to generate the input.\nIt is also used to validate the output of the language model.\nUse descriptions to make the input understandable for the language model.\n   */\n  inputSchema: FlexibleSchema<INPUT>;\n\n  /**\n   * Optional function that is called when the argument streaming starts.\n   * Only called when the tool is used in a streaming context.\n   */\n  onInputStart?: (options: ToolCallOptions) => void | PromiseLike<void>;\n\n  /**\n   * Optional function that is called when an argument streaming delta is available.\n   * Only called when the tool is used in a streaming context.\n   */\n  onInputDelta?: (\n    options: { inputTextDelta: string } & ToolCallOptions,\n  ) => void | PromiseLike<void>;\n\n  /**\n   * Optional function that is called when a tool call can be started,\n   * even if the execute function is not provided.\n   */\n  onInputAvailable?: (\n    options: {\n      input: [INPUT] extends [never] ? undefined : INPUT;\n    } & ToolCallOptions,\n  ) => void | PromiseLike<void>;\n} & NeverOptional<\n  OUTPUT,\n  {\n    /**\nOptional conversion function that maps the tool result to an output that can be used by the language model.\n\nIf not provided, the tool result will be sent as a JSON object.\n      */\n    toModelOutput?: (output: OUTPUT) => LanguageModelV2ToolResultPart['output'];\n  } & (\n    | {\n        /**\nAn async function that is called with the arguments from the tool call and produces a result.\nIf not provided, the tool will not be executed automatically.\n\n@args is the input of the tool call.\n@options.abortSignal is a signal that can be used to abort the tool call.\n      */\n        execute: ToolExecuteFunction<INPUT, OUTPUT>;\n\n        outputSchema?: FlexibleSchema<OUTPUT>;\n      }\n    | {\n        outputSchema: FlexibleSchema<OUTPUT>;\n\n        execute?: never;\n      }\n  )\n> &\n  (\n    | {\n        /**\nTool with user-defined input and output schemas.\n     */\n        type?: undefined | 'function';\n      }\n    | {\n        /**\nTool that is defined at runtime (e.g. an MCP tool).\nThe types of input and output are not known at development time.\n       */\n        type: 'dynamic';\n      }\n    | {\n        /**\nTool with provider-defined input and output schemas.\n     */\n        type: 'provider-defined';\n\n        /**\nThe ID of the tool. Should follow the format `<provider-name>.<unique-tool-name>`.\n   */\n        id: `${string}.${string}`;\n\n        /**\nThe name of the tool that the user must use in the tool set.\n */\n        name: string;\n\n        /**\nThe arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.\n     */\n        args: Record<string, unknown>;\n      }\n  );\n\n/**\n * Infer the input type of a tool.\n */\nexport type InferToolInput<TOOL extends Tool> =\n  TOOL extends Tool<infer INPUT, any> ? INPUT : never;\n\n/**\n * Infer the output type of a tool.\n */\nexport type InferToolOutput<TOOL extends Tool> =\n  TOOL extends Tool<any, infer OUTPUT> ? OUTPUT : never;\n\n/**\nHelper function for inferring the execute args of a tool.\n */\n// Note: overload order is important for auto-completion\nexport function tool<INPUT, OUTPUT>(\n  tool: Tool<INPUT, OUTPUT>,\n): Tool<INPUT, OUTPUT>;\nexport function tool<INPUT>(tool: Tool<INPUT, never>): Tool<INPUT, never>;\nexport function tool<OUTPUT>(tool: Tool<never, OUTPUT>): Tool<never, OUTPUT>;\nexport function tool(tool: Tool<never, never>): Tool<never, never>;\nexport function tool(tool: any): any {\n  return tool;\n}\n\n/**\nHelper function for defining a dynamic tool.\n */\nexport function dynamicTool(tool: {\n  description?: string;\n  providerOptions?: ProviderOptions;\n  inputSchema: FlexibleSchema<unknown>;\n  execute: ToolExecuteFunction<unknown, unknown>;\n  toModelOutput?: (output: unknown) => LanguageModelV2ToolResultPart['output'];\n}): Tool<unknown, unknown> & {\n  type: 'dynamic';\n} {\n  return { ...tool, type: 'dynamic' };\n}\n","import { tool, Tool, ToolExecuteFunction } from './types/tool';\nimport { FlexibleSchema } from './schema';\n\nexport type ProviderDefinedToolFactory<INPUT, ARGS extends object> = <OUTPUT>(\n  options: ARGS & {\n    execute?: ToolExecuteFunction<INPUT, OUTPUT>;\n    toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];\n    onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];\n    onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];\n    onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];\n  },\n) => Tool<INPUT, OUTPUT>;\n\nexport function createProviderDefinedToolFactory<INPUT, ARGS extends object>({\n  id,\n  name,\n  inputSchema,\n}: {\n  id: `${string}.${string}`;\n  name: string;\n  inputSchema: FlexibleSchema<INPUT>;\n}): ProviderDefinedToolFactory<INPUT, ARGS> {\n  return <OUTPUT>({\n    execute,\n    outputSchema,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable,\n    ...args\n  }: ARGS & {\n    execute?: ToolExecuteFunction<INPUT, OUTPUT>;\n    outputSchema?: FlexibleSchema<OUTPUT>;\n    toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];\n    onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];\n    onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];\n    onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];\n  }): Tool<INPUT, OUTPUT> =>\n    tool({\n      type: 'provider-defined',\n      id,\n      name,\n      args,\n      inputSchema,\n      outputSchema,\n      execute,\n      toModelOutput,\n      onInputStart,\n      onInputDelta,\n      onInputAvailable,\n    });\n}\n\nexport type ProviderDefinedToolFactoryWithOutputSchema<\n  INPUT,\n  OUTPUT,\n  ARGS extends object,\n> = (\n  options: ARGS & {\n    execute?: ToolExecuteFunction<INPUT, OUTPUT>;\n    toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];\n    onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];\n    onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];\n    onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];\n  },\n) => Tool<INPUT, OUTPUT>;\n\nexport function createProviderDefinedToolFactoryWithOutputSchema<\n  INPUT,\n  OUTPUT,\n  ARGS extends object,\n>({\n  id,\n  name,\n  inputSchema,\n  outputSchema,\n}: {\n  id: `${string}.${string}`;\n  name: string;\n  inputSchema: FlexibleSchema<INPUT>;\n  outputSchema: FlexibleSchema<OUTPUT>;\n}): ProviderDefinedToolFactoryWithOutputSchema<INPUT, OUTPUT, ARGS> {\n  return ({\n    execute,\n    toModelOutput,\n    onInputStart,\n    onInputDelta,\n    onInputAvailable,\n    ...args\n  }: ARGS & {\n    execute?: ToolExecuteFunction<INPUT, OUTPUT>;\n    toModelOutput?: Tool<INPUT, OUTPUT>['toModelOutput'];\n    onInputStart?: Tool<INPUT, OUTPUT>['onInputStart'];\n    onInputDelta?: Tool<INPUT, OUTPUT>['onInputDelta'];\n    onInputAvailable?: Tool<INPUT, OUTPUT>['onInputAvailable'];\n  }): Tool<INPUT, OUTPUT> =>\n    tool({\n      type: 'provider-defined',\n      id,\n      name,\n      args,\n      inputSchema,\n      outputSchema,\n      execute,\n      toModelOutput,\n      onInputStart,\n      onInputDelta,\n      onInputAvailable,\n    });\n}\n","export type Resolvable<T> =\n  | T // Raw value\n  | Promise<T> // Promise of value\n  | (() => T) // Function returning value\n  | (() => Promise<T>); // Function returning promise of value\n\n/**\n * Resolves a value that could be a raw value, a Promise, a function returning a value,\n * or a function returning a Promise.\n */\nexport async function resolve<T>(value: Resolvable<T>): Promise<T> {\n  // If it's a function, call it to get the value/promise\n  if (typeof value === 'function') {\n    value = (value as Function)();\n  }\n\n  // Otherwise just resolve whatever we got (value or promise)\n  return Promise.resolve(value as T);\n}\n","import { APICallError, EmptyResponseBodyError } from '@ai-sdk/provider';\nimport { ZodType } from 'zod/v4';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { parseJSON, ParseResult, safeParseJSON } from './parse-json';\nimport { parseJsonEventStream } from './parse-json-event-stream';\n\nexport type ResponseHandler<RETURN_TYPE> = (options: {\n  url: string;\n  requestBodyValues: unknown;\n  response: Response;\n}) => PromiseLike<{\n  value: RETURN_TYPE;\n  rawValue?: unknown;\n  responseHeaders?: Record<string, string>;\n}>;\n\nexport const createJsonErrorResponseHandler =\n  <T>({\n    errorSchema,\n    errorToMessage,\n    isRetryable,\n  }: {\n    errorSchema: ZodType<T>;\n    errorToMessage: (error: T) => string;\n    isRetryable?: (response: Response, error?: T) => boolean;\n  }): ResponseHandler<APICallError> =>\n  async ({ response, url, requestBodyValues }) => {\n    const responseBody = await response.text();\n    const responseHeaders = extractResponseHeaders(response);\n\n    // Some providers return an empty response body for some errors:\n    if (responseBody.trim() === '') {\n      return {\n        responseHeaders,\n        value: new APICallError({\n          message: response.statusText,\n          url,\n          requestBodyValues,\n          statusCode: response.status,\n          responseHeaders,\n          responseBody,\n          isRetryable: isRetryable?.(response),\n        }),\n      };\n    }\n\n    // resilient parsing in case the response is not JSON or does not match the schema:\n    try {\n      const parsedError = await parseJSON({\n        text: responseBody,\n        schema: errorSchema,\n      });\n\n      return {\n        responseHeaders,\n        value: new APICallError({\n          message: errorToMessage(parsedError),\n          url,\n          requestBodyValues,\n          statusCode: response.status,\n          responseHeaders,\n          responseBody,\n          data: parsedError,\n          isRetryable: isRetryable?.(response, parsedError),\n        }),\n      };\n    } catch (parseError) {\n      return {\n        responseHeaders,\n        value: new APICallError({\n          message: response.statusText,\n          url,\n          requestBodyValues,\n          statusCode: response.status,\n          responseHeaders,\n          responseBody,\n          isRetryable: isRetryable?.(response),\n        }),\n      };\n    }\n  };\n\nexport const createEventSourceResponseHandler =\n  <T>(\n    chunkSchema: ZodType<T>,\n  ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\n  async ({ response }: { response: Response }) => {\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (response.body == null) {\n      throw new EmptyResponseBodyError({});\n    }\n\n    return {\n      responseHeaders,\n      value: parseJsonEventStream({\n        stream: response.body,\n        schema: chunkSchema,\n      }),\n    };\n  };\n\nexport const createJsonStreamResponseHandler =\n  <T>(\n    chunkSchema: ZodType<T>,\n  ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\n  async ({ response }: { response: Response }) => {\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (response.body == null) {\n      throw new EmptyResponseBodyError({});\n    }\n\n    let buffer = '';\n\n    return {\n      responseHeaders,\n      value: response.body.pipeThrough(new TextDecoderStream()).pipeThrough(\n        new TransformStream<string, ParseResult<T>>({\n          async transform(chunkText, controller) {\n            if (chunkText.endsWith('\\n')) {\n              controller.enqueue(\n                await safeParseJSON({\n                  text: buffer + chunkText,\n                  schema: chunkSchema,\n                }),\n              );\n              buffer = '';\n            } else {\n              buffer += chunkText;\n            }\n          },\n        }),\n      ),\n    };\n  };\n\nexport const createJsonResponseHandler =\n  <T>(responseSchema: ZodType<T>): ResponseHandler<T> =>\n  async ({ response, url, requestBodyValues }) => {\n    const responseBody = await response.text();\n\n    const parsedResult = await safeParseJSON({\n      text: responseBody,\n      schema: responseSchema,\n    });\n\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (!parsedResult.success) {\n      throw new APICallError({\n        message: 'Invalid JSON response',\n        cause: parsedResult.error,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody,\n        url,\n        requestBodyValues,\n      });\n    }\n\n    return {\n      responseHeaders,\n      value: parsedResult.value,\n      rawValue: parsedResult.rawValue,\n    };\n  };\n\nexport const createBinaryResponseHandler =\n  (): ResponseHandler<Uint8Array> =>\n  async ({ response, url, requestBodyValues }) => {\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (!response.body) {\n      throw new APICallError({\n        message: 'Response body is empty',\n        url,\n        requestBodyValues,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody: undefined,\n      });\n    }\n\n    try {\n      const buffer = await response.arrayBuffer();\n      return {\n        responseHeaders,\n        value: new Uint8Array(buffer),\n      };\n    } catch (error) {\n      throw new APICallError({\n        message: 'Failed to read response as array buffer',\n        url,\n        requestBodyValues,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody: undefined,\n        cause: error,\n      });\n    }\n  };\n\nexport const createStatusCodeErrorResponseHandler =\n  (): ResponseHandler<APICallError> =>\n  async ({ response, url, requestBodyValues }) => {\n    const responseHeaders = extractResponseHeaders(response);\n    const responseBody = await response.text();\n\n    return {\n      responseHeaders,\n      value: new APICallError({\n        message: response.statusText,\n        url,\n        requestBodyValues: requestBodyValues as Record<string, unknown>,\n        statusCode: response.status,\n        responseHeaders,\n        responseBody,\n      }),\n    };\n  };\n","import { JSONSchema7 } from '@ai-sdk/provider';\nimport * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport zodToJsonSchema from './zod-to-json-schema';\nimport { jsonSchema, Schema } from './schema';\n\nexport function zod3Schema<OBJECT>(\n  zodSchema: z3.Schema<OBJECT, z3.ZodTypeDef, any>,\n  options?: {\n    /**\n     * Enables support for references in the schema.\n     * This is required for recursive schemas, e.g. with `z.lazy`.\n     * However, not all language models and providers support such references.\n     * Defaults to `false`.\n     */\n    useReferences?: boolean;\n  },\n): Schema<OBJECT> {\n  // default to no references (to support openapi conversion for google)\n  const useReferences = options?.useReferences ?? false;\n\n  return jsonSchema(\n    zodToJsonSchema(zodSchema, {\n      $refStrategy: useReferences ? 'root' : 'none',\n    }) as JSONSchema7,\n    {\n      validate: async value => {\n        const result = await zodSchema.safeParseAsync(value);\n        return result.success\n          ? { success: true, value: result.data }\n          : { success: false, error: result.error };\n      },\n    },\n  );\n}\n\nexport function zod4Schema<OBJECT>(\n  zodSchema: z4.core.$ZodType<OBJECT, any>,\n  options?: {\n    /**\n     * Enables support for references in the schema.\n     * This is required for recursive schemas, e.g. with `z.lazy`.\n     * However, not all language models and providers support such references.\n     * Defaults to `false`.\n     */\n    useReferences?: boolean;\n  },\n): Schema<OBJECT> {\n  // default to no references (to support openapi conversion for google)\n  const useReferences = options?.useReferences ?? false;\n\n  const z4JSONSchema = z4.toJSONSchema(zodSchema, {\n    target: 'draft-7',\n    io: 'output',\n    reused: useReferences ? 'ref' : 'inline',\n  }) as JSONSchema7;\n\n  return jsonSchema(z4JSONSchema, {\n    validate: async value => {\n      const result = await z4.safeParseAsync(zodSchema, value);\n      return result.success\n        ? { success: true, value: result.data }\n        : { success: false, error: result.error };\n    },\n  });\n}\n\nexport function isZod4Schema(\n  zodSchema: z4.core.$ZodType<any, any> | z3.Schema<any, z3.ZodTypeDef, any>,\n): zodSchema is z4.core.$ZodType<any, any> {\n  // https://zod.dev/library-authors?id=how-to-support-zod-3-and-zod-4-simultaneously\n  return '_zod' in zodSchema;\n}\n\nexport function zodSchema<OBJECT>(\n  zodSchema:\n    | z4.core.$ZodType<OBJECT, any>\n    | z3.Schema<OBJECT, z3.ZodTypeDef, any>,\n  options?: {\n    /**\n     * Enables support for references in the schema.\n     * This is required for recursive schemas, e.g. with `z.lazy`.\n     * However, not all language models and providers support such references.\n     * Defaults to `false`.\n     */\n    useReferences?: boolean;\n  },\n): Schema<OBJECT> {\n  if (isZod4Schema(zodSchema)) {\n    return zod4Schema(zodSchema, options);\n  } else {\n    return zod3Schema(zodSchema, options);\n  }\n}\n","export const getRelativePath = (pathA: string[], pathB: string[]) => {\n  let i = 0;\n  for (; i < pathA.length && i < pathB.length; i++) {\n    if (pathA[i] !== pathB[i]) break;\n  }\n  return [(pathA.length - i).toString(), ...pathB.slice(i)].join('/');\n};\n","import { ZodSchema, ZodTypeDef } from 'zod/v3';\nimport { Refs, Seen } from './refs';\nimport { JsonSchema7Type } from './parse-types';\n\nexport type DateStrategy =\n  | 'format:date-time'\n  | 'format:date'\n  | 'string'\n  | 'integer';\n\nexport const ignoreOverride = Symbol(\n  'Let zodToJsonSchema decide on which parser to use',\n);\n\nexport type OverrideCallback = (\n  def: ZodTypeDef,\n  refs: Refs,\n  seen: Seen | undefined,\n  forceResolution?: boolean,\n) => JsonSchema7Type | undefined | typeof ignoreOverride;\n\nexport type PostProcessCallback = (\n  jsonSchema: JsonSchema7Type | undefined,\n  def: ZodTypeDef,\n  refs: Refs,\n) => JsonSchema7Type | undefined;\n\nexport const jsonDescription: PostProcessCallback = (jsonSchema, def) => {\n  if (def.description) {\n    try {\n      return {\n        ...jsonSchema,\n        ...JSON.parse(def.description),\n      };\n    } catch {}\n  }\n\n  return jsonSchema;\n};\n\nexport type Options = {\n  name: string | undefined;\n  $refStrategy: 'root' | 'relative' | 'none' | 'seen';\n  basePath: string[];\n  effectStrategy: 'input' | 'any';\n  pipeStrategy: 'input' | 'output' | 'all';\n  dateStrategy: DateStrategy | DateStrategy[];\n  mapStrategy: 'entries' | 'record';\n  removeAdditionalStrategy: 'passthrough' | 'strict';\n  allowedAdditionalProperties: true | undefined;\n  rejectedAdditionalProperties: false | undefined;\n  strictUnions: boolean;\n  definitionPath: string;\n  definitions: Record<string, ZodSchema>;\n  errorMessages: boolean;\n  patternStrategy: 'escape' | 'preserve';\n  applyRegexFlags: boolean;\n  emailStrategy: 'format:email' | 'format:idn-email' | 'pattern:zod';\n  base64Strategy: 'format:binary' | 'contentEncoding:base64' | 'pattern:zod';\n  nameStrategy: 'ref' | 'title';\n  override?: OverrideCallback;\n  postProcess?: PostProcessCallback;\n};\n\nexport const defaultOptions: Options = {\n  name: undefined,\n  $refStrategy: 'root',\n  basePath: ['#'],\n  effectStrategy: 'input',\n  pipeStrategy: 'all',\n  dateStrategy: 'format:date-time',\n  mapStrategy: 'entries',\n  removeAdditionalStrategy: 'passthrough',\n  allowedAdditionalProperties: true,\n  rejectedAdditionalProperties: false,\n  definitionPath: 'definitions',\n  strictUnions: false,\n  definitions: {},\n  errorMessages: false,\n  patternStrategy: 'escape',\n  applyRegexFlags: false,\n  emailStrategy: 'format:email',\n  base64Strategy: 'contentEncoding:base64',\n  nameStrategy: 'ref',\n};\n\nexport const getDefaultOptions = (\n  options: Partial<Options> | string | undefined,\n) =>\n  (typeof options === 'string'\n    ? {\n        ...defaultOptions,\n        name: options,\n      }\n    : {\n        ...defaultOptions,\n        ...options,\n      }) as Options;\n","import { ZodFirstPartyTypeKind } from 'zod/v3';\nimport { parseAnyDef } from './parsers/any';\nimport { parseArrayDef } from './parsers/array';\nimport { parseBigintDef } from './parsers/bigint';\nimport { parseBooleanDef } from './parsers/boolean';\nimport { parseBrandedDef } from './parsers/branded';\nimport { parseCatchDef } from './parsers/catch';\nimport { parseDateDef } from './parsers/date';\nimport { parseDefaultDef } from './parsers/default';\nimport { parseEffectsDef } from './parsers/effects';\nimport { parseEnumDef } from './parsers/enum';\nimport { parseIntersectionDef } from './parsers/intersection';\nimport { parseLiteralDef } from './parsers/literal';\nimport { parseMapDef } from './parsers/map';\nimport { parseNativeEnumDef } from './parsers/native-enum';\nimport { parseNeverDef } from './parsers/never';\nimport { parseNullDef } from './parsers/null';\nimport { parseNullableDef } from './parsers/nullable';\nimport { parseNumberDef } from './parsers/number';\nimport { parseObjectDef } from './parsers/object';\nimport { parseOptionalDef } from './parsers/optional';\nimport { parsePipelineDef } from './parsers/pipeline';\nimport { parsePromiseDef } from './parsers/promise';\nimport { parseRecordDef } from './parsers/record';\nimport { parseSetDef } from './parsers/set';\nimport { parseStringDef } from './parsers/string';\nimport { parseTupleDef } from './parsers/tuple';\nimport { parseUndefinedDef } from './parsers/undefined';\nimport { parseUnionDef } from './parsers/union';\nimport { parseUnknownDef } from './parsers/unknown';\nimport { Refs } from './refs';\nimport { parseReadonlyDef } from './parsers/readonly';\nimport { JsonSchema7Type } from './parse-types';\n\nexport type InnerDefGetter = () => any;\n\nexport const selectParser = (\n  def: any,\n  typeName: ZodFirstPartyTypeKind,\n  refs: Refs,\n): JsonSchema7Type | undefined | InnerDefGetter => {\n  switch (typeName) {\n    case ZodFirstPartyTypeKind.ZodString:\n      return parseStringDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodNumber:\n      return parseNumberDef(def);\n    case ZodFirstPartyTypeKind.ZodObject:\n      return parseObjectDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodBigInt:\n      return parseBigintDef(def);\n    case ZodFirstPartyTypeKind.ZodBoolean:\n      return parseBooleanDef();\n    case ZodFirstPartyTypeKind.ZodDate:\n      return parseDateDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodUndefined:\n      return parseUndefinedDef();\n    case ZodFirstPartyTypeKind.ZodNull:\n      return parseNullDef();\n    case ZodFirstPartyTypeKind.ZodArray:\n      return parseArrayDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodUnion:\n    case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n      return parseUnionDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodIntersection:\n      return parseIntersectionDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodTuple:\n      return parseTupleDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodRecord:\n      return parseRecordDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodLiteral:\n      return parseLiteralDef(def);\n    case ZodFirstPartyTypeKind.ZodEnum:\n      return parseEnumDef(def);\n    case ZodFirstPartyTypeKind.ZodNativeEnum:\n      return parseNativeEnumDef(def);\n    case ZodFirstPartyTypeKind.ZodNullable:\n      return parseNullableDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodOptional:\n      return parseOptionalDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodMap:\n      return parseMapDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodSet:\n      return parseSetDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodLazy:\n      return () => (def as any).getter()._def;\n    case ZodFirstPartyTypeKind.ZodPromise:\n      return parsePromiseDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodNaN:\n    case ZodFirstPartyTypeKind.ZodNever:\n      return parseNeverDef();\n    case ZodFirstPartyTypeKind.ZodEffects:\n      return parseEffectsDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodAny:\n      return parseAnyDef();\n    case ZodFirstPartyTypeKind.ZodUnknown:\n      return parseUnknownDef();\n    case ZodFirstPartyTypeKind.ZodDefault:\n      return parseDefaultDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodBranded:\n      return parseBrandedDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodReadonly:\n      return parseReadonlyDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodCatch:\n      return parseCatchDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodPipeline:\n      return parsePipelineDef(def, refs);\n    case ZodFirstPartyTypeKind.ZodFunction:\n    case ZodFirstPartyTypeKind.ZodVoid:\n    case ZodFirstPartyTypeKind.ZodSymbol:\n      return undefined;\n    default:\n      /* c8 ignore next */\n      return ((_: never) => undefined)(typeName);\n  }\n};\n","export type JsonSchema7AnyType = { $ref?: string };\n\nexport function parseAnyDef(): JsonSchema7AnyType {\n  return {};\n}\n","import { ZodArrayDef, ZodFirstPartyTypeKind } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport type JsonSchema7ArrayType = {\n  type: 'array';\n  items?: JsonSchema7Type;\n  minItems?: number;\n  maxItems?: number;\n};\n\nexport function parseArrayDef(def: ZodArrayDef, refs: Refs) {\n  const res: JsonSchema7ArrayType = {\n    type: 'array',\n  };\n  if (\n    def.type?._def &&\n    def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny\n  ) {\n    res.items = parseDef(def.type._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'items'],\n    });\n  }\n\n  if (def.minLength) {\n    res.minItems = def.minLength.value;\n  }\n  if (def.maxLength) {\n    res.maxItems = def.maxLength.value;\n  }\n  if (def.exactLength) {\n    res.minItems = def.exactLength.value;\n    res.maxItems = def.exactLength.value;\n  }\n  return res;\n}\n","import { ZodBigIntDef } from 'zod/v3';\n\nexport type JsonSchema7BigintType = {\n  type: 'integer';\n  format: 'int64';\n  minimum?: BigInt;\n  exclusiveMinimum?: BigInt;\n  maximum?: BigInt;\n  exclusiveMaximum?: BigInt;\n  multipleOf?: BigInt;\n};\n\nexport function parseBigintDef(def: ZodBigIntDef): JsonSchema7BigintType {\n  const res: JsonSchema7BigintType = {\n    type: 'integer',\n    format: 'int64',\n  };\n\n  if (!def.checks) return res;\n\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case 'min':\n        if (check.inclusive) {\n          res.minimum = check.value;\n        } else {\n          res.exclusiveMinimum = check.value;\n        }\n        break;\n      case 'max':\n        if (check.inclusive) {\n          res.maximum = check.value;\n        } else {\n          res.exclusiveMaximum = check.value;\n        }\n\n        break;\n      case 'multipleOf':\n        res.multipleOf = check.value;\n        break;\n    }\n  }\n  return res;\n}\n","export type JsonSchema7BooleanType = {\n  type: 'boolean';\n};\n\nexport function parseBooleanDef(): JsonSchema7BooleanType {\n  return { type: 'boolean' };\n}\n","import { ZodBrandedDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { Refs } from '../refs';\n\nexport function parseBrandedDef(_def: ZodBrandedDef<any>, refs: Refs) {\n  return parseDef(_def.type._def, refs);\n}\n","import { ZodCatchDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { Refs } from '../refs';\n\nexport const parseCatchDef = (def: ZodCatchDef<any>, refs: Refs) => {\n  return parseDef(def.innerType._def, refs);\n};\n","import { ZodDateDef } from 'zod/v3';\nimport { Refs } from '../refs';\nimport { DateStrategy } from '../options';\n\nexport type JsonSchema7DateType =\n  | {\n      type: 'integer' | 'string';\n      format: 'unix-time' | 'date-time' | 'date';\n      minimum?: number;\n      maximum?: number;\n    }\n  | {\n      anyOf: JsonSchema7DateType[];\n    };\n\nexport function parseDateDef(\n  def: ZodDateDef,\n  refs: Refs,\n  overrideDateStrategy?: DateStrategy,\n): JsonSchema7DateType {\n  const strategy = overrideDateStrategy ?? refs.dateStrategy;\n\n  if (Array.isArray(strategy)) {\n    return {\n      anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n    };\n  }\n\n  switch (strategy) {\n    case 'string':\n    case 'format:date-time':\n      return {\n        type: 'string',\n        format: 'date-time',\n      };\n    case 'format:date':\n      return {\n        type: 'string',\n        format: 'date',\n      };\n    case 'integer':\n      return integerDateParser(def);\n  }\n}\n\nconst integerDateParser = (def: ZodDateDef) => {\n  const res: JsonSchema7DateType = {\n    type: 'integer',\n    format: 'unix-time',\n  };\n\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case 'min':\n        res.minimum = check.value;\n        break;\n      case 'max':\n        res.maximum = check.value;\n        break;\n    }\n  }\n\n  return res;\n};\n","import { ZodDefaultDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport function parseDefaultDef(\n  _def: ZodDefaultDef,\n  refs: Refs,\n): JsonSchema7Type & { default: any } {\n  return {\n    ...parseDef(_def.innerType._def, refs),\n    default: _def.defaultValue(),\n  };\n}\n","import { ZodEffectsDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport function parseEffectsDef(\n  _def: ZodEffectsDef,\n  refs: Refs,\n): JsonSchema7Type | undefined {\n  return refs.effectStrategy === 'input'\n    ? parseDef(_def.schema._def, refs)\n    : parseAnyDef();\n}\n","import { ZodEnumDef } from 'zod/v3';\n\nexport type JsonSchema7EnumType = {\n  type: 'string';\n  enum: string[];\n};\n\nexport function parseEnumDef(def: ZodEnumDef): JsonSchema7EnumType {\n  return {\n    type: 'string',\n    enum: Array.from(def.values),\n  };\n}\n","import { ZodIntersectionDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { JsonSchema7StringType } from './string';\n\nexport type JsonSchema7AllOfType = {\n  allOf: JsonSchema7Type[];\n  unevaluatedProperties?: boolean;\n};\n\nconst isJsonSchema7AllOfType = (\n  type: JsonSchema7Type | JsonSchema7StringType,\n): type is JsonSchema7AllOfType => {\n  if ('type' in type && type.type === 'string') return false;\n  return 'allOf' in type;\n};\n\nexport function parseIntersectionDef(\n  def: ZodIntersectionDef,\n  refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined {\n  const allOf = [\n    parseDef(def.left._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'allOf', '0'],\n    }),\n    parseDef(def.right._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'allOf', '1'],\n    }),\n  ].filter((x): x is JsonSchema7Type => !!x);\n\n  const mergedAllOf: JsonSchema7Type[] = [];\n  // If either of the schemas is an allOf, merge them into a single allOf\n  allOf.forEach(schema => {\n    if (isJsonSchema7AllOfType(schema)) {\n      mergedAllOf.push(...schema.allOf);\n    } else {\n      let nestedSchema: JsonSchema7Type = schema;\n      if (\n        'additionalProperties' in schema &&\n        schema.additionalProperties === false\n      ) {\n        const { additionalProperties, ...rest } = schema;\n        nestedSchema = rest;\n      }\n      mergedAllOf.push(nestedSchema);\n    }\n  });\n  return mergedAllOf.length ? { allOf: mergedAllOf } : undefined;\n}\n","import { ZodLiteralDef } from 'zod/v3';\n\nexport type JsonSchema7LiteralType =\n  | {\n      type: 'string' | 'number' | 'integer' | 'boolean';\n      const: string | number | boolean;\n    }\n  | {\n      type: 'object' | 'array';\n    };\n\nexport function parseLiteralDef(def: ZodLiteralDef): JsonSchema7LiteralType {\n  const parsedType = typeof def.value;\n  if (\n    parsedType !== 'bigint' &&\n    parsedType !== 'number' &&\n    parsedType !== 'boolean' &&\n    parsedType !== 'string'\n  ) {\n    return {\n      type: Array.isArray(def.value) ? 'array' : 'object',\n    };\n  }\n\n  return {\n    type: parsedType === 'bigint' ? 'integer' : parsedType,\n    const: def.value,\n  };\n}\n","import {\n  ZodFirstPartyTypeKind,\n  ZodMapDef,\n  ZodRecordDef,\n  ZodTypeAny,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { parseBrandedDef } from './branded';\nimport { JsonSchema7EnumType } from './enum';\nimport { JsonSchema7StringType, parseStringDef } from './string';\n\ntype JsonSchema7RecordPropertyNamesType =\n  | Omit<JsonSchema7StringType, 'type'>\n  | Omit<JsonSchema7EnumType, 'type'>;\n\nexport type JsonSchema7RecordType = {\n  type: 'object';\n  additionalProperties?: JsonSchema7Type | true;\n  propertyNames?: JsonSchema7RecordPropertyNamesType;\n};\n\nexport function parseRecordDef(\n  def: ZodRecordDef<ZodTypeAny, ZodTypeAny> | ZodMapDef,\n  refs: Refs,\n): JsonSchema7RecordType {\n  const schema: JsonSchema7RecordType = {\n    type: 'object',\n    additionalProperties:\n      parseDef(def.valueType._def, {\n        ...refs,\n        currentPath: [...refs.currentPath, 'additionalProperties'],\n      }) ?? refs.allowedAdditionalProperties,\n  };\n\n  if (\n    def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n    def.keyType._def.checks?.length\n  ) {\n    const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n\n    return {\n      ...schema,\n      propertyNames: keyType,\n    };\n  } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n    return {\n      ...schema,\n      propertyNames: {\n        enum: def.keyType._def.values,\n      },\n    };\n  } else if (\n    def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n    def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n    def.keyType._def.type._def.checks?.length\n  ) {\n    const { type, ...keyType } = parseBrandedDef(\n      def.keyType._def,\n      refs,\n    ) as JsonSchema7StringType;\n\n    return {\n      ...schema,\n      propertyNames: keyType,\n    };\n  }\n\n  return schema;\n}\n","import { ZodStringDef } from 'zod/v3';\nimport { Refs } from '../refs';\n\nlet emojiRegex: RegExp | undefined = undefined;\n\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n  /**\n   * `c` was changed to `[cC]` to replicate /i flag\n   */\n  cuid: /^[cC][^\\s-]{8,}$/,\n  cuid2: /^[0-9a-z]+$/,\n  ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n  /**\n   * `a-z` was added to replicate /i flag\n   */\n  email:\n    /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n  /**\n   * Constructed a valid Unicode RegExp\n   *\n   * Lazily instantiate since this type of regex isn't supported\n   * in all envs (e.g. React Native).\n   *\n   * See:\n   * https://github.com/colinhacks/zod/issues/2433\n   * Fix in Zod:\n   * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n   */\n  emoji: () => {\n    if (emojiRegex === undefined) {\n      emojiRegex = RegExp(\n        '^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$',\n        'u',\n      );\n    }\n    return emojiRegex;\n  },\n  /**\n   * Unused\n   */\n  uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n  /**\n   * Unused\n   */\n  ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n  ipv4Cidr:\n    /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n  /**\n   * Unused\n   */\n  ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n  ipv6Cidr:\n    /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n  base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n  base64url:\n    /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n  nanoid: /^[a-zA-Z0-9_-]{21}$/,\n  jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n} as const;\n\nexport type JsonSchema7StringType = {\n  type: 'string';\n  minLength?: number;\n  maxLength?: number;\n  format?:\n    | 'email'\n    | 'idn-email'\n    | 'uri'\n    | 'uuid'\n    | 'date-time'\n    | 'ipv4'\n    | 'ipv6'\n    | 'date'\n    | 'time'\n    | 'duration';\n  pattern?: string;\n  allOf?: {\n    pattern: string;\n  }[];\n  anyOf?: {\n    format: string;\n  }[];\n  contentEncoding?: string;\n};\n\nexport function parseStringDef(\n  def: ZodStringDef,\n  refs: Refs,\n): JsonSchema7StringType {\n  const res: JsonSchema7StringType = {\n    type: 'string',\n  };\n\n  if (def.checks) {\n    for (const check of def.checks) {\n      switch (check.kind) {\n        case 'min':\n          res.minLength =\n            typeof res.minLength === 'number'\n              ? Math.max(res.minLength, check.value)\n              : check.value;\n          break;\n        case 'max':\n          res.maxLength =\n            typeof res.maxLength === 'number'\n              ? Math.min(res.maxLength, check.value)\n              : check.value;\n\n          break;\n        case 'email':\n          switch (refs.emailStrategy) {\n            case 'format:email':\n              addFormat(res, 'email', check.message, refs);\n              break;\n            case 'format:idn-email':\n              addFormat(res, 'idn-email', check.message, refs);\n              break;\n            case 'pattern:zod':\n              addPattern(res, zodPatterns.email, check.message, refs);\n              break;\n          }\n\n          break;\n        case 'url':\n          addFormat(res, 'uri', check.message, refs);\n          break;\n        case 'uuid':\n          addFormat(res, 'uuid', check.message, refs);\n          break;\n        case 'regex':\n          addPattern(res, check.regex, check.message, refs);\n          break;\n        case 'cuid':\n          addPattern(res, zodPatterns.cuid, check.message, refs);\n          break;\n        case 'cuid2':\n          addPattern(res, zodPatterns.cuid2, check.message, refs);\n          break;\n        case 'startsWith':\n          addPattern(\n            res,\n            RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n            check.message,\n            refs,\n          );\n          break;\n        case 'endsWith':\n          addPattern(\n            res,\n            RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n            check.message,\n            refs,\n          );\n          break;\n        case 'datetime':\n          addFormat(res, 'date-time', check.message, refs);\n          break;\n        case 'date':\n          addFormat(res, 'date', check.message, refs);\n          break;\n        case 'time':\n          addFormat(res, 'time', check.message, refs);\n          break;\n        case 'duration':\n          addFormat(res, 'duration', check.message, refs);\n          break;\n        case 'length':\n          res.minLength =\n            typeof res.minLength === 'number'\n              ? Math.max(res.minLength, check.value)\n              : check.value;\n          res.maxLength =\n            typeof res.maxLength === 'number'\n              ? Math.min(res.maxLength, check.value)\n              : check.value;\n          break;\n        case 'includes': {\n          addPattern(\n            res,\n            RegExp(escapeLiteralCheckValue(check.value, refs)),\n            check.message,\n            refs,\n          );\n          break;\n        }\n        case 'ip': {\n          if (check.version !== 'v6') {\n            addFormat(res, 'ipv4', check.message, refs);\n          }\n          if (check.version !== 'v4') {\n            addFormat(res, 'ipv6', check.message, refs);\n          }\n          break;\n        }\n        case 'base64url':\n          addPattern(res, zodPatterns.base64url, check.message, refs);\n          break;\n        case 'jwt':\n          addPattern(res, zodPatterns.jwt, check.message, refs);\n          break;\n        case 'cidr': {\n          if (check.version !== 'v6') {\n            addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n          }\n          if (check.version !== 'v4') {\n            addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n          }\n          break;\n        }\n        case 'emoji':\n          addPattern(res, zodPatterns.emoji(), check.message, refs);\n          break;\n        case 'ulid': {\n          addPattern(res, zodPatterns.ulid, check.message, refs);\n          break;\n        }\n        case 'base64': {\n          switch (refs.base64Strategy) {\n            case 'format:binary': {\n              addFormat(res, 'binary' as any, check.message, refs);\n              break;\n            }\n\n            case 'contentEncoding:base64': {\n              res.contentEncoding = 'base64';\n              break;\n            }\n\n            case 'pattern:zod': {\n              addPattern(res, zodPatterns.base64, check.message, refs);\n              break;\n            }\n          }\n          break;\n        }\n        case 'nanoid': {\n          addPattern(res, zodPatterns.nanoid, check.message, refs);\n        }\n        case 'toLowerCase':\n        case 'toUpperCase':\n        case 'trim':\n          break;\n        default:\n          /* c8 ignore next */\n          ((_: never) => {})(check);\n      }\n    }\n  }\n\n  return res;\n}\n\nfunction escapeLiteralCheckValue(literal: string, refs: Refs): string {\n  return refs.patternStrategy === 'escape'\n    ? escapeNonAlphaNumeric(literal)\n    : literal;\n}\n\nconst ALPHA_NUMERIC = new Set(\n  'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789',\n);\n\nfunction escapeNonAlphaNumeric(source: string) {\n  let result = '';\n\n  for (let i = 0; i < source.length; i++) {\n    if (!ALPHA_NUMERIC.has(source[i])) {\n      result += '\\\\';\n    }\n\n    result += source[i];\n  }\n\n  return result;\n}\n\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(\n  schema: JsonSchema7StringType,\n  value: Required<JsonSchema7StringType>['format'],\n  message: string | undefined,\n  refs: Refs,\n) {\n  if (schema.format || schema.anyOf?.some(x => x.format)) {\n    if (!schema.anyOf) {\n      schema.anyOf = [];\n    }\n\n    if (schema.format) {\n      schema.anyOf!.push({\n        format: schema.format,\n      });\n      delete schema.format;\n    }\n\n    schema.anyOf!.push({\n      format: value,\n      ...(message &&\n        refs.errorMessages && { errorMessage: { format: message } }),\n    });\n  } else {\n    schema.format = value;\n  }\n}\n\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(\n  schema: JsonSchema7StringType,\n  regex: RegExp,\n  message: string | undefined,\n  refs: Refs,\n) {\n  if (schema.pattern || schema.allOf?.some(x => x.pattern)) {\n    if (!schema.allOf) {\n      schema.allOf = [];\n    }\n\n    if (schema.pattern) {\n      schema.allOf!.push({\n        pattern: schema.pattern,\n      });\n      delete schema.pattern;\n    }\n\n    schema.allOf!.push({\n      pattern: stringifyRegExpWithFlags(regex, refs),\n      ...(message &&\n        refs.errorMessages && { errorMessage: { pattern: message } }),\n    });\n  } else {\n    schema.pattern = stringifyRegExpWithFlags(regex, refs);\n  }\n}\n\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex: RegExp, refs: Refs): string {\n  if (!refs.applyRegexFlags || !regex.flags) {\n    return regex.source;\n  }\n\n  // Currently handled flags\n  const flags = {\n    i: regex.flags.includes('i'), // Case-insensitive\n    m: regex.flags.includes('m'), // `^` and `$` matches adjacent to newline characters\n    s: regex.flags.includes('s'), // `.` matches newlines\n  };\n\n  // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n  const source = flags.i ? regex.source.toLowerCase() : regex.source;\n  let pattern = '';\n  let isEscaped = false;\n  let inCharGroup = false;\n  let inCharRange = false;\n\n  for (let i = 0; i < source.length; i++) {\n    if (isEscaped) {\n      pattern += source[i];\n      isEscaped = false;\n      continue;\n    }\n\n    if (flags.i) {\n      if (inCharGroup) {\n        if (source[i].match(/[a-z]/)) {\n          if (inCharRange) {\n            pattern += source[i];\n            pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n            inCharRange = false;\n          } else if (source[i + 1] === '-' && source[i + 2]?.match(/[a-z]/)) {\n            pattern += source[i];\n            inCharRange = true;\n          } else {\n            pattern += `${source[i]}${source[i].toUpperCase()}`;\n          }\n          continue;\n        }\n      } else if (source[i].match(/[a-z]/)) {\n        pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n        continue;\n      }\n    }\n\n    if (flags.m) {\n      if (source[i] === '^') {\n        pattern += `(^|(?<=[\\r\\n]))`;\n        continue;\n      } else if (source[i] === '$') {\n        pattern += `($|(?=[\\r\\n]))`;\n        continue;\n      }\n    }\n\n    if (flags.s && source[i] === '.') {\n      pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n      continue;\n    }\n\n    pattern += source[i];\n    if (source[i] === '\\\\') {\n      isEscaped = true;\n    } else if (inCharGroup && source[i] === ']') {\n      inCharGroup = false;\n    } else if (!inCharGroup && source[i] === '[') {\n      inCharGroup = true;\n    }\n  }\n\n  try {\n    new RegExp(pattern);\n  } catch {\n    console.warn(\n      `Could not convert regex pattern at ${refs.currentPath.join(\n        '/',\n      )} to a flag-independent form! Falling back to the flag-ignorant source`,\n    );\n    return regex.source;\n  }\n\n  return pattern;\n}\n","import { ZodMapDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { parseAnyDef } from './any';\nimport { JsonSchema7RecordType, parseRecordDef } from './record';\n\nexport type JsonSchema7MapType = {\n  type: 'array';\n  maxItems: 125;\n  items: {\n    type: 'array';\n    items: [JsonSchema7Type, JsonSchema7Type];\n    minItems: 2;\n    maxItems: 2;\n  };\n};\n\nexport function parseMapDef(\n  def: ZodMapDef,\n  refs: Refs,\n): JsonSchema7MapType | JsonSchema7RecordType {\n  if (refs.mapStrategy === 'record') {\n    return parseRecordDef(def, refs);\n  }\n\n  const keys =\n    parseDef(def.keyType._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'items', 'items', '0'],\n    }) || parseAnyDef();\n  const values =\n    parseDef(def.valueType._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'items', 'items', '1'],\n    }) || parseAnyDef();\n  return {\n    type: 'array',\n    maxItems: 125,\n    items: {\n      type: 'array',\n      items: [keys, values],\n      minItems: 2,\n      maxItems: 2,\n    },\n  };\n}\n","import { ZodNativeEnumDef } from 'zod/v3';\n\nexport type JsonSchema7NativeEnumType = {\n  type: 'string' | 'number' | ['string', 'number'];\n  enum: (string | number)[];\n};\n\nexport function parseNativeEnumDef(\n  def: ZodNativeEnumDef,\n): JsonSchema7NativeEnumType {\n  const object = def.values;\n  const actualKeys = Object.keys(def.values).filter((key: string) => {\n    return typeof object[object[key]] !== 'number';\n  });\n\n  const actualValues = actualKeys.map((key: string) => object[key]);\n\n  const parsedTypes = Array.from(\n    new Set(actualValues.map((values: string | number) => typeof values)),\n  );\n\n  return {\n    type:\n      parsedTypes.length === 1\n        ? parsedTypes[0] === 'string'\n          ? 'string'\n          : 'number'\n        : ['string', 'number'],\n    enum: actualValues,\n  };\n}\n","import { JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7NeverType = {\n  not: JsonSchema7AnyType;\n};\n\nexport function parseNeverDef(): JsonSchema7NeverType | undefined {\n  return { not: parseAnyDef() };\n}\n","export type JsonSchema7NullType = {\n  type: 'null';\n};\n\nexport function parseNullDef(): JsonSchema7NullType {\n  return {\n    type: 'null',\n  };\n}\n","import {\n  ZodDiscriminatedUnionDef,\n  ZodLiteralDef,\n  ZodTypeAny,\n  ZodUnionDef,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport const primitiveMappings = {\n  ZodString: 'string',\n  ZodNumber: 'number',\n  ZodBigInt: 'integer',\n  ZodBoolean: 'boolean',\n  ZodNull: 'null',\n} as const;\ntype ZodPrimitive = keyof typeof primitiveMappings;\ntype JsonSchema7Primitive =\n  (typeof primitiveMappings)[keyof typeof primitiveMappings];\n\nexport type JsonSchema7UnionType =\n  | JsonSchema7PrimitiveUnionType\n  | JsonSchema7AnyOfType;\n\ntype JsonSchema7PrimitiveUnionType =\n  | {\n      type: JsonSchema7Primitive | JsonSchema7Primitive[];\n    }\n  | {\n      type: JsonSchema7Primitive | JsonSchema7Primitive[];\n      enum: (string | number | bigint | boolean | null)[];\n    };\n\ntype JsonSchema7AnyOfType = {\n  anyOf: JsonSchema7Type[];\n};\n\nexport function parseUnionDef(\n  def: ZodUnionDef | ZodDiscriminatedUnionDef<any, any>,\n  refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined {\n  const options: readonly ZodTypeAny[] =\n    def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n\n  // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n  if (\n    options.every(\n      x =>\n        x._def.typeName in primitiveMappings &&\n        (!x._def.checks || !x._def.checks.length),\n    )\n  ) {\n    // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n\n    const types = options.reduce((types: JsonSchema7Primitive[], x) => {\n      const type = primitiveMappings[x._def.typeName as ZodPrimitive]; //Can be safely casted due to row 43\n      return type && !types.includes(type) ? [...types, type] : types;\n    }, []);\n\n    return {\n      type: types.length > 1 ? types : types[0],\n    };\n  } else if (\n    options.every(x => x._def.typeName === 'ZodLiteral' && !x.description)\n  ) {\n    // all options literals\n\n    const types = options.reduce(\n      (acc: JsonSchema7Primitive[], x: { _def: ZodLiteralDef }) => {\n        const type = typeof x._def.value;\n        switch (type) {\n          case 'string':\n          case 'number':\n          case 'boolean':\n            return [...acc, type];\n          case 'bigint':\n            return [...acc, 'integer' as const];\n          case 'object':\n            if (x._def.value === null) return [...acc, 'null' as const];\n          case 'symbol':\n          case 'undefined':\n          case 'function':\n          default:\n            return acc;\n        }\n      },\n      [],\n    );\n\n    if (types.length === options.length) {\n      // all the literals are primitive, as far as null can be considered primitive\n\n      const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n      return {\n        type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n        enum: options.reduce(\n          (acc, x) => {\n            return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n          },\n          [] as (string | number | bigint | boolean | null)[],\n        ),\n      };\n    }\n  } else if (options.every(x => x._def.typeName === 'ZodEnum')) {\n    return {\n      type: 'string',\n      enum: options.reduce(\n        (acc: string[], x) => [\n          ...acc,\n          ...x._def.values.filter((x: string) => !acc.includes(x)),\n        ],\n        [],\n      ),\n    };\n  }\n\n  return asAnyOf(def, refs);\n}\n\nconst asAnyOf = (\n  def: ZodUnionDef | ZodDiscriminatedUnionDef<any, any>,\n  refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined => {\n  const anyOf = (\n    (def.options instanceof Map\n      ? Array.from(def.options.values())\n      : def.options) as any[]\n  )\n    .map((x, i) =>\n      parseDef(x._def, {\n        ...refs,\n        currentPath: [...refs.currentPath, 'anyOf', `${i}`],\n      }),\n    )\n    .filter(\n      (x): x is JsonSchema7Type =>\n        !!x &&\n        (!refs.strictUnions ||\n          (typeof x === 'object' && Object.keys(x).length > 0)),\n    );\n\n  return anyOf.length ? { anyOf } : undefined;\n};\n","import { ZodNullableDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { JsonSchema7NullType } from './null';\nimport { primitiveMappings } from './union';\n\nexport type JsonSchema7NullableType =\n  | {\n      anyOf: [JsonSchema7Type, JsonSchema7NullType];\n    }\n  | {\n      type: [string, 'null'];\n    };\n\nexport function parseNullableDef(\n  def: ZodNullableDef,\n  refs: Refs,\n): JsonSchema7NullableType | undefined {\n  if (\n    ['ZodString', 'ZodNumber', 'ZodBigInt', 'ZodBoolean', 'ZodNull'].includes(\n      def.innerType._def.typeName,\n    ) &&\n    (!def.innerType._def.checks || !def.innerType._def.checks.length)\n  ) {\n    return {\n      type: [\n        primitiveMappings[\n          def.innerType._def.typeName as keyof typeof primitiveMappings\n        ],\n        'null',\n      ],\n    };\n  }\n\n  const base = parseDef(def.innerType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, 'anyOf', '0'],\n  });\n\n  return base && { anyOf: [base, { type: 'null' }] };\n}\n","import { ZodNumberDef } from 'zod/v3';\n\nexport type JsonSchema7NumberType = {\n  type: 'number' | 'integer';\n  minimum?: number;\n  exclusiveMinimum?: number;\n  maximum?: number;\n  exclusiveMaximum?: number;\n  multipleOf?: number;\n};\n\nexport function parseNumberDef(def: ZodNumberDef): JsonSchema7NumberType {\n  const res: JsonSchema7NumberType = {\n    type: 'number',\n  };\n\n  if (!def.checks) return res;\n\n  for (const check of def.checks) {\n    switch (check.kind) {\n      case 'int':\n        res.type = 'integer';\n        break;\n      case 'min':\n        if (check.inclusive) {\n          res.minimum = check.value;\n        } else {\n          res.exclusiveMinimum = check.value;\n        }\n        break;\n      case 'max':\n        if (check.inclusive) {\n          res.maximum = check.value;\n        } else {\n          res.exclusiveMaximum = check.value;\n        }\n        break;\n      case 'multipleOf':\n        res.multipleOf = check.value;\n        break;\n    }\n  }\n  return res;\n}\n","import { ZodObjectDef, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport type JsonSchema7ObjectType = {\n  type: 'object';\n  properties: Record<string, JsonSchema7Type>;\n  additionalProperties?: boolean | JsonSchema7Type;\n  required?: string[];\n};\n\nexport function parseObjectDef(def: ZodObjectDef, refs: Refs) {\n  const result: JsonSchema7ObjectType = {\n    type: 'object',\n    properties: {},\n  };\n\n  const required: string[] = [];\n\n  const shape = def.shape();\n\n  for (const propName in shape) {\n    let propDef = shape[propName];\n\n    if (propDef === undefined || propDef._def === undefined) {\n      continue;\n    }\n\n    const propOptional = safeIsOptional(propDef);\n\n    const parsedDef = parseDef(propDef._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'properties', propName],\n      propertyPath: [...refs.currentPath, 'properties', propName],\n    });\n\n    if (parsedDef === undefined) {\n      continue;\n    }\n\n    result.properties[propName] = parsedDef;\n\n    if (!propOptional) {\n      required.push(propName);\n    }\n  }\n\n  if (required.length) {\n    result.required = required;\n  }\n\n  const additionalProperties = decideAdditionalProperties(def, refs);\n\n  if (additionalProperties !== undefined) {\n    result.additionalProperties = additionalProperties;\n  }\n\n  return result;\n}\n\nfunction decideAdditionalProperties(def: ZodObjectDef, refs: Refs) {\n  if (def.catchall._def.typeName !== 'ZodNever') {\n    return parseDef(def.catchall._def, {\n      ...refs,\n      currentPath: [...refs.currentPath, 'additionalProperties'],\n    });\n  }\n\n  switch (def.unknownKeys) {\n    case 'passthrough':\n      return refs.allowedAdditionalProperties;\n    case 'strict':\n      return refs.rejectedAdditionalProperties;\n    case 'strip':\n      return refs.removeAdditionalStrategy === 'strict'\n        ? refs.allowedAdditionalProperties\n        : refs.rejectedAdditionalProperties;\n  }\n}\n\nfunction safeIsOptional(schema: ZodTypeAny): boolean {\n  try {\n    return schema.isOptional();\n  } catch {\n    return true;\n  }\n}\n","import { ZodOptionalDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport const parseOptionalDef = (\n  def: ZodOptionalDef,\n  refs: Refs,\n): JsonSchema7Type | undefined => {\n  if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n    return parseDef(def.innerType._def, refs);\n  }\n\n  const innerSchema = parseDef(def.innerType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, 'anyOf', '1'],\n  });\n\n  return innerSchema\n    ? { anyOf: [{ not: parseAnyDef() }, innerSchema] }\n    : parseAnyDef();\n};\n","import { ZodPipelineDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\nimport { JsonSchema7AllOfType } from './intersection';\n\nexport const parsePipelineDef = (\n  def: ZodPipelineDef<any, any>,\n  refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined => {\n  if (refs.pipeStrategy === 'input') {\n    return parseDef(def.in._def, refs);\n  } else if (refs.pipeStrategy === 'output') {\n    return parseDef(def.out._def, refs);\n  }\n\n  const a = parseDef(def.in._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, 'allOf', '0'],\n  });\n  const b = parseDef(def.out._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, 'allOf', a ? '1' : '0'],\n  });\n\n  return {\n    allOf: [a, b].filter((x): x is JsonSchema7Type => x !== undefined),\n  };\n};\n","import { ZodPromiseDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport function parsePromiseDef(\n  def: ZodPromiseDef,\n  refs: Refs,\n): JsonSchema7Type | undefined {\n  return parseDef(def.type._def, refs);\n}\n","import { ZodSetDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport type JsonSchema7SetType = {\n  type: 'array';\n  uniqueItems: true;\n  items?: JsonSchema7Type;\n  minItems?: number;\n  maxItems?: number;\n};\n\nexport function parseSetDef(def: ZodSetDef, refs: Refs): JsonSchema7SetType {\n  const items = parseDef(def.valueType._def, {\n    ...refs,\n    currentPath: [...refs.currentPath, 'items'],\n  });\n\n  const schema: JsonSchema7SetType = {\n    type: 'array',\n    uniqueItems: true,\n    items,\n  };\n\n  if (def.minSize) {\n    schema.minItems = def.minSize.value;\n  }\n\n  if (def.maxSize) {\n    schema.maxItems = def.maxSize.value;\n  }\n\n  return schema;\n}\n","import { ZodTupleDef, ZodTupleItems, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { JsonSchema7Type } from '../parse-types';\nimport { Refs } from '../refs';\n\nexport type JsonSchema7TupleType = {\n  type: 'array';\n  minItems: number;\n  items: JsonSchema7Type[];\n} & (\n  | {\n      maxItems: number;\n    }\n  | {\n      additionalItems?: JsonSchema7Type;\n    }\n);\n\nexport function parseTupleDef(\n  def: ZodTupleDef<ZodTupleItems | [], ZodTypeAny | null>,\n  refs: Refs,\n): JsonSchema7TupleType {\n  if (def.rest) {\n    return {\n      type: 'array',\n      minItems: def.items.length,\n      items: def.items\n        .map((x, i) =>\n          parseDef(x._def, {\n            ...refs,\n            currentPath: [...refs.currentPath, 'items', `${i}`],\n          }),\n        )\n        .reduce(\n          (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n          [],\n        ),\n      additionalItems: parseDef(def.rest._def, {\n        ...refs,\n        currentPath: [...refs.currentPath, 'additionalItems'],\n      }),\n    };\n  } else {\n    return {\n      type: 'array',\n      minItems: def.items.length,\n      maxItems: def.items.length,\n      items: def.items\n        .map((x, i) =>\n          parseDef(x._def, {\n            ...refs,\n            currentPath: [...refs.currentPath, 'items', `${i}`],\n          }),\n        )\n        .reduce(\n          (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n          [],\n        ),\n    };\n  }\n}\n","import { JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7UndefinedType = {\n  not: JsonSchema7AnyType;\n};\n\nexport function parseUndefinedDef(): JsonSchema7UndefinedType {\n  return {\n    not: parseAnyDef(),\n  };\n}\n","import { JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7UnknownType = JsonSchema7AnyType;\n\nexport function parseUnknownDef(): JsonSchema7UnknownType {\n  return parseAnyDef();\n}\n","import { ZodReadonlyDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport { Refs } from '../refs';\n\nexport const parseReadonlyDef = (def: ZodReadonlyDef<any>, refs: Refs) => {\n  return parseDef(def.innerType._def, refs);\n};\n","import { ZodTypeDef } from 'zod/v3';\nimport { Refs, Seen } from './refs';\nimport { ignoreOverride } from './options';\nimport { JsonSchema7Type } from './parse-types';\nimport { selectParser } from './select-parser';\nimport { getRelativePath } from './get-relative-path';\nimport { parseAnyDef } from './parsers/any';\n\nexport function parseDef(\n  def: ZodTypeDef,\n  refs: Refs,\n  forceResolution = false, // Forces a new schema to be instantiated even though its def has been seen. Used for improving refs in definitions. See https://github.com/StefanTerdell/zod-to-json-schema/pull/61.\n): JsonSchema7Type | undefined {\n  const seenItem = refs.seen.get(def);\n\n  if (refs.override) {\n    const overrideResult = refs.override?.(\n      def,\n      refs,\n      seenItem,\n      forceResolution,\n    );\n\n    if (overrideResult !== ignoreOverride) {\n      return overrideResult;\n    }\n  }\n\n  if (seenItem && !forceResolution) {\n    const seenSchema = get$ref(seenItem, refs);\n\n    if (seenSchema !== undefined) {\n      return seenSchema;\n    }\n  }\n\n  const newItem: Seen = { def, path: refs.currentPath, jsonSchema: undefined };\n\n  refs.seen.set(def, newItem);\n\n  const jsonSchemaOrGetter = selectParser(def, (def as any).typeName, refs);\n\n  // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n  const jsonSchema =\n    typeof jsonSchemaOrGetter === 'function'\n      ? parseDef(jsonSchemaOrGetter(), refs)\n      : jsonSchemaOrGetter;\n\n  if (jsonSchema) {\n    addMeta(def, refs, jsonSchema);\n  }\n\n  if (refs.postProcess) {\n    const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n\n    newItem.jsonSchema = jsonSchema;\n\n    return postProcessResult;\n  }\n\n  newItem.jsonSchema = jsonSchema;\n\n  return jsonSchema;\n}\n\nconst get$ref = (\n  item: Seen,\n  refs: Refs,\n):\n  | {\n      $ref: string;\n    }\n  | {}\n  | undefined => {\n  switch (refs.$refStrategy) {\n    case 'root':\n      return { $ref: item.path.join('/') };\n    case 'relative':\n      return { $ref: getRelativePath(refs.currentPath, item.path) };\n    case 'none':\n    case 'seen': {\n      if (\n        item.path.length < refs.currentPath.length &&\n        item.path.every((value, index) => refs.currentPath[index] === value)\n      ) {\n        console.warn(\n          `Recursive reference detected at ${refs.currentPath.join(\n            '/',\n          )}! Defaulting to any`,\n        );\n\n        return parseAnyDef();\n      }\n\n      return refs.$refStrategy === 'seen' ? parseAnyDef() : undefined;\n    }\n  }\n};\n\nconst addMeta = (\n  def: ZodTypeDef,\n  refs: Refs,\n  jsonSchema: JsonSchema7Type,\n): JsonSchema7Type => {\n  if (def.description) {\n    jsonSchema.description = def.description;\n  }\n  return jsonSchema;\n};\n","import { ZodTypeDef } from 'zod/v3';\nimport { getDefaultOptions, Options } from './options';\nimport { JsonSchema7Type } from './parse-types';\n\nexport type Refs = {\n  seen: Map<ZodTypeDef, Seen>;\n  currentPath: string[];\n  propertyPath: string[] | undefined;\n} & Options;\n\nexport type Seen = {\n  def: ZodTypeDef;\n  path: string[];\n  jsonSchema: JsonSchema7Type | undefined;\n};\n\nexport const getRefs = (options?: string | Partial<Options>): Refs => {\n  const _options = getDefaultOptions(options);\n  const currentPath =\n    _options.name !== undefined\n      ? [..._options.basePath, _options.definitionPath, _options.name]\n      : _options.basePath;\n  return {\n    ..._options,\n    currentPath: currentPath,\n    propertyPath: undefined,\n    seen: new Map(\n      Object.entries(_options.definitions).map(([name, def]) => [\n        def._def,\n        {\n          def: def._def,\n          path: [..._options.basePath, _options.definitionPath, name],\n          // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n          jsonSchema: undefined,\n        },\n      ]),\n    ),\n  };\n};\n","import { ZodSchema } from 'zod/v3';\nimport { Options } from './options';\nimport { parseDef } from './parse-def';\nimport { JsonSchema7Type } from './parse-types';\nimport { getRefs } from './refs';\nimport { parseAnyDef } from './parsers/any';\n\nconst zodToJsonSchema = (\n  schema: ZodSchema<any>,\n  options?: Partial<Options> | string,\n): JsonSchema7Type & {\n  $schema?: string;\n  definitions?: {\n    [key: string]: JsonSchema7Type;\n  };\n} => {\n  const refs = getRefs(options);\n\n  let definitions =\n    typeof options === 'object' && options.definitions\n      ? Object.entries(options.definitions).reduce(\n          (acc: { [key: string]: JsonSchema7Type }, [name, schema]) => ({\n            ...acc,\n            [name]:\n              parseDef(\n                schema._def,\n                {\n                  ...refs,\n                  currentPath: [...refs.basePath, refs.definitionPath, name],\n                },\n                true,\n              ) ?? parseAnyDef(),\n          }),\n          {},\n        )\n      : undefined;\n\n  const name =\n    typeof options === 'string'\n      ? options\n      : options?.nameStrategy === 'title'\n        ? undefined\n        : options?.name;\n\n  const main =\n    parseDef(\n      schema._def,\n      name === undefined\n        ? refs\n        : {\n            ...refs,\n            currentPath: [...refs.basePath, refs.definitionPath, name],\n          },\n      false,\n    ) ?? (parseAnyDef() as JsonSchema7Type);\n\n  const title =\n    typeof options === 'object' &&\n    options.name !== undefined &&\n    options.nameStrategy === 'title'\n      ? options.name\n      : undefined;\n\n  if (title !== undefined) {\n    main.title = title;\n  }\n\n  const combined: ReturnType<typeof zodToJsonSchema> =\n    name === undefined\n      ? definitions\n        ? {\n            ...main,\n            [refs.definitionPath]: definitions,\n          }\n        : main\n      : {\n          $ref: [\n            ...(refs.$refStrategy === 'relative' ? [] : refs.basePath),\n            refs.definitionPath,\n            name,\n          ].join('/'),\n          [refs.definitionPath]: {\n            ...definitions,\n            [name]: main,\n          },\n        };\n\n  combined.$schema = 'http://json-schema.org/draft-07/schema#';\n\n  return combined;\n};\n\nexport { zodToJsonSchema };\n","export * from './get-relative-path';\nexport * from './options';\nexport * from './parse-def';\nexport * from './parse-types';\nexport * from './parsers/any';\nexport * from './parsers/array';\nexport * from './parsers/bigint';\nexport * from './parsers/boolean';\nexport * from './parsers/branded';\nexport * from './parsers/catch';\nexport * from './parsers/date';\nexport * from './parsers/default';\nexport * from './parsers/effects';\nexport * from './parsers/enum';\nexport * from './parsers/intersection';\nexport * from './parsers/literal';\nexport * from './parsers/map';\nexport * from './parsers/native-enum';\nexport * from './parsers/never';\nexport * from './parsers/null';\nexport * from './parsers/nullable';\nexport * from './parsers/number';\nexport * from './parsers/object';\nexport * from './parsers/optional';\nexport * from './parsers/pipeline';\nexport * from './parsers/promise';\nexport * from './parsers/readonly';\nexport * from './parsers/record';\nexport * from './parsers/set';\nexport * from './parsers/string';\nexport * from './parsers/tuple';\nexport * from './parsers/undefined';\nexport * from './parsers/union';\nexport * from './parsers/unknown';\nexport * from './refs';\nexport * from './select-parser';\nexport * from './zod-to-json-schema';\nimport { zodToJsonSchema } from './zod-to-json-schema';\nexport default zodToJsonSchema;\n","import { Validator, validatorSymbol, type ValidationResult } from './validator';\nimport { JSONSchema7 } from '@ai-sdk/provider';\nimport * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport { zodSchema } from './zod-schema';\n\n/**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\nconst schemaSymbol = Symbol.for('vercel.ai.schema');\n\nexport type Schema<OBJECT = unknown> = Validator<OBJECT> & {\n  /**\n   * Used to mark schemas so we can support both Zod and custom schemas.\n   */\n  [schemaSymbol]: true;\n\n  /**\n   * Schema type for inference.\n   */\n  _type: OBJECT;\n\n  /**\n   * The JSON Schema for the schema. It is passed to the providers.\n   */\n  readonly jsonSchema: JSONSchema7;\n};\n\n// Note: Zod types here exactly match the types in zod-schema.ts\n// to prevent type errors when using zod schemas with flexible schemas.\nexport type FlexibleSchema<T> =\n  | z4.core.$ZodType<T, any>\n  | z3.Schema<T, z3.ZodTypeDef, any>\n  | Schema<T>;\n\nexport type InferSchema<SCHEMA> = SCHEMA extends z3.Schema\n  ? z3.infer<SCHEMA>\n  : SCHEMA extends z4.core.$ZodType\n    ? z4.infer<SCHEMA>\n    : SCHEMA extends Schema<infer T>\n      ? T\n      : never;\n\n/**\n * Create a schema using a JSON Schema.\n *\n * @param jsonSchema The JSON Schema for the schema.\n * @param options.validate Optional. A validation function for the schema.\n */\nexport function jsonSchema<OBJECT = unknown>(\n  jsonSchema: JSONSchema7,\n  {\n    validate,\n  }: {\n    validate?: (\n      value: unknown,\n    ) => ValidationResult<OBJECT> | PromiseLike<ValidationResult<OBJECT>>;\n  } = {},\n): Schema<OBJECT> {\n  return {\n    [schemaSymbol]: true,\n    _type: undefined as OBJECT, // should never be used directly\n    [validatorSymbol]: true,\n    jsonSchema,\n    validate,\n  };\n}\n\nfunction isSchema(value: unknown): value is Schema {\n  return (\n    typeof value === 'object' &&\n    value !== null &&\n    schemaSymbol in value &&\n    value[schemaSymbol] === true &&\n    'jsonSchema' in value &&\n    'validate' in value\n  );\n}\n\nexport function asSchema<OBJECT>(\n  schema:\n    | z4.core.$ZodType<OBJECT, any>\n    | z3.Schema<OBJECT, z3.ZodTypeDef, any>\n    | Schema<OBJECT>\n    | undefined,\n): Schema<OBJECT> {\n  return schema == null\n    ? jsonSchema({\n        properties: {},\n        additionalProperties: false,\n      })\n    : isSchema(schema)\n      ? schema\n      : zodSchema(schema);\n}\n","// btoa and atob need to be invoked as a function call, not as a method call.\n// Otherwise CloudFlare will throw a\n// \"TypeError: Illegal invocation: function called with incorrect this reference\"\nconst { btoa, atob } = globalThis;\n\nexport function convertBase64ToUint8Array(base64String: string) {\n  const base64Url = base64String.replace(/-/g, '+').replace(/_/g, '/');\n  const latin1string = atob(base64Url);\n  return Uint8Array.from(latin1string, byte => byte.codePointAt(0)!);\n}\n\nexport function convertUint8ArrayToBase64(array: Uint8Array): string {\n  let latin1string = '';\n\n  // Note: regular for loop to support older JavaScript versions that\n  // do not support for..of on Uint8Array\n  for (let i = 0; i < array.length; i++) {\n    latin1string += String.fromCodePoint(array[i]);\n  }\n\n  return btoa(latin1string);\n}\n\nexport function convertToBase64(value: string | Uint8Array): string {\n  return value instanceof Uint8Array ? convertUint8ArrayToBase64(value) : value;\n}\n","export function withoutTrailingSlash(url: string | undefined) {\n  return url?.replace(/\\/$/, '');\n}\n","export function isAsyncIterable<T = any>(obj: any): obj is AsyncIterable<T> {\n  return obj != null && typeof obj[Symbol.asyncIterator] === 'function';\n}\n","import { Tool, ToolCallOptions, ToolExecuteFunction } from './tool';\nimport { isAsyncIterable } from '../is-async-iterable';\n\nexport async function* executeTool<INPUT, OUTPUT>({\n  execute,\n  input,\n  options,\n}: {\n  execute: ToolExecuteFunction<INPUT, OUTPUT>;\n  input: INPUT;\n  options: ToolCallOptions;\n}): AsyncGenerator<\n  { type: 'preliminary'; output: OUTPUT } | { type: 'final'; output: OUTPUT }\n> {\n  const result = execute(input, options);\n\n  if (isAsyncIterable(result)) {\n    let lastOutput: OUTPUT | undefined;\n    for await (const output of result) {\n      lastOutput = output;\n      yield { type: 'preliminary', output };\n    }\n    yield { type: 'final', output: lastOutput! };\n  } else {\n    yield { type: 'final', output: await result };\n  }\n}\n","export * from './combine-headers';\nexport { convertAsyncIteratorToReadableStream } from './convert-async-iterator-to-readable-stream';\nexport * from './delay';\nexport * from './extract-response-headers';\nexport * from './fetch-function';\nexport { createIdGenerator, generateId, type IdGenerator } from './generate-id';\nexport * from './get-error-message';\nexport * from './get-from-api';\nexport { injectJsonInstructionIntoMessages } from './inject-json-instruction';\nexport * from './is-abort-error';\nexport { isUrlSupported } from './is-url-supported';\nexport * from './load-api-key';\nexport { loadOptionalSetting } from './load-optional-setting';\nexport { loadSetting } from './load-setting';\nexport { mediaTypeToExtension } from './media-type-to-extension';\nexport * from './parse-json';\nexport { parseJsonEventStream } from './parse-json-event-stream';\nexport { parseProviderOptions } from './parse-provider-options';\nexport * from './post-to-api';\nexport {\n  createProviderDefinedToolFactory,\n  createProviderDefinedToolFactoryWithOutputSchema,\n  type ProviderDefinedToolFactory,\n  type ProviderDefinedToolFactoryWithOutputSchema,\n} from './provider-defined-tool-factory';\nexport * from './remove-undefined-entries';\nexport * from './resolve';\nexport * from './response-handler';\nexport {\n  asSchema,\n  jsonSchema,\n  type FlexibleSchema,\n  type InferSchema,\n  type Schema,\n} from './schema';\nexport * from './uint8-utils';\nexport * from './validate-types';\nexport * from './validator';\nexport * from './without-trailing-slash';\nexport { zodSchema } from './zod-schema';\n\n// folder re-exports\nexport * from './types';\n\n// external re-exports\nexport * from '@standard-schema/spec';\nexport {\n  EventSourceParserStream,\n  type EventSourceMessage,\n} from 'eventsource-parser/stream';\n","import { z } from \"zod\";\n\nexport enum ReasoningDetailType {\n  Summary = \"reasoning.summary\",\n  Encrypted = \"reasoning.encrypted\",\n  Text = \"reasoning.text\",\n}\n\nexport const ReasoningDetailSummarySchema = z.object({\n  type: z.literal(ReasoningDetailType.Summary),\n  summary: z.string(),\n});\nexport type ReasoningDetailSummary = z.infer<\n  typeof ReasoningDetailSummarySchema\n>;\n\nexport const ReasoningDetailEncryptedSchema = z.object({\n  type: z.literal(ReasoningDetailType.Encrypted),\n  data: z.string(),\n});\nexport type ReasoningDetailEncrypted = z.infer<\n  typeof ReasoningDetailEncryptedSchema\n>;\n\nexport const ReasoningDetailTextSchema = z.object({\n  type: z.literal(ReasoningDetailType.Text),\n  text: z.string().nullish(),\n  signature: z.string().nullish(),\n});\n\nexport type ReasoningDetailText = z.infer<typeof ReasoningDetailTextSchema>;\n\nexport const ReasoningDetailUnionSchema = z.union([\n  ReasoningDetailSummarySchema,\n  ReasoningDetailEncryptedSchema,\n  ReasoningDetailTextSchema,\n]);\n\nconst ReasoningDetailsWithUnknownSchema = z.union([\n  ReasoningDetailUnionSchema,\n  z.unknown().transform(() => null),\n]);\n\nexport type ReasoningDetailUnion = z.infer<typeof ReasoningDetailUnionSchema>;\n\nexport const ReasoningDetailArraySchema = z\n  .array(ReasoningDetailsWithUnknownSchema)\n  .transform((d) => d.filter((d): d is ReasoningDetailUnion => !!d));\n","import { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod\";\n\nexport const OpenRouterErrorResponseSchema = z.object({\n  error: z.object({\n    code: z.union([z.string(), z.number()]).nullable().optional().default(null),\n    message: z.string(),\n    type: z.string().nullable().optional().default(null),\n    param: z.any().nullable().optional().default(null),\n  }),\n});\n\nexport type OpenRouterErrorData = z.infer<typeof OpenRouterErrorResponseSchema>;\n\nexport const openrouterFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: OpenRouterErrorResponseSchema,\n  errorToMessage: (data: OpenRouterErrorData) => data.error.message,\n});\n","import type { LanguageModelV2FinishReason } from '@ai-sdk/provider';\n\nexport function mapOpenRouterFinishReason(\n  finishReason: string | null | undefined,\n): LanguageModelV2FinishReason {\n  switch (finishReason) {\n    case 'stop':\n      return 'stop';\n    case 'length':\n      return 'length';\n    case 'content_filter':\n      return 'content-filter';\n    case 'function_call':\n    case 'tool_calls':\n      return 'tool-calls';\n    default:\n      return 'unknown';\n  }\n}\n","export function isUrl({\n  url,\n  protocols,\n}: {\n  url: string | URL;\n  protocols: Set<`${string}:`>;\n}): boolean {\n  try {\n    const urlObj = new URL(url);\n    // Cast to the literal string due to Set inferred input type\n    return protocols.has(urlObj.protocol as `${string}:`);\n  } catch (_) {\n    return false;\n  }\n}\n","import type { LanguageModelV2FilePart } from '@ai-sdk/provider';\n\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport { isUrl } from './is-url';\n\nexport function getFileUrl({\n  part,\n  defaultMediaType,\n}: {\n  part: LanguageModelV2FilePart;\n  defaultMediaType: string;\n}) {\n  if (part.data instanceof Uint8Array) {\n    const base64 = convertUint8ArrayToBase64(part.data);\n    return `data:${part.mediaType ?? defaultMediaType};base64,${base64}`;\n  }\n\n  const stringUrl = part.data.toString();\n\n  if (\n    isUrl({\n      url: stringUrl,\n      protocols: new Set(['http:', 'https:']),\n    })\n  ) {\n    return stringUrl;\n  }\n\n  return stringUrl.startsWith('data:')\n    ? stringUrl\n    : `data:${part.mediaType ?? defaultMediaType};base64,${stringUrl}`;\n}\n","import type {\n  LanguageModelV2FilePart,\n  LanguageModelV2Prompt,\n  LanguageModelV2TextPart,\n  LanguageModelV2ToolResultPart,\n  SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport type { ReasoningDetailUnion } from '@/src/schemas/reasoning-details';\nimport type {\n  ChatCompletionContentPart,\n  OpenRouterChatCompletionsInput,\n} from '../types/openrouter-chat-completions-input';\n\nimport { ReasoningDetailType } from '@/src/schemas/reasoning-details';\nimport { getFileUrl } from './file-url-utils';\nimport { isUrl } from './is-url';\n\n// Type for OpenRouter Cache Control following Anthropic's pattern\nexport type OpenRouterCacheControl = { type: 'ephemeral' };\n\nfunction getCacheControl(\n  providerMetadata: SharedV2ProviderMetadata | undefined,\n): OpenRouterCacheControl | undefined {\n  const anthropic = providerMetadata?.anthropic;\n  const openrouter = providerMetadata?.openrouter;\n\n  // Allow both cacheControl and cache_control:\n  return (openrouter?.cacheControl ??\n    openrouter?.cache_control ??\n    anthropic?.cacheControl ??\n    anthropic?.cache_control) as OpenRouterCacheControl | undefined;\n}\n\nexport function convertToOpenRouterChatMessages(\n  prompt: LanguageModelV2Prompt,\n): OpenRouterChatCompletionsInput {\n  const messages: OpenRouterChatCompletionsInput = [];\n  for (const { role, content, providerOptions } of prompt) {\n    switch (role) {\n      case 'system': {\n        messages.push({\n          role: 'system',\n          content,\n          cache_control: getCacheControl(providerOptions),\n        });\n        break;\n      }\n\n      case 'user': {\n        if (content.length === 1 && content[0]?.type === 'text') {\n          const cacheControl =\n            getCacheControl(providerOptions) ??\n            getCacheControl(content[0].providerOptions);\n          const contentWithCacheControl: string | ChatCompletionContentPart[] =\n            cacheControl\n              ? [\n                  {\n                    type: 'text',\n                    text: content[0].text,\n                    cache_control: cacheControl,\n                  },\n                ]\n              : content[0].text;\n          messages.push({\n            role: 'user',\n            content: contentWithCacheControl,\n          });\n          break;\n        }\n\n        // Get message level cache control\n        const messageCacheControl = getCacheControl(providerOptions);\n        const contentParts: ChatCompletionContentPart[] = content.map(\n          (part: LanguageModelV2TextPart | LanguageModelV2FilePart) => {\n            const cacheControl =\n              getCacheControl(part.providerOptions) ?? messageCacheControl;\n\n            switch (part.type) {\n              case 'text':\n                return {\n                  type: 'text' as const,\n                  text: part.text,\n                  // For text parts, only use part-specific cache control\n                  cache_control: cacheControl,\n                };\n              case 'file': {\n                if (part.mediaType?.startsWith('image/')) {\n                  const url = getFileUrl({\n                    part,\n                    defaultMediaType: 'image/jpeg',\n                  });\n                  return {\n                    type: 'image_url' as const,\n                    image_url: {\n                      url,\n                    },\n                    // For image parts, use part-specific or message-level cache control\n                    cache_control: cacheControl,\n                  };\n                }\n\n                const fileName = String(\n                  part.providerOptions?.openrouter?.filename ??\n                    part.filename ??\n                    '',\n                );\n\n                const fileData = getFileUrl({\n                  part,\n                  defaultMediaType: 'application/pdf',\n                });\n\n                if (\n                  isUrl({\n                    url: fileData,\n                    protocols: new Set(['http:', 'https:']),\n                  })\n                ) {\n                  return {\n                    type: 'file' as const,\n                    file: {\n                      filename: fileName,\n                      file_data: fileData,\n                    },\n                  } satisfies ChatCompletionContentPart;\n                }\n\n                return {\n                  type: 'file' as const,\n                  file: {\n                    filename: fileName,\n                    file_data: fileData,\n                  },\n                  cache_control: cacheControl,\n                } satisfies ChatCompletionContentPart;\n              }\n              default: {\n                return {\n                  type: 'text' as const,\n                  text: '',\n                  cache_control: cacheControl,\n                };\n              }\n            }\n          },\n        );\n\n        // For multi-part messages, don't add cache_control at the root level\n        messages.push({\n          role: 'user',\n          content: contentParts,\n        });\n\n        break;\n      }\n\n      case 'assistant': {\n        let text = '';\n        let reasoning = '';\n        const reasoningDetails: ReasoningDetailUnion[] = [];\n        const toolCalls: Array<{\n          id: string;\n          type: 'function';\n          function: { name: string; arguments: string };\n        }> = [];\n\n        for (const part of content) {\n          switch (part.type) {\n            case 'text': {\n              text += part.text;\n              break;\n            }\n            case 'tool-call': {\n              toolCalls.push({\n                id: part.toolCallId,\n                type: 'function',\n                function: {\n                  name: part.toolName,\n                  arguments: JSON.stringify(part.input),\n                },\n              });\n              break;\n            }\n            case 'reasoning': {\n              reasoning += part.text;\n              reasoningDetails.push({\n                type: ReasoningDetailType.Text,\n                text: part.text,\n              });\n\n              break;\n            }\n\n            case 'file':\n              break;\n            default: {\n              break;\n            }\n          }\n        }\n\n        messages.push({\n          role: 'assistant',\n          content: text,\n          tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n          reasoning: reasoning || undefined,\n          reasoning_details:\n            reasoningDetails.length > 0 ? reasoningDetails : undefined,\n          cache_control: getCacheControl(providerOptions),\n        });\n\n        break;\n      }\n\n      case 'tool': {\n        for (const toolResponse of content) {\n          const content = getToolResultContent(toolResponse);\n\n          messages.push({\n            role: 'tool',\n            tool_call_id: toolResponse.toolCallId,\n            content,\n            cache_control:\n              getCacheControl(providerOptions) ??\n              getCacheControl(toolResponse.providerOptions),\n          });\n        }\n        break;\n      }\n\n      default: {\n        break;\n      }\n    }\n  }\n\n  return messages;\n}\n\nfunction getToolResultContent(input: LanguageModelV2ToolResultPart): string {\n  return input.output.type === 'text'\n    ? input.output.value\n    : JSON.stringify(input.output.value);\n}\n","import type { LanguageModelV2ToolChoice } from \"@ai-sdk/provider\";\n\nimport { z } from \"zod\";\n\nconst ChatCompletionToolChoiceSchema = z.union([\n  z.literal(\"auto\"),\n  z.literal(\"none\"),\n  z.literal(\"required\"),\n  z.object({\n    type: z.literal(\"function\"),\n    function: z.object({\n      name: z.string(),\n    }),\n  }),\n]);\n\ntype ChatCompletionToolChoice = z.infer<typeof ChatCompletionToolChoiceSchema>;\n\nexport function getChatCompletionToolChoice(\n  toolChoice: LanguageModelV2ToolChoice\n): ChatCompletionToolChoice {\n  switch (toolChoice.type) {\n    case \"auto\":\n    case \"none\":\n    case \"required\":\n      return toolChoice.type;\n    case \"tool\": {\n      return {\n        type: \"function\",\n        function: { name: toolChoice.toolName },\n      };\n    }\n    default: {\n      toolChoice satisfies never;\n      throw new Error(`Invalid tool choice type: ${toolChoice}`);\n    }\n  }\n}\n","import { z } from \"zod\";\nimport { OpenRouterErrorResponseSchema } from \"../schemas/error-response\";\nimport { ReasoningDetailArraySchema } from \"../schemas/reasoning-details\";\n\nconst OpenRouterChatCompletionBaseResponseSchema = z.object({\n  id: z.string().optional(),\n  model: z.string().optional(),\n  provider: z.string().optional(),\n  usage: z\n    .object({\n      prompt_tokens: z.number(),\n      prompt_tokens_details: z\n        .object({\n          cached_tokens: z.number(),\n        })\n        .nullish(),\n      completion_tokens: z.number(),\n      completion_tokens_details: z\n        .object({\n          reasoning_tokens: z.number(),\n        })\n        .nullish(),\n      total_tokens: z.number(),\n      cost: z.number().optional(),\n      cost_details: z\n        .object({\n          upstream_inference_cost: z.number().nullish(),\n        })\n        .nullish(),\n    })\n    .nullish(),\n});\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const OpenRouterNonStreamChatCompletionResponseSchema =\n  OpenRouterChatCompletionBaseResponseSchema.extend({\n    choices: z.array(\n      z.object({\n        message: z.object({\n          role: z.literal(\"assistant\"),\n          content: z.string().nullable().optional(),\n          reasoning: z.string().nullable().optional(),\n          // TODO: Router doesn't return structured reasoning details yet\n          // reasoning_details: ReasoningDetailArraySchema.nullish(),\n\n          tool_calls: z\n            .array(\n              z.object({\n                id: z.string().optional().nullable(),\n                type: z.literal(\"function\"),\n                function: z.object({\n                  name: z.string(),\n                  arguments: z.string(),\n                }),\n              })\n            )\n            .optional(),\n\n          annotations: z\n            .array(\n              z.object({\n                type: z.enum([\"url_citation\"]),\n                url_citation: z.object({\n                  end_index: z.number(),\n                  start_index: z.number(),\n                  title: z.string(),\n                  url: z.string(),\n                  content: z.string().optional(),\n                }),\n              })\n            )\n            .nullish(),\n        }),\n        index: z.number().nullish(),\n        logprobs: z\n          .object({\n            content: z\n              .array(\n                z.object({\n                  token: z.string(),\n                  logprob: z.number(),\n                  top_logprobs: z.array(\n                    z.object({\n                      token: z.string(),\n                      logprob: z.number(),\n                    })\n                  ),\n                })\n              )\n              .nullable(),\n          })\n          .nullable()\n          .optional(),\n        finish_reason: z.string().optional().nullable(),\n      })\n    ),\n  });\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const OpenRouterStreamChatCompletionChunkSchema = z.union([\n  OpenRouterChatCompletionBaseResponseSchema.extend({\n    choices: z.array(\n      z.object({\n        delta: z\n          .object({\n            role: z.enum([\"assistant\"]).optional(),\n            content: z.string().nullish(),\n            reasoning: z.string().nullish().optional(),\n            reasoning_details: ReasoningDetailArraySchema.nullish(),\n            tool_calls: z\n              .array(\n                z.object({\n                  index: z.number().nullish(),\n                  id: z.string().nullish(),\n                  type: z.literal(\"function\").optional(),\n                  function: z.object({\n                    name: z.string().nullish(),\n                    arguments: z.string().nullish(),\n                  }),\n                })\n              )\n              .nullish(),\n\n            annotations: z\n              .array(\n                z.object({\n                  type: z.enum([\"url_citation\"]),\n                  url_citation: z.object({\n                    end_index: z.number(),\n                    start_index: z.number(),\n                    title: z.string(),\n                    url: z.string(),\n                    content: z.string().optional(),\n                  }),\n                })\n              )\n              .nullish(),\n          })\n          .nullish(),\n        logprobs: z\n          .object({\n            content: z\n              .array(\n                z.object({\n                  token: z.string(),\n                  logprob: z.number(),\n                  top_logprobs: z.array(\n                    z.object({\n                      token: z.string(),\n                      logprob: z.number(),\n                    })\n                  ),\n                })\n              )\n              .nullable(),\n          })\n          .nullish(),\n        finish_reason: z.string().nullable().optional(),\n        index: z.number().nullish(),\n      })\n    ),\n  }),\n  OpenRouterErrorResponseSchema,\n]);\n","import type {\n  LanguageModelV2,\n  LanguageModelV2CallOptions,\n  LanguageModelV2CallWarning,\n  LanguageModelV2Content,\n  LanguageModelV2FinishReason,\n  LanguageModelV2ResponseMetadata,\n  LanguageModelV2StreamPart,\n  LanguageModelV2Usage,\n  SharedV2Headers,\n} from '@ai-sdk/provider';\nimport type { ParseResult } from '@ai-sdk/provider-utils';\nimport type { FinishReason } from 'ai';\nimport type { z } from 'zod';\nimport type { OpenRouterUsageAccounting } from '@/src/types/index';\nimport type {\n  OpenRouterChatModelId,\n  OpenRouterChatSettings,\n} from '../types/openrouter-chat-settings';\n\nimport { InvalidResponseDataError } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  isParsableJson,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { ReasoningDetailType } from '@/src/schemas/reasoning-details';\nimport { openrouterFailedResponseHandler } from '../schemas/error-response';\nimport { mapOpenRouterFinishReason } from '../utils/map-finish-reason';\nimport { convertToOpenRouterChatMessages } from './convert-to-openrouter-chat-messages';\nimport { getChatCompletionToolChoice } from './get-tool-choice';\nimport {\n  OpenRouterNonStreamChatCompletionResponseSchema,\n  OpenRouterStreamChatCompletionChunkSchema,\n} from './schemas';\n\ntype OpenRouterChatConfig = {\n  provider: string;\n  compatibility: 'strict' | 'compatible';\n  headers: () => Record<string, string | undefined>;\n  url: (options: { modelId: string; path: string }) => string;\n  fetch?: typeof fetch;\n  extraBody?: Record<string, unknown>;\n};\n\nexport class OpenRouterChatLanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2' as const;\n  readonly provider = 'dreamsrouter';\n  readonly defaultObjectGenerationMode = 'tool' as const;\n\n  readonly modelId: OpenRouterChatModelId;\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [\n      /^data:image\\/[a-zA-Z]+;base64,/,\n      /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)$/i,\n    ],\n    // 'text/*': [/^data:text\\//, /^https?:\\/\\/.+$/],\n    'application/*': [/^data:application\\//, /^https?:\\/\\/.+$/],\n  };\n  readonly settings: OpenRouterChatSettings;\n\n  private readonly config: OpenRouterChatConfig;\n\n  constructor(\n    modelId: OpenRouterChatModelId,\n    settings: OpenRouterChatSettings,\n    config: OpenRouterChatConfig\n  ) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n  }\n\n  private getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    frequencyPenalty,\n    presencePenalty,\n    seed,\n    stopSequences,\n    responseFormat,\n    topK,\n    tools,\n    toolChoice,\n  }: LanguageModelV2CallOptions) {\n    const baseArgs = {\n      // model id:\n      model: this.modelId,\n      models: this.settings.models,\n\n      // model specific settings:\n      logit_bias: this.settings.logitBias,\n      logprobs:\n        this.settings.logprobs === true ||\n        typeof this.settings.logprobs === 'number'\n          ? true\n          : undefined,\n      top_logprobs:\n        typeof this.settings.logprobs === 'number'\n          ? this.settings.logprobs\n          : typeof this.settings.logprobs === 'boolean'\n            ? this.settings.logprobs\n              ? 0\n              : undefined\n            : undefined,\n      user: this.settings.user,\n      parallel_tool_calls: this.settings.parallelToolCalls,\n\n      // standardized settings:\n      max_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      frequency_penalty: frequencyPenalty,\n      presence_penalty: presencePenalty,\n      seed,\n\n      stop: stopSequences,\n      response_format: responseFormat,\n      top_k: topK,\n\n      // messages:\n      messages: convertToOpenRouterChatMessages(prompt),\n\n      // OpenRouter specific settings:\n      include_reasoning: this.settings.includeReasoning,\n      reasoning: this.settings.reasoning,\n      usage: this.settings.usage,\n\n      // TODO: Web search not yet supported - commenting out\n      // // Web search settings:\n      // plugins: this.settings.plugins,\n      // web_search_options: this.settings.web_search_options,\n\n      // TODO: Advanced provider routing not yet supported - commenting out\n      // // Provider routing settings:\n      // provider: this.settings.provider,\n\n      // extra body:\n      ...this.config.extraBody,\n      ...this.settings.extraBody,\n    };\n\n    if (responseFormat?.type === 'json' && responseFormat.schema != null) {\n      return {\n        ...baseArgs,\n        response_format: {\n          type: 'json_schema',\n          json_schema: {\n            schema: responseFormat.schema,\n            strict: true,\n            name: responseFormat.name ?? 'response',\n            ...(responseFormat.description && {\n              description: responseFormat.description,\n            }),\n          },\n        },\n      };\n    }\n\n    if (tools && tools.length > 0) {\n      // TODO: support built-in tools\n      const mappedTools = tools\n        .filter(tool => tool.type === 'function')\n        .map(tool => ({\n          type: 'function' as const,\n          function: {\n            name: tool.name,\n            description: tool.description,\n            parameters: tool.inputSchema,\n          },\n        }));\n\n      return {\n        ...baseArgs,\n        tools: mappedTools,\n        tool_choice: toolChoice\n          ? getChatCompletionToolChoice(toolChoice)\n          : undefined,\n      };\n    }\n\n    return baseArgs;\n  }\n\n  async doGenerate(options: LanguageModelV2CallOptions): Promise<{\n    content: Array<LanguageModelV2Content>;\n    finishReason: LanguageModelV2FinishReason;\n    usage: LanguageModelV2Usage;\n    warnings: Array<LanguageModelV2CallWarning>;\n    providerMetadata?: {\n      openrouter: {\n        provider: string;\n        usage: OpenRouterUsageAccounting;\n      };\n    };\n    request?: { body?: unknown };\n    response?: LanguageModelV2ResponseMetadata & {\n      headers?: SharedV2Headers;\n      body?: unknown;\n    };\n  }> {\n    const providerOptions = options.providerOptions || {};\n    const openrouterOptions = providerOptions.openrouter || {};\n\n    const args = {\n      ...this.getArgs(options),\n      ...openrouterOptions,\n    };\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: openrouterFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        OpenRouterNonStreamChatCompletionResponseSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const choice = response.choices[0];\n\n    if (!choice) {\n      throw new Error('No choice in response');\n    }\n\n    // Extract detailed usage information\n    const usageInfo: LanguageModelV2Usage = response.usage\n      ? {\n          inputTokens: response.usage.prompt_tokens ?? 0,\n          outputTokens: response.usage.completion_tokens ?? 0,\n          totalTokens:\n            (response.usage.prompt_tokens ?? 0) +\n            (response.usage.completion_tokens ?? 0),\n          reasoningTokens:\n            response.usage.completion_tokens_details?.reasoning_tokens ?? 0,\n          cachedInputTokens:\n            response.usage.prompt_tokens_details?.cached_tokens ?? 0,\n        }\n      : {\n          inputTokens: 0,\n          outputTokens: 0,\n          totalTokens: 0,\n          reasoningTokens: 0,\n          cachedInputTokens: 0,\n        };\n\n    // TODO: Router doesn't return structured reasoning_details yet\n    // const reasoningDetails = choice.message.reasoning_details ?? [];\n\n    const reasoning: Array<LanguageModelV2Content> =\n      // TODO: Enable when router supports reasoning_details\n      // reasoningDetails.length > 0\n      //   ? reasoningDetails\n      //       .map((detail: any) => {\n      //         switch (detail.type) {\n      //           case ReasoningDetailType.Text: {\n      //             if (detail.text) {\n      //               return {\n      //                 type: \"reasoning\" as const,\n      //                 text: detail.text,\n      //               };\n      //             }\n      //             break;\n      //           }\n      //           case ReasoningDetailType.Summary: {\n      //             if (detail.summary) {\n      //               return {\n      //                 type: \"reasoning\" as const,\n      //                 text: detail.summary,\n      //               };\n      //             }\n      //             break;\n      //           }\n      //           case ReasoningDetailType.Encrypted: {\n      //             // For encrypted reasoning, we include a redacted placeholder\n      //             if (detail.data) {\n      //               return {\n      //                 type: \"reasoning\" as const,\n      //                 text: \"[REDACTED]\",\n      //               };\n      //             }\n      //             break;\n      //           }\n      //           default: {\n      //             detail satisfies never;\n      //           }\n      //         }\n      //         return null;\n      //       })\n      //       .filter((p: any) => p !== null)\n      //   :\n      choice.message.reasoning\n        ? [\n            {\n              type: 'reasoning' as const,\n              text: choice.message.reasoning,\n            },\n          ]\n        : [];\n\n    const content: Array<LanguageModelV2Content> = [];\n\n    // Add reasoning content first\n    content.push(...reasoning);\n\n    if (choice.message.content) {\n      content.push({\n        type: 'text' as const,\n        text: choice.message.content,\n      });\n    }\n\n    if (choice.message.tool_calls) {\n      for (const toolCall of choice.message.tool_calls) {\n        content.push({\n          type: 'tool-call' as const,\n          toolCallId: toolCall.id ?? generateId(),\n          toolName: toolCall.function.name,\n          input: toolCall.function.arguments,\n        });\n      }\n    }\n\n    if (choice.message.annotations) {\n      for (const annotation of choice.message.annotations) {\n        if (annotation.type === 'url_citation') {\n          content.push({\n            type: 'source' as const,\n            sourceType: 'url' as const,\n            id: annotation.url_citation.url,\n            url: annotation.url_citation.url,\n            title: annotation.url_citation.title,\n            providerMetadata: {\n              openrouter: {\n                content: annotation.url_citation.content || '',\n              },\n            },\n          });\n        }\n      }\n    }\n\n    return {\n      content,\n      finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n      usage: usageInfo,\n      warnings: [],\n      providerMetadata: {\n        openrouter: {\n          provider: response.provider ?? '',\n          usage: {\n            promptTokens: usageInfo.inputTokens ?? 0,\n            completionTokens: usageInfo.outputTokens ?? 0,\n            totalTokens: usageInfo.totalTokens ?? 0,\n            cost: response.usage?.cost,\n            // TODO: Router doesn't track these details yet\n            // promptTokensDetails: {\n            //   cachedTokens:\n            //     response.usage?.prompt_tokens_details?.cached_tokens ?? 0,\n            // },\n            // completionTokensDetails: {\n            //   reasoningTokens:\n            //     response.usage?.completion_tokens_details?.reasoning_tokens ??\n            //     0,\n            // },\n            // costDetails: {\n            //   upstreamInferenceCost:\n            //     response.usage?.cost_details?.upstream_inference_cost ?? 0,\n            // },\n          },\n        },\n      },\n      request: { body: args },\n      response: {\n        id: response.id,\n        modelId: response.model,\n        headers: responseHeaders,\n      },\n    };\n  }\n\n  async doStream(options: LanguageModelV2CallOptions): Promise<{\n    stream: ReadableStream<LanguageModelV2StreamPart>;\n    warnings: Array<LanguageModelV2CallWarning>;\n    request?: { body?: unknown };\n    response?: LanguageModelV2ResponseMetadata & {\n      headers?: SharedV2Headers;\n      body?: unknown;\n    };\n  }> {\n    const providerOptions = options.providerOptions || {};\n    const openrouterOptions = providerOptions.openrouter || {};\n\n    const args = {\n      ...this.getArgs(options),\n      ...openrouterOptions,\n    };\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.config.url({\n        path: '/chat/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: {\n        ...args,\n        stream: true,\n\n        // only include stream_options when in strict compatibility mode:\n        stream_options:\n          this.config.compatibility === 'strict'\n            ? {\n                include_usage: true,\n                // If user has requested usage accounting, make sure we get it in the stream\n                ...(this.settings.usage?.include\n                  ? { include_usage: true }\n                  : {}),\n              }\n            : undefined,\n      },\n      failedResponseHandler: openrouterFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        OpenRouterStreamChatCompletionChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const toolCalls: Array<{\n      id: string;\n      type: 'function';\n      function: {\n        name: string;\n        arguments: string;\n      };\n      inputStarted: boolean;\n      sent: boolean;\n    }> = [];\n\n    let finishReason: FinishReason = 'other';\n    const usage: LanguageModelV2Usage = {\n      inputTokens: Number.NaN,\n      outputTokens: Number.NaN,\n      totalTokens: Number.NaN,\n      reasoningTokens: Number.NaN,\n      cachedInputTokens: Number.NaN,\n    };\n\n    // Track provider-specific usage information\n    const openrouterUsage: Partial<OpenRouterUsageAccounting> = {};\n\n    let textStarted = false;\n    let reasoningStarted = false;\n    let textId: string | undefined;\n    let reasoningId: string | undefined;\n    let openrouterResponseId: string | undefined;\n    let provider: string | undefined;\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<\n            z.infer<typeof OpenRouterStreamChatCompletionChunkSchema>\n          >,\n          LanguageModelV2StreamPart\n        >({\n          transform(chunk, controller) {\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            // handle error chunks:\n            if ('error' in value) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: value.error });\n              return;\n            }\n\n            if (value.provider) {\n              provider = value.provider;\n            }\n\n            if (value.id) {\n              openrouterResponseId = value.id;\n              controller.enqueue({\n                type: 'response-metadata',\n                id: value.id,\n              });\n            }\n\n            if (value.model) {\n              controller.enqueue({\n                type: 'response-metadata',\n                modelId: value.model,\n              });\n            }\n\n            if (value.usage != null) {\n              usage.inputTokens = value.usage.prompt_tokens;\n              usage.outputTokens = value.usage.completion_tokens;\n              usage.totalTokens =\n                value.usage.prompt_tokens + value.usage.completion_tokens;\n\n              // Collect OpenRouter specific usage information\n              openrouterUsage.promptTokens = value.usage.prompt_tokens;\n\n              // TODO: Router doesn't track cached tokens yet\n              // if (value.usage.prompt_tokens_details) {\n              //   const cachedInputTokens =\n              //     value.usage.prompt_tokens_details.cached_tokens ?? 0;\n\n              //   usage.cachedInputTokens = cachedInputTokens;\n              //   openrouterUsage.promptTokensDetails = {\n              //     cachedTokens: cachedInputTokens,\n              //   };\n              // }\n\n              openrouterUsage.completionTokens = value.usage.completion_tokens;\n\n              // TODO: Router doesn't separate reasoning tokens yet\n              // if (value.usage.completion_tokens_details) {\n              //   const reasoningTokens =\n              //     value.usage.completion_tokens_details.reasoning_tokens ?? 0;\n\n              //   usage.reasoningTokens = reasoningTokens;\n              //   openrouterUsage.completionTokensDetails = {\n              //     reasoningTokens,\n              //   };\n              // }\n\n              openrouterUsage.cost = value.usage.cost;\n              openrouterUsage.totalTokens = value.usage.total_tokens;\n            }\n\n            const choice = value.choices[0];\n\n            if (choice?.finish_reason != null) {\n              finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n            }\n\n            if (choice?.delta == null) {\n              return;\n            }\n\n            const delta = choice.delta;\n\n            const emitReasoningChunk = (chunkText: string) => {\n              if (!reasoningStarted) {\n                reasoningId = openrouterResponseId || generateId();\n                controller.enqueue({\n                  type: 'reasoning-start',\n                  id: reasoningId,\n                });\n                reasoningStarted = true;\n              }\n              controller.enqueue({\n                type: 'reasoning-delta',\n                delta: chunkText,\n                id: reasoningId || generateId(),\n              });\n            };\n\n            if (delta.reasoning_details && delta.reasoning_details.length > 0) {\n              for (const detail of delta.reasoning_details) {\n                switch (detail.type) {\n                  case ReasoningDetailType.Text: {\n                    if (detail.text) {\n                      emitReasoningChunk(detail.text);\n                    }\n                    break;\n                  }\n                  case ReasoningDetailType.Encrypted: {\n                    if (detail.data) {\n                      emitReasoningChunk('[REDACTED]');\n                    }\n                    break;\n                  }\n                  case ReasoningDetailType.Summary: {\n                    if (detail.summary) {\n                      emitReasoningChunk(detail.summary);\n                    }\n                    break;\n                  }\n                  default: {\n                    detail satisfies never;\n                    break;\n                  }\n                }\n              }\n            } else if (delta.reasoning) {\n              emitReasoningChunk(delta.reasoning);\n            }\n\n            if (delta.content) {\n              // If reasoning was previously active and now we're starting text content,\n              // we should end the reasoning first to maintain proper order\n              if (reasoningStarted && !textStarted) {\n                controller.enqueue({\n                  type: 'reasoning-end',\n                  id: reasoningId || generateId(),\n                });\n                reasoningStarted = false; // Mark as ended so we don't end it again in flush\n              }\n\n              if (!textStarted) {\n                textId = openrouterResponseId || generateId();\n                controller.enqueue({\n                  type: 'text-start',\n                  id: textId,\n                });\n                textStarted = true;\n              }\n              controller.enqueue({\n                type: 'text-delta',\n                delta: delta.content,\n                id: textId || generateId(),\n              });\n            }\n\n            if (delta.annotations) {\n              for (const annotation of delta.annotations) {\n                if (annotation.type === 'url_citation') {\n                  controller.enqueue({\n                    type: 'source',\n                    sourceType: 'url' as const,\n                    id: annotation.url_citation.url,\n                    url: annotation.url_citation.url,\n                    title: annotation.url_citation.title,\n                    providerMetadata: {\n                      openrouter: {\n                        content: annotation.url_citation.content || '',\n                      },\n                    },\n                  });\n                }\n              }\n            }\n\n            if (delta.tool_calls != null) {\n              for (const toolCallDelta of delta.tool_calls) {\n                const index = toolCallDelta.index ?? toolCalls.length - 1;\n\n                // Tool call start. OpenRouter returns all information except the arguments in the first chunk.\n                if (toolCalls[index] == null) {\n                  if (toolCallDelta.type !== 'function') {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function' type.`,\n                    });\n                  }\n\n                  if (toolCallDelta.id == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'id' to be a string.`,\n                    });\n                  }\n\n                  if (toolCallDelta.function?.name == null) {\n                    throw new InvalidResponseDataError({\n                      data: toolCallDelta,\n                      message: `Expected 'function.name' to be a string.`,\n                    });\n                  }\n\n                  toolCalls[index] = {\n                    id: toolCallDelta.id,\n                    type: 'function',\n                    function: {\n                      name: toolCallDelta.function.name,\n                      arguments: toolCallDelta.function.arguments ?? '',\n                    },\n                    inputStarted: false,\n                    sent: false,\n                  };\n\n                  const toolCall = toolCalls[index];\n\n                  if (toolCall == null) {\n                    throw new Error('Tool call is missing');\n                  }\n\n                  // check if tool call is complete (some providers send the full tool call in one chunk)\n                  if (\n                    toolCall.function?.name != null &&\n                    toolCall.function?.arguments != null &&\n                    isParsableJson(toolCall.function.arguments)\n                  ) {\n                    toolCall.inputStarted = true;\n\n                    controller.enqueue({\n                      type: 'tool-input-start',\n                      id: toolCall.id,\n                      toolName: toolCall.function.name,\n                    });\n\n                    // send delta\n                    controller.enqueue({\n                      type: 'tool-input-delta',\n                      id: toolCall.id,\n                      delta: toolCall.function.arguments,\n                    });\n\n                    controller.enqueue({\n                      type: 'tool-input-end',\n                      id: toolCall.id,\n                    });\n\n                    // send tool call\n                    controller.enqueue({\n                      type: 'tool-call',\n                      toolCallId: toolCall.id,\n                      toolName: toolCall.function.name,\n                      input: toolCall.function.arguments,\n                    });\n\n                    toolCall.sent = true;\n                  }\n\n                  continue;\n                }\n\n                // existing tool call, merge\n                const toolCall = toolCalls[index];\n\n                if (toolCall == null) {\n                  throw new Error('Tool call is missing');\n                }\n\n                if (!toolCall.inputStarted) {\n                  toolCall.inputStarted = true;\n                  controller.enqueue({\n                    type: 'tool-input-start',\n                    id: toolCall.id,\n                    toolName: toolCall.function.name,\n                  });\n                }\n\n                if (toolCallDelta.function?.arguments != null) {\n                  toolCall.function.arguments +=\n                    toolCallDelta.function?.arguments ?? '';\n                }\n\n                // send delta\n                controller.enqueue({\n                  type: 'tool-input-delta',\n                  id: toolCall.id,\n                  delta: toolCallDelta.function.arguments ?? '',\n                });\n\n                // check if tool call is complete\n                if (\n                  toolCall.function?.name != null &&\n                  toolCall.function?.arguments != null &&\n                  isParsableJson(toolCall.function.arguments)\n                ) {\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: toolCall.id ?? generateId(),\n                    toolName: toolCall.function.name,\n                    input: toolCall.function.arguments,\n                  });\n\n                  toolCall.sent = true;\n                }\n              }\n            }\n          },\n\n          flush(controller) {\n            // Forward any unsent tool calls if finish reason is 'tool-calls'\n            if (finishReason === 'tool-calls') {\n              for (const toolCall of toolCalls) {\n                if (toolCall && !toolCall.sent) {\n                  controller.enqueue({\n                    type: 'tool-call',\n                    toolCallId: toolCall.id ?? generateId(),\n                    toolName: toolCall.function.name,\n                    // Coerce invalid arguments to an empty JSON object\n                    input: isParsableJson(toolCall.function.arguments)\n                      ? toolCall.function.arguments\n                      : '{}',\n                  });\n                  toolCall.sent = true;\n                }\n              }\n            }\n\n            // End reasoning first if it was started, to maintain proper order\n            if (reasoningStarted) {\n              controller.enqueue({\n                type: 'reasoning-end',\n                id: reasoningId || generateId(),\n              });\n            }\n            if (textStarted) {\n              controller.enqueue({\n                type: 'text-end',\n                id: textId || generateId(),\n              });\n            }\n\n            const openrouterMetadata: {\n              usage: Partial<OpenRouterUsageAccounting>;\n              provider?: string;\n            } = {\n              usage: openrouterUsage,\n            };\n\n            // Only include provider if it's actually set\n            if (provider !== undefined) {\n              openrouterMetadata.provider = provider;\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage,\n              providerMetadata: {\n                openrouter: openrouterMetadata,\n              },\n            });\n          },\n        })\n      ),\n      warnings: [],\n      request: { body: args },\n      response: { headers: responseHeaders },\n    };\n  }\n}\n","import type {\n  LanguageModelV2FilePart,\n  LanguageModelV2Prompt,\n  LanguageModelV2ReasoningPart,\n  LanguageModelV2TextPart,\n  LanguageModelV2ToolCallPart,\n  LanguageModelV2ToolResultPart,\n} from '@ai-sdk/provider';\n\nimport {\n  InvalidPromptError,\n  UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\n\nexport function convertToOpenRouterCompletionPrompt({\n  prompt,\n  inputFormat,\n  user = 'user',\n  assistant = 'assistant',\n}: {\n  prompt: LanguageModelV2Prompt;\n  inputFormat: 'prompt' | 'messages';\n  user?: string;\n  assistant?: string;\n}): {\n  prompt: string;\n} {\n  // When the user supplied a prompt input, we don't transform it:\n  if (\n    inputFormat === 'prompt' &&\n    prompt.length === 1 &&\n    prompt[0] &&\n    prompt[0].role === 'user' &&\n    prompt[0].content.length === 1 &&\n    prompt[0].content[0] &&\n    prompt[0].content[0].type === 'text'\n  ) {\n    return { prompt: prompt[0].content[0].text };\n  }\n\n  // otherwise transform to a chat message format:\n  let text = '';\n\n  // if first message is a system message, add it to the text:\n  if (prompt[0] && prompt[0].role === 'system') {\n    text += `${prompt[0].content}\\n\\n`;\n    prompt = prompt.slice(1);\n  }\n\n  for (const { role, content } of prompt) {\n    switch (role) {\n      case 'system': {\n        throw new InvalidPromptError({\n          message: `Unexpected system message in prompt: ${content}`,\n          prompt,\n        });\n      }\n\n      case 'user': {\n        const userMessage = content\n          .map((part: LanguageModelV2TextPart | LanguageModelV2FilePart) => {\n            switch (part.type) {\n              case 'text': {\n                return part.text;\n              }\n\n              case 'file': {\n                throw new UnsupportedFunctionalityError({\n                  functionality: 'file attachments',\n                });\n              }\n              default: {\n                return '';\n              }\n            }\n          })\n          .join('');\n\n        text += `${user}:\\n${userMessage}\\n\\n`;\n        break;\n      }\n\n      case 'assistant': {\n        const assistantMessage = content\n          .map(\n            (\n              part:\n                | LanguageModelV2TextPart\n                | LanguageModelV2FilePart\n                | LanguageModelV2ReasoningPart\n                | LanguageModelV2ToolCallPart\n                | LanguageModelV2ToolResultPart,\n            ) => {\n              switch (part.type) {\n                case 'text': {\n                  return part.text;\n                }\n                case 'tool-call': {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: 'tool-call messages',\n                  });\n                }\n                case 'tool-result': {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: 'tool-result messages',\n                  });\n                }\n                case 'reasoning': {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: 'reasoning messages',\n                  });\n                }\n\n                case 'file': {\n                  throw new UnsupportedFunctionalityError({\n                    functionality: 'file attachments',\n                  });\n                }\n\n                default: {\n                  return '';\n                }\n              }\n            },\n          )\n          .join('');\n\n        text += `${assistant}:\\n${assistantMessage}\\n\\n`;\n        break;\n      }\n\n      case 'tool': {\n        throw new UnsupportedFunctionalityError({\n          functionality: 'tool messages',\n        });\n      }\n\n      default: {\n        break;\n      }\n    }\n  }\n\n  // Assistant message prefix:\n  text += `${assistant}:\\n`;\n\n  return {\n    prompt: text,\n  };\n}\n","import { z } from \"zod\";\nimport { OpenRouterErrorResponseSchema } from \"../schemas/error-response\";\nimport { ReasoningDetailArraySchema } from \"../schemas/reasoning-details\";\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const OpenRouterCompletionChunkSchema = z.union([\n  z.object({\n    id: z.string().optional(),\n    model: z.string().optional(),\n    choices: z.array(\n      z.object({\n        text: z.string(),\n        reasoning: z.string().nullish().optional(),\n        reasoning_details: ReasoningDetailArraySchema.nullish(),\n\n        finish_reason: z.string().nullish(),\n        index: z.number().nullish(),\n        logprobs: z\n          .object({\n            tokens: z.array(z.string()),\n            token_logprobs: z.array(z.number()),\n            top_logprobs: z.array(z.record(z.string(), z.number())).nullable(),\n          })\n          .nullable()\n          .optional(),\n      })\n    ),\n    usage: z\n      .object({\n        prompt_tokens: z.number(),\n        prompt_tokens_details: z\n          .object({\n            cached_tokens: z.number(),\n          })\n          .nullish(),\n        completion_tokens: z.number(),\n        completion_tokens_details: z\n          .object({\n            reasoning_tokens: z.number(),\n          })\n          .nullish(),\n        total_tokens: z.number(),\n        cost: z.number().optional(),\n      })\n      .nullish(),\n  }),\n  OpenRouterErrorResponseSchema,\n]);\n","import type {\n  LanguageModelV2,\n  LanguageModelV2CallOptions,\n  LanguageModelV2StreamPart,\n  LanguageModelV2Usage,\n} from '@ai-sdk/provider';\nimport type { ParseResult } from '@ai-sdk/provider-utils';\nimport type { FinishReason } from 'ai';\nimport type { z } from 'zod';\nimport type { OpenRouterUsageAccounting } from '../types';\nimport type {\n  OpenRouterCompletionModelId,\n  OpenRouterCompletionSettings,\n} from '../types/openrouter-completion-settings';\n\nimport { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createEventSourceResponseHandler,\n  createJsonResponseHandler,\n  generateId,\n  postJsonToApi,\n} from '@ai-sdk/provider-utils';\nimport { openrouterFailedResponseHandler } from '../schemas/error-response';\nimport { mapOpenRouterFinishReason } from '../utils/map-finish-reason';\nimport { convertToOpenRouterCompletionPrompt } from './convert-to-openrouter-completion-prompt';\nimport { OpenRouterCompletionChunkSchema } from './schemas';\n\ntype OpenRouterCompletionConfig = {\n  provider: string;\n  compatibility: 'strict' | 'compatible';\n  headers: () => Record<string, string | undefined>;\n  url: (options: { modelId: string; path: string }) => string;\n  fetch?: typeof fetch;\n  extraBody?: Record<string, unknown>;\n};\n\nexport class OpenRouterCompletionLanguageModel implements LanguageModelV2 {\n  readonly specificationVersion = 'v2' as const;\n  readonly provider = 'openrouter';\n  readonly modelId: OpenRouterCompletionModelId;\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    'image/*': [\n      /^data:image\\/[a-zA-Z]+;base64,/,\n      /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)$/i,\n    ],\n    'text/*': [/^data:text\\//, /^https?:\\/\\/.+$/],\n    'application/*': [/^data:application\\//, /^https?:\\/\\/.+$/],\n  };\n  readonly defaultObjectGenerationMode = undefined;\n  readonly settings: OpenRouterCompletionSettings;\n\n  private readonly config: OpenRouterCompletionConfig;\n\n  constructor(\n    modelId: OpenRouterCompletionModelId,\n    settings: OpenRouterCompletionSettings,\n    config: OpenRouterCompletionConfig\n  ) {\n    this.modelId = modelId;\n    this.settings = settings;\n    this.config = config;\n  }\n\n  private getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    frequencyPenalty,\n    presencePenalty,\n    seed,\n    responseFormat,\n    topK,\n    stopSequences,\n    tools,\n    toolChoice,\n  }: LanguageModelV2CallOptions) {\n    const { prompt: completionPrompt } = convertToOpenRouterCompletionPrompt({\n      prompt,\n      inputFormat: 'prompt',\n    });\n\n    if (tools?.length) {\n      throw new UnsupportedFunctionalityError({\n        functionality: 'tools',\n      });\n    }\n\n    if (toolChoice) {\n      throw new UnsupportedFunctionalityError({\n        functionality: 'toolChoice',\n      });\n    }\n\n    return {\n      // model id:\n      model: this.modelId,\n      models: this.settings.models,\n\n      // model specific settings:\n      logit_bias: this.settings.logitBias,\n      logprobs:\n        typeof this.settings.logprobs === 'number'\n          ? this.settings.logprobs\n          : typeof this.settings.logprobs === 'boolean'\n            ? this.settings.logprobs\n              ? 0\n              : undefined\n            : undefined,\n      suffix: this.settings.suffix,\n      user: this.settings.user,\n\n      // standardized settings:\n      max_tokens: maxOutputTokens,\n      temperature,\n      top_p: topP,\n      frequency_penalty: frequencyPenalty,\n      presence_penalty: presencePenalty,\n      seed,\n\n      stop: stopSequences,\n      response_format: responseFormat,\n      top_k: topK,\n\n      // prompt:\n      prompt: completionPrompt,\n\n      // OpenRouter specific settings:\n      include_reasoning: this.settings.includeReasoning,\n      reasoning: this.settings.reasoning,\n\n      // extra body:\n      ...this.config.extraBody,\n      ...this.settings.extraBody,\n    };\n  }\n\n  async doGenerate(\n    options: LanguageModelV2CallOptions\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>> {\n    const providerOptions = options.providerOptions || {};\n    const openrouterOptions = providerOptions.openrouter || {};\n\n    const args = {\n      ...this.getArgs(options),\n      ...openrouterOptions,\n    };\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.config.url({\n        path: '/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: args,\n      failedResponseHandler: openrouterFailedResponseHandler,\n      successfulResponseHandler: createJsonResponseHandler(\n        OpenRouterCompletionChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    if ('error' in response) {\n      throw new Error(`${response.error.message}`);\n    }\n\n    const choice = response.choices[0];\n\n    if (!choice) {\n      throw new Error('No choice in OpenRouter completion response');\n    }\n\n    return {\n      content: [\n        {\n          type: 'text',\n          text: choice.text ?? '',\n        },\n      ],\n      finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n      usage: {\n        inputTokens: response.usage?.prompt_tokens ?? 0,\n        outputTokens: response.usage?.completion_tokens ?? 0,\n        totalTokens:\n          (response.usage?.prompt_tokens ?? 0) +\n          (response.usage?.completion_tokens ?? 0),\n        reasoningTokens:\n          response.usage?.completion_tokens_details?.reasoning_tokens ?? 0,\n        cachedInputTokens:\n          response.usage?.prompt_tokens_details?.cached_tokens ?? 0,\n      },\n      warnings: [],\n      response: {\n        headers: responseHeaders,\n      },\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV2CallOptions\n  ): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>> {\n    const providerOptions = options.providerOptions || {};\n    const openrouterOptions = providerOptions.openrouter || {};\n\n    const args = {\n      ...this.getArgs(options),\n      ...openrouterOptions,\n    };\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.config.url({\n        path: '/completions',\n        modelId: this.modelId,\n      }),\n      headers: combineHeaders(this.config.headers(), options.headers),\n      body: {\n        ...args,\n        stream: true,\n\n        // only include stream_options when in strict compatibility mode:\n        stream_options:\n          this.config.compatibility === 'strict'\n            ? { include_usage: true }\n            : undefined,\n      },\n      failedResponseHandler: openrouterFailedResponseHandler,\n      successfulResponseHandler: createEventSourceResponseHandler(\n        OpenRouterCompletionChunkSchema\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: FinishReason = 'other';\n    const usage: LanguageModelV2Usage = {\n      inputTokens: Number.NaN,\n      outputTokens: Number.NaN,\n      totalTokens: Number.NaN,\n      reasoningTokens: Number.NaN,\n      cachedInputTokens: Number.NaN,\n    };\n\n    const openrouterUsage: Partial<OpenRouterUsageAccounting> = {};\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof OpenRouterCompletionChunkSchema>>,\n          LanguageModelV2StreamPart\n        >({\n          transform(chunk, controller) {\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: chunk.error });\n              return;\n            }\n\n            const value = chunk.value;\n\n            // handle error chunks:\n            if ('error' in value) {\n              finishReason = 'error';\n              controller.enqueue({ type: 'error', error: value.error });\n              return;\n            }\n\n            if (value.usage != null) {\n              usage.inputTokens = value.usage.prompt_tokens;\n              usage.outputTokens = value.usage.completion_tokens;\n              usage.totalTokens =\n                value.usage.prompt_tokens + value.usage.completion_tokens;\n\n              // Collect OpenRouter specific usage information\n              openrouterUsage.promptTokens = value.usage.prompt_tokens;\n\n              if (value.usage.prompt_tokens_details) {\n                const cachedInputTokens =\n                  value.usage.prompt_tokens_details.cached_tokens ?? 0;\n\n                usage.cachedInputTokens = cachedInputTokens;\n                // openrouterUsage.promptTokensDetails = {\n                //   cachedTokens: cachedInputTokens,\n                // };\n              }\n\n              openrouterUsage.completionTokens = value.usage.completion_tokens;\n              if (value.usage.completion_tokens_details) {\n                const reasoningTokens =\n                  value.usage.completion_tokens_details.reasoning_tokens ?? 0;\n\n                usage.reasoningTokens = reasoningTokens;\n                // openrouterUsage.completionTokensDetails = {\n                //   reasoningTokens,\n                // };\n              }\n\n              openrouterUsage.cost = value.usage.cost;\n              openrouterUsage.totalTokens = value.usage.total_tokens;\n            }\n\n            const choice = value.choices[0];\n\n            if (choice?.finish_reason != null) {\n              finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n            }\n\n            if (choice?.text != null) {\n              controller.enqueue({\n                type: 'text-delta',\n                delta: choice.text,\n                id: generateId(),\n              });\n            }\n          },\n\n          flush(controller) {\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage,\n              providerMetadata: {\n                openrouter: {\n                  usage: openrouterUsage,\n                },\n              },\n            });\n          },\n        })\n      ),\n      response: {\n        headers: responseHeaders,\n      },\n    };\n  }\n}\n","/**\n * Payment requirements cache for x402 providers\n */\n\nimport type { X402PaymentRequirements } from '../wallet/x402-types';\n\nexport interface CachedRequirement {\n  requirement: X402PaymentRequirements;\n  expiresAt: number;\n}\n\nexport class PaymentCache {\n  private cache = new Map<string, CachedRequirement>();\n\n  /**\n   * Generate cache key from URL and request\n   */\n  private getCacheKey(url: string, init?: RequestInit): string {\n    try {\n      const u = new URL(url);\n      const path = u.pathname;\n      let model = '';\n      if (init?.body && typeof init.body === 'string') {\n        try {\n          const parsed = JSON.parse(init.body);\n          model = parsed?.model || '';\n        } catch {}\n      }\n      // Network would come from payment config, passed separately\n      return [u.origin, path, model].join('|');\n    } catch {\n      return url;\n    }\n  }\n\n  /**\n   * Get cached requirement if valid\n   */\n  get(\n    url: string,\n    init?: RequestInit,\n    network?: string\n  ): X402PaymentRequirements | null {\n    const key = this.getCacheKey(url, init) + (network ? `|${network}` : '');\n    const cached = this.cache.get(key);\n\n    if (!cached || Date.now() > cached.expiresAt) {\n      if (cached) {\n        this.cache.delete(key); // Clean up expired entries\n      }\n      return null;\n    }\n\n    return cached.requirement;\n  }\n\n  /**\n   * Cache a payment requirement\n   */\n  set(\n    url: string,\n    requirement: X402PaymentRequirements,\n    init?: RequestInit,\n    network?: string,\n    validityDuration?: number\n  ): void {\n    const key = this.getCacheKey(url, init) + (network ? `|${network}` : '');\n\n    const ttl = Math.floor(\n      1000 *\n        Math.min(\n          validityDuration ?? 600,\n          requirement.maxTimeoutSeconds ?? 600\n        ) *\n        0.9 // 90% of validity to avoid expiration mid-flight\n    );\n\n    this.cache.set(key, {\n      requirement,\n      expiresAt: Date.now() + Math.max(10_000, ttl), // Minimum 10 seconds\n    });\n  }\n\n  /**\n   * Clear all cached requirements\n   */\n  clear(): void {\n    this.cache.clear();\n  }\n\n  /**\n   * Get cache size for testing/debugging\n   */\n  size(): number {\n    return this.cache.size;\n  }\n\n  /**\n   * Clean up expired entries\n   */\n  cleanup(): void {\n    const now = Date.now();\n    for (const [key, cached] of this.cache.entries()) {\n      if (now > cached.expiresAt) {\n        this.cache.delete(key);\n      }\n    }\n  }\n}\n","import { Address } from \"viem\";\n\nexport const config: Record<string, ChainConfig> = {\n  \"84532\": {\n    usdcAddress: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n    usdcName: \"USDC\",\n  },\n  \"8453\": {\n    usdcAddress: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n    usdcName: \"USD Coin\",\n  },\n  \"43113\": {\n    usdcAddress: \"0x5425890298aed601595a70AB815c96711a31Bc65\",\n    usdcName: \"USD Coin\",\n  },\n  \"43114\": {\n    usdcAddress: \"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E\",\n    usdcName: \"USD Coin\",\n  },\n  \"4689\": {\n    usdcAddress: \"0xcdf79194c6c285077a58da47641d4dbe51f63542\",\n    usdcName: \"Bridged USDC\",\n  },\n  \"1328\": {\n    usdcAddress: \"0x4fcf1784b31630811181f670aea7a7bef803eaed\",\n    usdcName: \"USDC\",\n  },\n  \"1329\": {\n    usdcAddress: \"0xe15fc38f6d8c56af07bbcbe3baf5708a2bf42392\",\n    usdcName: \"USDC\",\n  },\n};\n\nexport type ChainConfig = {\n  usdcAddress: Address;\n  usdcName: string;\n};\n","export const usdcABI = [\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"owner\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"spender\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"value\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Approval\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"authorizer\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"nonce\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"AuthorizationCanceled\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"authorizer\",\n        type: \"address\",\n      },\n      {\n        indexed: true,\n        internalType: \"bytes32\",\n        name: \"nonce\",\n        type: \"bytes32\",\n      },\n    ],\n    name: \"AuthorizationUsed\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"_account\",\n        type: \"address\",\n      },\n    ],\n    name: \"Blacklisted\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"newBlacklister\",\n        type: \"address\",\n      },\n    ],\n    name: \"BlacklisterChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"burner\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Burn\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"newMasterMinter\",\n        type: \"address\",\n      },\n    ],\n    name: \"MasterMinterChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"minter\",\n        type: \"address\",\n      },\n      { indexed: true, internalType: \"address\", name: \"to\", type: \"address\" },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"amount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Mint\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"minter\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"minterAllowedAmount\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"MinterConfigured\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"oldMinter\",\n        type: \"address\",\n      },\n    ],\n    name: \"MinterRemoved\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"previousOwner\",\n        type: \"address\",\n      },\n      {\n        indexed: false,\n        internalType: \"address\",\n        name: \"newOwner\",\n        type: \"address\",\n      },\n    ],\n    name: \"OwnershipTransferred\",\n    type: \"event\",\n  },\n  { anonymous: false, inputs: [], name: \"Pause\", type: \"event\" },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"newAddress\",\n        type: \"address\",\n      },\n    ],\n    name: \"PauserChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"newRescuer\",\n        type: \"address\",\n      },\n    ],\n    name: \"RescuerChanged\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      { indexed: true, internalType: \"address\", name: \"from\", type: \"address\" },\n      { indexed: true, internalType: \"address\", name: \"to\", type: \"address\" },\n      {\n        indexed: false,\n        internalType: \"uint256\",\n        name: \"value\",\n        type: \"uint256\",\n      },\n    ],\n    name: \"Transfer\",\n    type: \"event\",\n  },\n  {\n    anonymous: false,\n    inputs: [\n      {\n        indexed: true,\n        internalType: \"address\",\n        name: \"_account\",\n        type: \"address\",\n      },\n    ],\n    name: \"UnBlacklisted\",\n    type: \"event\",\n  },\n  { anonymous: false, inputs: [], name: \"Unpause\", type: \"event\" },\n  {\n    inputs: [],\n    name: \"CANCEL_AUTHORIZATION_TYPEHASH\",\n    outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"DOMAIN_SEPARATOR\",\n    outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"PERMIT_TYPEHASH\",\n    outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"RECEIVE_WITH_AUTHORIZATION_TYPEHASH\",\n    outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"TRANSFER_WITH_AUTHORIZATION_TYPEHASH\",\n    outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"owner\", type: \"address\" },\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n    ],\n    name: \"allowance\",\n    outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n    ],\n    name: \"approve\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"authorizer\", type: \"address\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n    ],\n    name: \"authorizationState\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"account\", type: \"address\" }],\n    name: \"balanceOf\",\n    outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_account\", type: \"address\" }],\n    name: \"blacklist\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"blacklister\",\n    outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" }],\n    name: \"burn\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"authorizer\", type: \"address\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n      { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n      { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n    ],\n    name: \"cancelAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"authorizer\", type: \"address\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n    ],\n    name: \"cancelAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"minter\", type: \"address\" },\n      { internalType: \"uint256\", name: \"minterAllowedAmount\", type: \"uint256\" },\n    ],\n    name: \"configureMinter\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"currency\",\n    outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"decimals\",\n    outputs: [{ internalType: \"uint8\", name: \"\", type: \"uint8\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n      { internalType: \"uint256\", name: \"decrement\", type: \"uint256\" },\n    ],\n    name: \"decreaseAllowance\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n      { internalType: \"uint256\", name: \"increment\", type: \"uint256\" },\n    ],\n    name: \"increaseAllowance\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"string\", name: \"tokenName\", type: \"string\" },\n      { internalType: \"string\", name: \"tokenSymbol\", type: \"string\" },\n      { internalType: \"string\", name: \"tokenCurrency\", type: \"string\" },\n      { internalType: \"uint8\", name: \"tokenDecimals\", type: \"uint8\" },\n      { internalType: \"address\", name: \"newMasterMinter\", type: \"address\" },\n      { internalType: \"address\", name: \"newPauser\", type: \"address\" },\n      { internalType: \"address\", name: \"newBlacklister\", type: \"address\" },\n      { internalType: \"address\", name: \"newOwner\", type: \"address\" },\n    ],\n    name: \"initialize\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"string\", name: \"newName\", type: \"string\" }],\n    name: \"initializeV2\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"lostAndFound\", type: \"address\" }],\n    name: \"initializeV2_1\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"address[]\",\n        name: \"accountsToBlacklist\",\n        type: \"address[]\",\n      },\n      { internalType: \"string\", name: \"newSymbol\", type: \"string\" },\n    ],\n    name: \"initializeV2_2\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_account\", type: \"address\" }],\n    name: \"isBlacklisted\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"account\", type: \"address\" }],\n    name: \"isMinter\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"masterMinter\",\n    outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"_to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"_amount\", type: \"uint256\" },\n    ],\n    name: \"mint\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"minter\", type: \"address\" }],\n    name: \"minterAllowance\",\n    outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"name\",\n    outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"owner\", type: \"address\" }],\n    name: \"nonces\",\n    outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"owner\",\n    outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"pause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"paused\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"pauser\",\n    outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"owner\", type: \"address\" },\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n      { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n    ],\n    name: \"permit\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"owner\", type: \"address\" },\n      { internalType: \"address\", name: \"spender\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n      { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n      { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n      { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n    ],\n    name: \"permit\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"from\", type: \"address\" },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validAfter\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validBefore\", type: \"uint256\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n    ],\n    name: \"receiveWithAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"from\", type: \"address\" },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validAfter\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validBefore\", type: \"uint256\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n      { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n      { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n    ],\n    name: \"receiveWithAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"minter\", type: \"address\" }],\n    name: \"removeMinter\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      {\n        internalType: \"contract IERC20\",\n        name: \"tokenContract\",\n        type: \"address\",\n      },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n    ],\n    name: \"rescueERC20\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"rescuer\",\n    outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"symbol\",\n    outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"totalSupply\",\n    outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n    stateMutability: \"view\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n    ],\n    name: \"transfer\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"from\", type: \"address\" },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n    ],\n    name: \"transferFrom\",\n    outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n    name: \"transferOwnership\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"from\", type: \"address\" },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validAfter\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validBefore\", type: \"uint256\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n    ],\n    name: \"transferWithAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [\n      { internalType: \"address\", name: \"from\", type: \"address\" },\n      { internalType: \"address\", name: \"to\", type: \"address\" },\n      { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validAfter\", type: \"uint256\" },\n      { internalType: \"uint256\", name: \"validBefore\", type: \"uint256\" },\n      { internalType: \"bytes32\", name: \"nonce\", type: \"bytes32\" },\n      { internalType: \"uint8\", name: \"v\", type: \"uint8\" },\n      { internalType: \"bytes32\", name: \"r\", type: \"bytes32\" },\n      { internalType: \"bytes32\", name: \"s\", type: \"bytes32\" },\n    ],\n    name: \"transferWithAuthorization\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_account\", type: \"address\" }],\n    name: \"unBlacklist\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"unpause\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_newBlacklister\", type: \"address\" }],\n    name: \"updateBlacklister\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_newMasterMinter\", type: \"address\" }],\n    name: \"updateMasterMinter\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"_newPauser\", type: \"address\" }],\n    name: \"updatePauser\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [{ internalType: \"address\", name: \"newRescuer\", type: \"address\" }],\n    name: \"updateRescuer\",\n    outputs: [],\n    stateMutability: \"nonpayable\",\n    type: \"function\",\n  },\n  {\n    inputs: [],\n    name: \"version\",\n    outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n    stateMutability: \"pure\",\n    type: \"function\",\n  },\n] as const;\n","import { Account, Address, Chain, Client, Transport } from \"viem\";\nimport { ChainConfig, config } from \"../../types/shared/evm/config\";\nimport { usdcABI as abi } from \"../../types/shared/evm/erc20PermitABI\";\nimport { ConnectedClient } from \"../../types/shared/evm/wallet\";\n\n/**\n * Gets the USDC contract address for the current chain from the client\n *\n * @param client - The Viem client instance connected to the blockchain\n * @returns The USDC contract address for the current chain\n */\nexport function getUsdcAddress<\n  transport extends Transport,\n  chain extends Chain | undefined = undefined,\n  account extends Account | undefined = undefined,\n>(client: Client<transport, chain, account>): Address {\n  return config[client.chain!.id.toString()].usdcAddress as Address;\n}\n\n/**\n * Gets the USDC contract address for a specific chain ID\n *\n * @deprecated Use `getUsdcChainConfigForChain` instead\n * @param chainId - The chain ID to get the USDC contract address for\n * @returns The USDC contract address for the specified chain\n */\nexport function getUsdcAddressForChain(chainId: number): Address {\n  return config[chainId.toString()].usdcAddress as Address;\n}\n\n/**\n * Gets the USDC address and eip712 domain name for a specific chain ID\n *\n * @param chainId - The chain ID\n * @returns The USDC contract address and eip712 domain name  for the specified chain\n */\nexport function getUsdcChainConfigForChain(chainId: number): ChainConfig | undefined {\n  return config[chainId.toString()];\n}\n\n// Cache for storing the version value\nlet versionCache: string | null = null;\n\n/**\n * Gets the version of the USDC contract, using a cache to avoid repeated calls\n *\n * @param client - The Viem client instance connected to the blockchain\n * @returns A promise that resolves to the USDC contract version string\n */\nexport async function getVersion<\n  transport extends Transport,\n  chain extends Chain,\n  account extends Account | undefined = undefined,\n>(client: ConnectedClient<transport, chain, account>): Promise<string> {\n  // Return cached version if available\n  if (versionCache !== null) {\n    return versionCache;\n  }\n\n  // Fetch and cache version if not available\n  const version = await client.readContract({\n    address: getUsdcAddress(client),\n    abi,\n    functionName: \"version\",\n  });\n  versionCache = version as string;\n  return versionCache;\n}\n\n/**\n * Gets the USDC balance for a specific address\n *\n * @param client - The Viem client instance connected to the blockchain\n * @param address - The address to check the USDC balance for\n * @returns A promise that resolves to the USDC balance as a bigint\n */\nexport async function getUSDCBalance<\n  transport extends Transport,\n  chain extends Chain,\n  account extends Account | undefined = undefined,\n>(client: ConnectedClient<transport, chain, account>, address: Address): Promise<bigint> {\n  const chainId = client.chain!.id;\n  const usdc = getUsdcChainConfigForChain(chainId);\n  if (!usdc) {\n    return 0n;\n  }\n  const balance = await client.readContract({\n    address: usdc.usdcAddress,\n    abi,\n    functionName: \"balanceOf\",\n    args: [address],\n  });\n  return balance as bigint;\n}\n","import { Account, Address, Chain, Transport } from \"viem\";\nimport { usdcABI as erc20PermitABI } from \"../../types/shared/evm/erc20PermitABI\";\nimport { ConnectedClient } from \"../../types/shared/evm/wallet\";\n\n/**\n * Gets the USDC balance for a specific address\n *\n * @param client - The Viem client instance connected to the blockchain\n * @param erc20Address - The address of the ERC20 contract\n * @param address - The address to check the USDC balance for\n * @returns A promise that resolves to the USDC balance as a bigint\n */\nexport async function getERC20Balance<\n  transport extends Transport,\n  chain extends Chain,\n  account extends Account | undefined = undefined,\n>(\n  client: ConnectedClient<transport, chain, account>,\n  erc20Address: Address,\n  address: Address,\n): Promise<bigint> {\n  const balance = await client.readContract({\n    address: erc20Address,\n    abi: erc20PermitABI,\n    functionName: \"balanceOf\",\n    args: [address],\n  });\n  return balance as bigint;\n}\n","export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n","export var util;\n(function (util) {\n    util.assertEqual = (_) => { };\n    function assertIs(_arg) { }\n    util.assertIs = assertIs;\n    function assertNever(_x) {\n        throw new Error();\n    }\n    util.assertNever = assertNever;\n    util.arrayToEnum = (items) => {\n        const obj = {};\n        for (const item of items) {\n            obj[item] = item;\n        }\n        return obj;\n    };\n    util.getValidEnumValues = (obj) => {\n        const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n        const filtered = {};\n        for (const k of validKeys) {\n            filtered[k] = obj[k];\n        }\n        return util.objectValues(filtered);\n    };\n    util.objectValues = (obj) => {\n        return util.objectKeys(obj).map(function (e) {\n            return obj[e];\n        });\n    };\n    util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n        ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n        : (object) => {\n            const keys = [];\n            for (const key in object) {\n                if (Object.prototype.hasOwnProperty.call(object, key)) {\n                    keys.push(key);\n                }\n            }\n            return keys;\n        };\n    util.find = (arr, checker) => {\n        for (const item of arr) {\n            if (checker(item))\n                return item;\n        }\n        return undefined;\n    };\n    util.isInteger = typeof Number.isInteger === \"function\"\n        ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n        : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n    function joinValues(array, separator = \" | \") {\n        return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n    }\n    util.joinValues = joinValues;\n    util.jsonStringifyReplacer = (_, value) => {\n        if (typeof value === \"bigint\") {\n            return value.toString();\n        }\n        return value;\n    };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n    objectUtil.mergeShapes = (first, second) => {\n        return {\n            ...first,\n            ...second, // second overwrites first\n        };\n    };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n    \"string\",\n    \"nan\",\n    \"number\",\n    \"integer\",\n    \"float\",\n    \"boolean\",\n    \"date\",\n    \"bigint\",\n    \"symbol\",\n    \"function\",\n    \"undefined\",\n    \"null\",\n    \"array\",\n    \"object\",\n    \"unknown\",\n    \"promise\",\n    \"void\",\n    \"never\",\n    \"map\",\n    \"set\",\n]);\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return ZodParsedType.undefined;\n        case \"string\":\n            return ZodParsedType.string;\n        case \"number\":\n            return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n        case \"boolean\":\n            return ZodParsedType.boolean;\n        case \"function\":\n            return ZodParsedType.function;\n        case \"bigint\":\n            return ZodParsedType.bigint;\n        case \"symbol\":\n            return ZodParsedType.symbol;\n        case \"object\":\n            if (Array.isArray(data)) {\n                return ZodParsedType.array;\n            }\n            if (data === null) {\n                return ZodParsedType.null;\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return ZodParsedType.promise;\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return ZodParsedType.map;\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return ZodParsedType.set;\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return ZodParsedType.date;\n            }\n            return ZodParsedType.object;\n        default:\n            return ZodParsedType.unknown;\n    }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n    \"invalid_type\",\n    \"invalid_literal\",\n    \"custom\",\n    \"invalid_union\",\n    \"invalid_union_discriminator\",\n    \"invalid_enum_value\",\n    \"unrecognized_keys\",\n    \"invalid_arguments\",\n    \"invalid_return_type\",\n    \"invalid_date\",\n    \"invalid_string\",\n    \"too_small\",\n    \"too_big\",\n    \"invalid_intersection_types\",\n    \"not_multiple_of\",\n    \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n    const json = JSON.stringify(obj, null, 2);\n    return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n    get errors() {\n        return this.issues;\n    }\n    constructor(issues) {\n        super();\n        this.issues = [];\n        this.addIssue = (sub) => {\n            this.issues = [...this.issues, sub];\n        };\n        this.addIssues = (subs = []) => {\n            this.issues = [...this.issues, ...subs];\n        };\n        const actualProto = new.target.prototype;\n        if (Object.setPrototypeOf) {\n            // eslint-disable-next-line ban/ban\n            Object.setPrototypeOf(this, actualProto);\n        }\n        else {\n            this.__proto__ = actualProto;\n        }\n        this.name = \"ZodError\";\n        this.issues = issues;\n    }\n    format(_mapper) {\n        const mapper = _mapper ||\n            function (issue) {\n                return issue.message;\n            };\n        const fieldErrors = { _errors: [] };\n        const processError = (error) => {\n            for (const issue of error.issues) {\n                if (issue.code === \"invalid_union\") {\n                    issue.unionErrors.map(processError);\n                }\n                else if (issue.code === \"invalid_return_type\") {\n                    processError(issue.returnTypeError);\n                }\n                else if (issue.code === \"invalid_arguments\") {\n                    processError(issue.argumentsError);\n                }\n                else if (issue.path.length === 0) {\n                    fieldErrors._errors.push(mapper(issue));\n                }\n                else {\n                    let curr = fieldErrors;\n                    let i = 0;\n                    while (i < issue.path.length) {\n                        const el = issue.path[i];\n                        const terminal = i === issue.path.length - 1;\n                        if (!terminal) {\n                            curr[el] = curr[el] || { _errors: [] };\n                            // if (typeof el === \"string\") {\n                            //   curr[el] = curr[el] || { _errors: [] };\n                            // } else if (typeof el === \"number\") {\n                            //   const errorArray: any = [];\n                            //   errorArray._errors = [];\n                            //   curr[el] = curr[el] || errorArray;\n                            // }\n                        }\n                        else {\n                            curr[el] = curr[el] || { _errors: [] };\n                            curr[el]._errors.push(mapper(issue));\n                        }\n                        curr = curr[el];\n                        i++;\n                    }\n                }\n            }\n        };\n        processError(this);\n        return fieldErrors;\n    }\n    static assert(value) {\n        if (!(value instanceof ZodError)) {\n            throw new Error(`Not a ZodError: ${value}`);\n        }\n    }\n    toString() {\n        return this.message;\n    }\n    get message() {\n        return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n    }\n    get isEmpty() {\n        return this.issues.length === 0;\n    }\n    flatten(mapper = (issue) => issue.message) {\n        const fieldErrors = {};\n        const formErrors = [];\n        for (const sub of this.issues) {\n            if (sub.path.length > 0) {\n                const firstEl = sub.path[0];\n                fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n                fieldErrors[firstEl].push(mapper(sub));\n            }\n            else {\n                formErrors.push(mapper(sub));\n            }\n        }\n        return { formErrors, fieldErrors };\n    }\n    get formErrors() {\n        return this.flatten();\n    }\n}\nZodError.create = (issues) => {\n    const error = new ZodError(issues);\n    return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n    let message;\n    switch (issue.code) {\n        case ZodIssueCode.invalid_type:\n            if (issue.received === ZodParsedType.undefined) {\n                message = \"Required\";\n            }\n            else {\n                message = `Expected ${issue.expected}, received ${issue.received}`;\n            }\n            break;\n        case ZodIssueCode.invalid_literal:\n            message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n            break;\n        case ZodIssueCode.unrecognized_keys:\n            message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n            break;\n        case ZodIssueCode.invalid_union:\n            message = `Invalid input`;\n            break;\n        case ZodIssueCode.invalid_union_discriminator:\n            message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n            break;\n        case ZodIssueCode.invalid_enum_value:\n            message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n            break;\n        case ZodIssueCode.invalid_arguments:\n            message = `Invalid function arguments`;\n            break;\n        case ZodIssueCode.invalid_return_type:\n            message = `Invalid function return type`;\n            break;\n        case ZodIssueCode.invalid_date:\n            message = `Invalid date`;\n            break;\n        case ZodIssueCode.invalid_string:\n            if (typeof issue.validation === \"object\") {\n                if (\"includes\" in issue.validation) {\n                    message = `Invalid input: must include \"${issue.validation.includes}\"`;\n                    if (typeof issue.validation.position === \"number\") {\n                        message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n                    }\n                }\n                else if (\"startsWith\" in issue.validation) {\n                    message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n                }\n                else if (\"endsWith\" in issue.validation) {\n                    message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n                }\n                else {\n                    util.assertNever(issue.validation);\n                }\n            }\n            else if (issue.validation !== \"regex\") {\n                message = `Invalid ${issue.validation}`;\n            }\n            else {\n                message = \"Invalid\";\n            }\n            break;\n        case ZodIssueCode.too_small:\n            if (issue.type === \"array\")\n                message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n            else if (issue.type === \"string\")\n                message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n            else if (issue.type === \"number\")\n                message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n            else if (issue.type === \"bigint\")\n                message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n            else if (issue.type === \"date\")\n                message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n            else\n                message = \"Invalid input\";\n            break;\n        case ZodIssueCode.too_big:\n            if (issue.type === \"array\")\n                message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n            else if (issue.type === \"string\")\n                message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n            else if (issue.type === \"number\")\n                message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n            else if (issue.type === \"bigint\")\n                message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n            else if (issue.type === \"date\")\n                message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n            else\n                message = \"Invalid input\";\n            break;\n        case ZodIssueCode.custom:\n            message = `Invalid input`;\n            break;\n        case ZodIssueCode.invalid_intersection_types:\n            message = `Intersection results could not be merged`;\n            break;\n        case ZodIssueCode.not_multiple_of:\n            message = `Number must be a multiple of ${issue.multipleOf}`;\n            break;\n        case ZodIssueCode.not_finite:\n            message = \"Number must be finite\";\n            break;\n        default:\n            message = _ctx.defaultError;\n            util.assertNever(issue);\n    }\n    return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n    overrideErrorMap = map;\n}\nexport function getErrorMap() {\n    return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n    const { data, path, errorMaps, issueData } = params;\n    const fullPath = [...path, ...(issueData.path || [])];\n    const fullIssue = {\n        ...issueData,\n        path: fullPath,\n    };\n    if (issueData.message !== undefined) {\n        return {\n            ...issueData,\n            path: fullPath,\n            message: issueData.message,\n        };\n    }\n    let errorMessage = \"\";\n    const maps = errorMaps\n        .filter((m) => !!m)\n        .slice()\n        .reverse();\n    for (const map of maps) {\n        errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n    }\n    return {\n        ...issueData,\n        path: fullPath,\n        message: errorMessage,\n    };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n    const overrideMap = getErrorMap();\n    const issue = makeIssue({\n        issueData: issueData,\n        data: ctx.data,\n        path: ctx.path,\n        errorMaps: [\n            ctx.common.contextualErrorMap, // contextual error map is first priority\n            ctx.schemaErrorMap, // then schema-bound map if available\n            overrideMap, // then global override map\n            overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n        ].filter((x) => !!x),\n    });\n    ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n    constructor() {\n        this.value = \"valid\";\n    }\n    dirty() {\n        if (this.value === \"valid\")\n            this.value = \"dirty\";\n    }\n    abort() {\n        if (this.value !== \"aborted\")\n            this.value = \"aborted\";\n    }\n    static mergeArray(status, results) {\n        const arrayValue = [];\n        for (const s of results) {\n            if (s.status === \"aborted\")\n                return INVALID;\n            if (s.status === \"dirty\")\n                status.dirty();\n            arrayValue.push(s.value);\n        }\n        return { status: status.value, value: arrayValue };\n    }\n    static async mergeObjectAsync(status, pairs) {\n        const syncPairs = [];\n        for (const pair of pairs) {\n            const key = await pair.key;\n            const value = await pair.value;\n            syncPairs.push({\n                key,\n                value,\n            });\n        }\n        return ParseStatus.mergeObjectSync(status, syncPairs);\n    }\n    static mergeObjectSync(status, pairs) {\n        const finalObject = {};\n        for (const pair of pairs) {\n            const { key, value } = pair;\n            if (key.status === \"aborted\")\n                return INVALID;\n            if (value.status === \"aborted\")\n                return INVALID;\n            if (key.status === \"dirty\")\n                status.dirty();\n            if (value.status === \"dirty\")\n                status.dirty();\n            if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n                finalObject[key.value] = value.value;\n            }\n        }\n        return { status: status.value, value: finalObject };\n    }\n}\nexport const INVALID = Object.freeze({\n    status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n    errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n    // biome-ignore lint:\n    errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n    constructor(parent, value, path, key) {\n        this._cachedPath = [];\n        this.parent = parent;\n        this.data = value;\n        this._path = path;\n        this._key = key;\n    }\n    get path() {\n        if (!this._cachedPath.length) {\n            if (Array.isArray(this._key)) {\n                this._cachedPath.push(...this._path, ...this._key);\n            }\n            else {\n                this._cachedPath.push(...this._path, this._key);\n            }\n        }\n        return this._cachedPath;\n    }\n}\nconst handleResult = (ctx, result) => {\n    if (isValid(result)) {\n        return { success: true, data: result.value };\n    }\n    else {\n        if (!ctx.common.issues.length) {\n            throw new Error(\"Validation failed but no issues detected.\");\n        }\n        return {\n            success: false,\n            get error() {\n                if (this._error)\n                    return this._error;\n                const error = new ZodError(ctx.common.issues);\n                this._error = error;\n                return this._error;\n            },\n        };\n    }\n};\nfunction processCreateParams(params) {\n    if (!params)\n        return {};\n    const { errorMap, invalid_type_error, required_error, description } = params;\n    if (errorMap && (invalid_type_error || required_error)) {\n        throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n    }\n    if (errorMap)\n        return { errorMap: errorMap, description };\n    const customMap = (iss, ctx) => {\n        const { message } = params;\n        if (iss.code === \"invalid_enum_value\") {\n            return { message: message ?? ctx.defaultError };\n        }\n        if (typeof ctx.data === \"undefined\") {\n            return { message: message ?? required_error ?? ctx.defaultError };\n        }\n        if (iss.code !== \"invalid_type\")\n            return { message: ctx.defaultError };\n        return { message: message ?? invalid_type_error ?? ctx.defaultError };\n    };\n    return { errorMap: customMap, description };\n}\nexport class ZodType {\n    get description() {\n        return this._def.description;\n    }\n    _getType(input) {\n        return getParsedType(input.data);\n    }\n    _getOrReturnCtx(input, ctx) {\n        return (ctx || {\n            common: input.parent.common,\n            data: input.data,\n            parsedType: getParsedType(input.data),\n            schemaErrorMap: this._def.errorMap,\n            path: input.path,\n            parent: input.parent,\n        });\n    }\n    _processInputParams(input) {\n        return {\n            status: new ParseStatus(),\n            ctx: {\n                common: input.parent.common,\n                data: input.data,\n                parsedType: getParsedType(input.data),\n                schemaErrorMap: this._def.errorMap,\n                path: input.path,\n                parent: input.parent,\n            },\n        };\n    }\n    _parseSync(input) {\n        const result = this._parse(input);\n        if (isAsync(result)) {\n            throw new Error(\"Synchronous parse encountered promise.\");\n        }\n        return result;\n    }\n    _parseAsync(input) {\n        const result = this._parse(input);\n        return Promise.resolve(result);\n    }\n    parse(data, params) {\n        const result = this.safeParse(data, params);\n        if (result.success)\n            return result.data;\n        throw result.error;\n    }\n    safeParse(data, params) {\n        const ctx = {\n            common: {\n                issues: [],\n                async: params?.async ?? false,\n                contextualErrorMap: params?.errorMap,\n            },\n            path: params?.path || [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n        return handleResult(ctx, result);\n    }\n    \"~validate\"(data) {\n        const ctx = {\n            common: {\n                issues: [],\n                async: !!this[\"~standard\"].async,\n            },\n            path: [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        if (!this[\"~standard\"].async) {\n            try {\n                const result = this._parseSync({ data, path: [], parent: ctx });\n                return isValid(result)\n                    ? {\n                        value: result.value,\n                    }\n                    : {\n                        issues: ctx.common.issues,\n                    };\n            }\n            catch (err) {\n                if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n                    this[\"~standard\"].async = true;\n                }\n                ctx.common = {\n                    issues: [],\n                    async: true,\n                };\n            }\n        }\n        return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n            ? {\n                value: result.value,\n            }\n            : {\n                issues: ctx.common.issues,\n            });\n    }\n    async parseAsync(data, params) {\n        const result = await this.safeParseAsync(data, params);\n        if (result.success)\n            return result.data;\n        throw result.error;\n    }\n    async safeParseAsync(data, params) {\n        const ctx = {\n            common: {\n                issues: [],\n                contextualErrorMap: params?.errorMap,\n                async: true,\n            },\n            path: params?.path || [],\n            schemaErrorMap: this._def.errorMap,\n            parent: null,\n            data,\n            parsedType: getParsedType(data),\n        };\n        const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n        const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n        return handleResult(ctx, result);\n    }\n    refine(check, message) {\n        const getIssueProperties = (val) => {\n            if (typeof message === \"string\" || typeof message === \"undefined\") {\n                return { message };\n            }\n            else if (typeof message === \"function\") {\n                return message(val);\n            }\n            else {\n                return message;\n            }\n        };\n        return this._refinement((val, ctx) => {\n            const result = check(val);\n            const setError = () => ctx.addIssue({\n                code: ZodIssueCode.custom,\n                ...getIssueProperties(val),\n            });\n            if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n                return result.then((data) => {\n                    if (!data) {\n                        setError();\n                        return false;\n                    }\n                    else {\n                        return true;\n                    }\n                });\n            }\n            if (!result) {\n                setError();\n                return false;\n            }\n            else {\n                return true;\n            }\n        });\n    }\n    refinement(check, refinementData) {\n        return this._refinement((val, ctx) => {\n            if (!check(val)) {\n                ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n                return false;\n            }\n            else {\n                return true;\n            }\n        });\n    }\n    _refinement(refinement) {\n        return new ZodEffects({\n            schema: this,\n            typeName: ZodFirstPartyTypeKind.ZodEffects,\n            effect: { type: \"refinement\", refinement },\n        });\n    }\n    superRefine(refinement) {\n        return this._refinement(refinement);\n    }\n    constructor(def) {\n        /** Alias of safeParseAsync */\n        this.spa = this.safeParseAsync;\n        this._def = def;\n        this.parse = this.parse.bind(this);\n        this.safeParse = this.safeParse.bind(this);\n        this.parseAsync = this.parseAsync.bind(this);\n        this.safeParseAsync = this.safeParseAsync.bind(this);\n        this.spa = this.spa.bind(this);\n        this.refine = this.refine.bind(this);\n        this.refinement = this.refinement.bind(this);\n        this.superRefine = this.superRefine.bind(this);\n        this.optional = this.optional.bind(this);\n        this.nullable = this.nullable.bind(this);\n        this.nullish = this.nullish.bind(this);\n        this.array = this.array.bind(this);\n        this.promise = this.promise.bind(this);\n        this.or = this.or.bind(this);\n        this.and = this.and.bind(this);\n        this.transform = this.transform.bind(this);\n        this.brand = this.brand.bind(this);\n        this.default = this.default.bind(this);\n        this.catch = this.catch.bind(this);\n        this.describe = this.describe.bind(this);\n        this.pipe = this.pipe.bind(this);\n        this.readonly = this.readonly.bind(this);\n        this.isNullable = this.isNullable.bind(this);\n        this.isOptional = this.isOptional.bind(this);\n        this[\"~standard\"] = {\n            version: 1,\n            vendor: \"zod\",\n            validate: (data) => this[\"~validate\"](data),\n        };\n    }\n    optional() {\n        return ZodOptional.create(this, this._def);\n    }\n    nullable() {\n        return ZodNullable.create(this, this._def);\n    }\n    nullish() {\n        return this.nullable().optional();\n    }\n    array() {\n        return ZodArray.create(this);\n    }\n    promise() {\n        return ZodPromise.create(this, this._def);\n    }\n    or(option) {\n        return ZodUnion.create([this, option], this._def);\n    }\n    and(incoming) {\n        return ZodIntersection.create(this, incoming, this._def);\n    }\n    transform(transform) {\n        return new ZodEffects({\n            ...processCreateParams(this._def),\n            schema: this,\n            typeName: ZodFirstPartyTypeKind.ZodEffects,\n            effect: { type: \"transform\", transform },\n        });\n    }\n    default(def) {\n        const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n        return new ZodDefault({\n            ...processCreateParams(this._def),\n            innerType: this,\n            defaultValue: defaultValueFunc,\n            typeName: ZodFirstPartyTypeKind.ZodDefault,\n        });\n    }\n    brand() {\n        return new ZodBranded({\n            typeName: ZodFirstPartyTypeKind.ZodBranded,\n            type: this,\n            ...processCreateParams(this._def),\n        });\n    }\n    catch(def) {\n        const catchValueFunc = typeof def === \"function\" ? def : () => def;\n        return new ZodCatch({\n            ...processCreateParams(this._def),\n            innerType: this,\n            catchValue: catchValueFunc,\n            typeName: ZodFirstPartyTypeKind.ZodCatch,\n        });\n    }\n    describe(description) {\n        const This = this.constructor;\n        return new This({\n            ...this._def,\n            description,\n        });\n    }\n    pipe(target) {\n        return ZodPipeline.create(this, target);\n    }\n    readonly() {\n        return ZodReadonly.create(this);\n    }\n    isOptional() {\n        return this.safeParse(undefined).success;\n    }\n    isNullable() {\n        return this.safeParse(null).success;\n    }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n//   /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n//   /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n//   /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n//   /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n//   /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n    let secondsRegexSource = `[0-5]\\\\d`;\n    if (args.precision) {\n        secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n    }\n    else if (args.precision == null) {\n        secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n    }\n    const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n    return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n    return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n    let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n    const opts = [];\n    opts.push(args.local ? `Z?` : `Z`);\n    if (args.offset)\n        opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n    regex = `${regex}(${opts.join(\"|\")})`;\n    return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n    if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n        return true;\n    }\n    if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n        return true;\n    }\n    return false;\n}\nfunction isValidJWT(jwt, alg) {\n    if (!jwtRegex.test(jwt))\n        return false;\n    try {\n        const [header] = jwt.split(\".\");\n        if (!header)\n            return false;\n        // Convert base64url to base64\n        const base64 = header\n            .replace(/-/g, \"+\")\n            .replace(/_/g, \"/\")\n            .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n        const decoded = JSON.parse(atob(base64));\n        if (typeof decoded !== \"object\" || decoded === null)\n            return false;\n        if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n            return false;\n        if (!decoded.alg)\n            return false;\n        if (alg && decoded.alg !== alg)\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nfunction isValidCidr(ip, version) {\n    if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n        return true;\n    }\n    if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n        return true;\n    }\n    return false;\n}\nexport class ZodString extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = String(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.string) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.string,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const status = new ParseStatus();\n        let ctx = undefined;\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                if (input.data.length < check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        minimum: check.value,\n                        type: \"string\",\n                        inclusive: true,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                if (input.data.length > check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        maximum: check.value,\n                        type: \"string\",\n                        inclusive: true,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"length\") {\n                const tooBig = input.data.length > check.value;\n                const tooSmall = input.data.length < check.value;\n                if (tooBig || tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    if (tooBig) {\n                        addIssueToContext(ctx, {\n                            code: ZodIssueCode.too_big,\n                            maximum: check.value,\n                            type: \"string\",\n                            inclusive: true,\n                            exact: true,\n                            message: check.message,\n                        });\n                    }\n                    else if (tooSmall) {\n                        addIssueToContext(ctx, {\n                            code: ZodIssueCode.too_small,\n                            minimum: check.value,\n                            type: \"string\",\n                            inclusive: true,\n                            exact: true,\n                            message: check.message,\n                        });\n                    }\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"email\") {\n                if (!emailRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"email\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"emoji\") {\n                if (!emojiRegex) {\n                    emojiRegex = new RegExp(_emojiRegex, \"u\");\n                }\n                if (!emojiRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"emoji\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"uuid\") {\n                if (!uuidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"uuid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"nanoid\") {\n                if (!nanoidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"nanoid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cuid\") {\n                if (!cuidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cuid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cuid2\") {\n                if (!cuid2Regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cuid2\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"ulid\") {\n                if (!ulidRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"ulid\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"url\") {\n                try {\n                    new URL(input.data);\n                }\n                catch {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"url\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"regex\") {\n                check.regex.lastIndex = 0;\n                const testResult = check.regex.test(input.data);\n                if (!testResult) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"regex\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"trim\") {\n                input.data = input.data.trim();\n            }\n            else if (check.kind === \"includes\") {\n                if (!input.data.includes(check.value, check.position)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { includes: check.value, position: check.position },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"toLowerCase\") {\n                input.data = input.data.toLowerCase();\n            }\n            else if (check.kind === \"toUpperCase\") {\n                input.data = input.data.toUpperCase();\n            }\n            else if (check.kind === \"startsWith\") {\n                if (!input.data.startsWith(check.value)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { startsWith: check.value },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"endsWith\") {\n                if (!input.data.endsWith(check.value)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: { endsWith: check.value },\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"datetime\") {\n                const regex = datetimeRegex(check);\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"datetime\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"date\") {\n                const regex = dateRegex;\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"date\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"time\") {\n                const regex = timeRegex(check);\n                if (!regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_string,\n                        validation: \"time\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"duration\") {\n                if (!durationRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"duration\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"ip\") {\n                if (!isValidIP(input.data, check.version)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"ip\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"jwt\") {\n                if (!isValidJWT(input.data, check.alg)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"jwt\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"cidr\") {\n                if (!isValidCidr(input.data, check.version)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"cidr\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"base64\") {\n                if (!base64Regex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"base64\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"base64url\") {\n                if (!base64urlRegex.test(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        validation: \"base64url\",\n                        code: ZodIssueCode.invalid_string,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    _regex(regex, validation, message) {\n        return this.refinement((data) => regex.test(data), {\n            validation,\n            code: ZodIssueCode.invalid_string,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    _addCheck(check) {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    email(message) {\n        return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n    }\n    url(message) {\n        return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n    }\n    emoji(message) {\n        return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n    }\n    uuid(message) {\n        return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n    }\n    nanoid(message) {\n        return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n    }\n    cuid(message) {\n        return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n    }\n    cuid2(message) {\n        return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n    }\n    ulid(message) {\n        return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n    }\n    base64(message) {\n        return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n    }\n    base64url(message) {\n        // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n        return this._addCheck({\n            kind: \"base64url\",\n            ...errorUtil.errToObj(message),\n        });\n    }\n    jwt(options) {\n        return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n    }\n    ip(options) {\n        return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n    }\n    cidr(options) {\n        return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n    }\n    datetime(options) {\n        if (typeof options === \"string\") {\n            return this._addCheck({\n                kind: \"datetime\",\n                precision: null,\n                offset: false,\n                local: false,\n                message: options,\n            });\n        }\n        return this._addCheck({\n            kind: \"datetime\",\n            precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n            offset: options?.offset ?? false,\n            local: options?.local ?? false,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    date(message) {\n        return this._addCheck({ kind: \"date\", message });\n    }\n    time(options) {\n        if (typeof options === \"string\") {\n            return this._addCheck({\n                kind: \"time\",\n                precision: null,\n                message: options,\n            });\n        }\n        return this._addCheck({\n            kind: \"time\",\n            precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    duration(message) {\n        return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n    }\n    regex(regex, message) {\n        return this._addCheck({\n            kind: \"regex\",\n            regex: regex,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    includes(value, options) {\n        return this._addCheck({\n            kind: \"includes\",\n            value: value,\n            position: options?.position,\n            ...errorUtil.errToObj(options?.message),\n        });\n    }\n    startsWith(value, message) {\n        return this._addCheck({\n            kind: \"startsWith\",\n            value: value,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    endsWith(value, message) {\n        return this._addCheck({\n            kind: \"endsWith\",\n            value: value,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    min(minLength, message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: minLength,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    max(maxLength, message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: maxLength,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    length(len, message) {\n        return this._addCheck({\n            kind: \"length\",\n            value: len,\n            ...errorUtil.errToObj(message),\n        });\n    }\n    /**\n     * Equivalent to `.min(1)`\n     */\n    nonempty(message) {\n        return this.min(1, errorUtil.errToObj(message));\n    }\n    trim() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"trim\" }],\n        });\n    }\n    toLowerCase() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n        });\n    }\n    toUpperCase() {\n        return new ZodString({\n            ...this._def,\n            checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n        });\n    }\n    get isDatetime() {\n        return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n    }\n    get isDate() {\n        return !!this._def.checks.find((ch) => ch.kind === \"date\");\n    }\n    get isTime() {\n        return !!this._def.checks.find((ch) => ch.kind === \"time\");\n    }\n    get isDuration() {\n        return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n    }\n    get isEmail() {\n        return !!this._def.checks.find((ch) => ch.kind === \"email\");\n    }\n    get isURL() {\n        return !!this._def.checks.find((ch) => ch.kind === \"url\");\n    }\n    get isEmoji() {\n        return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n    }\n    get isUUID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n    }\n    get isNANOID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n    }\n    get isCUID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n    }\n    get isCUID2() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n    }\n    get isULID() {\n        return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n    }\n    get isIP() {\n        return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n    }\n    get isCIDR() {\n        return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n    }\n    get isBase64() {\n        return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n    }\n    get isBase64url() {\n        // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n        return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n    }\n    get minLength() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxLength() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n}\nZodString.create = (params) => {\n    return new ZodString({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodString,\n        coerce: params?.coerce ?? false,\n        ...processCreateParams(params),\n    });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n    const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n    const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n    const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n    const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n    const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n    return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.min = this.gte;\n        this.max = this.lte;\n        this.step = this.multipleOf;\n    }\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = Number(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.number) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.number,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        let ctx = undefined;\n        const status = new ParseStatus();\n        for (const check of this._def.checks) {\n            if (check.kind === \"int\") {\n                if (!util.isInteger(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.invalid_type,\n                        expected: \"integer\",\n                        received: \"float\",\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"min\") {\n                const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n                if (tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        minimum: check.value,\n                        type: \"number\",\n                        inclusive: check.inclusive,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n                if (tooBig) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        maximum: check.value,\n                        type: \"number\",\n                        inclusive: check.inclusive,\n                        exact: false,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"multipleOf\") {\n                if (floatSafeRemainder(input.data, check.value) !== 0) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_multiple_of,\n                        multipleOf: check.value,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"finite\") {\n                if (!Number.isFinite(input.data)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_finite,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    gte(value, message) {\n        return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n    }\n    gt(value, message) {\n        return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n    }\n    lte(value, message) {\n        return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n    }\n    lt(value, message) {\n        return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n    }\n    setLimit(kind, value, inclusive, message) {\n        return new ZodNumber({\n            ...this._def,\n            checks: [\n                ...this._def.checks,\n                {\n                    kind,\n                    value,\n                    inclusive,\n                    message: errorUtil.toString(message),\n                },\n            ],\n        });\n    }\n    _addCheck(check) {\n        return new ZodNumber({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    int(message) {\n        return this._addCheck({\n            kind: \"int\",\n            message: errorUtil.toString(message),\n        });\n    }\n    positive(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: 0,\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    negative(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: 0,\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonpositive(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: 0,\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonnegative(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: 0,\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    multipleOf(value, message) {\n        return this._addCheck({\n            kind: \"multipleOf\",\n            value: value,\n            message: errorUtil.toString(message),\n        });\n    }\n    finite(message) {\n        return this._addCheck({\n            kind: \"finite\",\n            message: errorUtil.toString(message),\n        });\n    }\n    safe(message) {\n        return this._addCheck({\n            kind: \"min\",\n            inclusive: true,\n            value: Number.MIN_SAFE_INTEGER,\n            message: errorUtil.toString(message),\n        })._addCheck({\n            kind: \"max\",\n            inclusive: true,\n            value: Number.MAX_SAFE_INTEGER,\n            message: errorUtil.toString(message),\n        });\n    }\n    get minValue() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxValue() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n    get isInt() {\n        return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n    }\n    get isFinite() {\n        let max = null;\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n                return true;\n            }\n            else if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n            else if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return Number.isFinite(min) && Number.isFinite(max);\n    }\n}\nZodNumber.create = (params) => {\n    return new ZodNumber({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodNumber,\n        coerce: params?.coerce || false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodBigInt extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.min = this.gte;\n        this.max = this.lte;\n    }\n    _parse(input) {\n        if (this._def.coerce) {\n            try {\n                input.data = BigInt(input.data);\n            }\n            catch {\n                return this._getInvalidInput(input);\n            }\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.bigint) {\n            return this._getInvalidInput(input);\n        }\n        let ctx = undefined;\n        const status = new ParseStatus();\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n                if (tooSmall) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        type: \"bigint\",\n                        minimum: check.value,\n                        inclusive: check.inclusive,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n                if (tooBig) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        type: \"bigint\",\n                        maximum: check.value,\n                        inclusive: check.inclusive,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"multipleOf\") {\n                if (input.data % check.value !== BigInt(0)) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.not_multiple_of,\n                        multipleOf: check.value,\n                        message: check.message,\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return { status: status.value, value: input.data };\n    }\n    _getInvalidInput(input) {\n        const ctx = this._getOrReturnCtx(input);\n        addIssueToContext(ctx, {\n            code: ZodIssueCode.invalid_type,\n            expected: ZodParsedType.bigint,\n            received: ctx.parsedType,\n        });\n        return INVALID;\n    }\n    gte(value, message) {\n        return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n    }\n    gt(value, message) {\n        return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n    }\n    lte(value, message) {\n        return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n    }\n    lt(value, message) {\n        return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n    }\n    setLimit(kind, value, inclusive, message) {\n        return new ZodBigInt({\n            ...this._def,\n            checks: [\n                ...this._def.checks,\n                {\n                    kind,\n                    value,\n                    inclusive,\n                    message: errorUtil.toString(message),\n                },\n            ],\n        });\n    }\n    _addCheck(check) {\n        return new ZodBigInt({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    positive(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: BigInt(0),\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    negative(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: BigInt(0),\n            inclusive: false,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonpositive(message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: BigInt(0),\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    nonnegative(message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: BigInt(0),\n            inclusive: true,\n            message: errorUtil.toString(message),\n        });\n    }\n    multipleOf(value, message) {\n        return this._addCheck({\n            kind: \"multipleOf\",\n            value,\n            message: errorUtil.toString(message),\n        });\n    }\n    get minValue() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min;\n    }\n    get maxValue() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max;\n    }\n}\nZodBigInt.create = (params) => {\n    return new ZodBigInt({\n        checks: [],\n        typeName: ZodFirstPartyTypeKind.ZodBigInt,\n        coerce: params?.coerce ?? false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodBoolean extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = Boolean(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.boolean) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.boolean,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodBoolean.create = (params) => {\n    return new ZodBoolean({\n        typeName: ZodFirstPartyTypeKind.ZodBoolean,\n        coerce: params?.coerce || false,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodDate extends ZodType {\n    _parse(input) {\n        if (this._def.coerce) {\n            input.data = new Date(input.data);\n        }\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.date) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.date,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (Number.isNaN(input.data.getTime())) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_date,\n            });\n            return INVALID;\n        }\n        const status = new ParseStatus();\n        let ctx = undefined;\n        for (const check of this._def.checks) {\n            if (check.kind === \"min\") {\n                if (input.data.getTime() < check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_small,\n                        message: check.message,\n                        inclusive: true,\n                        exact: false,\n                        minimum: check.value,\n                        type: \"date\",\n                    });\n                    status.dirty();\n                }\n            }\n            else if (check.kind === \"max\") {\n                if (input.data.getTime() > check.value) {\n                    ctx = this._getOrReturnCtx(input, ctx);\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.too_big,\n                        message: check.message,\n                        inclusive: true,\n                        exact: false,\n                        maximum: check.value,\n                        type: \"date\",\n                    });\n                    status.dirty();\n                }\n            }\n            else {\n                util.assertNever(check);\n            }\n        }\n        return {\n            status: status.value,\n            value: new Date(input.data.getTime()),\n        };\n    }\n    _addCheck(check) {\n        return new ZodDate({\n            ...this._def,\n            checks: [...this._def.checks, check],\n        });\n    }\n    min(minDate, message) {\n        return this._addCheck({\n            kind: \"min\",\n            value: minDate.getTime(),\n            message: errorUtil.toString(message),\n        });\n    }\n    max(maxDate, message) {\n        return this._addCheck({\n            kind: \"max\",\n            value: maxDate.getTime(),\n            message: errorUtil.toString(message),\n        });\n    }\n    get minDate() {\n        let min = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"min\") {\n                if (min === null || ch.value > min)\n                    min = ch.value;\n            }\n        }\n        return min != null ? new Date(min) : null;\n    }\n    get maxDate() {\n        let max = null;\n        for (const ch of this._def.checks) {\n            if (ch.kind === \"max\") {\n                if (max === null || ch.value < max)\n                    max = ch.value;\n            }\n        }\n        return max != null ? new Date(max) : null;\n    }\n}\nZodDate.create = (params) => {\n    return new ZodDate({\n        checks: [],\n        coerce: params?.coerce || false,\n        typeName: ZodFirstPartyTypeKind.ZodDate,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodSymbol extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.symbol) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.symbol,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodSymbol.create = (params) => {\n    return new ZodSymbol({\n        typeName: ZodFirstPartyTypeKind.ZodSymbol,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUndefined extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.undefined) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.undefined,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodUndefined.create = (params) => {\n    return new ZodUndefined({\n        typeName: ZodFirstPartyTypeKind.ZodUndefined,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNull extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.null) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.null,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodNull.create = (params) => {\n    return new ZodNull({\n        typeName: ZodFirstPartyTypeKind.ZodNull,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodAny extends ZodType {\n    constructor() {\n        super(...arguments);\n        // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n        this._any = true;\n    }\n    _parse(input) {\n        return OK(input.data);\n    }\n}\nZodAny.create = (params) => {\n    return new ZodAny({\n        typeName: ZodFirstPartyTypeKind.ZodAny,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUnknown extends ZodType {\n    constructor() {\n        super(...arguments);\n        // required\n        this._unknown = true;\n    }\n    _parse(input) {\n        return OK(input.data);\n    }\n}\nZodUnknown.create = (params) => {\n    return new ZodUnknown({\n        typeName: ZodFirstPartyTypeKind.ZodUnknown,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNever extends ZodType {\n    _parse(input) {\n        const ctx = this._getOrReturnCtx(input);\n        addIssueToContext(ctx, {\n            code: ZodIssueCode.invalid_type,\n            expected: ZodParsedType.never,\n            received: ctx.parsedType,\n        });\n        return INVALID;\n    }\n}\nZodNever.create = (params) => {\n    return new ZodNever({\n        typeName: ZodFirstPartyTypeKind.ZodNever,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodVoid extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.undefined) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.void,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n}\nZodVoid.create = (params) => {\n    return new ZodVoid({\n        typeName: ZodFirstPartyTypeKind.ZodVoid,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodArray extends ZodType {\n    _parse(input) {\n        const { ctx, status } = this._processInputParams(input);\n        const def = this._def;\n        if (ctx.parsedType !== ZodParsedType.array) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.array,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (def.exactLength !== null) {\n            const tooBig = ctx.data.length > def.exactLength.value;\n            const tooSmall = ctx.data.length < def.exactLength.value;\n            if (tooBig || tooSmall) {\n                addIssueToContext(ctx, {\n                    code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n                    minimum: (tooSmall ? def.exactLength.value : undefined),\n                    maximum: (tooBig ? def.exactLength.value : undefined),\n                    type: \"array\",\n                    inclusive: true,\n                    exact: true,\n                    message: def.exactLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.minLength !== null) {\n            if (ctx.data.length < def.minLength.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_small,\n                    minimum: def.minLength.value,\n                    type: \"array\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.minLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.maxLength !== null) {\n            if (ctx.data.length > def.maxLength.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_big,\n                    maximum: def.maxLength.value,\n                    type: \"array\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.maxLength.message,\n                });\n                status.dirty();\n            }\n        }\n        if (ctx.common.async) {\n            return Promise.all([...ctx.data].map((item, i) => {\n                return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n            })).then((result) => {\n                return ParseStatus.mergeArray(status, result);\n            });\n        }\n        const result = [...ctx.data].map((item, i) => {\n            return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n        });\n        return ParseStatus.mergeArray(status, result);\n    }\n    get element() {\n        return this._def.type;\n    }\n    min(minLength, message) {\n        return new ZodArray({\n            ...this._def,\n            minLength: { value: minLength, message: errorUtil.toString(message) },\n        });\n    }\n    max(maxLength, message) {\n        return new ZodArray({\n            ...this._def,\n            maxLength: { value: maxLength, message: errorUtil.toString(message) },\n        });\n    }\n    length(len, message) {\n        return new ZodArray({\n            ...this._def,\n            exactLength: { value: len, message: errorUtil.toString(message) },\n        });\n    }\n    nonempty(message) {\n        return this.min(1, message);\n    }\n}\nZodArray.create = (schema, params) => {\n    return new ZodArray({\n        type: schema,\n        minLength: null,\n        maxLength: null,\n        exactLength: null,\n        typeName: ZodFirstPartyTypeKind.ZodArray,\n        ...processCreateParams(params),\n    });\n};\nfunction deepPartialify(schema) {\n    if (schema instanceof ZodObject) {\n        const newShape = {};\n        for (const key in schema.shape) {\n            const fieldSchema = schema.shape[key];\n            newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n        }\n        return new ZodObject({\n            ...schema._def,\n            shape: () => newShape,\n        });\n    }\n    else if (schema instanceof ZodArray) {\n        return new ZodArray({\n            ...schema._def,\n            type: deepPartialify(schema.element),\n        });\n    }\n    else if (schema instanceof ZodOptional) {\n        return ZodOptional.create(deepPartialify(schema.unwrap()));\n    }\n    else if (schema instanceof ZodNullable) {\n        return ZodNullable.create(deepPartialify(schema.unwrap()));\n    }\n    else if (schema instanceof ZodTuple) {\n        return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n    }\n    else {\n        return schema;\n    }\n}\nexport class ZodObject extends ZodType {\n    constructor() {\n        super(...arguments);\n        this._cached = null;\n        /**\n         * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n         * If you want to pass through unknown properties, use `.passthrough()` instead.\n         */\n        this.nonstrict = this.passthrough;\n        // extend<\n        //   Augmentation extends ZodRawShape,\n        //   NewOutput extends util.flatten<{\n        //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n        //       ? Augmentation[k][\"_output\"]\n        //       : k extends keyof Output\n        //       ? Output[k]\n        //       : never;\n        //   }>,\n        //   NewInput extends util.flatten<{\n        //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n        //       ? Augmentation[k][\"_input\"]\n        //       : k extends keyof Input\n        //       ? Input[k]\n        //       : never;\n        //   }>\n        // >(\n        //   augmentation: Augmentation\n        // ): ZodObject<\n        //   extendShape<T, Augmentation>,\n        //   UnknownKeys,\n        //   Catchall,\n        //   NewOutput,\n        //   NewInput\n        // > {\n        //   return new ZodObject({\n        //     ...this._def,\n        //     shape: () => ({\n        //       ...this._def.shape(),\n        //       ...augmentation,\n        //     }),\n        //   }) as any;\n        // }\n        /**\n         * @deprecated Use `.extend` instead\n         *  */\n        this.augment = this.extend;\n    }\n    _getCached() {\n        if (this._cached !== null)\n            return this._cached;\n        const shape = this._def.shape();\n        const keys = util.objectKeys(shape);\n        this._cached = { shape, keys };\n        return this._cached;\n    }\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.object) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const { status, ctx } = this._processInputParams(input);\n        const { shape, keys: shapeKeys } = this._getCached();\n        const extraKeys = [];\n        if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n            for (const key in ctx.data) {\n                if (!shapeKeys.includes(key)) {\n                    extraKeys.push(key);\n                }\n            }\n        }\n        const pairs = [];\n        for (const key of shapeKeys) {\n            const keyValidator = shape[key];\n            const value = ctx.data[key];\n            pairs.push({\n                key: { status: \"valid\", value: key },\n                value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n                alwaysSet: key in ctx.data,\n            });\n        }\n        if (this._def.catchall instanceof ZodNever) {\n            const unknownKeys = this._def.unknownKeys;\n            if (unknownKeys === \"passthrough\") {\n                for (const key of extraKeys) {\n                    pairs.push({\n                        key: { status: \"valid\", value: key },\n                        value: { status: \"valid\", value: ctx.data[key] },\n                    });\n                }\n            }\n            else if (unknownKeys === \"strict\") {\n                if (extraKeys.length > 0) {\n                    addIssueToContext(ctx, {\n                        code: ZodIssueCode.unrecognized_keys,\n                        keys: extraKeys,\n                    });\n                    status.dirty();\n                }\n            }\n            else if (unknownKeys === \"strip\") {\n            }\n            else {\n                throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n            }\n        }\n        else {\n            // run catchall validation\n            const catchall = this._def.catchall;\n            for (const key of extraKeys) {\n                const value = ctx.data[key];\n                pairs.push({\n                    key: { status: \"valid\", value: key },\n                    value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n                    ),\n                    alwaysSet: key in ctx.data,\n                });\n            }\n        }\n        if (ctx.common.async) {\n            return Promise.resolve()\n                .then(async () => {\n                const syncPairs = [];\n                for (const pair of pairs) {\n                    const key = await pair.key;\n                    const value = await pair.value;\n                    syncPairs.push({\n                        key,\n                        value,\n                        alwaysSet: pair.alwaysSet,\n                    });\n                }\n                return syncPairs;\n            })\n                .then((syncPairs) => {\n                return ParseStatus.mergeObjectSync(status, syncPairs);\n            });\n        }\n        else {\n            return ParseStatus.mergeObjectSync(status, pairs);\n        }\n    }\n    get shape() {\n        return this._def.shape();\n    }\n    strict(message) {\n        errorUtil.errToObj;\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"strict\",\n            ...(message !== undefined\n                ? {\n                    errorMap: (issue, ctx) => {\n                        const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n                        if (issue.code === \"unrecognized_keys\")\n                            return {\n                                message: errorUtil.errToObj(message).message ?? defaultError,\n                            };\n                        return {\n                            message: defaultError,\n                        };\n                    },\n                }\n                : {}),\n        });\n    }\n    strip() {\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"strip\",\n        });\n    }\n    passthrough() {\n        return new ZodObject({\n            ...this._def,\n            unknownKeys: \"passthrough\",\n        });\n    }\n    // const AugmentFactory =\n    //   <Def extends ZodObjectDef>(def: Def) =>\n    //   <Augmentation extends ZodRawShape>(\n    //     augmentation: Augmentation\n    //   ): ZodObject<\n    //     extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n    //     Def[\"unknownKeys\"],\n    //     Def[\"catchall\"]\n    //   > => {\n    //     return new ZodObject({\n    //       ...def,\n    //       shape: () => ({\n    //         ...def.shape(),\n    //         ...augmentation,\n    //       }),\n    //     }) as any;\n    //   };\n    extend(augmentation) {\n        return new ZodObject({\n            ...this._def,\n            shape: () => ({\n                ...this._def.shape(),\n                ...augmentation,\n            }),\n        });\n    }\n    /**\n     * Prior to zod@1.0.12 there was a bug in the\n     * inferred type of merged objects. Please\n     * upgrade if you are experiencing issues.\n     */\n    merge(merging) {\n        const merged = new ZodObject({\n            unknownKeys: merging._def.unknownKeys,\n            catchall: merging._def.catchall,\n            shape: () => ({\n                ...this._def.shape(),\n                ...merging._def.shape(),\n            }),\n            typeName: ZodFirstPartyTypeKind.ZodObject,\n        });\n        return merged;\n    }\n    // merge<\n    //   Incoming extends AnyZodObject,\n    //   Augmentation extends Incoming[\"shape\"],\n    //   NewOutput extends {\n    //     [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n    //       ? Augmentation[k][\"_output\"]\n    //       : k extends keyof Output\n    //       ? Output[k]\n    //       : never;\n    //   },\n    //   NewInput extends {\n    //     [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n    //       ? Augmentation[k][\"_input\"]\n    //       : k extends keyof Input\n    //       ? Input[k]\n    //       : never;\n    //   }\n    // >(\n    //   merging: Incoming\n    // ): ZodObject<\n    //   extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n    //   Incoming[\"_def\"][\"unknownKeys\"],\n    //   Incoming[\"_def\"][\"catchall\"],\n    //   NewOutput,\n    //   NewInput\n    // > {\n    //   const merged: any = new ZodObject({\n    //     unknownKeys: merging._def.unknownKeys,\n    //     catchall: merging._def.catchall,\n    //     shape: () =>\n    //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n    //     typeName: ZodFirstPartyTypeKind.ZodObject,\n    //   }) as any;\n    //   return merged;\n    // }\n    setKey(key, schema) {\n        return this.augment({ [key]: schema });\n    }\n    // merge<Incoming extends AnyZodObject>(\n    //   merging: Incoming\n    // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n    // ZodObject<\n    //   extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n    //   Incoming[\"_def\"][\"unknownKeys\"],\n    //   Incoming[\"_def\"][\"catchall\"]\n    // > {\n    //   // const mergedShape = objectUtil.mergeShapes(\n    //   //   this._def.shape(),\n    //   //   merging._def.shape()\n    //   // );\n    //   const merged: any = new ZodObject({\n    //     unknownKeys: merging._def.unknownKeys,\n    //     catchall: merging._def.catchall,\n    //     shape: () =>\n    //       objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n    //     typeName: ZodFirstPartyTypeKind.ZodObject,\n    //   }) as any;\n    //   return merged;\n    // }\n    catchall(index) {\n        return new ZodObject({\n            ...this._def,\n            catchall: index,\n        });\n    }\n    pick(mask) {\n        const shape = {};\n        for (const key of util.objectKeys(mask)) {\n            if (mask[key] && this.shape[key]) {\n                shape[key] = this.shape[key];\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => shape,\n        });\n    }\n    omit(mask) {\n        const shape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            if (!mask[key]) {\n                shape[key] = this.shape[key];\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => shape,\n        });\n    }\n    /**\n     * @deprecated\n     */\n    deepPartial() {\n        return deepPartialify(this);\n    }\n    partial(mask) {\n        const newShape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            const fieldSchema = this.shape[key];\n            if (mask && !mask[key]) {\n                newShape[key] = fieldSchema;\n            }\n            else {\n                newShape[key] = fieldSchema.optional();\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => newShape,\n        });\n    }\n    required(mask) {\n        const newShape = {};\n        for (const key of util.objectKeys(this.shape)) {\n            if (mask && !mask[key]) {\n                newShape[key] = this.shape[key];\n            }\n            else {\n                const fieldSchema = this.shape[key];\n                let newField = fieldSchema;\n                while (newField instanceof ZodOptional) {\n                    newField = newField._def.innerType;\n                }\n                newShape[key] = newField;\n            }\n        }\n        return new ZodObject({\n            ...this._def,\n            shape: () => newShape,\n        });\n    }\n    keyof() {\n        return createZodEnum(util.objectKeys(this.shape));\n    }\n}\nZodObject.create = (shape, params) => {\n    return new ZodObject({\n        shape: () => shape,\n        unknownKeys: \"strip\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nZodObject.strictCreate = (shape, params) => {\n    return new ZodObject({\n        shape: () => shape,\n        unknownKeys: \"strict\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nZodObject.lazycreate = (shape, params) => {\n    return new ZodObject({\n        shape,\n        unknownKeys: \"strip\",\n        catchall: ZodNever.create(),\n        typeName: ZodFirstPartyTypeKind.ZodObject,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodUnion extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const options = this._def.options;\n        function handleResults(results) {\n            // return first issue-free validation if it exists\n            for (const result of results) {\n                if (result.result.status === \"valid\") {\n                    return result.result;\n                }\n            }\n            for (const result of results) {\n                if (result.result.status === \"dirty\") {\n                    // add issues from dirty option\n                    ctx.common.issues.push(...result.ctx.common.issues);\n                    return result.result;\n                }\n            }\n            // return invalid\n            const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union,\n                unionErrors,\n            });\n            return INVALID;\n        }\n        if (ctx.common.async) {\n            return Promise.all(options.map(async (option) => {\n                const childCtx = {\n                    ...ctx,\n                    common: {\n                        ...ctx.common,\n                        issues: [],\n                    },\n                    parent: null,\n                };\n                return {\n                    result: await option._parseAsync({\n                        data: ctx.data,\n                        path: ctx.path,\n                        parent: childCtx,\n                    }),\n                    ctx: childCtx,\n                };\n            })).then(handleResults);\n        }\n        else {\n            let dirty = undefined;\n            const issues = [];\n            for (const option of options) {\n                const childCtx = {\n                    ...ctx,\n                    common: {\n                        ...ctx.common,\n                        issues: [],\n                    },\n                    parent: null,\n                };\n                const result = option._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: childCtx,\n                });\n                if (result.status === \"valid\") {\n                    return result;\n                }\n                else if (result.status === \"dirty\" && !dirty) {\n                    dirty = { result, ctx: childCtx };\n                }\n                if (childCtx.common.issues.length) {\n                    issues.push(childCtx.common.issues);\n                }\n            }\n            if (dirty) {\n                ctx.common.issues.push(...dirty.ctx.common.issues);\n                return dirty.result;\n            }\n            const unionErrors = issues.map((issues) => new ZodError(issues));\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union,\n                unionErrors,\n            });\n            return INVALID;\n        }\n    }\n    get options() {\n        return this._def.options;\n    }\n}\nZodUnion.create = (types, params) => {\n    return new ZodUnion({\n        options: types,\n        typeName: ZodFirstPartyTypeKind.ZodUnion,\n        ...processCreateParams(params),\n    });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n//////////                                 //////////\n//////////      ZodDiscriminatedUnion      //////////\n//////////                                 //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n    if (type instanceof ZodLazy) {\n        return getDiscriminator(type.schema);\n    }\n    else if (type instanceof ZodEffects) {\n        return getDiscriminator(type.innerType());\n    }\n    else if (type instanceof ZodLiteral) {\n        return [type.value];\n    }\n    else if (type instanceof ZodEnum) {\n        return type.options;\n    }\n    else if (type instanceof ZodNativeEnum) {\n        // eslint-disable-next-line ban/ban\n        return util.objectValues(type.enum);\n    }\n    else if (type instanceof ZodDefault) {\n        return getDiscriminator(type._def.innerType);\n    }\n    else if (type instanceof ZodUndefined) {\n        return [undefined];\n    }\n    else if (type instanceof ZodNull) {\n        return [null];\n    }\n    else if (type instanceof ZodOptional) {\n        return [undefined, ...getDiscriminator(type.unwrap())];\n    }\n    else if (type instanceof ZodNullable) {\n        return [null, ...getDiscriminator(type.unwrap())];\n    }\n    else if (type instanceof ZodBranded) {\n        return getDiscriminator(type.unwrap());\n    }\n    else if (type instanceof ZodReadonly) {\n        return getDiscriminator(type.unwrap());\n    }\n    else if (type instanceof ZodCatch) {\n        return getDiscriminator(type._def.innerType);\n    }\n    else {\n        return [];\n    }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.object) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const discriminator = this.discriminator;\n        const discriminatorValue = ctx.data[discriminator];\n        const option = this.optionsMap.get(discriminatorValue);\n        if (!option) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_union_discriminator,\n                options: Array.from(this.optionsMap.keys()),\n                path: [discriminator],\n            });\n            return INVALID;\n        }\n        if (ctx.common.async) {\n            return option._parseAsync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n        }\n        else {\n            return option._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n        }\n    }\n    get discriminator() {\n        return this._def.discriminator;\n    }\n    get options() {\n        return this._def.options;\n    }\n    get optionsMap() {\n        return this._def.optionsMap;\n    }\n    /**\n     * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n     * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n     * have a different value for each object in the union.\n     * @param discriminator the name of the discriminator property\n     * @param types an array of object schemas\n     * @param params\n     */\n    static create(discriminator, options, params) {\n        // Get all the valid discriminator values\n        const optionsMap = new Map();\n        // try {\n        for (const type of options) {\n            const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n            if (!discriminatorValues.length) {\n                throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n            }\n            for (const value of discriminatorValues) {\n                if (optionsMap.has(value)) {\n                    throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n                }\n                optionsMap.set(value, type);\n            }\n        }\n        return new ZodDiscriminatedUnion({\n            typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n            discriminator,\n            options,\n            optionsMap,\n            ...processCreateParams(params),\n        });\n    }\n}\nfunction mergeValues(a, b) {\n    const aType = getParsedType(a);\n    const bType = getParsedType(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n        const bKeys = util.objectKeys(b);\n        const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        for (const key of sharedKeys) {\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return { valid: false };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n        if (a.length !== b.length) {\n            return { valid: false };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return { valid: false };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    else {\n        return { valid: false };\n    }\n}\nexport class ZodIntersection extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        const handleParsed = (parsedLeft, parsedRight) => {\n            if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n                return INVALID;\n            }\n            const merged = mergeValues(parsedLeft.value, parsedRight.value);\n            if (!merged.valid) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.invalid_intersection_types,\n                });\n                return INVALID;\n            }\n            if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n                status.dirty();\n            }\n            return { status: status.value, value: merged.data };\n        };\n        if (ctx.common.async) {\n            return Promise.all([\n                this._def.left._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                }),\n                this._def.right._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                }),\n            ]).then(([left, right]) => handleParsed(left, right));\n        }\n        else {\n            return handleParsed(this._def.left._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            }), this._def.right._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            }));\n        }\n    }\n}\nZodIntersection.create = (left, right, params) => {\n    return new ZodIntersection({\n        left: left,\n        right: right,\n        typeName: ZodFirstPartyTypeKind.ZodIntersection,\n        ...processCreateParams(params),\n    });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.array) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.array,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        if (ctx.data.length < this._def.items.length) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.too_small,\n                minimum: this._def.items.length,\n                inclusive: true,\n                exact: false,\n                type: \"array\",\n            });\n            return INVALID;\n        }\n        const rest = this._def.rest;\n        if (!rest && ctx.data.length > this._def.items.length) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.too_big,\n                maximum: this._def.items.length,\n                inclusive: true,\n                exact: false,\n                type: \"array\",\n            });\n            status.dirty();\n        }\n        const items = [...ctx.data]\n            .map((item, itemIndex) => {\n            const schema = this._def.items[itemIndex] || this._def.rest;\n            if (!schema)\n                return null;\n            return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n        })\n            .filter((x) => !!x); // filter nulls\n        if (ctx.common.async) {\n            return Promise.all(items).then((results) => {\n                return ParseStatus.mergeArray(status, results);\n            });\n        }\n        else {\n            return ParseStatus.mergeArray(status, items);\n        }\n    }\n    get items() {\n        return this._def.items;\n    }\n    rest(rest) {\n        return new ZodTuple({\n            ...this._def,\n            rest,\n        });\n    }\n}\nZodTuple.create = (schemas, params) => {\n    if (!Array.isArray(schemas)) {\n        throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n    }\n    return new ZodTuple({\n        items: schemas,\n        typeName: ZodFirstPartyTypeKind.ZodTuple,\n        rest: null,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodRecord extends ZodType {\n    get keySchema() {\n        return this._def.keyType;\n    }\n    get valueSchema() {\n        return this._def.valueType;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.object) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.object,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const pairs = [];\n        const keyType = this._def.keyType;\n        const valueType = this._def.valueType;\n        for (const key in ctx.data) {\n            pairs.push({\n                key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n                value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n                alwaysSet: key in ctx.data,\n            });\n        }\n        if (ctx.common.async) {\n            return ParseStatus.mergeObjectAsync(status, pairs);\n        }\n        else {\n            return ParseStatus.mergeObjectSync(status, pairs);\n        }\n    }\n    get element() {\n        return this._def.valueType;\n    }\n    static create(first, second, third) {\n        if (second instanceof ZodType) {\n            return new ZodRecord({\n                keyType: first,\n                valueType: second,\n                typeName: ZodFirstPartyTypeKind.ZodRecord,\n                ...processCreateParams(third),\n            });\n        }\n        return new ZodRecord({\n            keyType: ZodString.create(),\n            valueType: first,\n            typeName: ZodFirstPartyTypeKind.ZodRecord,\n            ...processCreateParams(second),\n        });\n    }\n}\nexport class ZodMap extends ZodType {\n    get keySchema() {\n        return this._def.keyType;\n    }\n    get valueSchema() {\n        return this._def.valueType;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.map) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.map,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const keyType = this._def.keyType;\n        const valueType = this._def.valueType;\n        const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n            return {\n                key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n                value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n            };\n        });\n        if (ctx.common.async) {\n            const finalMap = new Map();\n            return Promise.resolve().then(async () => {\n                for (const pair of pairs) {\n                    const key = await pair.key;\n                    const value = await pair.value;\n                    if (key.status === \"aborted\" || value.status === \"aborted\") {\n                        return INVALID;\n                    }\n                    if (key.status === \"dirty\" || value.status === \"dirty\") {\n                        status.dirty();\n                    }\n                    finalMap.set(key.value, value.value);\n                }\n                return { status: status.value, value: finalMap };\n            });\n        }\n        else {\n            const finalMap = new Map();\n            for (const pair of pairs) {\n                const key = pair.key;\n                const value = pair.value;\n                if (key.status === \"aborted\" || value.status === \"aborted\") {\n                    return INVALID;\n                }\n                if (key.status === \"dirty\" || value.status === \"dirty\") {\n                    status.dirty();\n                }\n                finalMap.set(key.value, value.value);\n            }\n            return { status: status.value, value: finalMap };\n        }\n    }\n}\nZodMap.create = (keyType, valueType, params) => {\n    return new ZodMap({\n        valueType,\n        keyType,\n        typeName: ZodFirstPartyTypeKind.ZodMap,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodSet extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.set) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.set,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const def = this._def;\n        if (def.minSize !== null) {\n            if (ctx.data.size < def.minSize.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_small,\n                    minimum: def.minSize.value,\n                    type: \"set\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.minSize.message,\n                });\n                status.dirty();\n            }\n        }\n        if (def.maxSize !== null) {\n            if (ctx.data.size > def.maxSize.value) {\n                addIssueToContext(ctx, {\n                    code: ZodIssueCode.too_big,\n                    maximum: def.maxSize.value,\n                    type: \"set\",\n                    inclusive: true,\n                    exact: false,\n                    message: def.maxSize.message,\n                });\n                status.dirty();\n            }\n        }\n        const valueType = this._def.valueType;\n        function finalizeSet(elements) {\n            const parsedSet = new Set();\n            for (const element of elements) {\n                if (element.status === \"aborted\")\n                    return INVALID;\n                if (element.status === \"dirty\")\n                    status.dirty();\n                parsedSet.add(element.value);\n            }\n            return { status: status.value, value: parsedSet };\n        }\n        const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n        if (ctx.common.async) {\n            return Promise.all(elements).then((elements) => finalizeSet(elements));\n        }\n        else {\n            return finalizeSet(elements);\n        }\n    }\n    min(minSize, message) {\n        return new ZodSet({\n            ...this._def,\n            minSize: { value: minSize, message: errorUtil.toString(message) },\n        });\n    }\n    max(maxSize, message) {\n        return new ZodSet({\n            ...this._def,\n            maxSize: { value: maxSize, message: errorUtil.toString(message) },\n        });\n    }\n    size(size, message) {\n        return this.min(size, message).max(size, message);\n    }\n    nonempty(message) {\n        return this.min(1, message);\n    }\n}\nZodSet.create = (valueType, params) => {\n    return new ZodSet({\n        valueType,\n        minSize: null,\n        maxSize: null,\n        typeName: ZodFirstPartyTypeKind.ZodSet,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodFunction extends ZodType {\n    constructor() {\n        super(...arguments);\n        this.validate = this.implement;\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.function) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.function,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        function makeArgsIssue(args, error) {\n            return makeIssue({\n                data: args,\n                path: ctx.path,\n                errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n                issueData: {\n                    code: ZodIssueCode.invalid_arguments,\n                    argumentsError: error,\n                },\n            });\n        }\n        function makeReturnsIssue(returns, error) {\n            return makeIssue({\n                data: returns,\n                path: ctx.path,\n                errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n                issueData: {\n                    code: ZodIssueCode.invalid_return_type,\n                    returnTypeError: error,\n                },\n            });\n        }\n        const params = { errorMap: ctx.common.contextualErrorMap };\n        const fn = ctx.data;\n        if (this._def.returns instanceof ZodPromise) {\n            // Would love a way to avoid disabling this rule, but we need\n            // an alias (using an arrow function was what caused 2651).\n            // eslint-disable-next-line @typescript-eslint/no-this-alias\n            const me = this;\n            return OK(async function (...args) {\n                const error = new ZodError([]);\n                const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n                    error.addIssue(makeArgsIssue(args, e));\n                    throw error;\n                });\n                const result = await Reflect.apply(fn, this, parsedArgs);\n                const parsedReturns = await me._def.returns._def.type\n                    .parseAsync(result, params)\n                    .catch((e) => {\n                    error.addIssue(makeReturnsIssue(result, e));\n                    throw error;\n                });\n                return parsedReturns;\n            });\n        }\n        else {\n            // Would love a way to avoid disabling this rule, but we need\n            // an alias (using an arrow function was what caused 2651).\n            // eslint-disable-next-line @typescript-eslint/no-this-alias\n            const me = this;\n            return OK(function (...args) {\n                const parsedArgs = me._def.args.safeParse(args, params);\n                if (!parsedArgs.success) {\n                    throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n                }\n                const result = Reflect.apply(fn, this, parsedArgs.data);\n                const parsedReturns = me._def.returns.safeParse(result, params);\n                if (!parsedReturns.success) {\n                    throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n                }\n                return parsedReturns.data;\n            });\n        }\n    }\n    parameters() {\n        return this._def.args;\n    }\n    returnType() {\n        return this._def.returns;\n    }\n    args(...items) {\n        return new ZodFunction({\n            ...this._def,\n            args: ZodTuple.create(items).rest(ZodUnknown.create()),\n        });\n    }\n    returns(returnType) {\n        return new ZodFunction({\n            ...this._def,\n            returns: returnType,\n        });\n    }\n    implement(func) {\n        const validatedFunc = this.parse(func);\n        return validatedFunc;\n    }\n    strictImplement(func) {\n        const validatedFunc = this.parse(func);\n        return validatedFunc;\n    }\n    static create(args, returns, params) {\n        return new ZodFunction({\n            args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n            returns: returns || ZodUnknown.create(),\n            typeName: ZodFirstPartyTypeKind.ZodFunction,\n            ...processCreateParams(params),\n        });\n    }\n}\nexport class ZodLazy extends ZodType {\n    get schema() {\n        return this._def.getter();\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const lazySchema = this._def.getter();\n        return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n    }\n}\nZodLazy.create = (getter, params) => {\n    return new ZodLazy({\n        getter: getter,\n        typeName: ZodFirstPartyTypeKind.ZodLazy,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodLiteral extends ZodType {\n    _parse(input) {\n        if (input.data !== this._def.value) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_literal,\n                expected: this._def.value,\n            });\n            return INVALID;\n        }\n        return { status: \"valid\", value: input.data };\n    }\n    get value() {\n        return this._def.value;\n    }\n}\nZodLiteral.create = (value, params) => {\n    return new ZodLiteral({\n        value: value,\n        typeName: ZodFirstPartyTypeKind.ZodLiteral,\n        ...processCreateParams(params),\n    });\n};\nfunction createZodEnum(values, params) {\n    return new ZodEnum({\n        values,\n        typeName: ZodFirstPartyTypeKind.ZodEnum,\n        ...processCreateParams(params),\n    });\n}\nexport class ZodEnum extends ZodType {\n    _parse(input) {\n        if (typeof input.data !== \"string\") {\n            const ctx = this._getOrReturnCtx(input);\n            const expectedValues = this._def.values;\n            addIssueToContext(ctx, {\n                expected: util.joinValues(expectedValues),\n                received: ctx.parsedType,\n                code: ZodIssueCode.invalid_type,\n            });\n            return INVALID;\n        }\n        if (!this._cache) {\n            this._cache = new Set(this._def.values);\n        }\n        if (!this._cache.has(input.data)) {\n            const ctx = this._getOrReturnCtx(input);\n            const expectedValues = this._def.values;\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_enum_value,\n                options: expectedValues,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n    get options() {\n        return this._def.values;\n    }\n    get enum() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    get Values() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    get Enum() {\n        const enumValues = {};\n        for (const val of this._def.values) {\n            enumValues[val] = val;\n        }\n        return enumValues;\n    }\n    extract(values, newDef = this._def) {\n        return ZodEnum.create(values, {\n            ...this._def,\n            ...newDef,\n        });\n    }\n    exclude(values, newDef = this._def) {\n        return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n            ...this._def,\n            ...newDef,\n        });\n    }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n    _parse(input) {\n        const nativeEnumValues = util.getValidEnumValues(this._def.values);\n        const ctx = this._getOrReturnCtx(input);\n        if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n            const expectedValues = util.objectValues(nativeEnumValues);\n            addIssueToContext(ctx, {\n                expected: util.joinValues(expectedValues),\n                received: ctx.parsedType,\n                code: ZodIssueCode.invalid_type,\n            });\n            return INVALID;\n        }\n        if (!this._cache) {\n            this._cache = new Set(util.getValidEnumValues(this._def.values));\n        }\n        if (!this._cache.has(input.data)) {\n            const expectedValues = util.objectValues(nativeEnumValues);\n            addIssueToContext(ctx, {\n                received: ctx.data,\n                code: ZodIssueCode.invalid_enum_value,\n                options: expectedValues,\n            });\n            return INVALID;\n        }\n        return OK(input.data);\n    }\n    get enum() {\n        return this._def.values;\n    }\n}\nZodNativeEnum.create = (values, params) => {\n    return new ZodNativeEnum({\n        values: values,\n        typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodPromise extends ZodType {\n    unwrap() {\n        return this._def.type;\n    }\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.promise,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n        return OK(promisified.then((data) => {\n            return this._def.type.parseAsync(data, {\n                path: ctx.path,\n                errorMap: ctx.common.contextualErrorMap,\n            });\n        }));\n    }\n}\nZodPromise.create = (schema, params) => {\n    return new ZodPromise({\n        type: schema,\n        typeName: ZodFirstPartyTypeKind.ZodPromise,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodEffects extends ZodType {\n    innerType() {\n        return this._def.schema;\n    }\n    sourceType() {\n        return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n            ? this._def.schema.sourceType()\n            : this._def.schema;\n    }\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        const effect = this._def.effect || null;\n        const checkCtx = {\n            addIssue: (arg) => {\n                addIssueToContext(ctx, arg);\n                if (arg.fatal) {\n                    status.abort();\n                }\n                else {\n                    status.dirty();\n                }\n            },\n            get path() {\n                return ctx.path;\n            },\n        };\n        checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n        if (effect.type === \"preprocess\") {\n            const processed = effect.transform(ctx.data, checkCtx);\n            if (ctx.common.async) {\n                return Promise.resolve(processed).then(async (processed) => {\n                    if (status.value === \"aborted\")\n                        return INVALID;\n                    const result = await this._def.schema._parseAsync({\n                        data: processed,\n                        path: ctx.path,\n                        parent: ctx,\n                    });\n                    if (result.status === \"aborted\")\n                        return INVALID;\n                    if (result.status === \"dirty\")\n                        return DIRTY(result.value);\n                    if (status.value === \"dirty\")\n                        return DIRTY(result.value);\n                    return result;\n                });\n            }\n            else {\n                if (status.value === \"aborted\")\n                    return INVALID;\n                const result = this._def.schema._parseSync({\n                    data: processed,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (result.status === \"aborted\")\n                    return INVALID;\n                if (result.status === \"dirty\")\n                    return DIRTY(result.value);\n                if (status.value === \"dirty\")\n                    return DIRTY(result.value);\n                return result;\n            }\n        }\n        if (effect.type === \"refinement\") {\n            const executeRefinement = (acc) => {\n                const result = effect.refinement(acc, checkCtx);\n                if (ctx.common.async) {\n                    return Promise.resolve(result);\n                }\n                if (result instanceof Promise) {\n                    throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n                }\n                return acc;\n            };\n            if (ctx.common.async === false) {\n                const inner = this._def.schema._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (inner.status === \"aborted\")\n                    return INVALID;\n                if (inner.status === \"dirty\")\n                    status.dirty();\n                // return value is ignored\n                executeRefinement(inner.value);\n                return { status: status.value, value: inner.value };\n            }\n            else {\n                return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n                    if (inner.status === \"aborted\")\n                        return INVALID;\n                    if (inner.status === \"dirty\")\n                        status.dirty();\n                    return executeRefinement(inner.value).then(() => {\n                        return { status: status.value, value: inner.value };\n                    });\n                });\n            }\n        }\n        if (effect.type === \"transform\") {\n            if (ctx.common.async === false) {\n                const base = this._def.schema._parseSync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (!isValid(base))\n                    return INVALID;\n                const result = effect.transform(base.value, checkCtx);\n                if (result instanceof Promise) {\n                    throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n                }\n                return { status: status.value, value: result };\n            }\n            else {\n                return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n                    if (!isValid(base))\n                        return INVALID;\n                    return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n                        status: status.value,\n                        value: result,\n                    }));\n                });\n            }\n        }\n        util.assertNever(effect);\n    }\n}\nZodEffects.create = (schema, effect, params) => {\n    return new ZodEffects({\n        schema,\n        typeName: ZodFirstPartyTypeKind.ZodEffects,\n        effect,\n        ...processCreateParams(params),\n    });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n    return new ZodEffects({\n        schema,\n        effect: { type: \"preprocess\", transform: preprocess },\n        typeName: ZodFirstPartyTypeKind.ZodEffects,\n        ...processCreateParams(params),\n    });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType === ZodParsedType.undefined) {\n            return OK(undefined);\n        }\n        return this._def.innerType._parse(input);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodOptional.create = (type, params) => {\n    return new ZodOptional({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodOptional,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNullable extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType === ZodParsedType.null) {\n            return OK(null);\n        }\n        return this._def.innerType._parse(input);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodNullable.create = (type, params) => {\n    return new ZodNullable({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodNullable,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodDefault extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        let data = ctx.data;\n        if (ctx.parsedType === ZodParsedType.undefined) {\n            data = this._def.defaultValue();\n        }\n        return this._def.innerType._parse({\n            data,\n            path: ctx.path,\n            parent: ctx,\n        });\n    }\n    removeDefault() {\n        return this._def.innerType;\n    }\n}\nZodDefault.create = (type, params) => {\n    return new ZodDefault({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodDefault,\n        defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodCatch extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        // newCtx is used to not collect issues from inner types in ctx\n        const newCtx = {\n            ...ctx,\n            common: {\n                ...ctx.common,\n                issues: [],\n            },\n        };\n        const result = this._def.innerType._parse({\n            data: newCtx.data,\n            path: newCtx.path,\n            parent: {\n                ...newCtx,\n            },\n        });\n        if (isAsync(result)) {\n            return result.then((result) => {\n                return {\n                    status: \"valid\",\n                    value: result.status === \"valid\"\n                        ? result.value\n                        : this._def.catchValue({\n                            get error() {\n                                return new ZodError(newCtx.common.issues);\n                            },\n                            input: newCtx.data,\n                        }),\n                };\n            });\n        }\n        else {\n            return {\n                status: \"valid\",\n                value: result.status === \"valid\"\n                    ? result.value\n                    : this._def.catchValue({\n                        get error() {\n                            return new ZodError(newCtx.common.issues);\n                        },\n                        input: newCtx.data,\n                    }),\n            };\n        }\n    }\n    removeCatch() {\n        return this._def.innerType;\n    }\n}\nZodCatch.create = (type, params) => {\n    return new ZodCatch({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodCatch,\n        catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n        ...processCreateParams(params),\n    });\n};\nexport class ZodNaN extends ZodType {\n    _parse(input) {\n        const parsedType = this._getType(input);\n        if (parsedType !== ZodParsedType.nan) {\n            const ctx = this._getOrReturnCtx(input);\n            addIssueToContext(ctx, {\n                code: ZodIssueCode.invalid_type,\n                expected: ZodParsedType.nan,\n                received: ctx.parsedType,\n            });\n            return INVALID;\n        }\n        return { status: \"valid\", value: input.data };\n    }\n}\nZodNaN.create = (params) => {\n    return new ZodNaN({\n        typeName: ZodFirstPartyTypeKind.ZodNaN,\n        ...processCreateParams(params),\n    });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n    _parse(input) {\n        const { ctx } = this._processInputParams(input);\n        const data = ctx.data;\n        return this._def.type._parse({\n            data,\n            path: ctx.path,\n            parent: ctx,\n        });\n    }\n    unwrap() {\n        return this._def.type;\n    }\n}\nexport class ZodPipeline extends ZodType {\n    _parse(input) {\n        const { status, ctx } = this._processInputParams(input);\n        if (ctx.common.async) {\n            const handleAsync = async () => {\n                const inResult = await this._def.in._parseAsync({\n                    data: ctx.data,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n                if (inResult.status === \"aborted\")\n                    return INVALID;\n                if (inResult.status === \"dirty\") {\n                    status.dirty();\n                    return DIRTY(inResult.value);\n                }\n                else {\n                    return this._def.out._parseAsync({\n                        data: inResult.value,\n                        path: ctx.path,\n                        parent: ctx,\n                    });\n                }\n            };\n            return handleAsync();\n        }\n        else {\n            const inResult = this._def.in._parseSync({\n                data: ctx.data,\n                path: ctx.path,\n                parent: ctx,\n            });\n            if (inResult.status === \"aborted\")\n                return INVALID;\n            if (inResult.status === \"dirty\") {\n                status.dirty();\n                return {\n                    status: \"dirty\",\n                    value: inResult.value,\n                };\n            }\n            else {\n                return this._def.out._parseSync({\n                    data: inResult.value,\n                    path: ctx.path,\n                    parent: ctx,\n                });\n            }\n        }\n    }\n    static create(a, b) {\n        return new ZodPipeline({\n            in: a,\n            out: b,\n            typeName: ZodFirstPartyTypeKind.ZodPipeline,\n        });\n    }\n}\nexport class ZodReadonly extends ZodType {\n    _parse(input) {\n        const result = this._def.innerType._parse(input);\n        const freeze = (data) => {\n            if (isValid(data)) {\n                data.value = Object.freeze(data.value);\n            }\n            return data;\n        };\n        return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n    }\n    unwrap() {\n        return this._def.innerType;\n    }\n}\nZodReadonly.create = (type, params) => {\n    return new ZodReadonly({\n        innerType: type,\n        typeName: ZodFirstPartyTypeKind.ZodReadonly,\n        ...processCreateParams(params),\n    });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n//////////                    //////////\n//////////      z.custom      //////////\n//////////                    //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n    const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n    const p2 = typeof p === \"string\" ? { message: p } : p;\n    return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n    if (check)\n        return ZodAny.create().superRefine((data, ctx) => {\n            const r = check(data);\n            if (r instanceof Promise) {\n                return r.then((r) => {\n                    if (!r) {\n                        const params = cleanParams(_params, data);\n                        const _fatal = params.fatal ?? fatal ?? true;\n                        ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n                    }\n                });\n            }\n            if (!r) {\n                const params = cleanParams(_params, data);\n                const _fatal = params.fatal ?? fatal ?? true;\n                ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n            }\n            return;\n        });\n    return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n    object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n    ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n    ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n    ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n    ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n    ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n    ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n    ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n    ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n    ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n    ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n    ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n    ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n    ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n    ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n    ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n    ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n    ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n    ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n    ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n    ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n    ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n    ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n    ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n    ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n    ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n    ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n    ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n    ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n    ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n    ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n    ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n    ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n    ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n    ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n    ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n    ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n    constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n    message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n    string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n    number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n    boolean: ((arg) => ZodBoolean.create({\n        ...arg,\n        coerce: true,\n    })),\n    bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n    date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","import type { Client } from '../clients/createClient.js'\nimport type { PublicActions } from '../clients/decorators/public.js'\nimport type { WalletActions } from '../clients/decorators/wallet.js'\nimport type { Transport } from '../clients/transports/createTransport.js'\nimport type { Account } from '../types/account.js'\nimport type { Chain } from '../types/chain.js'\nimport type { RpcSchema } from '../types/eip1193.js'\n\n/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction<\n  transport extends Transport,\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  rpcSchema extends RpcSchema | undefined,\n  extended extends { [key: string]: unknown },\n  client extends Client<transport, chain, account, rpcSchema, extended>,\n  parameters,\n  returnType,\n>(\n  client: client,\n  actionFn: (_: any, parameters: parameters) => returnType,\n  // Some minifiers drop `Function.prototype.name`, or replace it with short letters,\n  // meaning that `actionFn.name` will not always work. For that case, the consumer\n  // needs to pass the name explicitly.\n  name: keyof PublicActions | keyof WalletActions | (string & {}),\n): (parameters: parameters) => returnType {\n  const action_implicit = client[actionFn.name]\n  if (typeof action_implicit === 'function')\n    return action_implicit as (params: parameters) => returnType\n\n  const action_explicit = client[name]\n  if (typeof action_explicit === 'function')\n    return action_explicit as (params: parameters) => returnType\n\n  return (params) => actionFn(client, params)\n}\n","import { BaseError } from './base.js'\n\nexport type FilterTypeNotSupportedErrorType = FilterTypeNotSupportedError & {\n  name: 'FilterTypeNotSupportedError'\n}\nexport class FilterTypeNotSupportedError extends BaseError {\n  constructor(type: string) {\n    super(`Filter type \"${type}\" is not supported.`, {\n      name: 'FilterTypeNotSupportedError',\n    })\n  }\n}\n","import type {\n  Abi,\n  AbiParameter,\n  AbiParameterToPrimitiveType,\n  ExtractAbiEvents,\n} from 'abitype'\n\nimport {\n  AbiEventNotFoundError,\n  type AbiEventNotFoundErrorType,\n} from '../../errors/abi.js'\nimport {\n  FilterTypeNotSupportedError,\n  type FilterTypeNotSupportedErrorType,\n} from '../../errors/log.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  ContractEventArgs,\n  ContractEventName,\n  EventDefinition,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { IsNarrowable, UnionEvaluate } from '../../types/utils.js'\nimport { type ToBytesErrorType, toBytes } from '../encoding/toBytes.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport {\n  type ToEventSelectorErrorType,\n  toEventSelector,\n} from '../hash/toEventSelector.js'\nimport {\n  type EncodeAbiParametersErrorType,\n  encodeAbiParameters,\n} from './encodeAbiParameters.js'\nimport { type FormatAbiItemErrorType, formatAbiItem } from './formatAbiItem.js'\nimport { type GetAbiItemErrorType, getAbiItem } from './getAbiItem.js'\n\nconst docsPath = '/docs/contract/encodeEventTopics'\n\nexport type EncodeEventTopicsParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = ContractEventName<abi>,\n  ///\n  hasEvents = abi extends Abi\n    ? Abi extends abi\n      ? true\n      : [ExtractAbiEvents<abi>] extends [never]\n        ? false\n        : true\n    : true,\n  allArgs = ContractEventArgs<\n    abi,\n    eventName extends ContractEventName<abi>\n      ? eventName\n      : ContractEventName<abi>\n  >,\n  allErrorNames = ContractEventName<abi>,\n> = {\n  abi: abi\n  args?: allArgs | undefined\n} & UnionEvaluate<\n  IsNarrowable<abi, Abi> extends true\n    ? abi['length'] extends 1\n      ? { eventName?: eventName | allErrorNames | undefined }\n      : { eventName: eventName | allErrorNames }\n    : { eventName?: eventName | allErrorNames | undefined }\n> &\n  (hasEvents extends true ? unknown : never)\n\nexport type EncodeEventTopicsReturnType = [Hex, ...(Hex | Hex[] | null)[]]\n\nexport type EncodeEventTopicsErrorType =\n  | AbiEventNotFoundErrorType\n  | EncodeArgErrorType\n  | FormatAbiItemErrorType\n  | GetAbiItemErrorType\n  | ToEventSelectorErrorType\n  | ErrorType\n\nexport function encodeEventTopics<\n  const abi extends Abi | readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined = undefined,\n>(\n  parameters: EncodeEventTopicsParameters<abi, eventName>,\n): EncodeEventTopicsReturnType {\n  const { abi, eventName, args } = parameters as EncodeEventTopicsParameters\n\n  let abiItem = abi[0]\n  if (eventName) {\n    const item = getAbiItem({ abi, name: eventName })\n    if (!item) throw new AbiEventNotFoundError(eventName, { docsPath })\n    abiItem = item\n  }\n\n  if (abiItem.type !== 'event')\n    throw new AbiEventNotFoundError(undefined, { docsPath })\n\n  const definition = formatAbiItem(abiItem)\n  const signature = toEventSelector(definition as EventDefinition)\n\n  let topics: (Hex | Hex[] | null)[] = []\n  if (args && 'inputs' in abiItem) {\n    const indexedInputs = abiItem.inputs?.filter(\n      (param) => 'indexed' in param && param.indexed,\n    )\n    const args_ = Array.isArray(args)\n      ? args\n      : Object.values(args).length > 0\n        ? (indexedInputs?.map((x: any) => (args as any)[x.name]) ?? [])\n        : []\n\n    if (args_.length > 0) {\n      topics =\n        indexedInputs?.map((param, i) => {\n          if (Array.isArray(args_[i]))\n            return args_[i].map((_: any, j: number) =>\n              encodeArg({ param, value: args_[i][j] }),\n            )\n          return typeof args_[i] !== 'undefined' && args_[i] !== null\n            ? encodeArg({ param, value: args_[i] })\n            : null\n        }) ?? []\n    }\n  }\n  return [signature, ...topics]\n}\n\nexport type EncodeArgErrorType =\n  | Keccak256ErrorType\n  | ToBytesErrorType\n  | EncodeAbiParametersErrorType\n  | FilterTypeNotSupportedErrorType\n  | ErrorType\n\nfunction encodeArg({\n  param,\n  value,\n}: {\n  param: AbiParameter\n  value: AbiParameterToPrimitiveType<AbiParameter>\n}) {\n  if (param.type === 'string' || param.type === 'bytes')\n    return keccak256(toBytes(value as string))\n  if (param.type === 'tuple' || param.type.match(/^(.*)\\[(\\d+)?\\]$/))\n    throw new FilterTypeNotSupportedError(param.type)\n  return encodeAbiParameters([param], [value])\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { OnResponseFn } from '../../clients/transports/fallback.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { EIP1193RequestFn, PublicRpcSchema } from '../../types/eip1193.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Filter } from '../../types/utils.js'\n\ntype CreateFilterRequestScopeParameters = {\n  method:\n    | 'eth_newFilter'\n    | 'eth_newPendingTransactionFilter'\n    | 'eth_newBlockFilter'\n}\n\ntype FilterRpcSchema = Filter<\n  PublicRpcSchema,\n  { Method: 'eth_getFilterLogs' | 'eth_getFilterChanges' }\n>\n\ntype CreateFilterRequestScopeReturnType = (\n  id: Hex,\n) => EIP1193RequestFn<FilterRpcSchema>\n\n/**\n * Scopes `request` to the filter ID. If the client is a fallback, it will\n * listen for responses and scope the child transport `request` function\n * to the successful filter ID.\n */\nexport function createFilterRequestScope<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { method }: CreateFilterRequestScopeParameters,\n): CreateFilterRequestScopeReturnType {\n  const requestMap: Record<Hex, EIP1193RequestFn> = {}\n\n  if (client.transport.type === 'fallback')\n    client.transport.onResponse?.(\n      ({\n        method: method_,\n        response: id,\n        status,\n        transport,\n      }: Parameters<OnResponseFn>[0]) => {\n        if (status === 'success' && method === method_)\n          requestMap[id as Hex] = transport.request\n      },\n    )\n\n  return ((id) =>\n    requestMap[id] || client.request) as CreateFilterRequestScopeReturnType\n}\n","import type { Abi, Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractEventName,\n  MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Hex } from '../../types/misc.js'\nimport {\n  type EncodeEventTopicsErrorType,\n  type EncodeEventTopicsParameters,\n  encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateContractEventFilterParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = undefined,\n  args extends\n    | MaybeExtractEventArgsFromAbi<abi, eventName>\n    | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n> = {\n  address?: Address | Address[] | undefined\n  abi: abi\n  eventName?: eventName | ContractEventName<abi> | undefined\n  fromBlock?: fromBlock | BlockNumber | BlockTag | undefined\n  /**\n   * Whether or not the logs must match the indexed/non-indexed arguments in the event ABI item.\n   * @default false\n   */\n  strict?: strict | boolean | undefined\n  toBlock?: toBlock | BlockNumber | BlockTag | undefined\n} & (undefined extends eventName\n  ? {\n      args?: undefined\n    }\n  : MaybeExtractEventArgsFromAbi<abi, eventName> extends infer eventFilterArgs\n    ? {\n        args?:\n          | eventFilterArgs\n          | (args extends eventFilterArgs ? args : never)\n          | undefined\n      }\n    : {\n        args?: undefined\n      })\n\nexport type CreateContractEventFilterReturnType<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = undefined,\n  args extends\n    | MaybeExtractEventArgsFromAbi<abi, eventName>\n    | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n> = Filter<'event', abi, eventName, args, strict, fromBlock, toBlock>\n\nexport type CreateContractEventFilterErrorType =\n  | EncodeEventTopicsErrorType\n  | RequestErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\n/**\n * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs).\n *\n * - Docs: https://viem.sh/docs/contract/createContractEventFilter\n *\n * @param client - Client to use\n * @param parameters - {@link CreateContractEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateContractEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n *   abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n * })\n */\nexport async function createContractEventFilter<\n  chain extends Chain | undefined,\n  const abi extends Abi | readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined,\n  args extends MaybeExtractEventArgsFromAbi<abi, eventName> | undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n>(\n  client: Client<Transport, chain>,\n  parameters: CreateContractEventFilterParameters<\n    abi,\n    eventName,\n    args,\n    strict,\n    fromBlock,\n    toBlock\n  >,\n): Promise<\n  CreateContractEventFilterReturnType<\n    abi,\n    eventName,\n    args,\n    strict,\n    fromBlock,\n    toBlock\n  >\n> {\n  const { address, abi, args, eventName, fromBlock, strict, toBlock } =\n    parameters as CreateContractEventFilterParameters\n\n  const getRequest = createFilterRequestScope(client, {\n    method: 'eth_newFilter',\n  })\n\n  const topics = eventName\n    ? encodeEventTopics({\n        abi,\n        args,\n        eventName,\n      } as unknown as EncodeEventTopicsParameters)\n    : undefined\n  const id: Hex = await client.request({\n    method: 'eth_newFilter',\n    params: [\n      {\n        address,\n        fromBlock:\n          typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n        toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n        topics,\n      },\n    ],\n  })\n\n  return {\n    abi,\n    args,\n    eventName,\n    id,\n    request: getRequest(id),\n    strict: Boolean(strict),\n    type: 'event',\n  } as unknown as CreateContractEventFilterReturnType<\n    abi,\n    eventName,\n    args,\n    strict,\n    fromBlock,\n    toBlock\n  >\n}\n","import type { Abi, Address } from 'abitype'\n\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js'\nimport { BaseError } from '../../errors/base.js'\nimport {\n  ContractFunctionExecutionError,\n  type ContractFunctionExecutionErrorType,\n  ContractFunctionRevertedError,\n  type ContractFunctionRevertedErrorType,\n  ContractFunctionZeroDataError,\n  type ContractFunctionZeroDataErrorType,\n  RawContractError,\n} from '../../errors/contract.js'\nimport { RpcRequestError } from '../../errors/request.js'\nimport { InternalRpcError } from '../../errors/rpc.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\nconst EXECUTION_REVERTED_ERROR_CODE = 3\n\nexport type GetContractErrorReturnType<cause = ErrorType> = Omit<\n  ContractFunctionExecutionErrorType,\n  'cause'\n> & {\n  cause:\n    | cause\n    | ContractFunctionZeroDataErrorType\n    | ContractFunctionRevertedErrorType\n}\n\nexport function getContractError<err extends ErrorType<string>>(\n  err: err,\n  {\n    abi,\n    address,\n    args,\n    docsPath,\n    functionName,\n    sender,\n  }: {\n    abi: Abi\n    args: any\n    address?: Address | undefined\n    docsPath?: string | undefined\n    functionName: string\n    sender?: Address | undefined\n  },\n): GetContractErrorReturnType {\n  const error = (\n    err instanceof RawContractError\n      ? err\n      : err instanceof BaseError\n        ? err.walk((err) => 'data' in (err as Error)) || err.walk()\n        : {}\n  ) as BaseError\n  const { code, data, details, message, shortMessage } =\n    error as RawContractError\n\n  const cause = (() => {\n    if (err instanceof AbiDecodingZeroDataError)\n      return new ContractFunctionZeroDataError({ functionName })\n    if (\n      [EXECUTION_REVERTED_ERROR_CODE, InternalRpcError.code].includes(code) &&\n      (data || details || message || shortMessage)\n    ) {\n      return new ContractFunctionRevertedError({\n        abi,\n        data: typeof data === 'object' ? data.data : data,\n        functionName,\n        message:\n          error instanceof RpcRequestError\n            ? details\n            : (shortMessage ?? message),\n      })\n    }\n    return err\n  })()\n\n  return new ContractFunctionExecutionError(cause as BaseError, {\n    abi,\n    args,\n    contractAddress: address,\n    docsPath,\n    functionName,\n    sender,\n  }) as GetContractErrorReturnType\n}\n","import type { Address } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport {\n  type ChecksumAddressErrorType,\n  checksumAddress,\n} from '../../utils/address/getAddress.js'\nimport {\n  type Keccak256ErrorType,\n  keccak256,\n} from '../../utils/hash/keccak256.js'\n\nexport type PublicKeyToAddressErrorType =\n  | ChecksumAddressErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey: Hex): Address {\n  const address = keccak256(`0x${publicKey.substring(4)}`).substring(26)\n  return checksumAddress(`0x${address}`) as Address\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\nimport { size } from '../data/size.js'\nimport {\n  type HexToNumberErrorType,\n  hexToBigInt,\n  hexToNumber,\n} from '../encoding/fromHex.js'\nimport { toHex } from '../encoding/toHex.js'\n\nexport type RecoverPublicKeyParameters = {\n  hash: Hex | ByteArray\n  signature: Hex | ByteArray | Signature\n}\n\nexport type RecoverPublicKeyReturnType = Hex\n\nexport type RecoverPublicKeyErrorType =\n  | HexToNumberErrorType\n  | IsHexErrorType\n  | ErrorType\n\nexport async function recoverPublicKey({\n  hash,\n  signature,\n}: RecoverPublicKeyParameters): Promise<RecoverPublicKeyReturnType> {\n  const hashHex = isHex(hash) ? hash : toHex(hash)\n\n  const { secp256k1 } = await import('@noble/curves/secp256k1')\n  const signature_ = (() => {\n    // typeof signature: `Signature`\n    if (typeof signature === 'object' && 'r' in signature && 's' in signature) {\n      const { r, s, v, yParity } = signature\n      const yParityOrV = Number(yParity ?? v)!\n      const recoveryBit = toRecoveryBit(yParityOrV)\n      return new secp256k1.Signature(\n        hexToBigInt(r),\n        hexToBigInt(s),\n      ).addRecoveryBit(recoveryBit)\n    }\n\n    // typeof signature: `Hex | ByteArray`\n    const signatureHex = isHex(signature) ? signature : toHex(signature)\n    if (size(signatureHex) !== 65) throw new Error('invalid signature length')\n    const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`)\n    const recoveryBit = toRecoveryBit(yParityOrV)\n    return secp256k1.Signature.fromCompact(\n      signatureHex.substring(2, 130),\n    ).addRecoveryBit(recoveryBit)\n  })()\n\n  const publicKey = signature_\n    .recoverPublicKey(hashHex.substring(2))\n    .toHex(false)\n  return `0x${publicKey}`\n}\n\nfunction toRecoveryBit(yParityOrV: number) {\n  if (yParityOrV === 0 || yParityOrV === 1) return yParityOrV\n  if (yParityOrV === 27) return 0\n  if (yParityOrV === 28) return 1\n  throw new Error('Invalid yParityOrV value')\n}\n","import type { Address } from 'abitype'\n\nimport { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { recoverPublicKey } from './recoverPublicKey.js'\n\nexport type RecoverAddressParameters = {\n  hash: Hex | ByteArray\n  signature: Hex | ByteArray | Signature\n}\n\nexport type RecoverAddressReturnType = Address\n\nexport type RecoverAddressErrorType = ErrorType\n\nexport async function recoverAddress({\n  hash,\n  signature,\n}: RecoverAddressParameters): Promise<RecoverAddressReturnType> {\n  return publicKeyToAddress(await recoverPublicKey({ hash, signature }))\n}\n","import { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport {\n  type CreateCursorErrorType,\n  type Cursor,\n  createCursor,\n} from '../cursor.js'\n\nimport { type HexToBytesErrorType, hexToBytes } from './toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from './toHex.js'\n\nexport type RecursiveArray<T> = T | readonly RecursiveArray<T>[]\n\ntype To = 'hex' | 'bytes'\n\ntype Encodable = {\n  length: number\n  encode(cursor: Cursor): void\n}\n\nexport type ToRlpReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type ToRlpErrorType =\n  | CreateCursorErrorType\n  | BytesToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\nexport function toRlp<to extends To = 'hex'>(\n  bytes: RecursiveArray<ByteArray> | RecursiveArray<Hex>,\n  to: to | To | undefined = 'hex',\n): ToRlpReturnType<to> {\n  const encodable = getEncodable(bytes)\n  const cursor = createCursor(new Uint8Array(encodable.length))\n  encodable.encode(cursor)\n\n  if (to === 'hex') return bytesToHex(cursor.bytes) as ToRlpReturnType<to>\n  return cursor.bytes as ToRlpReturnType<to>\n}\n\nexport type BytesToRlpErrorType = ToRlpErrorType | ErrorType\n\nexport function bytesToRlp<to extends To = 'bytes'>(\n  bytes: RecursiveArray<ByteArray>,\n  to: to | To | undefined = 'bytes',\n): ToRlpReturnType<to> {\n  return toRlp(bytes, to)\n}\n\nexport type HexToRlpErrorType = ToRlpErrorType | ErrorType\n\nexport function hexToRlp<to extends To = 'hex'>(\n  hex: RecursiveArray<Hex>,\n  to: to | To | undefined = 'hex',\n): ToRlpReturnType<to> {\n  return toRlp(hex, to)\n}\n\nfunction getEncodable(\n  bytes: RecursiveArray<ByteArray> | RecursiveArray<Hex>,\n): Encodable {\n  if (Array.isArray(bytes))\n    return getEncodableList(bytes.map((x) => getEncodable(x)))\n  return getEncodableBytes(bytes as any)\n}\n\nfunction getEncodableList(list: Encodable[]): Encodable {\n  const bodyLength = list.reduce((acc, x) => acc + x.length, 0)\n\n  const sizeOfBodyLength = getSizeOfLength(bodyLength)\n  const length = (() => {\n    if (bodyLength <= 55) return 1 + bodyLength\n    return 1 + sizeOfBodyLength + bodyLength\n  })()\n\n  return {\n    length,\n    encode(cursor: Cursor) {\n      if (bodyLength <= 55) {\n        cursor.pushByte(0xc0 + bodyLength)\n      } else {\n        cursor.pushByte(0xc0 + 55 + sizeOfBodyLength)\n        if (sizeOfBodyLength === 1) cursor.pushUint8(bodyLength)\n        else if (sizeOfBodyLength === 2) cursor.pushUint16(bodyLength)\n        else if (sizeOfBodyLength === 3) cursor.pushUint24(bodyLength)\n        else cursor.pushUint32(bodyLength)\n      }\n      for (const { encode } of list) {\n        encode(cursor)\n      }\n    },\n  }\n}\n\nfunction getEncodableBytes(bytesOrHex: ByteArray | Hex): Encodable {\n  const bytes =\n    typeof bytesOrHex === 'string' ? hexToBytes(bytesOrHex) : bytesOrHex\n\n  const sizeOfBytesLength = getSizeOfLength(bytes.length)\n  const length = (() => {\n    if (bytes.length === 1 && bytes[0] < 0x80) return 1\n    if (bytes.length <= 55) return 1 + bytes.length\n    return 1 + sizeOfBytesLength + bytes.length\n  })()\n\n  return {\n    length,\n    encode(cursor: Cursor) {\n      if (bytes.length === 1 && bytes[0] < 0x80) {\n        cursor.pushBytes(bytes)\n      } else if (bytes.length <= 55) {\n        cursor.pushByte(0x80 + bytes.length)\n        cursor.pushBytes(bytes)\n      } else {\n        cursor.pushByte(0x80 + 55 + sizeOfBytesLength)\n        if (sizeOfBytesLength === 1) cursor.pushUint8(bytes.length)\n        else if (sizeOfBytesLength === 2) cursor.pushUint16(bytes.length)\n        else if (sizeOfBytesLength === 3) cursor.pushUint24(bytes.length)\n        else cursor.pushUint32(bytes.length)\n        cursor.pushBytes(bytes)\n      }\n    },\n  }\n}\n\nfunction getSizeOfLength(length: number) {\n  if (length < 2 ** 8) return 1\n  if (length < 2 ** 16) return 2\n  if (length < 2 ** 24) return 3\n  if (length < 2 ** 32) return 4\n  throw new BaseError('Length is too large.')\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { AuthorizationRequest } from '../../types/authorization.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type NumberToHexErrorType, numberToHex } from '../encoding/toHex.js'\nimport { type ToRlpErrorType, toRlp } from '../encoding/toRlp.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type HashAuthorizationParameters<to extends To> =\n  AuthorizationRequest & {\n    /** Output format. @default \"hex\" */\n    to?: to | To | undefined\n  }\n\nexport type HashAuthorizationReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type HashAuthorizationErrorType =\n  | Keccak256ErrorType\n  | ConcatHexErrorType\n  | ToRlpErrorType\n  | NumberToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport function hashAuthorization<to extends To = 'hex'>(\n  parameters: HashAuthorizationParameters<to>,\n): HashAuthorizationReturnType<to> {\n  const { chainId, nonce, to } = parameters\n  const address = parameters.contractAddress ?? parameters.address\n  const hash = keccak256(\n    concatHex([\n      '0x05',\n      toRlp([\n        chainId ? numberToHex(chainId) : '0x',\n        address,\n        nonce ? numberToHex(nonce) : '0x',\n      ]),\n    ]),\n  )\n  if (to === 'bytes') return hexToBytes(hash) as HashAuthorizationReturnType<to>\n  return hash as HashAuthorizationReturnType<to>\n}\n","import type { Address } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  Authorization,\n  AuthorizationRequest,\n  SignedAuthorization,\n} from '../../types/authorization.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type RecoverAddressErrorType,\n  recoverAddress,\n} from '../signature/recoverAddress.js'\nimport {\n  type HashAuthorizationErrorType,\n  hashAuthorization,\n} from './hashAuthorization.js'\n\nexport type RecoverAuthorizationAddressParameters<\n  authorization extends OneOf<\n    Authorization | AuthorizationRequest | SignedAuthorization\n  > = OneOf<Authorization | AuthorizationRequest | SignedAuthorization>,\n  //\n  _signature = Hex | ByteArray | OneOf<Signature | SignedAuthorization>,\n> = {\n  /**\n   * The Authorization object.\n   *\n   * - If an unsigned `authorization` is provided, the `signature` property is required.\n   * - If a signed `authorization` is provided, the `signature` property does not need to be provided.\n   */\n  authorization:\n    | authorization\n    | OneOf<Authorization | AuthorizationRequest | SignedAuthorization>\n} & (authorization extends SignedAuthorization\n  ? {\n      /** Signature of the Authorization. Not required if the `authorization` is signed. */\n      signature?: _signature | undefined\n    }\n  : {\n      /** Signature of the Authorization. Not required if the `authorization` is signed. */\n      signature: _signature\n    })\n\nexport type RecoverAuthorizationAddressReturnType = Address\n\nexport type RecoverAuthorizationAddressErrorType =\n  | HashAuthorizationErrorType\n  | RecoverAddressErrorType\n  | ErrorType\n\nexport async function recoverAuthorizationAddress<\n  const authorization extends OneOf<\n    Authorization | AuthorizationRequest | SignedAuthorization\n  >,\n>(\n  parameters: RecoverAuthorizationAddressParameters<authorization>,\n): Promise<RecoverAuthorizationAddressReturnType> {\n  const { authorization, signature } = parameters\n\n  return recoverAddress({\n    hash: hashAuthorization(authorization as AuthorizationRequest),\n    signature: (signature ?? authorization) as Signature,\n  })\n}\n","import type { Account } from '../accounts/types.js'\nimport type { EstimateGasParameters } from '../actions/public/estimateGas.js'\nimport type { Chain } from '../types/chain.js'\nimport { formatEther } from '../utils/unit/formatEther.js'\nimport { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\nimport { prettyPrint } from './transaction.js'\n\nexport type EstimateGasExecutionErrorType = EstimateGasExecutionError & {\n  name: 'EstimateGasExecutionError'\n}\nexport class EstimateGasExecutionError extends BaseError {\n  override cause: BaseError\n\n  constructor(\n    cause: BaseError,\n    {\n      account,\n      docsPath,\n      chain,\n      data,\n      gas,\n      gasPrice,\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n      nonce,\n      to,\n      value,\n    }: Omit<EstimateGasParameters<any>, 'account'> & {\n      account?: Account | undefined\n      chain?: Chain | undefined\n      docsPath?: string | undefined\n    },\n  ) {\n    const prettyArgs = prettyPrint({\n      from: account?.address,\n      to,\n      value:\n        typeof value !== 'undefined' &&\n        `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n      data,\n      gas,\n      gasPrice:\n        typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n      maxFeePerGas:\n        typeof maxFeePerGas !== 'undefined' &&\n        `${formatGwei(maxFeePerGas)} gwei`,\n      maxPriorityFeePerGas:\n        typeof maxPriorityFeePerGas !== 'undefined' &&\n        `${formatGwei(maxPriorityFeePerGas)} gwei`,\n      nonce,\n    })\n\n    super(cause.shortMessage, {\n      cause,\n      docsPath,\n      metaMessages: [\n        ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n        'Estimate Gas Arguments:',\n        prettyArgs,\n      ].filter(Boolean) as string[],\n      name: 'EstimateGasExecutionError',\n    })\n    this.cause = cause\n  }\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { EstimateGasParameters } from '../../actions/public/estimateGas.js'\nimport type { BaseError } from '../../errors/base.js'\nimport {\n  EstimateGasExecutionError,\n  type EstimateGasExecutionErrorType,\n} from '../../errors/estimateGas.js'\nimport { UnknownNodeError } from '../../errors/node.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport {\n  type GetNodeErrorParameters,\n  type GetNodeErrorReturnType,\n  getNodeError,\n} from './getNodeError.js'\n\nexport type GetEstimateGasErrorReturnType<cause = ErrorType> = Omit<\n  EstimateGasExecutionErrorType,\n  'cause'\n> & { cause: cause | GetNodeErrorReturnType }\n\nexport function getEstimateGasError<err extends ErrorType<string>>(\n  err: err,\n  {\n    docsPath,\n    ...args\n  }: Omit<EstimateGasParameters, 'account'> & {\n    account?: Account | undefined\n    chain?: Chain | undefined\n    docsPath?: string | undefined\n  },\n): GetEstimateGasErrorReturnType<err> {\n  const cause = (() => {\n    const cause = getNodeError(\n      err as {} as BaseError,\n      args as GetNodeErrorParameters,\n    )\n    if (cause instanceof UnknownNodeError) return err as {} as BaseError\n    return cause\n  })()\n  return new EstimateGasExecutionError(cause, {\n    docsPath,\n    ...args,\n  }) as GetEstimateGasErrorReturnType<err>\n}\n","import { formatGwei } from '../utils/unit/formatGwei.js'\nimport { BaseError } from './base.js'\n\nexport type BaseFeeScalarErrorType = BaseFeeScalarError & {\n  name: 'BaseFeeScalarError'\n}\nexport class BaseFeeScalarError extends BaseError {\n  constructor() {\n    super('`baseFeeMultiplier` must be greater than 1.', {\n      name: 'BaseFeeScalarError',\n    })\n  }\n}\n\nexport type Eip1559FeesNotSupportedErrorType = Eip1559FeesNotSupportedError & {\n  name: 'Eip1559FeesNotSupportedError'\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n  constructor() {\n    super('Chain does not support EIP-1559 fees.', {\n      name: 'Eip1559FeesNotSupportedError',\n    })\n  }\n}\n\nexport type MaxFeePerGasTooLowErrorType = MaxFeePerGasTooLowError & {\n  name: 'MaxFeePerGasTooLowError'\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n  constructor({ maxPriorityFeePerGas }: { maxPriorityFeePerGas: bigint }) {\n    super(\n      `\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(\n        maxPriorityFeePerGas,\n      )} gwei).`,\n      { name: 'MaxFeePerGasTooLowError' },\n    )\n  }\n}\n","import type { Hash } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport type BlockNotFoundErrorType = BlockNotFoundError & {\n  name: 'BlockNotFoundError'\n}\nexport class BlockNotFoundError extends BaseError {\n  constructor({\n    blockHash,\n    blockNumber,\n  }: {\n    blockHash?: Hash | undefined\n    blockNumber?: bigint | undefined\n  }) {\n    let identifier = 'Block'\n    if (blockHash) identifier = `Block at hash \"${blockHash}\"`\n    if (blockNumber) identifier = `Block at number \"${blockNumber}\"`\n    super(`${identifier} could not be found.`, { name: 'BlockNotFoundError' })\n  }\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { SignedAuthorizationList } from '../../types/authorization.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type {\n  Chain,\n  ExtractChainFormatterExclude,\n  ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RpcAuthorizationList, RpcTransaction } from '../../types/rpc.js'\nimport type { Transaction, TransactionType } from '../../types/transaction.js'\nimport type { ExactPartial, UnionLooseOmit } from '../../types/utils.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\n\ntype TransactionPendingDependencies =\n  | 'blockHash'\n  | 'blockNumber'\n  | 'transactionIndex'\n\nexport type FormattedTransaction<\n  chain extends Chain | undefined = undefined,\n  blockTag extends BlockTag = BlockTag,\n  _FormatterReturnType = ExtractChainFormatterReturnType<\n    chain,\n    'transaction',\n    Transaction\n  >,\n  _ExcludedPendingDependencies extends string = TransactionPendingDependencies &\n    ExtractChainFormatterExclude<chain, 'transaction'>,\n> = UnionLooseOmit<_FormatterReturnType, TransactionPendingDependencies> & {\n  [_K in _ExcludedPendingDependencies]: never\n} & Pick<\n    Transaction<bigint, number, blockTag extends 'pending' ? true : false>,\n    TransactionPendingDependencies\n  >\n\nexport const transactionType = {\n  '0x0': 'legacy',\n  '0x1': 'eip2930',\n  '0x2': 'eip1559',\n  '0x3': 'eip4844',\n  '0x4': 'eip7702',\n} as const satisfies Record<Hex, TransactionType>\n\nexport type FormatTransactionErrorType = ErrorType\n\nexport function formatTransaction(transaction: ExactPartial<RpcTransaction>) {\n  const transaction_ = {\n    ...transaction,\n    blockHash: transaction.blockHash ? transaction.blockHash : null,\n    blockNumber: transaction.blockNumber\n      ? BigInt(transaction.blockNumber)\n      : null,\n    chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n    gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n    gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n    maxFeePerBlobGas: transaction.maxFeePerBlobGas\n      ? BigInt(transaction.maxFeePerBlobGas)\n      : undefined,\n    maxFeePerGas: transaction.maxFeePerGas\n      ? BigInt(transaction.maxFeePerGas)\n      : undefined,\n    maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n      ? BigInt(transaction.maxPriorityFeePerGas)\n      : undefined,\n    nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n    to: transaction.to ? transaction.to : null,\n    transactionIndex: transaction.transactionIndex\n      ? Number(transaction.transactionIndex)\n      : null,\n    type: transaction.type\n      ? (transactionType as any)[transaction.type]\n      : undefined,\n    typeHex: transaction.type ? transaction.type : undefined,\n    value: transaction.value ? BigInt(transaction.value) : undefined,\n    v: transaction.v ? BigInt(transaction.v) : undefined,\n  } as Transaction\n\n  if (transaction.authorizationList)\n    transaction_.authorizationList = formatAuthorizationList(\n      transaction.authorizationList,\n    )\n\n  transaction_.yParity = (() => {\n    // If `yParity` is provided, we will use it.\n    if (transaction.yParity) return Number(transaction.yParity)\n\n    // If no `yParity` provided, try derive from `v`.\n    if (typeof transaction_.v === 'bigint') {\n      if (transaction_.v === 0n || transaction_.v === 27n) return 0\n      if (transaction_.v === 1n || transaction_.v === 28n) return 1\n      if (transaction_.v >= 35n) return transaction_.v % 2n === 0n ? 1 : 0\n    }\n\n    return undefined\n  })()\n\n  if (transaction_.type === 'legacy') {\n    delete transaction_.accessList\n    delete transaction_.maxFeePerBlobGas\n    delete transaction_.maxFeePerGas\n    delete transaction_.maxPriorityFeePerGas\n    delete transaction_.yParity\n  }\n  if (transaction_.type === 'eip2930') {\n    delete transaction_.maxFeePerBlobGas\n    delete transaction_.maxFeePerGas\n    delete transaction_.maxPriorityFeePerGas\n  }\n  if (transaction_.type === 'eip1559') {\n    delete transaction_.maxFeePerBlobGas\n  }\n  return transaction_\n}\n\nexport type DefineTransactionErrorType = DefineFormatterErrorType | ErrorType\n\nexport const defineTransaction = /*#__PURE__*/ defineFormatter(\n  'transaction',\n  formatTransaction,\n)\n\n//////////////////////////////////////////////////////////////////////////////\n\nfunction formatAuthorizationList(\n  authorizationList: RpcAuthorizationList,\n): SignedAuthorizationList {\n  return authorizationList.map((authorization) => ({\n    address: (authorization as any).address,\n    chainId: Number(authorization.chainId),\n    nonce: Number(authorization.nonce),\n    r: authorization.r,\n    s: authorization.s,\n    yParity: Number(authorization.yParity),\n  })) as SignedAuthorizationList\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Block, BlockTag } from '../../types/block.js'\nimport type {\n  Chain,\n  ExtractChainFormatterExclude,\n  ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcBlock } from '../../types/rpc.js'\nimport type { ExactPartial, Prettify } from '../../types/utils.js'\n\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\nimport { type FormattedTransaction, formatTransaction } from './transaction.js'\n\ntype BlockPendingDependencies = 'hash' | 'logsBloom' | 'nonce' | 'number'\n\nexport type FormattedBlock<\n  chain extends Chain | undefined = undefined,\n  includeTransactions extends boolean = boolean,\n  blockTag extends BlockTag = BlockTag,\n  _FormatterReturnType = ExtractChainFormatterReturnType<\n    chain,\n    'block',\n    Block<bigint, includeTransactions>\n  >,\n  _ExcludedPendingDependencies extends string = BlockPendingDependencies &\n    ExtractChainFormatterExclude<chain, 'block'>,\n  _Formatted = Omit<_FormatterReturnType, BlockPendingDependencies> & {\n    [_key in _ExcludedPendingDependencies]: never\n  } & Pick<\n      Block<bigint, includeTransactions, blockTag>,\n      BlockPendingDependencies\n    >,\n  _Transactions = includeTransactions extends true\n    ? Prettify<FormattedTransaction<chain, blockTag>>[]\n    : Hash[],\n> = Omit<_Formatted, 'transactions'> & {\n  transactions: _Transactions\n}\n\nexport type FormatBlockErrorType = ErrorType\n\nexport function formatBlock(block: ExactPartial<RpcBlock>) {\n  const transactions = (block.transactions ?? []).map((transaction) => {\n    if (typeof transaction === 'string') return transaction\n    return formatTransaction(transaction)\n  })\n  return {\n    ...block,\n    baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n    blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n    difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n    excessBlobGas: block.excessBlobGas\n      ? BigInt(block.excessBlobGas)\n      : undefined,\n    gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n    gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n    hash: block.hash ? block.hash : null,\n    logsBloom: block.logsBloom ? block.logsBloom : null,\n    nonce: block.nonce ? block.nonce : null,\n    number: block.number ? BigInt(block.number) : null,\n    size: block.size ? BigInt(block.size) : undefined,\n    timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n    transactions,\n    totalDifficulty: block.totalDifficulty\n      ? BigInt(block.totalDifficulty)\n      : null,\n  } as Block\n}\n\nexport type DefineBlockErrorType = DefineFormatterErrorType | ErrorType\n\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock)\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  BlockNotFoundError,\n  type BlockNotFoundErrorType,\n} from '../../errors/block.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcBlock } from '../../types/rpc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type FormattedBlock,\n  formatBlock,\n} from '../../utils/formatters/block.js'\n\nexport type GetBlockParameters<\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n> = {\n  /** Whether or not to include transaction data in the response. */\n  includeTransactions?: includeTransactions | undefined\n} & (\n  | {\n      /** Hash of the block. */\n      blockHash?: Hash | undefined\n      blockNumber?: undefined\n      blockTag?: undefined\n    }\n  | {\n      blockHash?: undefined\n      /** The block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockHash?: undefined\n      blockNumber?: undefined\n      /**\n       * The block tag.\n       * @default 'latest'\n       */\n      blockTag?: blockTag | BlockTag | undefined\n    }\n)\n\nexport type GetBlockReturnType<\n  chain extends Chain | undefined = undefined,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n> = Prettify<FormattedBlock<chain, includeTransactions, blockTag>>\n\nexport type GetBlockErrorType =\n  | BlockNotFoundErrorType\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods:\n *   - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n *   - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n>(\n  client: Client<Transport, chain, account>,\n  {\n    blockHash,\n    blockNumber,\n    blockTag = client.experimental_blockTag ?? 'latest',\n    includeTransactions: includeTransactions_,\n  }: GetBlockParameters<includeTransactions, blockTag> = {},\n): Promise<GetBlockReturnType<chain, includeTransactions, blockTag>> {\n  const includeTransactions = includeTransactions_ ?? false\n\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n  let block: RpcBlock | null = null\n  if (blockHash) {\n    block = await client.request(\n      {\n        method: 'eth_getBlockByHash',\n        params: [blockHash, includeTransactions],\n      },\n      { dedupe: true },\n    )\n  } else {\n    block = await client.request(\n      {\n        method: 'eth_getBlockByNumber',\n        params: [blockNumberHex || blockTag, includeTransactions],\n      },\n      { dedupe: Boolean(blockNumberHex) },\n    )\n  }\n\n  if (!block) throw new BlockNotFoundError({ blockHash, blockNumber })\n\n  const format = client.chain?.formatters?.block?.format || formatBlock\n  return format(block)\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type GetGasPriceReturnType = bigint\n\nexport type GetGasPriceErrorType = RequestErrorType | ErrorType\n\n/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(client: Client<Transport, chain, account>): Promise<GetGasPriceReturnType> {\n  const gasPrice = await client.request({\n    method: 'eth_gasPrice',\n  })\n  return BigInt(gasPrice)\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  Eip1559FeesNotSupportedError,\n  type Eip1559FeesNotSupportedErrorType,\n} from '../../errors/fee.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { Block } from '../../types/block.js'\nimport type {\n  Chain,\n  ChainFeesFnParameters,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type HexToBigIntErrorType,\n  hexToBigInt,\n} from '../../utils/encoding/fromHex.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { PrepareTransactionRequestParameters } from '../wallet/prepareTransactionRequest.js'\nimport { type GetBlockErrorType, getBlock } from './getBlock.js'\nimport { type GetGasPriceErrorType, getGasPrice } from './getGasPrice.js'\n\nexport type EstimateMaxPriorityFeePerGasParameters<\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n> = GetChainParameter<chain, chainOverride>\n\nexport type EstimateMaxPriorityFeePerGasReturnType = bigint\n\nexport type EstimateMaxPriorityFeePerGasErrorType =\n  | GetBlockErrorType\n  | HexToBigIntErrorType\n  | RequestErrorType\n  | GetBlockErrorType\n  | GetGasPriceErrorType\n  | Eip1559FeesNotSupportedErrorType\n  | ErrorType\n\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas<\n  chain extends Chain | undefined,\n  chainOverride extends Chain | undefined,\n>(\n  client: Client<Transport, chain>,\n  args?:\n    | EstimateMaxPriorityFeePerGasParameters<chain, chainOverride>\n    | undefined,\n): Promise<EstimateMaxPriorityFeePerGasReturnType> {\n  return internal_estimateMaxPriorityFeePerGas(client, args as any)\n}\n\nexport async function internal_estimateMaxPriorityFeePerGas<\n  chain extends Chain | undefined,\n  chainOverride extends Chain | undefined,\n>(\n  client: Client<Transport, chain>,\n  args: EstimateMaxPriorityFeePerGasParameters<chain, chainOverride> & {\n    block?: Block | undefined\n    request?:\n      | PrepareTransactionRequestParameters<\n          chain,\n          Account | undefined,\n          chainOverride\n        >\n      | undefined\n  },\n): Promise<EstimateMaxPriorityFeePerGasReturnType> {\n  const { block: block_, chain = client.chain, request } = args || {}\n\n  try {\n    const maxPriorityFeePerGas =\n      chain?.fees?.maxPriorityFeePerGas ?? chain?.fees?.defaultPriorityFee\n\n    if (typeof maxPriorityFeePerGas === 'function') {\n      const block =\n        block_ || (await getAction(client, getBlock, 'getBlock')({}))\n      const maxPriorityFeePerGas_ = await maxPriorityFeePerGas({\n        block,\n        client,\n        request,\n      } as ChainFeesFnParameters)\n      if (maxPriorityFeePerGas_ === null) throw new Error()\n      return maxPriorityFeePerGas_\n    }\n\n    if (typeof maxPriorityFeePerGas !== 'undefined') return maxPriorityFeePerGas\n\n    const maxPriorityFeePerGasHex = await client.request({\n      method: 'eth_maxPriorityFeePerGas',\n    })\n    return hexToBigInt(maxPriorityFeePerGasHex)\n  } catch {\n    // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n    // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n    // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n    const [block, gasPrice] = await Promise.all([\n      block_\n        ? Promise.resolve(block_)\n        : getAction(client, getBlock, 'getBlock')({}),\n      getAction(client, getGasPrice, 'getGasPrice')({}),\n    ])\n\n    if (typeof block.baseFeePerGas !== 'bigint')\n      throw new Eip1559FeesNotSupportedError()\n\n    const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas\n\n    if (maxPriorityFeePerGas < 0n) return 0n\n    return maxPriorityFeePerGas\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  BaseFeeScalarError,\n  type BaseFeeScalarErrorType,\n  Eip1559FeesNotSupportedError,\n  type Eip1559FeesNotSupportedErrorType,\n} from '../../errors/fee.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { Block } from '../../types/block.js'\nimport type {\n  Chain,\n  ChainEstimateFeesPerGasFnParameters,\n  ChainFeesFnParameters,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type {\n  FeeValuesEIP1559,\n  FeeValuesLegacy,\n  FeeValuesType,\n} from '../../types/fee.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { PrepareTransactionRequestParameters } from '../wallet/prepareTransactionRequest.js'\nimport {\n  type EstimateMaxPriorityFeePerGasErrorType,\n  internal_estimateMaxPriorityFeePerGas,\n} from './estimateMaxPriorityFeePerGas.js'\nimport { getBlock } from './getBlock.js'\nimport { type GetGasPriceErrorType, getGasPrice } from './getGasPrice.js'\n\nexport type EstimateFeesPerGasParameters<\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  type extends FeeValuesType = FeeValuesType,\n> = {\n  /**\n   * The type of fee values to return.\n   *\n   * - `legacy`: Returns the legacy gas price.\n   * - `eip1559`: Returns the max fee per gas and max priority fee per gas.\n   *\n   * @default 'eip1559'\n   */\n  type?: type | FeeValuesType | undefined\n} & GetChainParameter<chain, chainOverride>\n\nexport type EstimateFeesPerGasReturnType<\n  type extends FeeValuesType = FeeValuesType,\n> =\n  | (type extends 'legacy' ? FeeValuesLegacy : never)\n  | (type extends 'eip1559' ? FeeValuesEIP1559 : never)\n\nexport type EstimateFeesPerGasErrorType =\n  | BaseFeeScalarErrorType\n  | EstimateMaxPriorityFeePerGasErrorType\n  | GetGasPriceErrorType\n  | Eip1559FeesNotSupportedErrorType\n  | ErrorType\n\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas<\n  chain extends Chain | undefined,\n  chainOverride extends Chain | undefined,\n  type extends FeeValuesType = 'eip1559',\n>(\n  client: Client<Transport, chain>,\n  args?: EstimateFeesPerGasParameters<chain, chainOverride, type> | undefined,\n): Promise<EstimateFeesPerGasReturnType<type>> {\n  return internal_estimateFeesPerGas(client, args as any)\n}\n\nexport async function internal_estimateFeesPerGas<\n  chain extends Chain | undefined,\n  chainOverride extends Chain | undefined,\n  type extends FeeValuesType = 'eip1559',\n>(\n  client: Client<Transport, chain>,\n  args: EstimateFeesPerGasParameters<chain, chainOverride, type> & {\n    block?: Block | undefined\n    request?: PrepareTransactionRequestParameters<Chain, Account> | undefined\n  },\n): Promise<EstimateFeesPerGasReturnType<type>> {\n  const {\n    block: block_,\n    chain = client.chain,\n    request,\n    type = 'eip1559',\n  } = args || {}\n\n  const baseFeeMultiplier = await (async () => {\n    if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n      return chain.fees.baseFeeMultiplier({\n        block: block_ as Block,\n        client,\n        request,\n      } as ChainFeesFnParameters)\n    return chain?.fees?.baseFeeMultiplier ?? 1.2\n  })()\n  if (baseFeeMultiplier < 1) throw new BaseFeeScalarError()\n\n  const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0\n  const denominator = 10 ** decimals\n  const multiply = (base: bigint) =>\n    (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n    BigInt(denominator)\n\n  const block = block_\n    ? block_\n    : await getAction(client, getBlock, 'getBlock')({})\n\n  if (typeof chain?.fees?.estimateFeesPerGas === 'function') {\n    const fees = (await chain.fees.estimateFeesPerGas({\n      block: block_ as Block,\n      client,\n      multiply,\n      request,\n      type,\n    } as ChainEstimateFeesPerGasFnParameters)) as unknown as EstimateFeesPerGasReturnType<type>\n\n    if (fees !== null) return fees\n  }\n\n  if (type === 'eip1559') {\n    if (typeof block.baseFeePerGas !== 'bigint')\n      throw new Eip1559FeesNotSupportedError()\n\n    const maxPriorityFeePerGas =\n      typeof request?.maxPriorityFeePerGas === 'bigint'\n        ? request.maxPriorityFeePerGas\n        : await internal_estimateMaxPriorityFeePerGas(\n            client as Client<Transport, Chain>,\n            {\n              block: block as Block,\n              chain,\n              request,\n            },\n          )\n\n    const baseFeePerGas = multiply(block.baseFeePerGas)\n    const maxFeePerGas =\n      request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas\n\n    return {\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n    } as EstimateFeesPerGasReturnType<type>\n  }\n\n  const gasPrice =\n    request?.gasPrice ??\n    multiply(await getAction(client, getGasPrice, 'getGasPrice')({}))\n  return {\n    gasPrice,\n  } as EstimateFeesPerGasReturnType<type>\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type HexToNumberErrorType,\n  hexToNumber,\n} from '../../utils/encoding/fromHex.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetTransactionCountParameters = {\n  /** The account address. */\n  address: Address\n} & (\n  | {\n      /** The block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockNumber?: undefined\n      /** The block tag. Defaults to 'latest'. */\n      blockTag?: BlockTag | undefined\n    }\n)\nexport type GetTransactionCountReturnType = number\n\nexport type GetTransactionCountErrorType =\n  | RequestErrorType\n  | NumberToHexErrorType\n  | HexToNumberErrorType\n  | ErrorType\n\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  { address, blockTag = 'latest', blockNumber }: GetTransactionCountParameters,\n): Promise<GetTransactionCountReturnType> {\n  const count = await client.request(\n    {\n      method: 'eth_getTransactionCount',\n      params: [\n        address,\n        typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : blockTag,\n      ],\n    },\n    {\n      dedupe: Boolean(blockNumber),\n    },\n  )\n  return hexToNumber(count)\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type BlobsToCommitmentsParameters<\n  blobs extends readonly ByteArray[] | readonly Hex[] =\n    | readonly ByteArray[]\n    | readonly Hex[],\n  to extends To | undefined = undefined,\n> = {\n  /** Blobs to transform into commitments. */\n  blobs: blobs | readonly ByteArray[] | readonly Hex[]\n  /** KZG implementation. */\n  kzg: Pick<Kzg, 'blobToKzgCommitment'>\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type BlobsToCommitmentsReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type BlobsToCommitmentsErrorType =\n  | HexToBytesErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments<\n  const blobs extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: BlobsToCommitmentsParameters<blobs, to>,\n): BlobsToCommitmentsReturnType<to> {\n  const { kzg } = parameters\n\n  const to =\n    parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes')\n  const blobs = (\n    typeof parameters.blobs[0] === 'string'\n      ? parameters.blobs.map((x) => hexToBytes(x as any))\n      : parameters.blobs\n  ) as ByteArray[]\n\n  const commitments: ByteArray[] = []\n  for (const blob of blobs)\n    commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)))\n\n  return (to === 'bytes'\n    ? commitments\n    : commitments.map((x) =>\n        bytesToHex(x),\n      )) as {} as BlobsToCommitmentsReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type blobsToProofsParameters<\n  blobs extends readonly ByteArray[] | readonly Hex[],\n  commitments extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n  ///\n  _blobsType =\n    | (blobs extends readonly Hex[] ? readonly Hex[] : never)\n    | (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),\n> = {\n  /** Blobs to transform into proofs. */\n  blobs: blobs\n  /** Commitments for the blobs. */\n  commitments: commitments &\n    (commitments extends _blobsType\n      ? {}\n      : `commitments must be the same type as blobs`)\n  /** KZG implementation. */\n  kzg: Pick<Kzg, 'computeBlobKzgProof'>\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type blobsToProofsReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray[] : never)\n  | (to extends 'hex' ? Hex[] : never)\n\nexport type blobsToProofsErrorType =\n  | BytesToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs<\n  const blobs extends readonly ByteArray[] | readonly Hex[],\n  const commitments extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: blobsToProofsParameters<blobs, commitments, to>,\n): blobsToProofsReturnType<to> {\n  const { kzg } = parameters\n\n  const to =\n    parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes')\n\n  const blobs = (\n    typeof parameters.blobs[0] === 'string'\n      ? parameters.blobs.map((x) => hexToBytes(x as any))\n      : parameters.blobs\n  ) as ByteArray[]\n  const commitments = (\n    typeof parameters.commitments[0] === 'string'\n      ? parameters.commitments.map((x) => hexToBytes(x as any))\n      : parameters.commitments\n  ) as ByteArray[]\n\n  const proofs: ByteArray[] = []\n  for (let i = 0; i < blobs.length; i++) {\n    const blob = blobs[i]\n    const commitment = commitments[i]\n    proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)))\n  }\n\n  return (to === 'bytes'\n    ? proofs\n    : proofs.map((x) => bytesToHex(x))) as {} as blobsToProofsReturnType<to>\n}\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","import { sha256 as noble_sha256 } from '@noble/hashes/sha256'\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 Sha256Hash<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type Sha256ErrorType =\n  | IsHexErrorType\n  | ToBytesErrorType\n  | ToHexErrorType\n  | ErrorType\n\nexport function sha256<to extends To = 'hex'>(\n  value: Hex | ByteArray,\n  to_?: to | undefined,\n): Sha256Hash<to> {\n  const to = to_ || 'hex'\n  const bytes = noble_sha256(\n    isHex(value, { strict: false }) ? toBytes(value) : value,\n  )\n  if (to === 'bytes') return bytes as Sha256Hash<to>\n  return toHex(bytes) as Sha256Hash<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\nimport { type Sha256ErrorType, sha256 } from '../hash/sha256.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type CommitmentToVersionedHashParameters<\n  commitment extends Uint8Array | Hex = Uint8Array | Hex,\n  to extends To | undefined = undefined,\n> = {\n  /** Commitment from blob. */\n  commitment: commitment | Uint8Array | Hex\n  /** Return type. */\n  to?: to | To | undefined\n  /** Version to tag onto the hash. */\n  version?: number | undefined\n}\n\nexport type CommitmentToVersionedHashReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type CommitmentToVersionedHashErrorType =\n  | Sha256ErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentToVersionedHash,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash<\n  const commitment extends Hex | ByteArray,\n  to extends To =\n    | (commitment extends Hex ? 'hex' : never)\n    | (commitment extends ByteArray ? 'bytes' : never),\n>(\n  parameters: CommitmentToVersionedHashParameters<commitment, to>,\n): CommitmentToVersionedHashReturnType<to> {\n  const { commitment, version = 1 } = parameters\n  const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes')\n\n  const versionedHash = sha256(commitment, 'bytes')\n  versionedHash.set([version], 0)\n  return (\n    to === 'bytes' ? versionedHash : bytesToHex(versionedHash)\n  ) as CommitmentToVersionedHashReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport {\n  type CommitmentToVersionedHashErrorType,\n  commitmentToVersionedHash,\n} from './commitmentToVersionedHash.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type CommitmentsToVersionedHashesParameters<\n  commitments extends readonly Uint8Array[] | readonly Hex[] =\n    | readonly Uint8Array[]\n    | readonly Hex[],\n  to extends To | undefined = undefined,\n> = {\n  /** Commitments from blobs. */\n  commitments: commitments | readonly Uint8Array[] | readonly Hex[]\n  /** Return type. */\n  to?: to | To | undefined\n  /** Version to tag onto the hashes. */\n  version?: number | undefined\n}\n\nexport type CommitmentsToVersionedHashesReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type CommitmentsToVersionedHashesErrorType =\n  | CommitmentToVersionedHashErrorType\n  | ErrorType\n\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentsToVersionedHashes,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes<\n  const commitments extends readonly Uint8Array[] | readonly Hex[],\n  to extends To =\n    | (commitments extends readonly Hex[] ? 'hex' : never)\n    | (commitments extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: CommitmentsToVersionedHashesParameters<commitments, to>,\n): CommitmentsToVersionedHashesReturnType<to> {\n  const { commitments, version } = parameters\n\n  const to =\n    parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes')\n\n  const hashes: Uint8Array[] | Hex[] = []\n  for (const commitment of commitments) {\n    hashes.push(\n      commitmentToVersionedHash({\n        commitment,\n        to,\n        version,\n      }) as any,\n    )\n  }\n  return hashes as any\n}\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6\n\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32\n\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096\n\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob\n\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction =\n  bytesPerBlob * blobsPerTransaction -\n  // terminator byte (0x80).\n  1 -\n  // zero byte (0x00) appended to each field element.\n  1 * fieldElementsPerBlob * blobsPerTransaction\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n\nexport const versionedHashVersionKzg = 1\n","import { versionedHashVersionKzg } from '../constants/kzg.js'\nimport type { Hash } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport type BlobSizeTooLargeErrorType = BlobSizeTooLargeError & {\n  name: 'BlobSizeTooLargeError'\n}\nexport class BlobSizeTooLargeError extends BaseError {\n  constructor({ maxSize, size }: { maxSize: number; size: number }) {\n    super('Blob size is too large.', {\n      metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n      name: 'BlobSizeTooLargeError',\n    })\n  }\n}\n\nexport type EmptyBlobErrorType = EmptyBlobError & {\n  name: 'EmptyBlobError'\n}\nexport class EmptyBlobError extends BaseError {\n  constructor() {\n    super('Blob data must not be empty.', { name: 'EmptyBlobError' })\n  }\n}\n\nexport type InvalidVersionedHashSizeErrorType =\n  InvalidVersionedHashSizeError & {\n    name: 'InvalidVersionedHashSizeError'\n  }\nexport class InvalidVersionedHashSizeError extends BaseError {\n  constructor({\n    hash,\n    size,\n  }: {\n    hash: Hash\n    size: number\n  }) {\n    super(`Versioned hash \"${hash}\" size is invalid.`, {\n      metaMessages: ['Expected: 32', `Received: ${size}`],\n      name: 'InvalidVersionedHashSizeError',\n    })\n  }\n}\n\nexport type InvalidVersionedHashVersionErrorType =\n  InvalidVersionedHashVersionError & {\n    name: 'InvalidVersionedHashVersionError'\n  }\nexport class InvalidVersionedHashVersionError extends BaseError {\n  constructor({\n    hash,\n    version,\n  }: {\n    hash: Hash\n    version: number\n  }) {\n    super(`Versioned hash \"${hash}\" version is invalid.`, {\n      metaMessages: [\n        `Expected: ${versionedHashVersionKzg}`,\n        `Received: ${version}`,\n      ],\n      name: 'InvalidVersionedHashVersionError',\n    })\n  }\n}\n","import {\n  bytesPerBlob,\n  bytesPerFieldElement,\n  fieldElementsPerBlob,\n  maxBytesPerTransaction,\n} from '../../constants/blob.js'\nimport {\n  BlobSizeTooLargeError,\n  type BlobSizeTooLargeErrorType,\n  EmptyBlobError,\n  type EmptyBlobErrorType,\n} from '../../errors/blob.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type CreateCursorErrorType, createCursor } from '../cursor.js'\nimport { type SizeErrorType, size } from '../data/size.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type ToBlobsParameters<\n  data extends Hex | ByteArray = Hex | ByteArray,\n  to extends To | undefined = undefined,\n> = {\n  /** Data to transform to a blob. */\n  data: data | Hex | ByteArray\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type ToBlobsReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type ToBlobsErrorType =\n  | BlobSizeTooLargeErrorType\n  | BytesToHexErrorType\n  | CreateCursorErrorType\n  | EmptyBlobErrorType\n  | HexToBytesErrorType\n  | SizeErrorType\n  | ErrorType\n\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs<\n  const data extends Hex | ByteArray,\n  to extends To =\n    | (data extends Hex ? 'hex' : never)\n    | (data extends ByteArray ? 'bytes' : never),\n>(parameters: ToBlobsParameters<data, to>): ToBlobsReturnType<to> {\n  const to =\n    parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes')\n  const data = (\n    typeof parameters.data === 'string'\n      ? hexToBytes(parameters.data)\n      : parameters.data\n  ) as ByteArray\n\n  const size_ = size(data)\n  if (!size_) throw new EmptyBlobError()\n  if (size_ > maxBytesPerTransaction)\n    throw new BlobSizeTooLargeError({\n      maxSize: maxBytesPerTransaction,\n      size: size_,\n    })\n\n  const blobs = []\n\n  let active = true\n  let position = 0\n  while (active) {\n    const blob = createCursor(new Uint8Array(bytesPerBlob))\n\n    let size = 0\n    while (size < fieldElementsPerBlob) {\n      const bytes = data.slice(position, position + (bytesPerFieldElement - 1))\n\n      // Push a zero byte so the field element doesn't overflow the BLS modulus.\n      blob.pushByte(0x00)\n\n      // Push the current segment of data bytes.\n      blob.pushBytes(bytes)\n\n      // If we detect that the current segment of data bytes is less than 31 bytes,\n      // we can stop processing and push a terminator byte to indicate the end of the blob.\n      if (bytes.length < 31) {\n        blob.pushByte(0x80)\n        active = false\n        break\n      }\n\n      size++\n      position += 31\n    }\n\n    blobs.push(blob)\n  }\n\n  return (\n    to === 'bytes'\n      ? blobs.map((x) => x.bytes)\n      : blobs.map((x) => bytesToHex(x.bytes))\n  ) as any\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { BlobSidecars } from '../../types/eip4844.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type BlobsToCommitmentsErrorType,\n  blobsToCommitments,\n} from './blobsToCommitments.js'\nimport { blobsToProofs, type blobsToProofsErrorType } from './blobsToProofs.js'\nimport { type ToBlobsErrorType, toBlobs } from './toBlobs.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type ToBlobSidecarsParameters<\n  data extends Hex | ByteArray | undefined = undefined,\n  blobs extends readonly Hex[] | readonly ByteArray[] | undefined = undefined,\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n  ///\n  _blobsType =\n    | (blobs extends readonly Hex[] ? readonly Hex[] : never)\n    | (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),\n> = {\n  /** Return type. */\n  to?: to | To | undefined\n} & OneOf<\n  | {\n      /** Data to transform into blobs. */\n      data: data | Hex | ByteArray\n      /** KZG implementation. */\n      kzg: Kzg\n    }\n  | {\n      /** Blobs. */\n      blobs: blobs | readonly Hex[] | readonly ByteArray[]\n      /** Commitment for each blob. */\n      commitments: _blobsType | readonly Hex[] | readonly ByteArray[]\n      /** Proof for each blob. */\n      proofs: _blobsType | readonly Hex[] | readonly ByteArray[]\n    }\n>\n\nexport type ToBlobSidecarsReturnType<to extends To> =\n  | (to extends 'bytes' ? BlobSidecars<ByteArray> : never)\n  | (to extends 'hex' ? BlobSidecars<Hex> : never)\n\nexport type ToBlobSidecarsErrorType =\n  | BlobsToCommitmentsErrorType\n  | ToBlobsErrorType\n  | blobsToProofsErrorType\n  | ErrorType\n\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs,\n *   blobsToProofs,\n *   toBlobSidecars,\n *   stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars<\n  const data extends Hex | ByteArray | undefined = undefined,\n  const blobs extends\n    | readonly Hex[]\n    | readonly ByteArray[]\n    | undefined = undefined,\n  to extends To =\n    | (data extends Hex ? 'hex' : never)\n    | (data extends ByteArray ? 'bytes' : never)\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: ToBlobSidecarsParameters<data, blobs, to>,\n): ToBlobSidecarsReturnType<to> {\n  const { data, kzg, to } = parameters\n  const blobs = parameters.blobs ?? toBlobs({ data: data!, to })\n  const commitments =\n    parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg!, to })\n  const proofs =\n    parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg!, to })\n\n  const sidecars: BlobSidecars = []\n  for (let i = 0; i < blobs.length; i++)\n    sidecars.push({\n      blob: blobs[i],\n      commitment: commitments[i],\n      proof: proofs[i],\n    })\n\n  return sidecars as ToBlobSidecarsReturnType<to>\n}\n","import {\n  InvalidSerializableTransactionError,\n  type InvalidSerializableTransactionErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  FeeValuesEIP1559,\n  FeeValuesEIP4844,\n  FeeValuesLegacy,\n} from '../../index.js'\nimport type {\n  TransactionRequestGeneric,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableGeneric,\n} from '../../types/transaction.js'\nimport type { Assign, ExactPartial, IsNever, OneOf } from '../../types/utils.js'\n\nexport type GetTransactionType<\n  transaction extends OneOf<\n    TransactionSerializableGeneric | TransactionRequestGeneric\n  > = TransactionSerializableGeneric,\n  result =\n    | (transaction extends LegacyProperties ? 'legacy' : never)\n    | (transaction extends EIP1559Properties ? 'eip1559' : never)\n    | (transaction extends EIP2930Properties ? 'eip2930' : never)\n    | (transaction extends EIP4844Properties ? 'eip4844' : never)\n    | (transaction extends EIP7702Properties ? 'eip7702' : never)\n    | (transaction['type'] extends TransactionSerializableGeneric['type']\n        ? Extract<transaction['type'], string>\n        : never),\n> = IsNever<keyof transaction> extends true\n  ? string\n  : IsNever<result> extends false\n    ? result\n    : string\n\nexport type GetTransactionTypeErrorType =\n  | InvalidSerializableTransactionErrorType\n  | ErrorType\n\nexport function getTransactionType<\n  const transaction extends OneOf<\n    TransactionSerializableGeneric | TransactionRequestGeneric\n  >,\n>(transaction: transaction): GetTransactionType<transaction> {\n  if (transaction.type)\n    return transaction.type as GetTransactionType<transaction>\n\n  if (typeof transaction.authorizationList !== 'undefined')\n    return 'eip7702' as any\n\n  if (\n    typeof transaction.blobs !== 'undefined' ||\n    typeof transaction.blobVersionedHashes !== 'undefined' ||\n    typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n    typeof transaction.sidecars !== 'undefined'\n  )\n    return 'eip4844' as any\n\n  if (\n    typeof transaction.maxFeePerGas !== 'undefined' ||\n    typeof transaction.maxPriorityFeePerGas !== 'undefined'\n  ) {\n    return 'eip1559' as any\n  }\n\n  if (typeof transaction.gasPrice !== 'undefined') {\n    if (typeof transaction.accessList !== 'undefined') return 'eip2930' as any\n    return 'legacy' as any\n  }\n\n  throw new InvalidSerializableTransactionError({ transaction })\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////\n// Types\n\ntype BaseProperties = {\n  accessList?: undefined\n  authorizationList?: undefined\n  blobs?: undefined\n  blobVersionedHashes?: undefined\n  gasPrice?: undefined\n  maxFeePerBlobGas?: undefined\n  maxFeePerGas?: undefined\n  maxPriorityFeePerGas?: undefined\n  sidecars?: undefined\n}\n\ntype LegacyProperties = Assign<BaseProperties, FeeValuesLegacy>\ntype EIP1559Properties = Assign<\n  BaseProperties,\n  OneOf<\n    | {\n        maxFeePerGas: FeeValuesEIP1559['maxFeePerGas']\n      }\n    | {\n        maxPriorityFeePerGas: FeeValuesEIP1559['maxPriorityFeePerGas']\n      },\n    FeeValuesEIP1559\n  > & {\n    accessList?: TransactionSerializableEIP2930['accessList'] | undefined\n  }\n>\ntype EIP2930Properties = Assign<\n  ExactPartial<LegacyProperties>,\n  {\n    accessList: TransactionSerializableEIP2930['accessList']\n  }\n>\ntype EIP4844Properties = Assign<\n  ExactPartial<EIP1559Properties>,\n  ExactPartial<FeeValuesEIP4844> &\n    OneOf<\n      | {\n          blobs: TransactionSerializableEIP4844['blobs']\n        }\n      | {\n          blobVersionedHashes: TransactionSerializableEIP4844['blobVersionedHashes']\n        }\n      | {\n          sidecars: TransactionSerializableEIP4844['sidecars']\n        },\n      TransactionSerializableEIP4844\n    >\n>\ntype EIP7702Properties = Assign<\n  ExactPartial<EIP1559Properties>,\n  {\n    authorizationList: TransactionSerializableEIP7702['authorizationList']\n  }\n>\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type HexToNumberErrorType,\n  hexToNumber,\n} from '../../utils/encoding/fromHex.js'\n\nexport type GetChainIdReturnType = number\n\nexport type GetChainIdErrorType =\n  | HexToNumberErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(client: Client<Transport, chain, account>): Promise<GetChainIdReturnType> {\n  const chainIdHex = await client.request(\n    {\n      method: 'eth_chainId',\n    },\n    { dedupe: true },\n  )\n  return hexToNumber(chainIdHex)\n}\n","import type { Address } from 'abitype'\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport {\n  type EstimateFeesPerGasErrorType,\n  internal_estimateFeesPerGas,\n} from '../../actions/public/estimateFeesPerGas.js'\nimport {\n  type EstimateGasErrorType,\n  type EstimateGasParameters,\n  estimateGas,\n} from '../../actions/public/estimateGas.js'\nimport {\n  type GetBlockErrorType,\n  getBlock as getBlock_,\n} from '../../actions/public/getBlock.js'\nimport {\n  type GetTransactionCountErrorType,\n  getTransactionCount,\n} from '../../actions/public/getTransactionCount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { AccountNotFoundErrorType } from '../../errors/account.js'\nimport {\n  Eip1559FeesNotSupportedError,\n  MaxFeePerGasTooLowError,\n} from '../../errors/fee.js'\nimport type { DeriveAccount, GetAccountParameter } from '../../types/account.js'\nimport type { Block } from '../../types/block.js'\nimport type {\n  Chain,\n  DeriveChain,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'\nimport type {\n  TransactionRequest,\n  TransactionRequestEIP1559,\n  TransactionRequestEIP2930,\n  TransactionRequestEIP4844,\n  TransactionRequestEIP7702,\n  TransactionRequestLegacy,\n  TransactionSerializable,\n} from '../../types/transaction.js'\nimport type {\n  ExactPartial,\n  IsNever,\n  Prettify,\n  UnionOmit,\n  UnionRequiredBy,\n} from '../../types/utils.js'\nimport { blobsToCommitments } from '../../utils/blob/blobsToCommitments.js'\nimport { blobsToProofs } from '../../utils/blob/blobsToProofs.js'\nimport { commitmentsToVersionedHashes } from '../../utils/blob/commitmentsToVersionedHashes.js'\nimport { toBlobSidecars } from '../../utils/blob/toBlobSidecars.js'\nimport type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { NonceManager } from '../../utils/nonceManager.js'\nimport {\n  type AssertRequestErrorType,\n  type AssertRequestParameters,\n  assertRequest,\n} from '../../utils/transaction/assertRequest.js'\nimport {\n  type GetTransactionType,\n  getTransactionType,\n} from '../../utils/transaction/getTransactionType.js'\nimport { getChainId as getChainId_ } from '../public/getChainId.js'\n\nexport const defaultParameters = [\n  'blobVersionedHashes',\n  'chainId',\n  'fees',\n  'gas',\n  'nonce',\n  'type',\n] as const\n\n/** @internal */\nexport const eip1559NetworkCache = /*#__PURE__*/ new Map<string, boolean>()\n\nexport type PrepareTransactionRequestParameterType =\n  | 'blobVersionedHashes'\n  | 'chainId'\n  | 'fees'\n  | 'gas'\n  | 'nonce'\n  | 'sidecars'\n  | 'type'\ntype ParameterTypeToParameters<\n  parameterType extends PrepareTransactionRequestParameterType,\n> = parameterType extends 'fees'\n  ? 'maxFeePerGas' | 'maxPriorityFeePerGas' | 'gasPrice'\n  : parameterType\n\nexport type PrepareTransactionRequestRequest<\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  ///\n  _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &\n  GetTransactionRequestKzgParameter & {\n    /**\n     * Nonce manager to use for the transaction request.\n     */\n    nonceManager?: NonceManager | undefined\n    /**\n     * Parameters to prepare for the transaction request.\n     *\n     * @default ['blobVersionedHashes', 'chainId', 'fees', 'gas', 'nonce', 'type']\n     */\n    parameters?: readonly PrepareTransactionRequestParameterType[] | undefined\n  }\n\nexport type PrepareTransactionRequestParameters<\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  accountOverride extends Account | Address | undefined =\n    | Account\n    | Address\n    | undefined,\n  request extends PrepareTransactionRequestRequest<\n    chain,\n    chainOverride\n  > = PrepareTransactionRequestRequest<chain, chainOverride>,\n> = request &\n  GetAccountParameter<account, accountOverride, false, true> &\n  GetChainParameter<chain, chainOverride> &\n  GetTransactionRequestKzgParameter<request> & { chainId?: number | undefined }\n\nexport type PrepareTransactionRequestReturnType<\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  accountOverride extends Account | Address | undefined =\n    | Account\n    | Address\n    | undefined,\n  request extends PrepareTransactionRequestRequest<\n    chain,\n    chainOverride\n  > = PrepareTransactionRequestRequest<chain, chainOverride>,\n  ///\n  _derivedAccount extends Account | Address | undefined = DeriveAccount<\n    account,\n    accountOverride\n  >,\n  _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n  _transactionType = request['type'] extends string | undefined\n    ? request['type']\n    : GetTransactionType<request> extends 'legacy'\n      ? unknown\n      : GetTransactionType<request>,\n  _transactionRequest extends TransactionRequest =\n    | (_transactionType extends 'legacy' ? TransactionRequestLegacy : never)\n    | (_transactionType extends 'eip1559' ? TransactionRequestEIP1559 : never)\n    | (_transactionType extends 'eip2930' ? TransactionRequestEIP2930 : never)\n    | (_transactionType extends 'eip4844' ? TransactionRequestEIP4844 : never)\n    | (_transactionType extends 'eip7702' ? TransactionRequestEIP7702 : never),\n> = Prettify<\n  UnionRequiredBy<\n    Extract<\n      UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &\n        (_derivedChain extends Chain\n          ? { chain: _derivedChain }\n          : { chain?: undefined }) &\n        (_derivedAccount extends Account\n          ? { account: _derivedAccount; from: Address }\n          : { account?: undefined; from?: undefined }),\n      IsNever<_transactionRequest> extends true\n        ? unknown\n        : ExactPartial<_transactionRequest>\n    > & { chainId?: number | undefined },\n    ParameterTypeToParameters<\n      request['parameters'] extends readonly PrepareTransactionRequestParameterType[]\n        ? request['parameters'][number]\n        : (typeof defaultParameters)[number]\n    >\n  > &\n    (unknown extends request['kzg'] ? {} : Pick<request, 'kzg'>)\n>\n\nexport type PrepareTransactionRequestErrorType =\n  | AccountNotFoundErrorType\n  | AssertRequestErrorType\n  | ParseAccountErrorType\n  | GetBlockErrorType\n  | GetTransactionCountErrorType\n  | EstimateGasErrorType\n  | EstimateFeesPerGasErrorType\n\n/**\n * Prepares a transaction request for signing.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\n *\n * @param args - {@link PrepareTransactionRequestParameters}\n * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   to: '0x0000000000000000000000000000000000000000',\n *   value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n *   to: '0x0000000000000000000000000000000000000000',\n *   value: 1n,\n * })\n */\nexport async function prepareTransactionRequest<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  const request extends PrepareTransactionRequestRequest<chain, chainOverride>,\n  accountOverride extends Account | Address | undefined = undefined,\n  chainOverride extends Chain | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  args: PrepareTransactionRequestParameters<\n    chain,\n    account,\n    chainOverride,\n    accountOverride,\n    request\n  >,\n): Promise<\n  PrepareTransactionRequestReturnType<\n    chain,\n    account,\n    chainOverride,\n    accountOverride,\n    request\n  >\n> {\n  const {\n    account: account_ = client.account,\n    blobs,\n    chain,\n    gas,\n    kzg,\n    nonce,\n    nonceManager,\n    parameters = defaultParameters,\n    type,\n  } = args\n  const account = account_ ? parseAccount(account_) : account_\n\n  const request = { ...args, ...(account ? { from: account?.address } : {}) }\n\n  let block: Block | undefined\n  async function getBlock(): Promise<Block> {\n    if (block) return block\n    block = await getAction(\n      client,\n      getBlock_,\n      'getBlock',\n    )({ blockTag: 'latest' })\n    return block\n  }\n\n  let chainId: number | undefined\n  async function getChainId(): Promise<number> {\n    if (chainId) return chainId\n    if (chain) return chain.id\n    if (typeof args.chainId !== 'undefined') return args.chainId\n    const chainId_ = await getAction(client, getChainId_, 'getChainId')({})\n    chainId = chainId_\n    return chainId\n  }\n\n  if (parameters.includes('nonce') && typeof nonce === 'undefined' && account) {\n    if (nonceManager) {\n      const chainId = await getChainId()\n      request.nonce = await nonceManager.consume({\n        address: account.address,\n        chainId,\n        client,\n      })\n    } else {\n      request.nonce = await getAction(\n        client,\n        getTransactionCount,\n        'getTransactionCount',\n      )({\n        address: account.address,\n        blockTag: 'pending',\n      })\n    }\n  }\n\n  if (\n    (parameters.includes('blobVersionedHashes') ||\n      parameters.includes('sidecars')) &&\n    blobs &&\n    kzg\n  ) {\n    const commitments = blobsToCommitments({ blobs, kzg })\n\n    if (parameters.includes('blobVersionedHashes')) {\n      const versionedHashes = commitmentsToVersionedHashes({\n        commitments,\n        to: 'hex',\n      })\n      request.blobVersionedHashes = versionedHashes\n    }\n    if (parameters.includes('sidecars')) {\n      const proofs = blobsToProofs({ blobs, commitments, kzg })\n      const sidecars = toBlobSidecars({\n        blobs,\n        commitments,\n        proofs,\n        to: 'hex',\n      })\n      request.sidecars = sidecars\n    }\n  }\n\n  if (parameters.includes('chainId')) request.chainId = await getChainId()\n\n  if (\n    (parameters.includes('fees') || parameters.includes('type')) &&\n    typeof type === 'undefined'\n  ) {\n    try {\n      request.type = getTransactionType(\n        request as TransactionSerializable,\n      ) as any\n    } catch {\n      let isEip1559Network = eip1559NetworkCache.get(client.uid)\n      if (typeof isEip1559Network === 'undefined') {\n        const block = await getBlock()\n        isEip1559Network = typeof block?.baseFeePerGas === 'bigint'\n        eip1559NetworkCache.set(client.uid, isEip1559Network)\n      }\n      request.type = isEip1559Network ? 'eip1559' : 'legacy'\n    }\n  }\n\n  if (parameters.includes('fees')) {\n    // TODO(4844): derive blob base fees once https://github.com/ethereum/execution-apis/pull/486 is merged.\n\n    if (request.type !== 'legacy' && request.type !== 'eip2930') {\n      // EIP-1559 fees\n      if (\n        typeof request.maxFeePerGas === 'undefined' ||\n        typeof request.maxPriorityFeePerGas === 'undefined'\n      ) {\n        const block = await getBlock()\n        const { maxFeePerGas, maxPriorityFeePerGas } =\n          await internal_estimateFeesPerGas(client, {\n            block: block as Block,\n            chain,\n            request: request as PrepareTransactionRequestParameters,\n          })\n\n        if (\n          typeof args.maxPriorityFeePerGas === 'undefined' &&\n          args.maxFeePerGas &&\n          args.maxFeePerGas < maxPriorityFeePerGas\n        )\n          throw new MaxFeePerGasTooLowError({\n            maxPriorityFeePerGas,\n          })\n\n        request.maxPriorityFeePerGas = maxPriorityFeePerGas\n        request.maxFeePerGas = maxFeePerGas\n      }\n    } else {\n      // Legacy fees\n      if (\n        typeof args.maxFeePerGas !== 'undefined' ||\n        typeof args.maxPriorityFeePerGas !== 'undefined'\n      )\n        throw new Eip1559FeesNotSupportedError()\n\n      if (typeof args.gasPrice === 'undefined') {\n        const block = await getBlock()\n        const { gasPrice: gasPrice_ } = await internal_estimateFeesPerGas(\n          client,\n          {\n            block: block as Block,\n            chain,\n            request: request as PrepareTransactionRequestParameters,\n            type: 'legacy',\n          },\n        )\n        request.gasPrice = gasPrice_\n      }\n    }\n  }\n\n  if (parameters.includes('gas') && typeof gas === 'undefined')\n    request.gas = await getAction(\n      client,\n      estimateGas,\n      'estimateGas',\n    )({\n      ...request,\n      account: account\n        ? { address: account.address, type: 'json-rpc' }\n        : account,\n    } as EstimateGasParameters)\n\n  assertRequest(request as AssertRequestParameters)\n\n  delete request.parameters\n\n  return request as any\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetBalanceParameters = {\n  /** The address of the account. */\n  address: Address\n} & (\n  | {\n      /** The balance of the account at a block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockNumber?: undefined\n      /** The balance of the account at a block tag. */\n      blockTag?: BlockTag | undefined\n    }\n)\n\nexport type GetBalanceReturnType = bigint\n\nexport type GetBalanceErrorType =\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns the balance of an address in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBalance\n * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n *\n * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\n *\n * ```ts\n * const balance = await getBalance(client, {\n *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   blockTag: 'safe'\n * })\n * const balanceAsEther = formatEther(balance)\n * // \"6.942\"\n * ```\n *\n * @param client - Client to use\n * @param parameters - {@link GetBalanceParameters}\n * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBalance } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const balance = await getBalance(client, {\n *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n * // 10000000000000000000000n (wei)\n */\nexport async function getBalance<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    address,\n    blockNumber,\n    blockTag = client.experimental_blockTag ?? 'latest',\n  }: GetBalanceParameters,\n): Promise<GetBalanceReturnType> {\n  const blockNumberHex =\n    typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined\n\n  const balance = await client.request({\n    method: 'eth_getBalance',\n    params: [address, blockNumberHex || blockTag],\n  })\n  return BigInt(balance)\n}\n","import type { Address } from 'abitype'\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { BaseError } from '../../errors/base.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { StateOverride } from '../../types/stateOverride.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type { UnionOmit } from '../../types/utils.js'\nimport {\n  type RecoverAuthorizationAddressErrorType,\n  recoverAuthorizationAddress,\n} from '../../utils/authorization/recoverAuthorizationAddress.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type GetEstimateGasErrorReturnType,\n  getEstimateGasError,\n} from '../../utils/errors/getEstimateGasError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n  type FormattedTransactionRequest,\n  formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { serializeStateOverride } from '../../utils/stateOverride.js'\nimport {\n  type AssertRequestErrorType,\n  type AssertRequestParameters,\n  assertRequest,\n} from '../../utils/transaction/assertRequest.js'\nimport {\n  type PrepareTransactionRequestParameters,\n  prepareTransactionRequest,\n} from '../wallet/prepareTransactionRequest.js'\nimport { getBalance } from './getBalance.js'\n\nexport type EstimateGasParameters<\n  chain extends Chain | undefined = Chain | undefined,\n> = UnionOmit<FormattedEstimateGas<chain>, 'from'> & {\n  account?: Account | Address | undefined\n  stateOverride?: StateOverride | undefined\n} & (\n    | {\n        /** The balance of the account at a block number. */\n        blockNumber?: bigint | undefined\n        blockTag?: undefined\n      }\n    | {\n        blockNumber?: undefined\n        /**\n         * The balance of the account at a block tag.\n         * @default 'latest'\n         */\n        blockTag?: BlockTag | undefined\n      }\n  )\ntype FormattedEstimateGas<chain extends Chain | undefined = Chain | undefined> =\n  FormattedTransactionRequest<chain>\n\nexport type EstimateGasReturnType = bigint\n\nexport type EstimateGasErrorType = GetEstimateGasErrorReturnType<\n  | ParseAccountErrorType\n  | NumberToHexErrorType\n  | RequestErrorType\n  | RecoverAuthorizationAddressErrorType\n  | AssertRequestErrorType\n>\n\n/**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateGas\n * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateGasParameters}\n * @returns The gas estimate (in gas units). {@link EstimateGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateGas } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const gasEstimate = await estimateGas(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *   value: parseEther('1'),\n * })\n */\nexport async function estimateGas<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  args: EstimateGasParameters<chain>,\n): Promise<EstimateGasReturnType> {\n  const { account: account_ = client.account } = args\n  const account = account_ ? parseAccount(account_) : undefined\n\n  try {\n    const {\n      accessList,\n      authorizationList,\n      blobs,\n      blobVersionedHashes,\n      blockNumber,\n      blockTag,\n      data,\n      gas,\n      gasPrice,\n      maxFeePerBlobGas,\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n      nonce,\n      value,\n      stateOverride,\n      ...rest\n    } = (await prepareTransactionRequest(client, {\n      ...args,\n      parameters:\n        // Some RPC Providers do not compute versioned hashes from blobs. We will need\n        // to compute them.\n        account?.type === 'local' ? undefined : ['blobVersionedHashes'],\n    } as PrepareTransactionRequestParameters)) as EstimateGasParameters\n\n    const blockNumberHex =\n      typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined\n    const block = blockNumberHex || blockTag\n\n    const rpcStateOverride = serializeStateOverride(stateOverride)\n\n    const to = await (async () => {\n      // If `to` exists on the parameters, use that.\n      if (rest.to) return rest.to\n\n      // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n      // address of the first authorization in the list.\n      if (authorizationList && authorizationList.length > 0)\n        return await recoverAuthorizationAddress({\n          authorization: authorizationList[0],\n        }).catch(() => {\n          throw new BaseError(\n            '`to` is required. Could not infer from `authorizationList`',\n          )\n        })\n\n      // Otherwise, we are sending a deployment transaction.\n      return undefined\n    })()\n\n    assertRequest(args as AssertRequestParameters)\n\n    const chainFormat = client.chain?.formatters?.transactionRequest?.format\n    const format = chainFormat || formatTransactionRequest\n\n    const request = format({\n      // Pick out extra data that might exist on the chain's transaction request type.\n      ...extract(rest, { format: chainFormat }),\n      from: account?.address,\n      accessList,\n      authorizationList,\n      blobs,\n      blobVersionedHashes,\n      data,\n      gas,\n      gasPrice,\n      maxFeePerBlobGas,\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n      nonce,\n      to,\n      value,\n    } as TransactionRequest)\n\n    function estimateGas_rpc(parameters: {\n      block: any\n      request: any\n      rpcStateOverride: any\n    }) {\n      const { block, request, rpcStateOverride } = parameters\n      return client.request({\n        method: 'eth_estimateGas',\n        params: rpcStateOverride\n          ? [\n              request,\n              block ?? client.experimental_blockTag ?? 'latest',\n              rpcStateOverride,\n            ]\n          : block\n            ? [request, block]\n            : [request],\n      })\n    }\n\n    let estimate = BigInt(\n      await estimateGas_rpc({ block, request, rpcStateOverride }),\n    )\n\n    // TODO(7702): Remove this once https://github.com/ethereum/execution-apis/issues/561 is resolved.\n    //       Authorization list schema is not implemented on JSON-RPC spec yet, so we need to\n    //       manually estimate the gas.\n    if (authorizationList) {\n      const value = await getBalance(client, { address: request.from })\n      const estimates = await Promise.all(\n        authorizationList.map(async (authorization) => {\n          const { address } = authorization\n          const estimate = await estimateGas_rpc({\n            block,\n            request: {\n              authorizationList: undefined,\n              data,\n              from: account?.address,\n              to: address,\n              value: numberToHex(value),\n            },\n            rpcStateOverride,\n          }).catch(() => 100_000n)\n          return 2n * BigInt(estimate)\n        }),\n      )\n      estimate += estimates.reduce((acc, curr) => acc + curr, 0n)\n    }\n\n    return estimate\n  } catch (err) {\n    throw getEstimateGasError(err as BaseError, {\n      ...args,\n      account,\n      chain: client.chain,\n    })\n  }\n}\n","import type { Abi } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractFunctionArgs,\n  ContractFunctionName,\n  ContractFunctionParameters,\n  GetValue,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { UnionOmit } from '../../types/utils.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  type EncodeFunctionDataParameters,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from '../../utils/errors/getContractError.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type EstimateGasErrorType,\n  type EstimateGasParameters,\n  estimateGas,\n} from './estimateGas.js'\n\nexport type EstimateContractGasParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  functionName extends ContractFunctionName<\n    abi,\n    'nonpayable' | 'payable'\n  > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,\n  chain extends Chain | undefined = Chain | undefined,\n> = ContractFunctionParameters<\n  abi,\n  'nonpayable' | 'payable',\n  functionName,\n  args\n> &\n  UnionOmit<EstimateGasParameters<chain>, 'data' | 'to' | 'value'> &\n  GetValue<\n    abi,\n    functionName,\n    EstimateGasParameters<chain> extends EstimateGasParameters\n      ? EstimateGasParameters<chain>['value']\n      : EstimateGasParameters['value']\n  > & {\n    /** Data to append to the end of the calldata. Useful for adding a [\"domain\" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */\n    dataSuffix?: Hex | undefined\n  }\n\nexport type EstimateContractGasReturnType = bigint\n\nexport type EstimateContractGasErrorType = GetContractErrorReturnType<\n  EncodeFunctionDataErrorType | EstimateGasErrorType | ParseAccountErrorType\n>\n\n/**\n * Estimates the gas required to successfully execute a contract write function call.\n *\n * - Docs: https://viem.sh/docs/contract/estimateContractGas\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateContractGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateContractGas } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const gas = await estimateContractGas(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['function mint() public']),\n *   functionName: 'mint',\n *   account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * })\n */\nexport async function estimateContractGas<\n  const abi extends Abi | readonly unknown[],\n  functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  args extends ContractFunctionArgs<abi, 'pure' | 'view', functionName>,\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: EstimateContractGasParameters<abi, functionName, args, chain>,\n): Promise<EstimateContractGasReturnType> {\n  const { abi, address, args, functionName, dataSuffix, ...request } =\n    parameters as EstimateContractGasParameters\n  const data = encodeFunctionData({\n    abi,\n    args,\n    functionName,\n  } as EncodeFunctionDataParameters)\n  try {\n    const gas = await getAction(\n      client,\n      estimateGas,\n      'estimateGas',\n    )({\n      data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n      to: address,\n      ...request,\n    } as unknown as EstimateGasParameters)\n    return gas\n  } catch (error) {\n    const account = request.account ? parseAccount(request.account) : undefined\n    throw getContractError(error as BaseError, {\n      abi,\n      address,\n      args,\n      docsPath: '/docs/contract/estimateContractGas',\n      functionName,\n      sender: account?.address,\n    })\n  }\n}\n","import type { Abi, AbiParameter } from 'abitype'\n\nimport {\n  AbiDecodingDataSizeTooSmallError,\n  type AbiDecodingDataSizeTooSmallErrorType,\n  AbiEventSignatureEmptyTopicsError,\n  type AbiEventSignatureEmptyTopicsErrorType,\n  AbiEventSignatureNotFoundError,\n  type AbiEventSignatureNotFoundErrorType,\n  DecodeLogDataMismatch,\n  type DecodeLogDataMismatchErrorType,\n  DecodeLogTopicsMismatch,\n  type DecodeLogTopicsMismatchErrorType,\n} from '../../errors/abi.js'\nimport { PositionOutOfBoundsError } from '../../errors/cursor.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  ContractEventArgsFromTopics,\n  ContractEventName,\n  EventDefinition,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type {\n  IsNarrowable,\n  Prettify,\n  UnionEvaluate,\n} from '../../types/utils.js'\nimport { size } from '../data/size.js'\nimport {\n  type ToEventSelectorErrorType,\n  toEventSelector,\n} from '../hash/toEventSelector.js'\nimport {\n  type DecodeAbiParametersErrorType,\n  decodeAbiParameters,\n} from './decodeAbiParameters.js'\nimport { type FormatAbiItemErrorType, formatAbiItem } from './formatAbiItem.js'\n\nexport type DecodeEventLogParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = ContractEventName<abi>,\n  topics extends Hex[] = Hex[],\n  data extends Hex | undefined = undefined,\n  strict extends boolean = true,\n> = {\n  abi: abi\n  data?: data | undefined\n  eventName?: eventName | ContractEventName<abi> | undefined\n  strict?: strict | boolean | undefined\n  topics: [signature: Hex, ...args: topics] | []\n}\n\nexport type DecodeEventLogReturnType<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = ContractEventName<abi>,\n  topics extends Hex[] = Hex[],\n  data extends Hex | undefined = undefined,\n  strict extends boolean = true,\n  ///\n  allEventNames extends\n    ContractEventName<abi> = eventName extends ContractEventName<abi>\n    ? eventName\n    : ContractEventName<abi>,\n> = IsNarrowable<abi, Abi> extends true\n  ? {\n      [name in allEventNames]: Prettify<\n        {\n          eventName: name\n        } & UnionEvaluate<\n          ContractEventArgsFromTopics<abi, name, strict> extends infer allArgs\n            ? topics extends readonly []\n              ? data extends undefined\n                ? { args?: undefined }\n                : { args?: allArgs | undefined }\n              : { args: allArgs }\n            : never\n        >\n      >\n    }[allEventNames]\n  : {\n      eventName: eventName\n      args: readonly unknown[] | undefined\n    }\n\nexport type DecodeEventLogErrorType =\n  | AbiDecodingDataSizeTooSmallErrorType\n  | AbiEventSignatureEmptyTopicsErrorType\n  | AbiEventSignatureNotFoundErrorType\n  | DecodeAbiParametersErrorType\n  | DecodeLogTopicsMismatchErrorType\n  | DecodeLogDataMismatchErrorType\n  | FormatAbiItemErrorType\n  | ToEventSelectorErrorType\n  | ErrorType\n\nconst docsPath = '/docs/contract/decodeEventLog'\n\nexport function decodeEventLog<\n  const abi extends Abi | readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined = undefined,\n  topics extends Hex[] = Hex[],\n  data extends Hex | undefined = undefined,\n  strict extends boolean = true,\n>(\n  parameters: DecodeEventLogParameters<abi, eventName, topics, data, strict>,\n): DecodeEventLogReturnType<abi, eventName, topics, data, strict> {\n  const {\n    abi,\n    data,\n    strict: strict_,\n    topics,\n  } = parameters as DecodeEventLogParameters\n\n  const strict = strict_ ?? true\n  const [signature, ...argTopics] = topics\n  if (!signature) throw new AbiEventSignatureEmptyTopicsError({ docsPath })\n\n  const abiItem = abi.find(\n    (x) =>\n      x.type === 'event' &&\n      signature === toEventSelector(formatAbiItem(x) as EventDefinition),\n  )\n\n  if (!(abiItem && 'name' in abiItem) || abiItem.type !== 'event')\n    throw new AbiEventSignatureNotFoundError(signature, { docsPath })\n\n  const { name, inputs } = abiItem\n  const isUnnamed = inputs?.some((x) => !('name' in x && x.name))\n\n  const args: any = isUnnamed ? [] : {}\n\n  // Decode topics (indexed args).\n  const indexedInputs = inputs\n    .map((x, i) => [x, i] as const)\n    .filter(([x]) => 'indexed' in x && x.indexed)\n  for (let i = 0; i < indexedInputs.length; i++) {\n    const [param, argIndex] = indexedInputs[i]\n    const topic = argTopics[i]\n    if (!topic)\n      throw new DecodeLogTopicsMismatch({\n        abiItem,\n        param: param as AbiParameter & { indexed: boolean },\n      })\n    args[isUnnamed ? argIndex : param.name || argIndex] = decodeTopic({\n      param,\n      value: topic,\n    })\n  }\n\n  // Decode data (non-indexed args).\n  const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed))\n  if (nonIndexedInputs.length > 0) {\n    if (data && data !== '0x') {\n      try {\n        const decodedData = decodeAbiParameters(nonIndexedInputs, data)\n        if (decodedData) {\n          if (isUnnamed)\n            for (let i = 0; i < inputs.length; i++)\n              args[i] = args[i] ?? decodedData.shift()\n          else\n            for (let i = 0; i < nonIndexedInputs.length; i++)\n              args[nonIndexedInputs[i].name!] = decodedData[i]\n        }\n      } catch (err) {\n        if (strict) {\n          if (\n            err instanceof AbiDecodingDataSizeTooSmallError ||\n            err instanceof PositionOutOfBoundsError\n          )\n            throw new DecodeLogDataMismatch({\n              abiItem,\n              data: data,\n              params: nonIndexedInputs,\n              size: size(data),\n            })\n          throw err\n        }\n      }\n    } else if (strict) {\n      throw new DecodeLogDataMismatch({\n        abiItem,\n        data: '0x',\n        params: nonIndexedInputs,\n        size: 0,\n      })\n    }\n  }\n\n  return {\n    eventName: name,\n    args: Object.values(args).length > 0 ? args : undefined,\n  } as unknown as DecodeEventLogReturnType<abi, eventName, topics, data, strict>\n}\n\nfunction decodeTopic({ param, value }: { param: AbiParameter; value: Hex }) {\n  if (\n    param.type === 'string' ||\n    param.type === 'bytes' ||\n    param.type === 'tuple' ||\n    param.type.match(/^(.*)\\[(\\d+)?\\]$/)\n  )\n    return value\n  const decodedArg = decodeAbiParameters([param], value) || []\n  return decodedArg[0]\n}\n","// TODO(v3): checksum address.\n\nimport type { Abi, AbiEvent, AbiEventParameter, Address } from 'abitype'\nimport {\n  AbiEventSignatureNotFoundError,\n  DecodeLogDataMismatch,\n  DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ContractEventName, GetEventArgs } from '../../types/contract.js'\nimport type { Log } from '../../types/log.js'\nimport type { RpcLog } from '../../types/rpc.js'\nimport { isAddressEqual } from '../address/isAddressEqual.js'\nimport { toBytes } from '../encoding/toBytes.js'\nimport { keccak256 } from '../hash/keccak256.js'\nimport { toEventSelector } from '../hash/toEventSelector.js'\nimport {\n  type DecodeEventLogErrorType,\n  decodeEventLog,\n} from './decodeEventLog.js'\n\nexport type ParseEventLogsParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends\n    | ContractEventName<abi>\n    | ContractEventName<abi>[]\n    | undefined = ContractEventName<abi>,\n  strict extends boolean | undefined = boolean | undefined,\n  ///\n  allArgs = GetEventArgs<\n    abi,\n    eventName extends ContractEventName<abi>\n      ? eventName\n      : ContractEventName<abi>,\n    {\n      EnableUnion: true\n      IndexedOnly: false\n      Required: false\n    }\n  >,\n> = {\n  /** Contract ABI. */\n  abi: abi\n  /** Arguments for the event. */\n  args?: allArgs | undefined\n  /** Contract event. */\n  eventName?:\n    | eventName\n    | ContractEventName<abi>\n    | ContractEventName<abi>[]\n    | undefined\n  /** List of logs. */\n  logs: (Log | RpcLog)[]\n  strict?: strict | boolean | undefined\n}\n\nexport type ParseEventLogsReturnType<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends\n    | ContractEventName<abi>\n    | ContractEventName<abi>[]\n    | undefined = ContractEventName<abi>,\n  strict extends boolean | undefined = boolean | undefined,\n  ///\n  derivedEventName extends\n    | ContractEventName<abi>\n    | undefined = eventName extends ContractEventName<abi>[]\n    ? eventName[number]\n    : eventName,\n> = Log<bigint, number, false, undefined, strict, abi, derivedEventName>[]\n\nexport type ParseEventLogsErrorType = DecodeEventLogErrorType | ErrorType\n\n/**\n * Extracts & decodes logs matching the provided signature(s) (`abi` + optional `eventName`)\n * from a set of opaque logs.\n *\n * @param parameters - {@link ParseEventLogsParameters}\n * @returns The logs. {@link ParseEventLogsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { parseEventLogs } from 'viem/op-stack'\n *\n * const client = createClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n *\n * const receipt = await getTransactionReceipt(client, {\n *   hash: '0xec23b2ba4bc59ba61554507c1b1bc91649e6586eb2dd00c728e8ed0db8bb37ea',\n * })\n *\n * const logs = parseEventLogs({ logs: receipt.logs })\n * // [{ args: { ... }, eventName: 'TransactionDeposited', ... }, ...]\n */\nexport function parseEventLogs<\n  abi extends Abi | readonly unknown[],\n  strict extends boolean | undefined = true,\n  eventName extends\n    | ContractEventName<abi>\n    | ContractEventName<abi>[]\n    | undefined = undefined,\n>(\n  parameters: ParseEventLogsParameters<abi, eventName, strict>,\n): ParseEventLogsReturnType<abi, eventName, strict> {\n  const { abi, args, logs, strict = true } = parameters\n\n  const eventName = (() => {\n    if (!parameters.eventName) return undefined\n    if (Array.isArray(parameters.eventName)) return parameters.eventName\n    return [parameters.eventName as string]\n  })()\n\n  return logs\n    .map((log) => {\n      try {\n        const abiItem = (abi as Abi).find(\n          (abiItem) =>\n            abiItem.type === 'event' &&\n            log.topics[0] === toEventSelector(abiItem),\n        ) as AbiEvent\n        if (!abiItem) return null\n\n        const event = decodeEventLog({\n          ...log,\n          abi: [abiItem],\n          strict,\n        })\n\n        // Check that the decoded event name matches the provided event name.\n        if (eventName && !eventName.includes(event.eventName)) return null\n\n        // Check that the decoded event args match the provided args.\n        if (\n          !includesArgs({\n            args: event.args,\n            inputs: abiItem.inputs,\n            matchArgs: args,\n          })\n        )\n          return null\n\n        return { ...event, ...log }\n      } catch (err) {\n        let eventName: string | undefined\n        let isUnnamed: boolean | undefined\n\n        if (err instanceof AbiEventSignatureNotFoundError) return null\n        if (\n          err instanceof DecodeLogDataMismatch ||\n          err instanceof DecodeLogTopicsMismatch\n        ) {\n          // If strict mode is on, and log data/topics do not match event definition, skip.\n          if (strict) return null\n          eventName = err.abiItem.name\n          isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name))\n        }\n\n        // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n        return { ...log, args: isUnnamed ? [] : {}, eventName }\n      }\n    })\n    .filter(Boolean) as unknown as ParseEventLogsReturnType<\n    abi,\n    eventName,\n    strict\n  >\n}\n\nfunction includesArgs(parameters: {\n  args: unknown\n  inputs: AbiEvent['inputs']\n  matchArgs: unknown\n}) {\n  const { args, inputs, matchArgs } = parameters\n\n  if (!matchArgs) return true\n  if (!args) return false\n\n  function isEqual(input: AbiEventParameter, value: unknown, arg: unknown) {\n    try {\n      if (input.type === 'address')\n        return isAddressEqual(value as Address, arg as Address)\n      if (input.type === 'string' || input.type === 'bytes')\n        return keccak256(toBytes(value as string)) === arg\n      return value === arg\n    } catch {\n      return false\n    }\n  }\n\n  if (Array.isArray(args) && Array.isArray(matchArgs)) {\n    return matchArgs.every((value, index) => {\n      if (value === null || value === undefined) return true\n      const input = inputs[index]\n      if (!input) return false\n      const value_ = Array.isArray(value) ? value : [value]\n      return value_.some((value) => isEqual(input, value, args[index]))\n    })\n  }\n\n  if (\n    typeof args === 'object' &&\n    !Array.isArray(args) &&\n    typeof matchArgs === 'object' &&\n    !Array.isArray(matchArgs)\n  )\n    return Object.entries(matchArgs).every(([key, value]) => {\n      if (value === null || value === undefined) return true\n      const input = inputs.find((input) => input.name === key)\n      if (!input) return false\n      const value_ = Array.isArray(value) ? value : [value]\n      return value_.some((value) =>\n        isEqual(input, value, (args as Record<string, unknown>)[key]),\n      )\n    })\n\n  return false\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Log } from '../../types/log.js'\nimport type { RpcLog } from '../../types/rpc.js'\nimport type { ExactPartial } from '../../types/utils.js'\n\nexport type FormatLogErrorType = ErrorType\n\nexport function formatLog(\n  log: ExactPartial<RpcLog>,\n  {\n    args,\n    eventName,\n  }: { args?: unknown | undefined; eventName?: string | undefined } = {},\n) {\n  return {\n    ...log,\n    blockHash: log.blockHash ? log.blockHash : null,\n    blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n    logIndex: log.logIndex ? Number(log.logIndex) : null,\n    transactionHash: log.transactionHash ? log.transactionHash : null,\n    transactionIndex: log.transactionIndex\n      ? Number(log.transactionIndex)\n      : null,\n    ...(eventName ? { args, eventName } : {}),\n  } as Log\n}\n","import type { AbiEvent, Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  MaybeAbiEventName,\n  MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hash, LogTopic } from '../../types/misc.js'\nimport type { RpcLog } from '../../types/rpc.js'\nimport type { DecodeEventLogErrorType } from '../../utils/abi/decodeEventLog.js'\nimport {\n  type EncodeEventTopicsErrorType,\n  type EncodeEventTopicsParameters,\n  encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type FormatLogErrorType,\n  formatLog,\n} from '../../utils/formatters/log.js'\n\nexport type GetLogsParameters<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  //\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n> = {\n  /** Address or list of addresses from which logs originated */\n  address?: Address | Address[] | undefined\n} & (\n  | {\n      event: abiEvent\n      events?: undefined\n      args?: MaybeExtractEventArgsFromAbi<abiEvents, _eventName> | undefined\n      /**\n       * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n       * @default false\n       */\n      strict?: strict | undefined\n    }\n  | {\n      event?: undefined\n      events: abiEvents\n      args?: undefined\n      /**\n       * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n       * @default false\n       */\n      strict?: strict | undefined\n    }\n  | {\n      event?: undefined\n      events?: undefined\n      args?: undefined\n      strict?: undefined\n    }\n) &\n  (\n    | {\n        /** Block number or tag after which to include logs */\n        fromBlock?: fromBlock | BlockNumber | BlockTag | undefined\n        /** Block number or tag before which to include logs */\n        toBlock?: toBlock | BlockNumber | BlockTag | undefined\n        blockHash?: undefined\n      }\n    | {\n        fromBlock?: undefined\n        toBlock?: undefined\n        /** Hash of block to include logs from */\n        blockHash?: Hash | undefined\n      }\n  )\n\nexport type GetLogsReturnType<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  //\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n  _pending extends boolean =\n    | (fromBlock extends 'pending' ? true : false)\n    | (toBlock extends 'pending' ? true : false),\n> = Log<bigint, number, _pending, abiEvent, strict, abiEvents, _eventName>[]\n\nexport type GetLogsErrorType =\n  | DecodeEventLogErrorType\n  | EncodeEventTopicsErrorType\n  | FormatLogErrorType\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns a list of event logs matching the provided parameters.\n *\n * - Docs: https://viem.sh/docs/actions/public/getLogs\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetLogsParameters}\n * @returns A list of event logs. {@link GetLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const logs = await getLogs(client)\n */\nexport async function getLogs<\n  chain extends Chain | undefined,\n  const abiEvent extends AbiEvent | undefined = undefined,\n  const abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n>(\n  client: Client<Transport, chain>,\n  {\n    address,\n    blockHash,\n    fromBlock,\n    toBlock,\n    event,\n    events: events_,\n    args,\n    strict: strict_,\n  }: GetLogsParameters<abiEvent, abiEvents, strict, fromBlock, toBlock> = {},\n): Promise<GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>> {\n  const strict = strict_ ?? false\n  const events = events_ ?? (event ? [event] : undefined)\n\n  let topics: LogTopic[] = []\n  if (events) {\n    const encoded = (events as AbiEvent[]).flatMap((event) =>\n      encodeEventTopics({\n        abi: [event],\n        eventName: (event as AbiEvent).name,\n        args: events_ ? undefined : args,\n      } as EncodeEventTopicsParameters),\n    )\n    // TODO: Clean up type casting\n    topics = [encoded as LogTopic]\n    if (event) topics = topics[0] as LogTopic[]\n  }\n\n  let logs: RpcLog[]\n  if (blockHash) {\n    logs = await client.request({\n      method: 'eth_getLogs',\n      params: [{ address, topics, blockHash }],\n    })\n  } else {\n    logs = await client.request({\n      method: 'eth_getLogs',\n      params: [\n        {\n          address,\n          topics,\n          fromBlock:\n            typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n          toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n        },\n      ],\n    })\n  }\n\n  const formattedLogs = logs.map((log) => formatLog(log))\n  if (!events)\n    return formattedLogs as GetLogsReturnType<\n      abiEvent,\n      abiEvents,\n      strict,\n      fromBlock,\n      toBlock\n    >\n  return parseEventLogs({\n    abi: events,\n    args: args as any,\n    logs: formattedLogs,\n    strict,\n  }) as unknown as GetLogsReturnType<\n    abiEvent,\n    abiEvents,\n    strict,\n    fromBlock,\n    toBlock\n  >\n}\n","import type { Abi, Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractEventArgs,\n  ContractEventName,\n} from '../../types/contract.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hash } from '../../types/misc.js'\nimport {\n  type GetAbiItemErrorType,\n  type GetAbiItemParameters,\n  getAbiItem,\n} from '../../utils/abi/getAbiItem.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type GetLogsErrorType,\n  type GetLogsParameters,\n  getLogs,\n} from './getLogs.js'\n\nexport type GetContractEventsParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined =\n    | ContractEventName<abi>\n    | undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n> = {\n  /** The address of the contract. */\n  address?: Address | Address[] | undefined\n  /** Contract ABI. */\n  abi: abi\n  args?:\n    | ContractEventArgs<\n        abi,\n        eventName extends ContractEventName<abi>\n          ? eventName\n          : ContractEventName<abi>\n      >\n    | undefined\n  /** Contract event. */\n  eventName?: eventName | ContractEventName<abi> | undefined\n  /**\n   * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n   * @default false\n   */\n  strict?: strict | boolean | undefined\n} & (\n  | {\n      /** Block number or tag after which to include logs */\n      fromBlock?: fromBlock | BlockNumber | BlockTag | undefined\n      /** Block number or tag before which to include logs */\n      toBlock?: toBlock | BlockNumber | BlockTag | undefined\n      blockHash?: undefined\n    }\n  | {\n      fromBlock?: undefined\n      toBlock?: undefined\n      /** Hash of block to include logs from */\n      blockHash?: Hash | undefined\n    }\n)\n\nexport type GetContractEventsReturnType<\n  abi extends Abi | readonly unknown[] = readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined =\n    | ContractEventName<abi>\n    | undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  ///\n  isPending extends boolean =\n    | (fromBlock extends 'pending' ? true : false)\n    | (toBlock extends 'pending' ? true : false),\n> = Log<bigint, number, isPending, undefined, strict, abi, eventName>[]\n\nexport type GetContractEventsErrorType =\n  | GetAbiItemErrorType\n  | GetLogsErrorType\n  | ErrorType\n\n/**\n * Returns a list of event logs emitted by a contract.\n *\n * - Docs: https://viem.sh/docs/contract/getContractEvents#getcontractevents\n * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n *\n * @param client - Client to use\n * @param parameters - {@link GetContractEventsParameters}\n * @returns A list of event logs. {@link GetContractEventsReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getContractEvents } from 'viem/public'\n * import { wagmiAbi } from './abi'\n *\n * const client = createClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const logs = await getContractEvents(client, {\n *  address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *  abi: wagmiAbi,\n *  eventName: 'Transfer'\n * })\n */\nexport async function getContractEvents<\n  chain extends Chain | undefined,\n  const abi extends Abi | readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n>(\n  client: Client<Transport, chain>,\n  parameters: GetContractEventsParameters<\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >,\n): Promise<\n  GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>\n> {\n  const {\n    abi,\n    address,\n    args,\n    blockHash,\n    eventName,\n    fromBlock,\n    toBlock,\n    strict,\n  } = parameters\n  const event = eventName\n    ? getAbiItem({ abi, name: eventName } as GetAbiItemParameters)\n    : undefined\n  const events = !event\n    ? (abi as Abi).filter((x) => x.type === 'event')\n    : undefined\n  return getAction(\n    client,\n    getLogs,\n    'getLogs',\n  )({\n    address,\n    args,\n    blockHash,\n    event,\n    events,\n    fromBlock,\n    toBlock,\n    strict,\n  } as {} as GetLogsParameters) as unknown as GetContractEventsReturnType<\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >\n}\n","import type { Abi } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractFunctionArgs,\n  ContractFunctionName,\n  ContractFunctionParameters,\n  ContractFunctionReturnType,\n} from '../../types/contract.js'\nimport type { UnionEvaluate } from '../../types/utils.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  type EncodeFunctionDataParameters,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from '../../utils/errors/getContractError.js'\nimport { getAction } from '../../utils/getAction.js'\n\nimport { type CallErrorType, type CallParameters, call } from './call.js'\n\nexport type ReadContractParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  functionName extends ContractFunctionName<\n    abi,\n    'pure' | 'view'\n  > = ContractFunctionName<abi, 'pure' | 'view'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'pure' | 'view',\n    functionName\n  > = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,\n> = UnionEvaluate<\n  Pick<\n    CallParameters,\n    | 'account'\n    | 'authorizationList'\n    | 'blockNumber'\n    | 'blockTag'\n    | 'factory'\n    | 'factoryData'\n    | 'stateOverride'\n  >\n> &\n  ContractFunctionParameters<abi, 'pure' | 'view', functionName, args, boolean>\n\nexport type ReadContractReturnType<\n  abi extends Abi | readonly unknown[] = Abi,\n  functionName extends ContractFunctionName<\n    abi,\n    'pure' | 'view'\n  > = ContractFunctionName<abi, 'pure' | 'view'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'pure' | 'view',\n    functionName\n  > = ContractFunctionArgs<abi, 'pure' | 'view', functionName>,\n> = ContractFunctionReturnType<abi, 'pure' | 'view', functionName, args>\n\nexport type ReadContractErrorType = GetContractErrorReturnType<\n  CallErrorType | EncodeFunctionDataErrorType | DecodeFunctionResultErrorType\n>\n\n/**\n * Calls a read-only function on a contract, and returns the response.\n *\n * - Docs: https://viem.sh/docs/contract/readContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_reading-contracts\n *\n * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link ReadContractParameters}\n * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { readContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const result = await readContract(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n *   functionName: 'balanceOf',\n *   args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // 424122n\n */\nexport async function readContract<\n  chain extends Chain | undefined,\n  const abi extends Abi | readonly unknown[],\n  functionName extends ContractFunctionName<abi, 'pure' | 'view'>,\n  const args extends ContractFunctionArgs<abi, 'pure' | 'view', functionName>,\n>(\n  client: Client<Transport, chain>,\n  parameters: ReadContractParameters<abi, functionName, args>,\n): Promise<ReadContractReturnType<abi, functionName, args>> {\n  const { abi, address, args, functionName, ...rest } =\n    parameters as ReadContractParameters\n  const calldata = encodeFunctionData({\n    abi,\n    args,\n    functionName,\n  } as EncodeFunctionDataParameters)\n  try {\n    const { data } = await getAction(\n      client,\n      call,\n      'call',\n    )({\n      ...(rest as CallParameters),\n      data: calldata,\n      to: address!,\n    })\n    return decodeFunctionResult({\n      abi,\n      args,\n      functionName,\n      data: data || '0x',\n    }) as ReadContractReturnType<abi, functionName>\n  } catch (error) {\n    throw getContractError(error as BaseError, {\n      abi,\n      address,\n      args,\n      docsPath: '/docs/contract/readContract',\n      functionName,\n    })\n  }\n}\n","import type { Abi, AbiFunction, AbiStateMutability, Address } from 'abitype'\n\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account, ParseAccount } from '../../types/account.js'\nimport type { Chain, DeriveChain } from '../../types/chain.js'\nimport type {\n  ContractFunctionArgs,\n  ContractFunctionName,\n  ContractFunctionParameters,\n  ContractFunctionReturnType,\n  ExtractAbiFunctionForArgs,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type {\n  IsNarrowable,\n  NoInfer,\n  Prettify,\n  UnionEvaluate,\n  UnionOmit,\n} from '../../types/utils.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from '../../utils/errors/getContractError.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { WriteContractParameters } from '../wallet/writeContract.js'\nimport { type CallErrorType, type CallParameters, call } from './call.js'\n\nexport type GetMutabilityAwareValue<\n  abi extends Abi | readonly unknown[],\n  mutability extends AbiStateMutability = AbiStateMutability,\n  functionName extends ContractFunctionName<\n    abi,\n    mutability\n  > = ContractFunctionName<abi, mutability>,\n  valueType = TransactionRequest['value'],\n  args extends ContractFunctionArgs<\n    abi,\n    mutability,\n    functionName\n  > = ContractFunctionArgs<abi, mutability, functionName>,\n  abiFunction extends AbiFunction = abi extends Abi\n    ? ExtractAbiFunctionForArgs<abi, mutability, functionName, args>\n    : AbiFunction,\n  _Narrowable extends boolean = IsNarrowable<abi, Abi>,\n> = _Narrowable extends true\n  ? abiFunction['stateMutability'] extends 'payable'\n    ? { value?: NoInfer<valueType> | undefined }\n    : abiFunction['payable'] extends true\n      ? { value?: NoInfer<valueType> | undefined }\n      : { value?: undefined }\n  : { value?: NoInfer<valueType> | undefined }\n\nexport type SimulateContractParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  functionName extends ContractFunctionName<\n    abi,\n    'nonpayable' | 'payable'\n  > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  accountOverride extends Account | Address | null | undefined = undefined,\n  ///\n  derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = {\n  account?: accountOverride | null | undefined\n  chain?: chainOverride | undefined\n  /** Data to append to the end of the calldata. Useful for adding a [\"domain\" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */\n  dataSuffix?: Hex | undefined\n} & ContractFunctionParameters<\n  abi,\n  'nonpayable' | 'payable',\n  functionName,\n  args\n> &\n  UnionOmit<\n    CallParameters<derivedChain>,\n    | 'account'\n    | 'batch'\n    | 'code'\n    | 'to'\n    | 'data'\n    | 'factory'\n    | 'factoryData'\n    | 'value'\n  > &\n  GetMutabilityAwareValue<\n    abi,\n    'nonpayable' | 'payable',\n    functionName,\n    CallParameters<derivedChain> extends CallParameters\n      ? CallParameters<derivedChain>['value']\n      : CallParameters['value'],\n    args\n  >\n\nexport type SimulateContractReturnType<\n  out abi extends Abi | readonly unknown[] = Abi,\n  in out functionName extends ContractFunctionName<\n    abi,\n    'nonpayable' | 'payable'\n  > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  in out args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,\n  /** @ts-expect-error cast variance */\n  out chain extends Chain | undefined = Chain | undefined,\n  out account extends Account | undefined = Account | undefined,\n  out chainOverride extends Chain | undefined = Chain | undefined,\n  out accountOverride extends Account | Address | null | undefined =\n    | Account\n    | Address\n    | null\n    | undefined,\n  ///\n  in out minimizedAbi extends Abi = readonly [\n    ExtractAbiFunctionForArgs<\n      abi extends Abi ? abi : Abi,\n      'nonpayable' | 'payable',\n      functionName,\n      args\n    >,\n  ],\n  out resolvedAccount extends\n    | Account\n    | null\n    | undefined = accountOverride extends Account | Address | null\n    ? ParseAccount<accountOverride>\n    : account,\n> = {\n  result: ContractFunctionReturnType<\n    minimizedAbi,\n    'nonpayable' | 'payable',\n    functionName,\n    args\n  >\n  request: Prettify<\n    UnionEvaluate<\n      UnionOmit<\n        WriteContractParameters<\n          minimizedAbi,\n          functionName,\n          args,\n          chain,\n          undefined,\n          chainOverride\n        >,\n        'account' | 'abi' | 'args' | 'chain' | 'functionName'\n      >\n    > &\n      ContractFunctionParameters<\n        minimizedAbi,\n        'nonpayable' | 'payable',\n        functionName,\n        args\n      > & {\n        chain: DeriveChain<chain, chainOverride>\n      } & (resolvedAccount extends Account | null\n        ? { account: resolvedAccount }\n        : { account?: undefined })\n  >\n}\n\nexport type SimulateContractErrorType =\n  | ParseAccountErrorType\n  | EncodeFunctionDataErrorType\n  | GetContractErrorReturnType<CallErrorType | DecodeFunctionResultErrorType>\n  | ErrorType\n\n/**\n * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n *\n * - Docs: https://viem.sh/docs/contract/simulateContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n *\n * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateContractParameters}\n * @returns The simulation result and write request. {@link SimulateContractReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const result = await simulateContract(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n *   functionName: 'mint',\n *   args: ['69420'],\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function simulateContract<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  const abi extends Abi | readonly unknown[],\n  functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  const args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  >,\n  chainOverride extends Chain | undefined = undefined,\n  accountOverride extends Account | Address | null | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SimulateContractParameters<\n    abi,\n    functionName,\n    args,\n    chain,\n    chainOverride,\n    accountOverride\n  >,\n): Promise<\n  SimulateContractReturnType<\n    abi,\n    functionName,\n    args,\n    chain,\n    account,\n    chainOverride,\n    accountOverride\n  >\n> {\n  const { abi, address, args, dataSuffix, functionName, ...callRequest } =\n    parameters as SimulateContractParameters\n\n  const account = callRequest.account\n    ? parseAccount(callRequest.account)\n    : client.account\n  const calldata = encodeFunctionData({ abi, args, functionName })\n  try {\n    const { data } = await getAction(\n      client,\n      call,\n      'call',\n    )({\n      batch: false,\n      data: `${calldata}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n      to: address,\n      ...callRequest,\n      account,\n    })\n    const result = decodeFunctionResult({\n      abi,\n      args,\n      functionName,\n      data: data || '0x',\n    })\n    const minimizedAbi = abi.filter(\n      (abiItem) =>\n        'name' in abiItem && abiItem.name === parameters.functionName,\n    )\n    return {\n      result,\n      request: {\n        abi: minimizedAbi,\n        address,\n        args,\n        dataSuffix,\n        functionName,\n        ...callRequest,\n        account,\n      },\n    } as unknown as SimulateContractReturnType<\n      abi,\n      functionName,\n      args,\n      chain,\n      account,\n      chainOverride,\n      accountOverride\n    >\n  } catch (error) {\n    throw getContractError(error as BaseError, {\n      abi,\n      address,\n      args,\n      docsPath: '/docs/contract/simulateContract',\n      functionName,\n      sender: account?.address,\n    })\n  }\n}\n","import type { ErrorType } from '../errors/utils.js'\nimport type { MaybePromise } from '../types/utils.js'\n\ntype Callback = ((...args: any[]) => any) | undefined\ntype Callbacks = Record<string, Callback>\n\nexport type ObserveErrorType = ErrorType\n\n/** @internal */\nexport const listenersCache = /*#__PURE__*/ new Map<\n  string,\n  { id: number; fns: Callbacks }[]\n>()\n/** @internal */\nexport const cleanupCache = /*#__PURE__*/ new Map<\n  string,\n  () => void | Promise<void>\n>()\n\ntype EmitFunction<callbacks extends Callbacks> = (\n  emit: callbacks,\n) => MaybePromise<void | (() => void) | (() => Promise<void>)>\n\nlet callbackCount = 0\n\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe<callbacks extends Callbacks>(\n  observerId: string,\n  callbacks: callbacks,\n  fn: EmitFunction<callbacks>,\n) {\n  const callbackId = ++callbackCount\n\n  const getListeners = () => listenersCache.get(observerId) || []\n\n  const unsubscribe = () => {\n    const listeners = getListeners()\n    listenersCache.set(\n      observerId,\n      listeners.filter((cb: any) => cb.id !== callbackId),\n    )\n  }\n\n  const unwatch = () => {\n    const listeners = getListeners()\n    if (!listeners.some((cb: any) => cb.id === callbackId)) return\n    const cleanup = cleanupCache.get(observerId)\n    if (listeners.length === 1 && cleanup) {\n      const p = cleanup()\n      if (p instanceof Promise) p.catch(() => {})\n    }\n    unsubscribe()\n  }\n\n  const listeners = getListeners()\n  listenersCache.set(observerId, [\n    ...listeners,\n    { id: callbackId, fns: callbacks },\n  ])\n\n  if (listeners && listeners.length > 0) return unwatch\n\n  const emit: callbacks = {} as callbacks\n  for (const key in callbacks) {\n    emit[key] = ((\n      ...args: Parameters<NonNullable<callbacks[keyof callbacks]>>\n    ) => {\n      const listeners = getListeners()\n      if (listeners.length === 0) return\n      for (const listener of listeners) listener.fns[key]?.(...args)\n    }) as callbacks[Extract<keyof callbacks, string>]\n  }\n\n  const cleanup = fn(emit)\n  if (typeof cleanup === 'function') cleanupCache.set(observerId, cleanup)\n\n  return unwatch\n}\n","export async function wait(time: number) {\n  return new Promise((res) => setTimeout(res, time))\n}\n","import type { ErrorType } from '../errors/utils.js'\nimport { wait } from './wait.js'\n\ntype PollOptions<data> = {\n  // Whether or not to emit when the polling starts.\n  emitOnBegin?: boolean | undefined\n  // The initial wait time (in ms) before polling.\n  initialWaitTime?: ((data: data | void) => Promise<number>) | undefined\n  // The interval (in ms).\n  interval: number\n}\n\nexport type PollErrorType = ErrorType\n\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll<data>(\n  fn: ({ unpoll }: { unpoll: () => void }) => Promise<data | void>,\n  { emitOnBegin, initialWaitTime, interval }: PollOptions<data>,\n) {\n  let active = true\n\n  const unwatch = () => (active = false)\n\n  const watch = async () => {\n    let data: data | undefined | void\n    if (emitOnBegin) data = await fn({ unpoll: unwatch })\n\n    const initialWait = (await initialWaitTime?.(data)) ?? interval\n    await wait(initialWait)\n\n    const poll = async () => {\n      if (!active) return\n      await fn({ unpoll: unwatch })\n      await wait(interval)\n      poll()\n    }\n\n    poll()\n  }\n  watch()\n\n  return unwatch\n}\n","import type { ErrorType } from '../../errors/utils.js'\n\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new Map()\n/** @internal */\nexport const responseCache = /*#__PURE__*/ new Map()\n\nexport type GetCacheErrorType = ErrorType\n\nexport function getCache<data>(cacheKey: string) {\n  const buildCache = <data>(cacheKey: string, cache: Map<string, data>) => ({\n    clear: () => cache.delete(cacheKey),\n    get: () => cache.get(cacheKey),\n    set: (data: data) => cache.set(cacheKey, data),\n  })\n\n  const promise = buildCache<Promise<data>>(cacheKey, promiseCache)\n  const response = buildCache<{ created: Date; data: data }>(\n    cacheKey,\n    responseCache,\n  )\n\n  return {\n    clear: () => {\n      promise.clear()\n      response.clear()\n    },\n    promise,\n    response,\n  }\n}\n\ntype WithCacheParameters = {\n  /** The key to cache the data against. */\n  cacheKey: string\n  /** The time that cached data will remain in memory. Default: Infinity (no expiry) */\n  cacheTime?: number | undefined\n}\n\n/**\n * @description Returns the result of a given promise, and caches the result for\n * subsequent invocations against a provided cache key.\n */\nexport async function withCache<data>(\n  fn: () => Promise<data>,\n  { cacheKey, cacheTime = Number.POSITIVE_INFINITY }: WithCacheParameters,\n) {\n  const cache = getCache<data>(cacheKey)\n\n  // If a response exists in the cache, and it's not expired, return it\n  // and do not invoke the promise.\n  // If the max age is 0, the cache is disabled.\n  const response = cache.response.get()\n  if (response && cacheTime > 0) {\n    const age = Date.now() - response.created.getTime()\n    if (age < cacheTime) return response.data\n  }\n\n  let promise = cache.promise.get()\n  if (!promise) {\n    promise = fn()\n\n    // Store the promise in the cache so that subsequent invocations\n    // will wait for the same promise to resolve (deduping).\n    cache.promise.set(promise)\n  }\n\n  try {\n    const data = await promise\n\n    // Store the response in the cache so that subsequent invocations\n    // will return the same response.\n    cache.response.set({ created: new Date(), data })\n\n    return data\n  } finally {\n    // Clear the promise cache so that subsequent invocations will\n    // invoke the promise again.\n    cache.promise.clear()\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type GetCacheErrorType,\n  getCache,\n  withCache,\n} from '../../utils/promise/withCache.js'\n\nexport type GetBlockNumberParameters = {\n  /** Time (in ms) that cached block number will remain in memory. */\n  cacheTime?: number | undefined\n}\n\nexport type GetBlockNumberReturnType = bigint\n\nexport type GetBlockNumberErrorType = RequestErrorType | ErrorType\n\nconst cacheKey = (id: string) => `blockNumber.${id}`\n\n/** @internal */\nexport type GetBlockNumberCacheErrorType = GetCacheErrorType | ErrorType\n\n/** @internal */\nexport function getBlockNumberCache(id: string) {\n  return getCache(cacheKey(id))\n}\n\n/**\n * Returns the number of the most recent block seen.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockNumberParameters}\n * @returns The number of the block. {@link GetBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockNumber } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const blockNumber = await getBlockNumber(client)\n * // 69420n\n */\nexport async function getBlockNumber<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { cacheTime = client.cacheTime }: GetBlockNumberParameters = {},\n): Promise<GetBlockNumberReturnType> {\n  const blockNumberHex = await withCache(\n    () =>\n      client.request({\n        method: 'eth_blockNumber',\n      }),\n    { cacheKey: cacheKey(client.uid), cacheTime },\n  )\n  return BigInt(blockNumberHex)\n}\n","import type { Abi, AbiEvent, ExtractAbiEvent } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { RpcLog } from '../../index.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter, FilterType } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { DecodeEventLogErrorType } from '../../utils/abi/decodeEventLog.js'\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type FormatLogErrorType,\n  formatLog,\n} from '../../utils/formatters/log.js'\n\nexport type GetFilterChangesParameters<\n  filterType extends FilterType = FilterType,\n  abi extends Abi | readonly unknown[] | undefined = undefined,\n  eventName extends string | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n> = {\n  filter: Filter<filterType, abi, eventName, any, strict, fromBlock, toBlock>\n}\n\nexport type GetFilterChangesReturnType<\n  filterType extends FilterType = FilterType,\n  abi extends Abi | readonly unknown[] | undefined = undefined,\n  eventName extends string | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  _AbiEvent extends AbiEvent | undefined = abi extends Abi\n    ? eventName extends string\n      ? ExtractAbiEvent<abi, eventName>\n      : undefined\n    : undefined,\n  _Pending extends boolean =\n    | (fromBlock extends 'pending' ? true : false)\n    | (toBlock extends 'pending' ? true : false),\n> = filterType extends 'event'\n  ? Log<bigint, number, _Pending, _AbiEvent, strict, abi, eventName>[]\n  : Hash[]\n\nexport type GetFilterChangesErrorType =\n  | RequestErrorType\n  | DecodeEventLogErrorType\n  | FormatLogErrorType\n  | ErrorType\n\n/**\n * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterChanges\n * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n *\n * A Filter can be created from the following actions:\n *\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * Depending on the type of filter, the return value will be different:\n *\n * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterChangesParameters}\n * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n *\n * @example\n * // Blocks\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n *\n * @example\n * // Contract Events\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createContractEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createContractEventFilter(client, {\n *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n *   abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n *   eventName: 'Transfer',\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Raw Events\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n *   event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterChanges(client, { filter })\n *\n * @example\n * // Transactions\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, getFilterChanges } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * const hashes = await getFilterChanges(client, { filter })\n */\nexport async function getFilterChanges<\n  transport extends Transport,\n  chain extends Chain | undefined,\n  filterType extends FilterType,\n  const abi extends Abi | readonly unknown[] | undefined,\n  eventName extends string | undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n>(\n  _client: Client<transport, chain>,\n  {\n    filter,\n  }: GetFilterChangesParameters<\n    filterType,\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >,\n): Promise<\n  GetFilterChangesReturnType<\n    filterType,\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >\n> {\n  const strict = 'strict' in filter && filter.strict\n\n  const logs = await filter.request({\n    method: 'eth_getFilterChanges',\n    params: [filter.id],\n  })\n\n  if (typeof logs[0] === 'string')\n    return logs as GetFilterChangesReturnType<\n      filterType,\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >\n\n  const formattedLogs = logs.map((log) => formatLog(log as RpcLog))\n  if (!('abi' in filter) || !filter.abi)\n    return formattedLogs as GetFilterChangesReturnType<\n      filterType,\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >\n  return parseEventLogs({\n    abi: filter.abi,\n    logs: formattedLogs,\n    strict,\n  }) as unknown as GetFilterChangesReturnType<\n    filterType,\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type UninstallFilterParameters = {\n  filter: Filter<any>\n}\nexport type UninstallFilterReturnType = boolean\n\nexport type UninstallFilterErrorType = RequestErrorType | ErrorType\n\n/**\n * Destroys a [`Filter`](https://viem.sh/docs/glossary/types#filter).\n *\n * - Docs: https://viem.sh/docs/actions/public/uninstallFilter\n * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n *\n * Destroys a Filter that was created from one of the following Actions:\n * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n *\n * @param client - Client to use\n * @param parameters - {@link UninstallFilterParameters}\n * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n *\n * const filter = await createPendingTransactionFilter(client)\n * const uninstalled = await uninstallFilter(client, { filter })\n * // true\n */\nexport async function uninstallFilter<\n  transport extends Transport,\n  chain extends Chain | undefined,\n>(\n  _client: Client<transport, chain>,\n  { filter }: UninstallFilterParameters,\n): Promise<UninstallFilterReturnType> {\n  return filter.request({\n    method: 'eth_uninstallFilter',\n    params: [filter.id],\n  })\n}\n","import type { Abi, Address, ExtractAbiEvent } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  DecodeLogDataMismatch,\n  DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport { InvalidInputRpcError } from '../../errors/rpc.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractEventArgs,\n  ContractEventName,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport type { LogTopic } from '../../types/misc.js'\nimport type { GetPollOptions } from '../../types/transport.js'\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js'\nimport {\n  type EncodeEventTopicsParameters,\n  encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { formatLog } from '../../utils/formatters/log.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { type ObserveErrorType, observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { type StringifyErrorType, stringify } from '../../utils/stringify.js'\nimport { createContractEventFilter } from './createContractEventFilter.js'\nimport { getBlockNumber } from './getBlockNumber.js'\nimport {\n  type GetContractEventsParameters,\n  getContractEvents,\n} from './getContractEvents.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type WatchContractEventOnLogsParameter<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> = ContractEventName<abi>,\n  strict extends boolean | undefined = undefined,\n> = abi extends Abi\n  ? Abi extends abi\n    ? Log[]\n    : Log<bigint, number, false, ExtractAbiEvent<abi, eventName>, strict>[]\n  : Log[]\n\nexport type WatchContractEventOnLogsFn<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> = ContractEventName<abi>,\n  strict extends boolean | undefined = undefined,\n> = (logs: WatchContractEventOnLogsParameter<abi, eventName, strict>) => void\n\nexport type WatchContractEventParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  eventName extends ContractEventName<abi> | undefined = ContractEventName<abi>,\n  strict extends boolean | undefined = undefined,\n  transport extends Transport = Transport,\n> = {\n  /** The address of the contract. */\n  address?: Address | Address[] | undefined\n  /** Contract ABI. */\n  abi: abi\n  args?:\n    | ContractEventArgs<\n        abi,\n        eventName extends ContractEventName<abi>\n          ? eventName\n          : ContractEventName<abi>\n      >\n    | undefined\n  /** Contract event. */\n  eventName?: eventName | ContractEventName<abi> | undefined\n  /** Block to start listening from. */\n  fromBlock?: BlockNumber<bigint> | undefined\n  /** The callback to call when an error occurred when trying to get for a new block. */\n  onError?: ((error: Error) => void) | undefined\n  /** The callback to call when new event logs are received. */\n  onLogs: WatchContractEventOnLogsFn<\n    abi,\n    eventName extends ContractEventName<abi>\n      ? eventName\n      : ContractEventName<abi>,\n    strict\n  >\n  /**\n   * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n   * @default false\n   */\n  strict?: strict | boolean | undefined\n} & GetPollOptions<transport>\n\nexport type WatchContractEventReturnType = () => void\n\nexport type WatchContractEventErrorType =\n  | StringifyErrorType\n  | ObserveErrorType\n  | ErrorType\n\n/**\n * Watches and returns emitted contract event logs.\n *\n * - Docs: https://viem.sh/docs/contract/watchContractEvent\n *\n * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n *\n * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchContractEventParameters}\n * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchContractEvent } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const unwatch = watchContractEvent(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n *   eventName: 'Transfer',\n *   args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n *   onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchContractEvent<\n  chain extends Chain | undefined,\n  const abi extends Abi | readonly unknown[],\n  eventName extends ContractEventName<abi> | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  transport extends Transport = Transport,\n>(\n  client: Client<transport, chain>,\n  parameters: WatchContractEventParameters<abi, eventName, strict, transport>,\n): WatchContractEventReturnType {\n  const {\n    abi,\n    address,\n    args,\n    batch = true,\n    eventName,\n    fromBlock,\n    onError,\n    onLogs,\n    poll: poll_,\n    pollingInterval = client.pollingInterval,\n    strict: strict_,\n  } = parameters\n\n  const enablePolling = (() => {\n    if (typeof poll_ !== 'undefined') return poll_\n    if (typeof fromBlock === 'bigint') return true\n    if (\n      client.transport.type === 'webSocket' ||\n      client.transport.type === 'ipc'\n    )\n      return false\n    if (\n      client.transport.type === 'fallback' &&\n      (client.transport.transports[0].config.type === 'webSocket' ||\n        client.transport.transports[0].config.type === 'ipc')\n    )\n      return false\n    return true\n  })()\n\n  const pollContractEvent = () => {\n    const strict = strict_ ?? false\n    const observerId = stringify([\n      'watchContractEvent',\n      address,\n      args,\n      batch,\n      client.uid,\n      eventName,\n      pollingInterval,\n      strict,\n      fromBlock,\n    ])\n\n    return observe(observerId, { onLogs, onError }, (emit) => {\n      let previousBlockNumber: bigint\n      if (fromBlock !== undefined) previousBlockNumber = fromBlock - 1n\n      let filter: Filter<'event', abi, eventName> | undefined\n      let initialized = false\n\n      const unwatch = poll(\n        async () => {\n          if (!initialized) {\n            try {\n              filter = (await getAction(\n                client,\n                createContractEventFilter,\n                'createContractEventFilter',\n              )({\n                abi,\n                address,\n                args: args as any,\n                eventName: eventName as any,\n                strict: strict as any,\n                fromBlock,\n              })) as Filter<'event', abi, eventName>\n            } catch {}\n            initialized = true\n            return\n          }\n\n          try {\n            let logs: Log[]\n            if (filter) {\n              logs = await getAction(\n                client,\n                getFilterChanges,\n                'getFilterChanges',\n              )({ filter })\n            } else {\n              // If the filter doesn't exist, we will fall back to use `getLogs`.\n              // The fall back exists because some RPC Providers do not support filters.\n\n              // Fetch the block number to use for `getLogs`.\n              const blockNumber = await getAction(\n                client,\n                getBlockNumber,\n                'getBlockNumber',\n              )({})\n\n              // If the block number has changed, we will need to fetch the logs.\n              // If the block number doesn't exist, we are yet to reach the first poll interval,\n              // so do not emit any logs.\n              if (previousBlockNumber && previousBlockNumber < blockNumber) {\n                logs = await getAction(\n                  client,\n                  getContractEvents,\n                  'getContractEvents',\n                )({\n                  abi,\n                  address,\n                  args,\n                  eventName,\n                  fromBlock: previousBlockNumber + 1n,\n                  toBlock: blockNumber,\n                  strict,\n                } as {} as GetContractEventsParameters)\n              } else {\n                logs = []\n              }\n              previousBlockNumber = blockNumber\n            }\n\n            if (logs.length === 0) return\n            if (batch) emit.onLogs(logs as any)\n            else for (const log of logs) emit.onLogs([log] as any)\n          } catch (err) {\n            // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n            // Reinitialize the filter when this occurs\n            if (filter && err instanceof InvalidInputRpcError)\n              initialized = false\n            emit.onError?.(err as Error)\n          }\n        },\n        {\n          emitOnBegin: true,\n          interval: pollingInterval,\n        },\n      )\n\n      return async () => {\n        if (filter)\n          await getAction(\n            client,\n            uninstallFilter,\n            'uninstallFilter',\n          )({ filter })\n        unwatch()\n      }\n    })\n  }\n\n  const subscribeContractEvent = () => {\n    const strict = strict_ ?? false\n    const observerId = stringify([\n      'watchContractEvent',\n      address,\n      args,\n      batch,\n      client.uid,\n      eventName,\n      pollingInterval,\n      strict,\n    ])\n\n    let active = true\n    let unsubscribe = () => (active = false)\n    return observe(observerId, { onLogs, onError }, (emit) => {\n      ;(async () => {\n        try {\n          const transport = (() => {\n            if (client.transport.type === 'fallback') {\n              const transport = client.transport.transports.find(\n                (transport: ReturnType<Transport>) =>\n                  transport.config.type === 'webSocket' ||\n                  transport.config.type === 'ipc',\n              )\n              if (!transport) return client.transport\n              return transport.value\n            }\n            return client.transport\n          })()\n\n          const topics: LogTopic[] = eventName\n            ? encodeEventTopics({\n                abi: abi,\n                eventName: eventName,\n                args,\n              } as EncodeEventTopicsParameters)\n            : []\n\n          const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n            params: ['logs', { address, topics }],\n            onData(data: any) {\n              if (!active) return\n              const log = data.result\n              try {\n                const { eventName, args } = decodeEventLog({\n                  abi: abi,\n                  data: log.data,\n                  topics: log.topics as any,\n                  strict: strict_,\n                })\n                const formatted = formatLog(log, {\n                  args,\n                  eventName: eventName as string,\n                })\n                emit.onLogs([formatted] as any)\n              } catch (err) {\n                let eventName: string | undefined\n                let isUnnamed: boolean | undefined\n                if (\n                  err instanceof DecodeLogDataMismatch ||\n                  err instanceof DecodeLogTopicsMismatch\n                ) {\n                  // If strict mode is on, and log data/topics do not match event definition, skip.\n                  if (strict_) return\n                  eventName = err.abiItem.name\n                  isUnnamed = err.abiItem.inputs?.some(\n                    (x) => !('name' in x && x.name),\n                  )\n                }\n\n                // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n                const formatted = formatLog(log, {\n                  args: isUnnamed ? [] : {},\n                  eventName,\n                })\n                emit.onLogs([formatted] as any)\n              }\n            },\n            onError(error: Error) {\n              emit.onError?.(error)\n            },\n          })\n          unsubscribe = unsubscribe_\n          if (!active) unsubscribe()\n        } catch (err) {\n          onError?.(err as Error)\n        }\n      })()\n      return () => unsubscribe()\n    })\n  }\n\n  return enablePolling ? pollContractEvent() : subscribeContractEvent()\n}\n","import { BaseError } from './base.js'\n\nexport type AccountNotFoundErrorType = AccountNotFoundError & {\n  name: 'AccountNotFoundError'\n}\nexport class AccountNotFoundError extends BaseError {\n  constructor({ docsPath }: { docsPath?: string | undefined } = {}) {\n    super(\n      [\n        'Could not find an Account to execute with this Action.',\n        'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client.',\n      ].join('\\n'),\n      {\n        docsPath,\n        docsSlug: 'account',\n        name: 'AccountNotFoundError',\n      },\n    )\n  }\n}\n\nexport type AccountTypeNotSupportedErrorType = AccountTypeNotSupportedError & {\n  name: 'AccountTypeNotSupportedError'\n}\nexport class AccountTypeNotSupportedError extends BaseError {\n  constructor({\n    docsPath,\n    metaMessages,\n    type,\n  }: {\n    docsPath?: string | undefined\n    metaMessages?: string[] | undefined\n    type: string\n  }) {\n    super(`Account type \"${type}\" is not supported.`, {\n      docsPath,\n      metaMessages,\n      name: 'AccountTypeNotSupportedError',\n    })\n  }\n}\n","import {\n  ChainMismatchError,\n  type ChainMismatchErrorType,\n  ChainNotFoundError,\n  type ChainNotFoundErrorType,\n} from '../../errors/chain.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\n\nexport type AssertCurrentChainParameters = {\n  chain?: Chain | undefined\n  currentChainId: number\n}\n\nexport type AssertCurrentChainErrorType =\n  | ChainNotFoundErrorType\n  | ChainMismatchErrorType\n  | ErrorType\n\nexport function assertCurrentChain({\n  chain,\n  currentChainId,\n}: AssertCurrentChainParameters): void {\n  if (!chain) throw new ChainNotFoundError()\n  if (currentChainId !== chain.id)\n    throw new ChainMismatchError({ chain, currentChainId })\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { UnknownNodeError } from '../../errors/node.js'\nimport {\n  TransactionExecutionError,\n  type TransactionExecutionErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\n\nimport {\n  type GetNodeErrorParameters,\n  type GetNodeErrorReturnType,\n  getNodeError,\n} from './getNodeError.js'\n\nexport type GetTransactionErrorParameters = Omit<\n  SendTransactionParameters,\n  'account' | 'chain'\n> & {\n  account: Account | null\n  chain?: Chain | undefined\n  docsPath?: string | undefined\n}\n\nexport type GetTransactionErrorReturnType<cause = ErrorType> = Omit<\n  TransactionExecutionErrorType,\n  'cause'\n> & { cause: cause | GetNodeErrorReturnType }\n\nexport function getTransactionError<err extends ErrorType<string>>(\n  err: err,\n  { docsPath, ...args }: GetTransactionErrorParameters,\n): GetTransactionErrorReturnType<err> {\n  const cause = (() => {\n    const cause = getNodeError(\n      err as {} as BaseError,\n      args as GetNodeErrorParameters,\n    )\n    if (cause instanceof UnknownNodeError) return err as {} as BaseError\n    return cause\n  })()\n  return new TransactionExecutionError(cause, {\n    docsPath,\n    ...args,\n  }) as GetTransactionErrorReturnType<err>\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { TransactionSerializedGeneric } from '../../types/transaction.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type SendRawTransactionParameters = {\n  /** The signed serialized transaction. */\n  serializedTransaction: TransactionSerializedGeneric\n}\n\nexport type SendRawTransactionReturnType = Hash\n\nexport type SendRawTransactionErrorType = RequestErrorType | ErrorType\n\n/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n *   serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { serializedTransaction }: SendRawTransactionParameters,\n): Promise<SendRawTransactionReturnType> {\n  return client.request(\n    {\n      method: 'eth_sendRawTransaction',\n      params: [serializedTransaction],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { SignTransactionErrorType } from '../../accounts/utils/signTransaction.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  AccountNotFoundError,\n  type AccountNotFoundErrorType,\n  AccountTypeNotSupportedError,\n  type AccountTypeNotSupportedErrorType,\n} from '../../errors/account.js'\nimport { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type {\n  Chain,\n  DeriveChain,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type { UnionOmit } from '../../types/utils.js'\nimport {\n  type RecoverAuthorizationAddressErrorType,\n  recoverAuthorizationAddress,\n} from '../../utils/authorization/recoverAuthorizationAddress.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type AssertCurrentChainErrorType,\n  assertCurrentChain,\n} from '../../utils/chain/assertCurrentChain.js'\nimport {\n  type GetTransactionErrorReturnType,\n  getTransactionError,\n} from '../../utils/errors/getTransactionError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n  type FormattedTransactionRequest,\n  formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { LruMap } from '../../utils/lru.js'\nimport {\n  type AssertRequestErrorType,\n  type AssertRequestParameters,\n  assertRequest,\n} from '../../utils/transaction/assertRequest.js'\nimport { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'\nimport {\n  defaultParameters,\n  type PrepareTransactionRequestErrorType,\n  prepareTransactionRequest,\n} from './prepareTransactionRequest.js'\nimport {\n  type SendRawTransactionErrorType,\n  sendRawTransaction,\n} from './sendRawTransaction.js'\n\nconst supportsWalletNamespace = new LruMap<boolean>(128)\n\nexport type SendTransactionRequest<\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  ///\n  _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'> &\n  GetTransactionRequestKzgParameter\n\nexport type SendTransactionParameters<\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  request extends SendTransactionRequest<\n    chain,\n    chainOverride\n  > = SendTransactionRequest<chain, chainOverride>,\n> = request &\n  GetAccountParameter<account, Account | Address, true, true> &\n  GetChainParameter<chain, chainOverride> &\n  GetTransactionRequestKzgParameter<request>\n\nexport type SendTransactionReturnType = Hash\n\nexport type SendTransactionErrorType =\n  | ParseAccountErrorType\n  | GetTransactionErrorReturnType<\n      | AccountNotFoundErrorType\n      | AccountTypeNotSupportedErrorType\n      | AssertCurrentChainErrorType\n      | AssertRequestErrorType\n      | GetChainIdErrorType\n      | PrepareTransactionRequestErrorType\n      | SendRawTransactionErrorType\n      | RecoverAuthorizationAddressErrorType\n      | SignTransactionErrorType\n      | RequestErrorType\n    >\n  | ErrorType\n\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n *   - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *   value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *   value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  const request extends SendTransactionRequest<chain, chainOverride>,\n  chainOverride extends Chain | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SendTransactionParameters<chain, account, chainOverride, request>,\n): Promise<SendTransactionReturnType> {\n  const {\n    account: account_ = client.account,\n    chain = client.chain,\n    accessList,\n    authorizationList,\n    blobs,\n    data,\n    gas,\n    gasPrice,\n    maxFeePerBlobGas,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    nonce,\n    type,\n    value,\n    ...rest\n  } = parameters\n\n  if (typeof account_ === 'undefined')\n    throw new AccountNotFoundError({\n      docsPath: '/docs/actions/wallet/sendTransaction',\n    })\n  const account = account_ ? parseAccount(account_) : null\n\n  try {\n    assertRequest(parameters as AssertRequestParameters)\n\n    const to = await (async () => {\n      // If `to` exists on the parameters, use that.\n      if (parameters.to) return parameters.to\n\n      // If `to` is null, we are sending a deployment transaction.\n      if (parameters.to === null) return undefined\n\n      // If no `to` exists, and we are sending a EIP-7702 transaction, use the\n      // address of the first authorization in the list.\n      if (authorizationList && authorizationList.length > 0)\n        return await recoverAuthorizationAddress({\n          authorization: authorizationList[0],\n        }).catch(() => {\n          throw new BaseError(\n            '`to` is required. Could not infer from `authorizationList`.',\n          )\n        })\n\n      // Otherwise, we are sending a deployment transaction.\n      return undefined\n    })()\n\n    if (account?.type === 'json-rpc' || account === null) {\n      let chainId: number | undefined\n      if (chain !== null) {\n        chainId = await getAction(client, getChainId, 'getChainId')({})\n        assertCurrentChain({\n          currentChainId: chainId,\n          chain,\n        })\n      }\n\n      const chainFormat = client.chain?.formatters?.transactionRequest?.format\n      const format = chainFormat || formatTransactionRequest\n\n      const request = format({\n        // Pick out extra data that might exist on the chain's transaction request type.\n        ...extract(rest, { format: chainFormat }),\n        accessList,\n        authorizationList,\n        blobs,\n        chainId,\n        data,\n        from: account?.address,\n        gas,\n        gasPrice,\n        maxFeePerBlobGas,\n        maxFeePerGas,\n        maxPriorityFeePerGas,\n        nonce,\n        to,\n        type,\n        value,\n      } as TransactionRequest)\n\n      const isWalletNamespaceSupported = supportsWalletNamespace.get(client.uid)\n      const method = isWalletNamespaceSupported\n        ? 'wallet_sendTransaction'\n        : 'eth_sendTransaction'\n\n      try {\n        return await client.request(\n          {\n            method,\n            params: [request],\n          },\n          { retryCount: 0 },\n        )\n      } catch (e) {\n        if (isWalletNamespaceSupported === false) throw e\n\n        const error = e as BaseError\n        // If the transport does not support the method or input, attempt to use the\n        // `wallet_sendTransaction` method.\n        if (\n          error.name === 'InvalidInputRpcError' ||\n          error.name === 'InvalidParamsRpcError' ||\n          error.name === 'MethodNotFoundRpcError' ||\n          error.name === 'MethodNotSupportedRpcError'\n        ) {\n          return await client\n            .request(\n              {\n                method: 'wallet_sendTransaction',\n                params: [request],\n              },\n              { retryCount: 0 },\n            )\n            .then((hash) => {\n              supportsWalletNamespace.set(client.uid, true)\n              return hash\n            })\n            .catch((e) => {\n              const walletNamespaceError = e as BaseError\n              if (\n                walletNamespaceError.name === 'MethodNotFoundRpcError' ||\n                walletNamespaceError.name === 'MethodNotSupportedRpcError'\n              ) {\n                supportsWalletNamespace.set(client.uid, false)\n                throw error\n              }\n\n              throw walletNamespaceError\n            })\n        }\n\n        throw error\n      }\n    }\n\n    if (account?.type === 'local') {\n      // Prepare the request for signing (assign appropriate fees, etc.)\n      const request = await getAction(\n        client,\n        prepareTransactionRequest,\n        'prepareTransactionRequest',\n      )({\n        account,\n        accessList,\n        authorizationList,\n        blobs,\n        chain,\n        data,\n        gas,\n        gasPrice,\n        maxFeePerBlobGas,\n        maxFeePerGas,\n        maxPriorityFeePerGas,\n        nonce,\n        nonceManager: account.nonceManager,\n        parameters: [...defaultParameters, 'sidecars'],\n        type,\n        value,\n        ...rest,\n        to,\n      } as any)\n\n      const serializer = chain?.serializers?.transaction\n      const serializedTransaction = (await account.signTransaction(request, {\n        serializer,\n      })) as Hash\n      return await getAction(\n        client,\n        sendRawTransaction,\n        'sendRawTransaction',\n      )({\n        serializedTransaction,\n      })\n    }\n\n    if (account?.type === 'smart')\n      throw new AccountTypeNotSupportedError({\n        metaMessages: [\n          'Consider using the `sendUserOperation` Action instead.',\n        ],\n        docsPath: '/docs/actions/bundler/sendUserOperation',\n        type: 'smart',\n      })\n\n    throw new AccountTypeNotSupportedError({\n      docsPath: '/docs/actions/wallet/sendTransaction',\n      type: (account as any)?.type,\n    })\n  } catch (err) {\n    if (err instanceof AccountTypeNotSupportedError) throw err\n    throw getTransactionError(err as BaseError, {\n      ...parameters,\n      account,\n      chain: parameters.chain || undefined,\n    })\n  }\n}\n","import type { Abi, Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  AccountNotFoundError,\n  type AccountNotFoundErrorType,\n} from '../../errors/account.js'\nimport type { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type {\n  Chain,\n  DeriveChain,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type {\n  ContractFunctionArgs,\n  ContractFunctionName,\n  ContractFunctionParameters,\n} from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Prettify, UnionEvaluate, UnionOmit } from '../../types/utils.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  type EncodeFunctionDataParameters,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from '../../utils/errors/getContractError.js'\nimport type { FormattedTransactionRequest } from '../../utils/formatters/transactionRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { GetMutabilityAwareValue } from '../public/simulateContract.js'\nimport {\n  type SendTransactionErrorType,\n  type SendTransactionReturnType,\n  sendTransaction,\n} from './sendTransaction.js'\n\nexport type WriteContractParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  functionName extends ContractFunctionName<\n    abi,\n    'nonpayable' | 'payable'\n  > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  ///\n  allFunctionNames = ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = ContractFunctionParameters<\n  abi,\n  'nonpayable' | 'payable',\n  functionName,\n  args,\n  false,\n  allFunctionNames\n> &\n  GetChainParameter<chain, chainOverride> &\n  Prettify<\n    GetAccountParameter<account, Account | Address, true, true> &\n      GetMutabilityAwareValue<\n        abi,\n        'nonpayable' | 'payable',\n        functionName,\n        FormattedTransactionRequest<derivedChain>['value'],\n        args\n      > & {\n        /** Data to append to the end of the calldata. Useful for adding a [\"domain\" tag](https://opensea.notion.site/opensea/Seaport-Order-Attributions-ec2d69bf455041a5baa490941aad307f). */\n        dataSuffix?: Hex | undefined\n      }\n  > &\n  UnionEvaluate<\n    UnionOmit<\n      FormattedTransactionRequest<derivedChain>,\n      'data' | 'from' | 'to' | 'value'\n    >\n  >\n\nexport type WriteContractReturnType = SendTransactionReturnType\n\nexport type WriteContractErrorType =\n  | EncodeFunctionDataErrorType\n  | AccountNotFoundErrorType\n  | ParseAccountErrorType\n  | GetContractErrorReturnType<SendTransactionErrorType>\n  | ErrorType\n\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n *   functionName: 'mint',\n *   args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n *   functionName: 'mint',\n *   args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  const abi extends Abi | readonly unknown[],\n  functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n  args extends ContractFunctionArgs<\n    abi,\n    'nonpayable' | 'payable',\n    functionName\n  >,\n  chainOverride extends Chain | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: WriteContractParameters<\n    abi,\n    functionName,\n    args,\n    chain,\n    account,\n    chainOverride\n  >,\n): Promise<WriteContractReturnType> {\n  const {\n    abi,\n    account: account_ = client.account,\n    address,\n    args,\n    dataSuffix,\n    functionName,\n    ...request\n  } = parameters as WriteContractParameters\n\n  if (typeof account_ === 'undefined')\n    throw new AccountNotFoundError({\n      docsPath: '/docs/contract/writeContract',\n    })\n  const account = account_ ? parseAccount(account_) : null\n\n  const data = encodeFunctionData({\n    abi,\n    args,\n    functionName,\n  } as EncodeFunctionDataParameters)\n\n  try {\n    return await getAction(\n      client,\n      sendTransaction,\n      'sendTransaction',\n    )({\n      data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n      to: address,\n      account,\n      ...request,\n    })\n  } catch (error) {\n    throw getContractError(error as BaseError, {\n      abi,\n      address,\n      args,\n      docsPath: '/docs/contract/writeContract',\n      functionName,\n      sender: account?.address,\n    })\n  }\n}\n","import type { GetCallsStatusReturnType } from '../actions/wallet/getCallsStatus.js'\nimport { BaseError } from './base.js'\n\nexport type BundleFailedErrorType = BundleFailedError & {\n  name: 'BundleFailedError'\n}\nexport class BundleFailedError extends BaseError {\n  result: GetCallsStatusReturnType\n\n  constructor(result: GetCallsStatusReturnType) {\n    super(`Call bundle failed with status: ${result.statusCode}`, {\n      name: 'BundleFailedError',\n    })\n\n    this.result = result\n  }\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport { wait } from '../wait.js'\n\nexport type WithRetryParameters = {\n  // The delay (in ms) between retries.\n  delay?:\n    | ((config: { count: number; error: Error }) => number)\n    | number\n    | undefined\n  // The max number of times to retry.\n  retryCount?: number | undefined\n  // Whether or not to retry when an error is thrown.\n  shouldRetry?:\n    | (({\n        count,\n        error,\n      }: {\n        count: number\n        error: Error\n      }) => Promise<boolean> | boolean)\n    | undefined\n}\n\nexport type WithRetryErrorType = ErrorType\n\nexport function withRetry<data>(\n  fn: () => Promise<data>,\n  {\n    delay: delay_ = 100,\n    retryCount = 2,\n    shouldRetry = () => true,\n  }: WithRetryParameters = {},\n) {\n  return new Promise<data>((resolve, reject) => {\n    const attemptRetry = async ({ count = 0 } = {}) => {\n      const retry = async ({ error }: { error: Error }) => {\n        const delay =\n          typeof delay_ === 'function' ? delay_({ count, error }) : delay_\n        if (delay) await wait(delay)\n        attemptRetry({ count: count + 1 })\n      }\n\n      try {\n        const data = await fn()\n        resolve(data)\n      } catch (err) {\n        if (\n          count < retryCount &&\n          (await shouldRetry({ count, error: err as Error }))\n        )\n          return retry({ error: err as Error })\n        reject(err)\n      }\n    }\n    attemptRetry()\n  })\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type {\n  Chain,\n  ExtractChainFormatterReturnType,\n} from '../../types/chain.js'\nimport type { RpcTransactionReceipt } from '../../types/rpc.js'\nimport type { TransactionReceipt } from '../../types/transaction.js'\nimport type { ExactPartial } from '../../types/utils.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nimport { type DefineFormatterErrorType, defineFormatter } from './formatter.js'\nimport { formatLog } from './log.js'\nimport { transactionType } from './transaction.js'\n\nexport type FormattedTransactionReceipt<\n  chain extends Chain | undefined = undefined,\n> = ExtractChainFormatterReturnType<\n  chain,\n  'transactionReceipt',\n  TransactionReceipt\n>\n\nexport const receiptStatuses = {\n  '0x0': 'reverted',\n  '0x1': 'success',\n} as const\n\nexport type FormatTransactionReceiptErrorType = ErrorType\n\nexport function formatTransactionReceipt(\n  transactionReceipt: ExactPartial<RpcTransactionReceipt>,\n) {\n  const receipt = {\n    ...transactionReceipt,\n    blockNumber: transactionReceipt.blockNumber\n      ? BigInt(transactionReceipt.blockNumber)\n      : null,\n    contractAddress: transactionReceipt.contractAddress\n      ? transactionReceipt.contractAddress\n      : null,\n    cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n      ? BigInt(transactionReceipt.cumulativeGasUsed)\n      : null,\n    effectiveGasPrice: transactionReceipt.effectiveGasPrice\n      ? BigInt(transactionReceipt.effectiveGasPrice)\n      : null,\n    gasUsed: transactionReceipt.gasUsed\n      ? BigInt(transactionReceipt.gasUsed)\n      : null,\n    logs: transactionReceipt.logs\n      ? transactionReceipt.logs.map((log) => formatLog(log))\n      : null,\n    to: transactionReceipt.to ? transactionReceipt.to : null,\n    transactionIndex: transactionReceipt.transactionIndex\n      ? hexToNumber(transactionReceipt.transactionIndex)\n      : null,\n    status: transactionReceipt.status\n      ? receiptStatuses[transactionReceipt.status]\n      : null,\n    type: transactionReceipt.type\n      ? transactionType[\n          transactionReceipt.type as keyof typeof transactionType\n        ] || transactionReceipt.type\n      : null,\n  } as TransactionReceipt\n\n  if (transactionReceipt.blobGasPrice)\n    receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice)\n  if (transactionReceipt.blobGasUsed)\n    receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed)\n\n  return receipt\n}\n\nexport type DefineTransactionReceiptErrorType =\n  | DefineFormatterErrorType\n  | ErrorType\n\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter(\n  'transactionReceipt',\n  formatTransactionReceipt,\n)\n","import type { Address, Narrow } from 'abitype'\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { BaseError } from '../../errors/base.js'\nimport {\n  AtomicityNotSupportedError,\n  UnsupportedNonOptionalCapabilityError,\n} from '../../errors/rpc.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account, GetAccountParameter } from '../../types/account.js'\nimport type { Call, Calls } from '../../types/calls.js'\nimport type { ExtractCapabilities } from '../../types/capabilities.js'\nimport type { Chain, DeriveChain } from '../../types/chain.js'\nimport type { WalletSendCallsParameters } from '../../types/eip1193.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport { encodeFunctionData } from '../../utils/abi/encodeFunctionData.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { concat } from '../../utils/data/concat.js'\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport { getTransactionError } from '../../utils/errors/getTransactionError.js'\nimport { sendTransaction } from './sendTransaction.js'\n\nexport const fallbackMagicIdentifier =\n  '0x5792579257925792579257925792579257925792579257925792579257925792'\nexport const fallbackTransactionErrorMagicIdentifier = numberToHex(0, {\n  size: 32,\n})\n\nexport type SendCallsParameters<\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  calls extends readonly unknown[] = readonly unknown[],\n  //\n  _chain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = {\n  chain?: chainOverride | Chain | undefined\n  calls: Calls<Narrow<calls>>\n  capabilities?: ExtractCapabilities<'sendCalls', 'Request'> | undefined\n  experimental_fallback?: boolean | undefined\n  experimental_fallbackDelay?: number | undefined\n  forceAtomic?: boolean | undefined\n  id?: string | undefined\n  version?: WalletSendCallsParameters[number]['version'] | undefined\n} & GetAccountParameter<account, Account | Address, false, true>\n\nexport type SendCallsReturnType = Prettify<{\n  capabilities?: ExtractCapabilities<'sendCalls', 'ReturnType'> | undefined\n  id: string\n}>\n\nexport type SendCallsErrorType = RequestErrorType | ErrorType\n\n/**\n * Requests the connected wallet to send a batch of calls.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendCalls\n * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Transaction identifier. {@link SendCallsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendCalls } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const id = await sendCalls(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   calls: [\n *     {\n *       data: '0xdeadbeef',\n *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *     },\n *     {\n *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *       value: 69420n,\n *     },\n *   ],\n * })\n */\nexport async function sendCalls<\n  const calls extends readonly unknown[],\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n  chainOverride extends Chain | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SendCallsParameters<chain, account, chainOverride, calls>,\n): Promise<SendCallsReturnType> {\n  const {\n    account: account_ = client.account,\n    capabilities,\n    chain = client.chain,\n    experimental_fallback,\n    experimental_fallbackDelay = 32,\n    forceAtomic = false,\n    id,\n    version = '2.0.0',\n  } = parameters\n\n  const account = account_ ? parseAccount(account_) : null\n\n  const calls = parameters.calls.map((call_: unknown) => {\n    const call = call_ as Call\n\n    const data = call.abi\n      ? encodeFunctionData({\n          abi: call.abi,\n          functionName: call.functionName,\n          args: call.args,\n        })\n      : call.data\n\n    return {\n      data: call.dataSuffix && data ? concat([data, call.dataSuffix]) : data,\n      to: call.to,\n      value: call.value ? numberToHex(call.value) : undefined,\n    }\n  })\n\n  try {\n    const response = await client.request(\n      {\n        method: 'wallet_sendCalls',\n        params: [\n          {\n            atomicRequired: forceAtomic,\n            calls,\n            capabilities,\n            chainId: numberToHex(chain!.id),\n            from: account?.address,\n            id,\n            version,\n          },\n        ],\n      },\n      { retryCount: 0 },\n    )\n    if (typeof response === 'string') return { id: response }\n    return response as never\n  } catch (err) {\n    const error = err as BaseError\n\n    // If the transport does not support EIP-5792, fall back to\n    // `eth_sendTransaction`.\n    if (\n      experimental_fallback &&\n      (error.name === 'MethodNotFoundRpcError' ||\n        error.name === 'MethodNotSupportedRpcError' ||\n        error.name === 'UnknownRpcError' ||\n        error.details\n          .toLowerCase()\n          .includes('does not exist / is not available') ||\n        error.details.toLowerCase().includes('missing or invalid. request()') ||\n        error.details\n          .toLowerCase()\n          .includes('did not match any variant of untagged enum') ||\n        error.details\n          .toLowerCase()\n          .includes('account upgraded to unsupported contract') ||\n        error.details.toLowerCase().includes('eip-7702 not supported') ||\n        error.details.toLowerCase().includes('unsupported wc_ method') ||\n        error.details.toLowerCase().includes('feature toggled misconfigured'))\n    ) {\n      if (capabilities) {\n        const hasNonOptionalCapability = Object.values(capabilities).some(\n          (capability) => !capability.optional,\n        )\n        if (hasNonOptionalCapability) {\n          const message =\n            'non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.'\n          throw new UnsupportedNonOptionalCapabilityError(\n            new BaseError(message, {\n              details: message,\n            }),\n          )\n        }\n      }\n      if (forceAtomic && calls.length > 1) {\n        const message =\n          '`forceAtomic` is not supported on fallback to `eth_sendTransaction`.'\n        throw new AtomicityNotSupportedError(\n          new BaseError(message, {\n            details: message,\n          }),\n        )\n      }\n\n      const promises: Promise<Hex>[] = []\n      for (const call of calls) {\n        const promise = sendTransaction(client, {\n          account,\n          chain,\n          data: call.data,\n          to: call.to,\n          value: call.value ? hexToBigInt(call.value) : undefined,\n        })\n        promises.push(promise)\n\n        // Note: some browser wallets require a small delay between transactions\n        // to prevent duplicate JSON-RPC requests.\n        if (experimental_fallbackDelay > 0)\n          await new Promise((resolve) =>\n            setTimeout(resolve, experimental_fallbackDelay),\n          )\n      }\n\n      const results = await Promise.allSettled(promises)\n      if (results.every((r) => r.status === 'rejected')) throw results[0].reason\n\n      const hashes = results.map((result) => {\n        if (result.status === 'fulfilled') return result.value\n        return fallbackTransactionErrorMagicIdentifier\n      })\n      return {\n        id: concat([\n          ...hashes,\n          numberToHex(chain!.id, { size: 32 }),\n          fallbackMagicIdentifier,\n        ]),\n      }\n    }\n\n    throw getTransactionError(err as BaseError, {\n      ...parameters,\n      account,\n      chain: parameters.chain!,\n    })\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { ExtractCapabilities } from '../../types/capabilities.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletGetCallsStatusReturnType } from '../../types/eip1193.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RpcTransactionReceipt } from '../../types/rpc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { sliceHex } from '../../utils/data/slice.js'\nimport { trim } from '../../utils/data/trim.js'\nimport { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js'\nimport { receiptStatuses } from '../../utils/formatters/transactionReceipt.js'\nimport {\n  fallbackMagicIdentifier,\n  fallbackTransactionErrorMagicIdentifier,\n} from './sendCalls.js'\n\nexport type GetCallsStatusParameters = { id: string }\n\nexport type GetCallsStatusReturnType = Prettify<\n  Omit<\n    WalletGetCallsStatusReturnType<\n      ExtractCapabilities<'getCallsStatus', 'ReturnType'>,\n      number,\n      bigint,\n      'success' | 'reverted'\n    >,\n    'status'\n  > & {\n    statusCode: number\n    status: 'pending' | 'success' | 'failure' | undefined\n  }\n>\n\nexport type GetCallsStatusErrorType = RequestErrorType | ErrorType\n\n/**\n * Returns the status of a call batch that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link GetCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const { receipts, status } = await getCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function getCallsStatus<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: GetCallsStatusParameters,\n): Promise<GetCallsStatusReturnType> {\n  async function getStatus(id: Hex) {\n    const isTransactions = id.endsWith(fallbackMagicIdentifier.slice(2))\n    if (isTransactions) {\n      const chainId = trim(sliceHex(id, -64, -32))\n      const hashes = sliceHex(id, 0, -64)\n        .slice(2)\n        .match(/.{1,64}/g)\n\n      const receipts = await Promise.all(\n        hashes!.map((hash) =>\n          fallbackTransactionErrorMagicIdentifier.slice(2) !== hash\n            ? client.request(\n                {\n                  method: 'eth_getTransactionReceipt',\n                  params: [`0x${hash}`],\n                },\n                { dedupe: true },\n              )\n            : undefined,\n        ),\n      )\n\n      const status = (() => {\n        if (receipts.some((r) => r === null)) return 100 // pending\n        if (receipts.every((r) => r?.status === '0x1')) return 200 // success\n        if (receipts.every((r) => r?.status === '0x0')) return 500 // complete failure\n        return 600 // partial failure\n      })()\n\n      return {\n        atomic: false,\n        chainId: hexToNumber(chainId),\n        receipts: receipts.filter(Boolean) as RpcTransactionReceipt[],\n        status,\n        version: '2.0.0',\n      }\n    }\n    return client.request({\n      method: 'wallet_getCallsStatus',\n      params: [id],\n    })\n  }\n\n  const {\n    atomic = false,\n    chainId,\n    receipts,\n    version = '2.0.0',\n    ...response\n  } = await getStatus(parameters.id as Hex)\n  const [status, statusCode] = (() => {\n    const statusCode = response.status\n    if (statusCode >= 100 && statusCode < 200)\n      return ['pending', statusCode] as const\n    if (statusCode >= 200 && statusCode < 300)\n      return ['success', statusCode] as const\n    if (statusCode >= 300 && statusCode < 700)\n      return ['failure', statusCode] as const\n    // @ts-expect-error: for backwards compatibility\n    if (statusCode === 'CONFIRMED') return ['success', 200] as const\n    // @ts-expect-error: for backwards compatibility\n    if (statusCode === 'PENDING') return ['pending', 100] as const\n    return [undefined, statusCode]\n  })()\n  return {\n    ...response,\n    atomic,\n    // @ts-expect-error: for backwards compatibility\n    chainId: chainId ? hexToNumber(chainId) : undefined,\n    receipts:\n      receipts?.map((receipt) => ({\n        ...receipt,\n        blockNumber: hexToBigInt(receipt.blockNumber),\n        gasUsed: hexToBigInt(receipt.gasUsed),\n        status: receiptStatuses[receipt.status as '0x0' | '0x1'],\n      })) ?? [],\n    statusCode,\n    status,\n    version,\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { BaseError } from '../../errors/base.js'\nimport { BundleFailedError } from '../../errors/calls.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport { type ObserveErrorType, observe } from '../../utils/observe.js'\nimport { type PollErrorType, poll } from '../../utils/poll.js'\nimport { withResolvers } from '../../utils/promise/withResolvers.js'\nimport {\n  type WithRetryParameters,\n  withRetry,\n} from '../../utils/promise/withRetry.js'\nimport { stringify } from '../../utils/stringify.js'\nimport {\n  type GetCallsStatusErrorType,\n  type GetCallsStatusReturnType,\n  getCallsStatus,\n} from './getCallsStatus.js'\n\nexport type WaitForCallsStatusParameters = {\n  /**\n   * The id of the call batch to wait for.\n   */\n  id: string\n  /**\n   * Polling frequency (in ms). Defaults to the client's pollingInterval config.\n   *\n   * @default client.pollingInterval\n   */\n  pollingInterval?: number | undefined\n  /**\n   * Number of times to retry if the call bundle failed.\n   * @default 4 (exponential backoff)\n   */\n  retryCount?: WithRetryParameters['retryCount'] | undefined\n  /**\n   * Time to wait (in ms) between retries.\n   * @default `({ count }) => ~~(1 << count) * 200` (exponential backoff)\n   */\n  retryDelay?: WithRetryParameters['delay'] | undefined\n  /**\n   * The status range to wait for.\n   *\n   * @default (status) => status >= 200\n   */\n  status?: ((parameters: GetCallsStatusReturnType) => boolean) | undefined\n  /**\n   * Whether to throw an error if the call bundle fails.\n   *\n   * @default false\n   */\n  throwOnFailure?: boolean | undefined\n  /**\n   * Optional timeout (in milliseconds) to wait before stopping polling.\n   *\n   * @default 60_000\n   */\n  timeout?: number | undefined\n}\n\nexport type WaitForCallsStatusReturnType = GetCallsStatusReturnType\n\nexport type WaitForCallsStatusErrorType =\n  | ObserveErrorType\n  | PollErrorType\n  | GetCallsStatusErrorType\n  | WaitForCallsStatusTimeoutError\n  | ErrorType\n\n/**\n * Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus\n * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForCallsStatusParameters}\n * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { waitForCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n *\n * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function waitForCallsStatus<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: WaitForCallsStatusParameters,\n): Promise<WaitForCallsStatusReturnType> {\n  const {\n    id,\n    pollingInterval = client.pollingInterval,\n    status = ({ statusCode }) => statusCode === 200 || statusCode >= 300,\n    retryCount = 4,\n    retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\n    timeout = 60_000,\n    throwOnFailure = false,\n  } = parameters\n  const observerId = stringify(['waitForCallsStatus', client.uid, id])\n\n  const { promise, resolve, reject } =\n    withResolvers<WaitForCallsStatusReturnType>()\n\n  let timer: Timer | undefined\n\n  const unobserve = observe(observerId, { resolve, reject }, (emit) => {\n    const unpoll = poll(\n      async () => {\n        const done = (fn: () => void) => {\n          clearTimeout(timer)\n          unpoll()\n          fn()\n          unobserve()\n        }\n\n        try {\n          const result = await withRetry(\n            async () => {\n              const result = await getCallsStatus(client, { id })\n              if (throwOnFailure && result.status === 'failure')\n                throw new BundleFailedError(result)\n              return result\n            },\n            {\n              retryCount,\n              delay: retryDelay,\n            },\n          )\n          if (!status(result)) return\n          done(() => emit.resolve(result))\n        } catch (error) {\n          done(() => emit.reject(error))\n        }\n      },\n      {\n        interval: pollingInterval,\n        emitOnBegin: true,\n      },\n    )\n\n    return unpoll\n  })\n\n  timer = timeout\n    ? setTimeout(() => {\n        unobserve()\n        clearTimeout(timer)\n        reject(new WaitForCallsStatusTimeoutError({ id }))\n      }, timeout)\n    : undefined\n\n  return await promise\n}\n\nexport type WaitForCallsStatusTimeoutErrorType =\n  WaitForCallsStatusTimeoutError & {\n    name: 'WaitForCallsStatusTimeoutError'\n  }\nexport class WaitForCallsStatusTimeoutError extends BaseError {\n  constructor({ id }: { id: string }) {\n    super(\n      `Timed out while waiting for call bundle with id \"${id}\" to be confirmed.`,\n      { name: 'WaitForCallsStatusTimeoutError' },\n    )\n  }\n}\n","const size = 256\nlet index = size\nlet buffer: string\n\nexport function uid(length = 11) {\n  if (!buffer || index + length > size * 2) {\n    buffer = ''\n    index = 0\n    for (let i = 0; i < size; i++) {\n      buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1)\n    }\n  }\n  return buffer.substring(index, index++ + length)\n}\n","import type { Address } from 'abitype'\n\nimport type { JsonRpcAccount } from '../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../accounts/utils/parseAccount.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Account } from '../types/account.js'\nimport type { BlockTag } from '../types/block.js'\nimport type { Chain } from '../types/chain.js'\nimport type {\n  EIP1193RequestFn,\n  EIP1474Methods,\n  RpcSchema,\n} from '../types/eip1193.js'\nimport type { ExactPartial, Prettify } from '../types/utils.js'\nimport type {\n  CcipRequestParameters,\n  CcipRequestReturnType,\n} from '../utils/ccip.js'\nimport { uid } from '../utils/uid.js'\nimport type { PublicActions } from './decorators/public.js'\nimport type { WalletActions } from './decorators/wallet.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type ClientConfig<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  accountOrAddress extends Account | Address | undefined =\n    | Account\n    | Address\n    | undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = {\n  /** The Account to use for the Client. This will be used for Actions that require an account as an argument. */\n  account?: accountOrAddress | Account | Address | undefined\n  /** Flags for batch settings. */\n  batch?:\n    | {\n        /** Toggle to enable `eth_call` multicall aggregation. */\n        multicall?: boolean | Prettify<MulticallBatchOptions> | undefined\n      }\n    | undefined\n  /**\n   * Default block tag to use for RPC requests.\n   *\n   * If the chain supports a pre-confirmation mechanism\n   * (set via `chain.experimental_preconfirmationTime`), defaults to `'pending'`.\n   *\n   * @default 'latest'\n   */\n  experimental_blockTag?: BlockTag | undefined\n  /**\n   * Time (in ms) that cached data will remain in memory.\n   * @default chain.blockTime / 3\n   */\n  cacheTime?: number | undefined\n  /**\n   * [CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.\n   * If `false`, the client will not support offchain CCIP lookups.\n   */\n  ccipRead?:\n    | {\n        /**\n         * A function that will be called to make the offchain CCIP lookup request.\n         * @see https://eips.ethereum.org/EIPS/eip-3668#client-lookup-protocol\n         */\n        request?: (\n          parameters: CcipRequestParameters,\n        ) => Promise<CcipRequestReturnType>\n      }\n    | false\n    | undefined\n  /** Chain for the client. */\n  chain?: Chain | undefined | chain\n  /** A key for the client. */\n  key?: string | undefined\n  /** A name for the client. */\n  name?: string | undefined\n  /**\n   * Frequency (in ms) for polling enabled actions & events.\n   * @default chain.blockTime / 3\n   */\n  pollingInterval?: number | undefined\n  /**\n   * Typed JSON-RPC schema for the client.\n   */\n  rpcSchema?: rpcSchema | undefined\n  /** The RPC transport */\n  transport: transport\n  /** The type of client. */\n  type?: string | undefined\n}\n\n// Actions that are used internally by other Actions (ie. `call` is used by `readContract`).\n// They are allowed to be extended, but must conform to their parameter & return type interfaces.\n// Example: an extended `call` action must accept `CallParameters` as parameters,\n// and conform to the `CallReturnType` return type.\ntype ExtendableProtectedActions<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n> = Pick<\n  PublicActions<transport, chain, account>,\n  | 'call'\n  | 'createContractEventFilter'\n  | 'createEventFilter'\n  | 'estimateContractGas'\n  | 'estimateGas'\n  | 'getBlock'\n  | 'getBlockNumber'\n  | 'getChainId'\n  | 'getContractEvents'\n  | 'getEnsText'\n  | 'getFilterChanges'\n  | 'getGasPrice'\n  | 'getLogs'\n  | 'getTransaction'\n  | 'getTransactionCount'\n  | 'getTransactionReceipt'\n  | 'prepareTransactionRequest'\n  | 'readContract'\n  | 'sendRawTransaction'\n  | 'simulateContract'\n  | 'uninstallFilter'\n  | 'watchBlockNumber'\n  | 'watchContractEvent'\n> &\n  Pick<WalletActions<chain, account>, 'sendTransaction' | 'writeContract'>\n\n// TODO: Move `transport` to slot index 2 since `chain` and `account` used more frequently.\n// Otherwise, we end up with a lot of `Client<Transport, chain, account>` in actions.\nexport type Client<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n  extended extends Extended | undefined = Extended | undefined,\n> = Client_Base<transport, chain, account, rpcSchema> &\n  (extended extends Extended ? extended : unknown) & {\n    extend: <\n      const client extends Extended &\n        ExactPartial<ExtendableProtectedActions<transport, chain, account>>,\n    >(\n      fn: (\n        client: Client<transport, chain, account, rpcSchema, extended>,\n      ) => client,\n    ) => Client<\n      transport,\n      chain,\n      account,\n      rpcSchema,\n      Prettify<client> & (extended extends Extended ? extended : unknown)\n    >\n  }\n\ntype Client_Base<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = {\n  /** The Account of the Client. */\n  account: account\n  /** Flags for batch settings. */\n  batch?: ClientConfig['batch'] | undefined\n  /** Time (in ms) that cached data will remain in memory. */\n  cacheTime: number\n  /** [CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration. */\n  ccipRead?: ClientConfig['ccipRead'] | undefined\n  /** Chain for the client. */\n  chain: chain\n  /** Default block tag to use for RPC requests. */\n  experimental_blockTag?: BlockTag | undefined\n  /** A key for the client. */\n  key: string\n  /** A name for the client. */\n  name: string\n  /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n  pollingInterval: number\n  /** Request function wrapped with friendly error handling */\n  request: EIP1193RequestFn<\n    rpcSchema extends undefined ? EIP1474Methods : rpcSchema\n  >\n  /** The RPC transport */\n  transport: ReturnType<transport>['config'] & ReturnType<transport>['value']\n  /** The type of client. */\n  type: string\n  /** A unique ID for the client. */\n  uid: string\n}\n\ntype Extended = Prettify<\n  // disallow redefining base properties\n  { [_ in keyof Client_Base]?: undefined } & {\n    [key: string]: unknown\n  }\n>\n\nexport type MulticallBatchOptions = {\n  /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */\n  batchSize?: number | undefined\n  /** Enable deployless multicall. */\n  deployless?: boolean | undefined\n  /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n  wait?: number | undefined\n}\n\nexport type CreateClientErrorType = ParseAccountErrorType | ErrorType\n\nexport function createClient<\n  transport extends Transport,\n  chain extends Chain | undefined = undefined,\n  accountOrAddress extends Account | Address | undefined = undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n>(\n  parameters: ClientConfig<transport, chain, accountOrAddress, rpcSchema>,\n): Prettify<\n  Client<\n    transport,\n    chain,\n    accountOrAddress extends Address\n      ? Prettify<JsonRpcAccount<accountOrAddress>>\n      : accountOrAddress,\n    rpcSchema\n  >\n>\n\nexport function createClient(parameters: ClientConfig): Client {\n  const {\n    batch,\n    chain,\n    ccipRead,\n    key = 'base',\n    name = 'Base Client',\n    type = 'base',\n  } = parameters\n\n  const experimental_blockTag =\n    parameters.experimental_blockTag ??\n    (typeof chain?.experimental_preconfirmationTime === 'number'\n      ? 'pending'\n      : undefined)\n  const blockTime = chain?.blockTime ?? 12_000\n\n  const defaultPollingInterval = Math.min(\n    Math.max(Math.floor(blockTime / 2), 500),\n    4_000,\n  )\n  const pollingInterval = parameters.pollingInterval ?? defaultPollingInterval\n  const cacheTime = parameters.cacheTime ?? pollingInterval\n\n  const account = parameters.account\n    ? parseAccount(parameters.account)\n    : undefined\n  const { config, request, value } = parameters.transport({\n    chain,\n    pollingInterval,\n  })\n  const transport = { ...config, ...value }\n\n  const client = {\n    account,\n    batch,\n    cacheTime,\n    ccipRead,\n    chain,\n    key,\n    name,\n    pollingInterval,\n    request,\n    transport,\n    type,\n    uid: uid(),\n    ...(experimental_blockTag ? { experimental_blockTag } : {}),\n  }\n\n  function extend(base: typeof client) {\n    type ExtendFn = (base: typeof client) => unknown\n    return (extendFn: ExtendFn) => {\n      const extended = extendFn(base) as Extended\n      for (const key in client) delete extended[key]\n      const combined = { ...base, ...extended }\n      return Object.assign(combined, { extend: extend(combined as any) })\n    }\n  }\n\n  return Object.assign(client, { extend: extend(client) as any })\n}\n\n/**\n * Defines a typed JSON-RPC schema for the client.\n * Note: This is a runtime noop function.\n */\nexport function rpcSchema<rpcSchema extends RpcSchema>(): rpcSchema {\n  return null as any\n}\n","import { BaseError } from '../../errors/base.js'\nimport { ContractFunctionRevertedError } from '../../errors/contract.js'\nimport type { ErrorType } from '../../errors/utils.js'\n\n/** @internal */\nexport type IsNullUniversalResolverErrorErrorType = ErrorType\n\n/*\n * @description Checks if error is a valid null result UniversalResolver error\n */\nexport function isNullUniversalResolverError(err: unknown): boolean {\n  if (!(err instanceof BaseError)) return false\n  const cause = err.walk((e) => e instanceof ContractFunctionRevertedError)\n  if (!(cause instanceof ContractFunctionRevertedError)) return false\n\n  if (cause.data?.errorName === 'HttpError') return true\n  if (cause.data?.errorName === 'ResolverError') return true\n  if (cause.data?.errorName === 'ResolverNotContract') return true\n  if (cause.data?.errorName === 'ResolverNotFound') return true\n  if (cause.data?.errorName === 'ReverseAddressMismatch') return true\n  if (cause.data?.errorName === 'UnsupportedResolverProfile') return true\n\n  return false\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\n\nexport type EncodedLabelToLabelhashErrorType = IsHexErrorType | ErrorType\n\nexport function encodedLabelToLabelhash(label: string): Hex | null {\n  if (label.length !== 66) return null\n  if (label.indexOf('[') !== 0) return null\n  if (label.indexOf(']') !== 65) return null\n  const hash = `0x${label.slice(1, 65)}`\n  if (!isHex(hash)) return null\n  return hash\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray } from '../../types/misc.js'\nimport { type ConcatErrorType, concat } from '../data/concat.js'\nimport {\n  type StringToBytesErrorType,\n  stringToBytes,\n  type ToBytesErrorType,\n  toBytes,\n} from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport {\n  type EncodedLabelToLabelhashErrorType,\n  encodedLabelToLabelhash,\n} from './encodedLabelToLabelhash.js'\n\nexport type NamehashErrorType =\n  | BytesToHexErrorType\n  | EncodedLabelToLabelhashErrorType\n  | ToBytesErrorType\n  | Keccak256ErrorType\n  | StringToBytesErrorType\n  | ConcatErrorType\n  | ErrorType\n\n/**\n * @description Hashes ENS name\n *\n * - Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `namehash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * namehash('wevm.eth')\n * '0x08c85f2f4059e930c45a6aeff9dcd3bd95dc3c5c1cddef6a0626b31152248560'\n *\n * @link https://eips.ethereum.org/EIPS/eip-137\n */\nexport function namehash(name: string) {\n  let result = new Uint8Array(32).fill(0) as ByteArray\n  if (!name) return bytesToHex(result)\n\n  const labels = name.split('.')\n  // Iterate in reverse order building up hash\n  for (let i = labels.length - 1; i >= 0; i -= 1) {\n    const hashFromEncodedLabel = encodedLabelToLabelhash(labels[i])\n    const hashed = hashFromEncodedLabel\n      ? toBytes(hashFromEncodedLabel)\n      : keccak256(stringToBytes(labels[i]), 'bytes')\n    result = keccak256(concat([result, hashed]), 'bytes')\n  }\n\n  return bytesToHex(result)\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\n\nexport type EncodeLabelhashErrorType = ErrorType\n\nexport function encodeLabelhash(hash: Hex): `[${string}]` {\n  return `[${hash.slice(2)}]`\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport {\n  type StringToBytesErrorType,\n  stringToBytes,\n} from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport {\n  type EncodedLabelToLabelhashErrorType,\n  encodedLabelToLabelhash,\n} from './encodedLabelToLabelhash.js'\n\nexport type LabelhashErrorType =\n  | BytesToHexErrorType\n  | EncodedLabelToLabelhashErrorType\n  | Keccak256ErrorType\n  | StringToBytesErrorType\n  | ErrorType\n\n/**\n * @description Hashes ENS label\n *\n * - Since ENS labels prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS labels](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `labelhash`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @example\n * labelhash('eth')\n * '0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0'\n */\nexport function labelhash(label: string) {\n  const result = new Uint8Array(32).fill(0)\n  if (!label) return bytesToHex(result)\n  return encodedLabelToLabelhash(label) || keccak256(stringToBytes(label))\n}\n","// Adapted from https://github.com/mafintosh/dns-packet\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray } from '../../types/misc.js'\nimport {\n  type StringToBytesErrorType,\n  stringToBytes,\n} from '../encoding/toBytes.js'\nimport {\n  type EncodeLabelhashErrorType,\n  encodeLabelhash,\n} from './encodeLabelhash.js'\nimport { type LabelhashErrorType, labelhash } from './labelhash.js'\n\nexport type PacketToBytesErrorType =\n  | EncodeLabelhashErrorType\n  | LabelhashErrorType\n  | StringToBytesErrorType\n  | ErrorType\n\n/*\n * @description Encodes a DNS packet into a ByteArray containing a UDP payload.\n *\n * @example\n * packetToBytes('awkweb.eth')\n * '0x0661776b7765620365746800'\n *\n * @see https://docs.ens.domains/resolution/names#dns\n *\n */\nexport function packetToBytes(packet: string): ByteArray {\n  // strip leading and trailing `.`\n  const value = packet.replace(/^\\.|\\.$/gm, '')\n  if (value.length === 0) return new Uint8Array(1)\n\n  const bytes = new Uint8Array(stringToBytes(value).byteLength + 2)\n\n  let offset = 0\n  const list = value.split('.')\n  for (let i = 0; i < list.length; i++) {\n    let encoded = stringToBytes(list[i])\n    // if the length is > 255, make the encoded label value a labelhash\n    // this is compatible with the universal resolver\n    if (encoded.byteLength > 255)\n      encoded = stringToBytes(encodeLabelhash(labelhash(list[i])))\n    bytes[offset] = encoded.length\n    bytes.set(encoded, offset + 1)\n    offset += encoded.length + 1\n  }\n\n  if (bytes.byteLength !== offset + 1) return bytes.slice(0, offset + 1)\n\n  return bytes\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  addressResolverAbi,\n  universalResolverResolveAbi,\n} from '../../constants/abis.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport { type TrimErrorType, trim } from '../../utils/data/trim.js'\nimport { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js'\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js'\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js'\nimport { type NamehashErrorType, namehash } from '../../utils/ens/namehash.js'\nimport {\n  type PacketToBytesErrorType,\n  packetToBytes,\n} from '../../utils/ens/packetToBytes.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type ReadContractParameters,\n  readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsAddressParameters = Prettify<\n  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n    /**\n     * ENSIP-9 compliant coinType (chain) to get ENS address for.\n     *\n     * To get the `coinType` for a chain id, use the `toCoinType` function:\n     * ```ts\n     * import { toCoinType } from 'viem'\n     * import { base } from 'viem/chains'\n     *\n     * const coinType = toCoinType(base.id)\n     * ```\n     *\n     * @default 60n\n     */\n    coinType?: bigint | undefined\n    /**\n     * Universal Resolver gateway URLs to use for resolving CCIP-read requests.\n     */\n    gatewayUrls?: string[] | undefined\n    /**\n     * Name to get the address for.\n     */\n    name: string\n    /**\n     * Whether or not to throw errors propagated from the ENS Universal Resolver Contract.\n     */\n    strict?: boolean | undefined\n    /**\n     * Address of ENS Universal Resolver Contract.\n     */\n    universalResolverAddress?: Address | undefined\n  }\n>\n\nexport type GetEnsAddressReturnType = Address | null\n\nexport type GetEnsAddressErrorType =\n  | GetChainContractAddressErrorType\n  | EncodeFunctionDataErrorType\n  | NamehashErrorType\n  | ToHexErrorType\n  | PacketToBytesErrorType\n  | DecodeFunctionResultErrorType\n  | TrimErrorType\n  | ErrorType\n\n/**\n * Gets address for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAddressParameters}\n * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAddress, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const ensAddress = await getEnsAddress(client, {\n *   name: normalize('wevm.eth'),\n * })\n * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n */\nexport async function getEnsAddress<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: GetEnsAddressParameters,\n): Promise<GetEnsAddressReturnType> {\n  const { blockNumber, blockTag, coinType, name, gatewayUrls, strict } =\n    parameters\n  const { chain } = client\n\n  const universalResolverAddress = (() => {\n    if (parameters.universalResolverAddress)\n      return parameters.universalResolverAddress\n    if (!chain)\n      throw new Error(\n        'client chain not configured. universalResolverAddress is required.',\n      )\n    return getChainContractAddress({\n      blockNumber,\n      chain,\n      contract: 'ensUniversalResolver',\n    })\n  })()\n\n  const tlds = chain?.ensTlds\n  if (tlds && !tlds.some((tld) => name.endsWith(tld))) return null\n\n  const args = (() => {\n    if (coinType != null) return [namehash(name), BigInt(coinType)] as const\n    return [namehash(name)] as const\n  })()\n\n  try {\n    const functionData = encodeFunctionData({\n      abi: addressResolverAbi,\n      functionName: 'addr',\n      args,\n    })\n\n    const readContractParameters = {\n      address: universalResolverAddress,\n      abi: universalResolverResolveAbi,\n      functionName: 'resolveWithGateways',\n      args: [\n        toHex(packetToBytes(name)),\n        functionData,\n        gatewayUrls ?? [localBatchGatewayUrl],\n      ],\n      blockNumber,\n      blockTag,\n    } as const\n\n    const readContractAction = getAction(client, readContract, 'readContract')\n\n    const res = await readContractAction(readContractParameters)\n\n    if (res[0] === '0x') return null\n\n    const address = decodeFunctionResult({\n      abi: addressResolverAbi,\n      args,\n      functionName: 'addr',\n      data: res[0],\n    })\n\n    if (address === '0x') return null\n    if (trim(address) === '0x00') return null\n    return address\n  } catch (err) {\n    if (strict) throw err\n    if (isNullUniversalResolverError(err)) return null\n    throw err\n  }\n}\n","import { BaseError } from './base.js'\n\nexport type EnsAvatarInvalidMetadataErrorType =\n  EnsAvatarInvalidMetadataError & {\n    name: 'EnsAvatarInvalidMetadataError'\n  }\nexport class EnsAvatarInvalidMetadataError extends BaseError {\n  constructor({ data }: { data: any }) {\n    super(\n      'Unable to extract image from metadata. The metadata may be malformed or invalid.',\n      {\n        metaMessages: [\n          '- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.',\n          '',\n          `Provided data: ${JSON.stringify(data)}`,\n        ],\n        name: 'EnsAvatarInvalidMetadataError',\n      },\n    )\n  }\n}\n\nexport type EnsAvatarInvalidNftUriErrorType = EnsAvatarInvalidNftUriError & {\n  name: 'EnsAvatarInvalidNftUriError'\n}\nexport class EnsAvatarInvalidNftUriError extends BaseError {\n  constructor({ reason }: { reason: string }) {\n    super(`ENS NFT avatar URI is invalid. ${reason}`, {\n      name: 'EnsAvatarInvalidNftUriError',\n    })\n  }\n}\n\nexport type EnsAvatarUriResolutionErrorType = EnsAvatarUriResolutionError & {\n  name: 'EnsAvatarUriResolutionError'\n}\nexport class EnsAvatarUriResolutionError extends BaseError {\n  constructor({ uri }: { uri: string }) {\n    super(\n      `Unable to resolve ENS avatar URI \"${uri}\". The URI may be malformed, invalid, or does not respond with a valid image.`,\n      { name: 'EnsAvatarUriResolutionError' },\n    )\n  }\n}\n\nexport type EnsAvatarUnsupportedNamespaceErrorType =\n  EnsAvatarUnsupportedNamespaceError & {\n    name: 'EnsAvatarUnsupportedNamespaceError'\n  }\nexport class EnsAvatarUnsupportedNamespaceError extends BaseError {\n  constructor({ namespace }: { namespace: string }) {\n    super(\n      `ENS NFT avatar namespace \"${namespace}\" is not supported. Must be \"erc721\" or \"erc1155\".`,\n      { name: 'EnsAvatarUnsupportedNamespaceError' },\n    )\n  }\n}\n\nexport type EnsInvalidChainIdErrorType = EnsInvalidChainIdError & {\n  name: 'EnsInvalidChainIdError'\n}\nexport class EnsInvalidChainIdError extends BaseError {\n  constructor({ chainId }: { chainId: number }) {\n    super(\n      `Invalid ENSIP-11 chainId: ${chainId}. Must be between 0 and 0x7fffffff, or 1.`,\n      {\n        name: 'EnsInvalidChainIdError',\n      },\n    )\n  }\n}\n","import type { Address } from 'abitype'\n\nimport {\n  type ReadContractErrorType,\n  readContract,\n} from '../../../actions/public/readContract.js'\nimport type { Client } from '../../../clients/createClient.js'\nimport type { Transport } from '../../../clients/transports/createTransport.js'\nimport {\n  EnsAvatarInvalidMetadataError,\n  type EnsAvatarInvalidMetadataErrorType,\n  EnsAvatarInvalidNftUriError,\n  type EnsAvatarInvalidNftUriErrorType,\n  EnsAvatarUnsupportedNamespaceError,\n  type EnsAvatarUnsupportedNamespaceErrorType,\n  EnsAvatarUriResolutionError,\n  type EnsAvatarUriResolutionErrorType,\n} from '../../../errors/ens.js'\nimport type { ErrorType } from '../../../errors/utils.js'\nimport type { Chain } from '../../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../../types/ens.js'\n\ntype UriItem = {\n  uri: string\n  isOnChain: boolean\n  isEncoded: boolean\n}\n\nconst networkRegex =\n  /(?<protocol>https?:\\/\\/[^/]*|ipfs:\\/|ipns:\\/|ar:\\/)?(?<root>\\/)?(?<subpath>ipfs\\/|ipns\\/)?(?<target>[\\w\\-.]+)(?<subtarget>\\/.*)?/\nconst ipfsHashRegex =\n  /^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\/(?<target>[\\w\\-.]+))?(?<subtarget>\\/.*)?$/\nconst base64Regex = /^data:([a-zA-Z\\-/+]*);base64,([^\"].*)/\nconst dataURIRegex = /^data:([a-zA-Z\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/\n\ntype IsImageUriErrorType = ErrorType\n\n/** @internal */\nexport async function isImageUri(uri: string) {\n  try {\n    const res = await fetch(uri, { method: 'HEAD' })\n    // retrieve content type header to check if content is image\n    if (res.status === 200) {\n      const contentType = res.headers.get('content-type')\n      return contentType?.startsWith('image/')\n    }\n    return false\n  } catch (error: any) {\n    // if error is not cors related then fail\n    if (typeof error === 'object' && typeof error.response !== 'undefined') {\n      return false\n    }\n    // fail in NodeJS, since the error is not cors but any other network issue\n    if (!Object.hasOwn(globalThis, 'Image')) return false\n    // in case of cors, use image api to validate if given url is an actual image\n    return new Promise((resolve) => {\n      const img = new Image()\n      img.onload = () => {\n        resolve(true)\n      }\n      img.onerror = () => {\n        resolve(false)\n      }\n      img.src = uri\n    })\n  }\n}\n\ntype GetGatewayErrorType = ErrorType\n\n/** @internal */\nexport function getGateway(custom: string | undefined, defaultGateway: string) {\n  if (!custom) return defaultGateway\n  if (custom.endsWith('/')) return custom.slice(0, -1)\n  return custom\n}\n\nexport type ResolveAvatarUriErrorType =\n  | GetGatewayErrorType\n  | EnsAvatarUriResolutionErrorType\n  | ErrorType\n\nexport function resolveAvatarUri({\n  uri,\n  gatewayUrls,\n}: {\n  uri: string\n  gatewayUrls?: AssetGatewayUrls | undefined\n}): UriItem {\n  const isEncoded = base64Regex.test(uri)\n  if (isEncoded) return { uri, isOnChain: true, isEncoded }\n\n  const ipfsGateway = getGateway(gatewayUrls?.ipfs, 'https://ipfs.io')\n  const arweaveGateway = getGateway(gatewayUrls?.arweave, 'https://arweave.net')\n\n  const networkRegexMatch = uri.match(networkRegex)\n  const {\n    protocol,\n    subpath,\n    target,\n    subtarget = '',\n  } = networkRegexMatch?.groups || {}\n\n  const isIPNS = protocol === 'ipns:/' || subpath === 'ipns/'\n  const isIPFS =\n    protocol === 'ipfs:/' || subpath === 'ipfs/' || ipfsHashRegex.test(uri)\n\n  if (uri.startsWith('http') && !isIPNS && !isIPFS) {\n    let replacedUri = uri\n    if (gatewayUrls?.arweave)\n      replacedUri = uri.replace(/https:\\/\\/arweave.net/g, gatewayUrls?.arweave)\n    return { uri: replacedUri, isOnChain: false, isEncoded: false }\n  }\n\n  if ((isIPNS || isIPFS) && target) {\n    return {\n      uri: `${ipfsGateway}/${isIPNS ? 'ipns' : 'ipfs'}/${target}${subtarget}`,\n      isOnChain: false,\n      isEncoded: false,\n    }\n  }\n\n  if (protocol === 'ar:/' && target) {\n    return {\n      uri: `${arweaveGateway}/${target}${subtarget || ''}`,\n      isOnChain: false,\n      isEncoded: false,\n    }\n  }\n\n  let parsedUri = uri.replace(dataURIRegex, '')\n  if (parsedUri.startsWith('<svg')) {\n    // if svg, base64 encode\n    parsedUri = `data:image/svg+xml;base64,${btoa(parsedUri)}`\n  }\n\n  if (parsedUri.startsWith('data:') || parsedUri.startsWith('{')) {\n    return {\n      uri: parsedUri,\n      isOnChain: true,\n      isEncoded: false,\n    }\n  }\n\n  throw new EnsAvatarUriResolutionError({ uri })\n}\n\nexport type GetJsonImageErrorType =\n  | EnsAvatarInvalidMetadataErrorType\n  | ErrorType\n\nexport function getJsonImage(data: any) {\n  // validation check for json data, must include one of theses properties\n  if (\n    typeof data !== 'object' ||\n    (!('image' in data) && !('image_url' in data) && !('image_data' in data))\n  ) {\n    throw new EnsAvatarInvalidMetadataError({ data })\n  }\n\n  return data.image || data.image_url || data.image_data\n}\n\nexport type GetMetadataAvatarUriErrorType =\n  | EnsAvatarUriResolutionErrorType\n  | ParseAvatarUriErrorType\n  | GetJsonImageErrorType\n  | ErrorType\n\nexport async function getMetadataAvatarUri({\n  gatewayUrls,\n  uri,\n}: {\n  gatewayUrls?: AssetGatewayUrls | undefined\n  uri: string\n}): Promise<string> {\n  try {\n    const res = await fetch(uri).then((res) => res.json())\n    const image = await parseAvatarUri({\n      gatewayUrls,\n      uri: getJsonImage(res),\n    })\n    return image\n  } catch {\n    throw new EnsAvatarUriResolutionError({ uri })\n  }\n}\n\nexport type ParseAvatarUriErrorType =\n  | ResolveAvatarUriErrorType\n  | IsImageUriErrorType\n  | EnsAvatarUriResolutionErrorType\n  | ErrorType\n\nexport async function parseAvatarUri({\n  gatewayUrls,\n  uri,\n}: {\n  gatewayUrls?: AssetGatewayUrls | undefined\n  uri: string\n}): Promise<string> {\n  const { uri: resolvedURI, isOnChain } = resolveAvatarUri({ uri, gatewayUrls })\n  if (isOnChain) return resolvedURI\n\n  // check if resolvedURI is an image, if it is return the url\n  const isImage = await isImageUri(resolvedURI)\n  if (isImage) return resolvedURI\n\n  throw new EnsAvatarUriResolutionError({ uri })\n}\n\ntype ParsedNft = {\n  chainID: number\n  namespace: string\n  contractAddress: Address\n  tokenID: string\n}\n\nexport type ParseNftUriErrorType = EnsAvatarInvalidNftUriErrorType | ErrorType\n\nexport function parseNftUri(uri_: string): ParsedNft {\n  let uri = uri_\n  // parse valid nft spec (CAIP-22/CAIP-29)\n  // @see: https://github.com/ChainAgnostic/CAIPs/tree/master/CAIPs\n  if (uri.startsWith('did:nft:')) {\n    // convert DID to CAIP\n    uri = uri.replace('did:nft:', '').replace(/_/g, '/')\n  }\n\n  const [reference, asset_namespace, tokenID] = uri.split('/')\n  const [eip_namespace, chainID] = reference.split(':')\n  const [erc_namespace, contractAddress] = asset_namespace.split(':')\n\n  if (!eip_namespace || eip_namespace.toLowerCase() !== 'eip155')\n    throw new EnsAvatarInvalidNftUriError({ reason: 'Only EIP-155 supported' })\n  if (!chainID)\n    throw new EnsAvatarInvalidNftUriError({ reason: 'Chain ID not found' })\n  if (!contractAddress)\n    throw new EnsAvatarInvalidNftUriError({\n      reason: 'Contract address not found',\n    })\n  if (!tokenID)\n    throw new EnsAvatarInvalidNftUriError({ reason: 'Token ID not found' })\n  if (!erc_namespace)\n    throw new EnsAvatarInvalidNftUriError({ reason: 'ERC namespace not found' })\n\n  return {\n    chainID: Number.parseInt(chainID, 10),\n    namespace: erc_namespace.toLowerCase(),\n    contractAddress: contractAddress as Address,\n    tokenID,\n  }\n}\n\nexport type GetNftTokenUriErrorType =\n  | ReadContractErrorType\n  | EnsAvatarUnsupportedNamespaceErrorType\n  | ErrorType\n\nexport async function getNftTokenUri<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { nft }: { nft: ParsedNft },\n) {\n  if (nft.namespace === 'erc721') {\n    return readContract(client, {\n      address: nft.contractAddress,\n      abi: [\n        {\n          name: 'tokenURI',\n          type: 'function',\n          stateMutability: 'view',\n          inputs: [{ name: 'tokenId', type: 'uint256' }],\n          outputs: [{ name: '', type: 'string' }],\n        },\n      ],\n      functionName: 'tokenURI',\n      args: [BigInt(nft.tokenID)],\n    })\n  }\n  if (nft.namespace === 'erc1155') {\n    return readContract(client, {\n      address: nft.contractAddress,\n      abi: [\n        {\n          name: 'uri',\n          type: 'function',\n          stateMutability: 'view',\n          inputs: [{ name: '_id', type: 'uint256' }],\n          outputs: [{ name: '', type: 'string' }],\n        },\n      ],\n      functionName: 'uri',\n      args: [BigInt(nft.tokenID)],\n    })\n  }\n  throw new EnsAvatarUnsupportedNamespaceError({ namespace: nft.namespace })\n}\n","import type { Client } from '../../../clients/createClient.js'\nimport type { Transport } from '../../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../../errors/utils.js'\nimport type { Chain } from '../../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../../types/ens.js'\n\nimport {\n  type GetJsonImageErrorType,\n  type GetMetadataAvatarUriErrorType,\n  type GetNftTokenUriErrorType,\n  getJsonImage,\n  getMetadataAvatarUri,\n  getNftTokenUri,\n  type ParseAvatarUriErrorType,\n  type ParseNftUriErrorType,\n  parseAvatarUri,\n  parseNftUri,\n  type ResolveAvatarUriErrorType,\n  resolveAvatarUri,\n} from './utils.js'\n\nexport type ParseAvatarRecordErrorType =\n  | ParseNftAvatarUriErrorType\n  | ParseAvatarUriErrorType\n  | ErrorType\n\n/*\n * @description Parses an ENS avatar record.\n *\n * @example\n * parseAvatarRecord('eip155:1/erc1155:0xb32979486938aa9694bfc898f35dbed459f44424/10063')\n * 'https://ipfs.io/ipfs/QmSP4nq9fnN9dAiCj42ug9Wa79rqmQerZXZch82VqpiH7U/image.gif'\n *\n * @see https://docs.ens.domains/web/avatars\n *\n */\nexport async function parseAvatarRecord<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    gatewayUrls,\n    record,\n  }: {\n    gatewayUrls?: AssetGatewayUrls | undefined\n    record: string\n  },\n): Promise<string> {\n  if (/eip155:/i.test(record))\n    return parseNftAvatarUri(client, { gatewayUrls, record })\n  return parseAvatarUri({ uri: record, gatewayUrls })\n}\n\ntype ParseNftAvatarUriErrorType =\n  | ParseNftUriErrorType\n  | GetNftTokenUriErrorType\n  | ResolveAvatarUriErrorType\n  | ParseAvatarUriErrorType\n  | GetJsonImageErrorType\n  | GetMetadataAvatarUriErrorType\n  | ErrorType\n\nasync function parseNftAvatarUri<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    gatewayUrls,\n    record,\n  }: {\n    gatewayUrls?: AssetGatewayUrls | undefined\n    record: string\n  },\n): Promise<string> {\n  // parse NFT URI into properties\n  const nft = parseNftUri(record)\n  // fetch tokenURI from the NFT contract\n  const nftUri = await getNftTokenUri(client, { nft })\n  // resolve the URI from the fetched tokenURI\n  const {\n    uri: resolvedNftUri,\n    isOnChain,\n    isEncoded,\n  } = resolveAvatarUri({ uri: nftUri, gatewayUrls })\n\n  // if the resolved URI is on chain, return the data\n  if (\n    isOnChain &&\n    (resolvedNftUri.includes('data:application/json;base64,') ||\n      resolvedNftUri.startsWith('{'))\n  ) {\n    const encodedJson = isEncoded\n      ? // if it is encoded, decode it\n        atob(resolvedNftUri.replace('data:application/json;base64,', ''))\n      : // if it isn't encoded assume it is a JSON string, but it could be anything (it will error if it is)\n        resolvedNftUri\n\n    const decoded = JSON.parse(encodedJson)\n    return parseAvatarUri({ uri: getJsonImage(decoded), gatewayUrls })\n  }\n\n  let uriTokenId = nft.tokenID\n  if (nft.namespace === 'erc1155')\n    uriTokenId = uriTokenId.replace('0x', '').padStart(64, '0')\n\n  return getMetadataAvatarUri({\n    gatewayUrls,\n    uri: resolvedNftUri.replace(/(?:0x)?{id}/, uriTokenId),\n  })\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  textResolverAbi,\n  universalResolverResolveAbi,\n} from '../../constants/abis.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js'\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js'\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js'\nimport { type NamehashErrorType, namehash } from '../../utils/ens/namehash.js'\nimport {\n  type PacketToBytesErrorType,\n  packetToBytes,\n} from '../../utils/ens/packetToBytes.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type ReadContractErrorType,\n  type ReadContractParameters,\n  readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsTextParameters = Prettify<\n  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n    /** ENS name to get Text for. */\n    name: string\n    /** Universal Resolver gateway URLs to use for resolving CCIP-read requests. */\n    gatewayUrls?: string[] | undefined\n    /** Text record to retrieve. */\n    key: string\n    /** Whether or not to throw errors propagated from the ENS Universal Resolver Contract. */\n    strict?: boolean | undefined\n    /** Address of ENS Universal Resolver Contract. */\n    universalResolverAddress?: Address | undefined\n  }\n>\n\nexport type GetEnsTextReturnType = string | null\n\nexport type GetEnsTextErrorType =\n  | GetChainContractAddressErrorType\n  | ReadContractErrorType\n  | ToHexErrorType\n  | PacketToBytesErrorType\n  | EncodeFunctionDataErrorType\n  | NamehashErrorType\n  | DecodeFunctionResultErrorType\n\n/**\n * Gets a text record for specified ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsTextParameters}\n * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsText, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const twitterRecord = await getEnsText(client, {\n *   name: normalize('wevm.eth'),\n *   key: 'com.twitter',\n * })\n * // 'wevm_dev'\n */\nexport async function getEnsText<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: GetEnsTextParameters,\n): Promise<GetEnsTextReturnType> {\n  const { blockNumber, blockTag, key, name, gatewayUrls, strict } = parameters\n  const { chain } = client\n\n  const universalResolverAddress = (() => {\n    if (parameters.universalResolverAddress)\n      return parameters.universalResolverAddress\n    if (!chain)\n      throw new Error(\n        'client chain not configured. universalResolverAddress is required.',\n      )\n    return getChainContractAddress({\n      blockNumber,\n      chain,\n      contract: 'ensUniversalResolver',\n    })\n  })()\n\n  const tlds = chain?.ensTlds\n  if (tlds && !tlds.some((tld) => name.endsWith(tld))) return null\n\n  try {\n    const readContractParameters = {\n      address: universalResolverAddress,\n      abi: universalResolverResolveAbi,\n      args: [\n        toHex(packetToBytes(name)),\n        encodeFunctionData({\n          abi: textResolverAbi,\n          functionName: 'text',\n          args: [namehash(name), key],\n        }),\n        gatewayUrls ?? [localBatchGatewayUrl],\n      ],\n      functionName: 'resolveWithGateways',\n      blockNumber,\n      blockTag,\n    } as const\n\n    const readContractAction = getAction(client, readContract, 'readContract')\n\n    const res = await readContractAction(readContractParameters)\n\n    if (res[0] === '0x') return null\n\n    const record = decodeFunctionResult({\n      abi: textResolverAbi,\n      functionName: 'text',\n      data: res[0],\n    })\n\n    return record === '' ? null : record\n  } catch (err) {\n    if (strict) throw err\n    if (isNullUniversalResolverError(err)) return null\n    throw err\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { AssetGatewayUrls } from '../../types/ens.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type ParseAvatarRecordErrorType,\n  parseAvatarRecord,\n} from '../../utils/ens/avatar/parseAvatarRecord.js'\nimport { getAction } from '../../utils/getAction.js'\n\nimport {\n  type GetEnsTextErrorType,\n  type GetEnsTextParameters,\n  getEnsText,\n} from './getEnsText.js'\n\nexport type GetEnsAvatarParameters = Prettify<\n  Omit<GetEnsTextParameters, 'key'> & {\n    /** Gateway urls to resolve IPFS and/or Arweave assets. */\n    assetGatewayUrls?: AssetGatewayUrls | undefined\n  }\n>\n\nexport type GetEnsAvatarReturnType = string | null\n\nexport type GetEnsAvatarErrorType =\n  | GetEnsTextErrorType\n  | ParseAvatarRecordErrorType\n  | ErrorType\n\n/**\n * Gets the avatar of an ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsAvatarParameters}\n * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsAvatar, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const ensAvatar = await getEnsAvatar(client, {\n *   name: normalize('wevm.eth'),\n * })\n * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n */\nexport async function getEnsAvatar<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    blockNumber,\n    blockTag,\n    assetGatewayUrls,\n    name,\n    gatewayUrls,\n    strict,\n    universalResolverAddress,\n  }: GetEnsAvatarParameters,\n): Promise<GetEnsAvatarReturnType> {\n  const record = await getAction(\n    client,\n    getEnsText,\n    'getEnsText',\n  )({\n    blockNumber,\n    blockTag,\n    key: 'avatar',\n    name,\n    universalResolverAddress,\n    gatewayUrls,\n    strict,\n  })\n  if (!record) return null\n  try {\n    return await parseAvatarRecord(client, {\n      record,\n      gatewayUrls: assetGatewayUrls,\n    })\n  } catch {\n    return null\n  }\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { universalResolverReverseAbi } from '../../constants/abis.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport { isNullUniversalResolverError } from '../../utils/ens/errors.js'\nimport { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js'\nimport type { PacketToBytesErrorType } from '../../utils/ens/packetToBytes.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type ReadContractErrorType,\n  type ReadContractParameters,\n  readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsNameParameters = Prettify<\n  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n    /**\n     * Address to get ENS name for.\n     */\n    address: Address\n    /**\n     * ENSIP-9 compliant coinType (chain) to get ENS name for.\n     *\n     * To get the `coinType` for a chain id, use the `toCoinType` function:\n     * ```ts\n     * import { toCoinType } from 'viem'\n     * import { base } from 'viem/chains'\n     *\n     * const coinType = toCoinType(base.id)\n     * ```\n     *\n     * @default 60n\n     */\n    coinType?: bigint | undefined\n    /**\n     * Universal Resolver gateway URLs to use for resolving CCIP-read requests.\n     */\n    gatewayUrls?: string[] | undefined\n    /**\n     * Whether or not to throw errors propagated from the ENS Universal Resolver Contract.\n     */\n    strict?: boolean | undefined\n    /**\n     * Address of ENS Universal Resolver Contract.\n     */\n    universalResolverAddress?: Address | undefined\n  }\n>\n\nexport type GetEnsNameReturnType = string | null\n\nexport type GetEnsNameErrorType =\n  | GetChainContractAddressErrorType\n  | ReadContractErrorType\n  | PacketToBytesErrorType\n  | ErrorType\n\n/**\n * Gets primary name for specified address.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsNameParameters}\n * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsName } from 'viem/ens'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const ensName = await getEnsName(client, {\n *   address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n * })\n * // 'wevm.eth'\n */\nexport async function getEnsName<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: GetEnsNameParameters,\n): Promise<GetEnsNameReturnType> {\n  const {\n    address,\n    blockNumber,\n    blockTag,\n    coinType = 60n,\n    gatewayUrls,\n    strict,\n  } = parameters\n  const { chain } = client\n\n  const universalResolverAddress = (() => {\n    if (parameters.universalResolverAddress)\n      return parameters.universalResolverAddress\n    if (!chain)\n      throw new Error(\n        'client chain not configured. universalResolverAddress is required.',\n      )\n    return getChainContractAddress({\n      blockNumber,\n      chain,\n      contract: 'ensUniversalResolver',\n    })\n  })()\n\n  try {\n    const readContractParameters = {\n      address: universalResolverAddress,\n      abi: universalResolverReverseAbi,\n      args: [address, coinType, gatewayUrls ?? [localBatchGatewayUrl]],\n      functionName: 'reverseWithGateways',\n      blockNumber,\n      blockTag,\n    } as const\n\n    const readContractAction = getAction(client, readContract, 'readContract')\n\n    const [name] = await readContractAction(readContractParameters)\n\n    return name || null\n  } catch (err) {\n    if (strict) throw err\n    if (isNullUniversalResolverError(err)) return null\n    throw err\n  }\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js'\nimport {\n  type PacketToBytesErrorType,\n  packetToBytes,\n} from '../../utils/ens/packetToBytes.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type ReadContractParameters,\n  readContract,\n} from '../public/readContract.js'\n\nexport type GetEnsResolverParameters = Prettify<\n  Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {\n    /** Name to get the address for. */\n    name: string\n    /** Address of ENS Universal Resolver Contract. */\n    universalResolverAddress?: Address | undefined\n  }\n>\n\nexport type GetEnsResolverReturnType = Address\n\nexport type GetEnsResolverErrorType =\n  | GetChainContractAddressErrorType\n  | ToHexErrorType\n  | PacketToBytesErrorType\n  | ErrorType\n\n/**\n * Gets resolver for ENS name.\n *\n * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n *\n * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n *\n * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n *\n * @param client - Client to use\n * @param parameters - {@link GetEnsResolverParameters}\n * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getEnsResolver, normalize } from 'viem/ens'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const resolverAddress = await getEnsResolver(client, {\n *   name: normalize('wevm.eth'),\n * })\n * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n */\nexport async function getEnsResolver<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: GetEnsResolverParameters,\n): Promise<GetEnsResolverReturnType> {\n  const { blockNumber, blockTag, name } = parameters\n  const { chain } = client\n\n  const universalResolverAddress = (() => {\n    if (parameters.universalResolverAddress)\n      return parameters.universalResolverAddress\n    if (!chain)\n      throw new Error(\n        'client chain not configured. universalResolverAddress is required.',\n      )\n    return getChainContractAddress({\n      blockNumber,\n      chain,\n      contract: 'ensUniversalResolver',\n    })\n  })()\n\n  const tlds = chain?.ensTlds\n  if (tlds && !tlds.some((tld) => name.endsWith(tld)))\n    throw new Error(\n      `${name} is not a valid ENS TLD (${tlds?.join(', ')}) for chain \"${chain.name}\" (id: ${chain.id}).`,\n    )\n\n  const [resolverAddress] = await getAction(\n    client,\n    readContract,\n    'readContract',\n  )({\n    address: universalResolverAddress,\n    abi: [\n      {\n        inputs: [{ type: 'bytes' }],\n        name: 'findResolver',\n        outputs: [\n          { type: 'address' },\n          { type: 'bytes32' },\n          { type: 'uint256' },\n        ],\n        stateMutability: 'view',\n        type: 'function',\n      },\n    ],\n    functionName: 'findResolver',\n    args: [toHex(packetToBytes(name))],\n    blockNumber,\n    blockTag,\n  })\n  return resolverAddress\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RpcTransactionRequest } from '../../types/rpc.js'\nimport type { AccessList, TransactionRequest } from '../../types/transaction.js'\nimport type { ExactPartial, Prettify, UnionOmit } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type GetCallErrorReturnType,\n  getCallError,\n} from '../../utils/errors/getCallError.js'\nimport { extract } from '../../utils/formatters/extract.js'\nimport {\n  type FormatTransactionRequestErrorType,\n  type FormattedTransactionRequest,\n  formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport type {\n  AssertRequestErrorType,\n  AssertRequestParameters,\n} from '../../utils/transaction/assertRequest.js'\nimport { assertRequest } from '../../utils/transaction/assertRequest.js'\n\nexport type CreateAccessListParameters<\n  chain extends Chain | undefined = Chain | undefined,\n> = UnionOmit<\n  FormattedTransactionRequest<chain>,\n  'from' | 'nonce' | 'accessList'\n> & {\n  /** Account attached to the call (msg.sender). */\n  account?: Account | Address | undefined\n} & (\n    | {\n        /** The balance of the account at a block number. */\n        blockNumber?: bigint | undefined\n        blockTag?: undefined\n      }\n    | {\n        blockNumber?: undefined\n        /**\n         * The balance of the account at a block tag.\n         * @default 'latest'\n         */\n        blockTag?: BlockTag | undefined\n      }\n  )\n\nexport type CreateAccessListReturnType = Prettify<{\n  accessList: AccessList\n  gasUsed: bigint\n}>\n\nexport type CreateAccessListErrorType = GetCallErrorReturnType<\n  | ParseAccountErrorType\n  | AssertRequestErrorType\n  | NumberToHexErrorType\n  | FormatTransactionRequestErrorType\n  | RequestErrorType\n>\n\n/**\n * Creates an EIP-2930 access list.\n *\n * - Docs: https://viem.sh/docs/actions/public/createAccessList\n * - JSON-RPC Methods: `eth_createAccessList`\n *\n * @param client - Client to use\n * @param parameters - {@link CreateAccessListParameters}\n * @returns The access list. {@link CreateAccessListReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createAccessList } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const data = await createAccessList(client, {\n *   account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n *   data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function createAccessList<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  args: CreateAccessListParameters<chain>,\n): Promise<CreateAccessListReturnType> {\n  const {\n    account: account_ = client.account,\n    blockNumber,\n    blockTag = 'latest',\n    blobs,\n    data,\n    gas,\n    gasPrice,\n    maxFeePerBlobGas,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    to,\n    value,\n    ...rest\n  } = args\n  const account = account_ ? parseAccount(account_) : undefined\n\n  try {\n    assertRequest(args as AssertRequestParameters)\n\n    const blockNumberHex =\n      typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined\n    const block = blockNumberHex || blockTag\n\n    const chainFormat = client.chain?.formatters?.transactionRequest?.format\n    const format = chainFormat || formatTransactionRequest\n\n    const request = format({\n      // Pick out extra data that might exist on the chain's transaction request type.\n      ...extract(rest, { format: chainFormat }),\n      from: account?.address,\n      blobs,\n      data,\n      gas,\n      gasPrice,\n      maxFeePerBlobGas,\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n      to,\n      value,\n    } as TransactionRequest) as TransactionRequest\n\n    const response = await client.request({\n      method: 'eth_createAccessList',\n      params: [request as ExactPartial<RpcTransactionRequest>, block],\n    })\n    return {\n      accessList: response.accessList,\n      gasUsed: BigInt(response.gasUsed),\n    }\n  } catch (err) {\n    throw getCallError(err as ErrorType, {\n      ...args,\n      account,\n      chain: client.chain,\n    })\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateBlockFilterReturnType = Filter<'block'>\n\nexport type CreateBlockFilterErrorType = RequestErrorType | ErrorType\n\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createBlockFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createBlockFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n */\nexport async function createBlockFilter<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n): Promise<CreateBlockFilterReturnType> {\n  const getRequest = createFilterRequestScope(client, {\n    method: 'eth_newBlockFilter',\n  })\n  const id = await client.request({\n    method: 'eth_newBlockFilter',\n  })\n  return { id, request: getRequest(id), type: 'block' }\n}\n","import type { AbiEvent, Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  MaybeAbiEventName,\n  MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Hex, LogTopic } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type EncodeEventTopicsErrorType,\n  type EncodeEventTopicsParameters,\n  encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreateEventFilterParameters<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  //\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n  _args extends\n    | MaybeExtractEventArgsFromAbi<abiEvents, _eventName>\n    | undefined = undefined,\n> = {\n  address?: Address | Address[] | undefined\n  fromBlock?: fromBlock | BlockNumber | BlockTag | undefined\n  toBlock?: toBlock | BlockNumber | BlockTag | undefined\n} & (MaybeExtractEventArgsFromAbi<\n  abiEvents,\n  _eventName\n> extends infer eventFilterArgs\n  ?\n      | {\n          args:\n            | eventFilterArgs\n            | (_args extends eventFilterArgs ? _args : never)\n          event: abiEvent\n          events?: undefined\n          /**\n           * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n           * @default false\n           */\n          strict?: strict | undefined\n        }\n      | {\n          args?: undefined\n          event?: abiEvent | undefined\n          events?: undefined\n          /**\n           * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n           * @default false\n           */\n          strict?: strict | undefined\n        }\n      | {\n          args?: undefined\n          event?: undefined\n          events: abiEvents | undefined\n          /**\n           * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n           * @default false\n           */\n          strict?: strict | undefined\n        }\n      | {\n          args?: undefined\n          event?: undefined\n          events?: undefined\n          strict?: undefined\n        }\n  : {\n      args?: undefined\n      event?: undefined\n      events?: undefined\n      strict?: undefined\n    })\n\nexport type CreateEventFilterReturnType<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n  _args extends\n    | MaybeExtractEventArgsFromAbi<abiEvents, _eventName>\n    | undefined = undefined,\n> = Prettify<\n  Filter<'event', abiEvents, _eventName, _args, strict, fromBlock, toBlock>\n>\n\nexport type CreateEventFilterErrorType =\n  | EncodeEventTopicsErrorType\n  | RequestErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\n/**\n * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n *\n * @param client - Client to use\n * @param parameters - {@link CreateEventFilterParameters}\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n *   address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n * })\n */\nexport async function createEventFilter<\n  chain extends Chain | undefined,\n  const abiEvent extends AbiEvent | undefined = undefined,\n  const abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber<bigint> | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber<bigint> | BlockTag | undefined = undefined,\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n  _args extends\n    | MaybeExtractEventArgsFromAbi<abiEvents, _eventName>\n    | undefined = undefined,\n>(\n  client: Client<Transport, chain>,\n  {\n    address,\n    args,\n    event,\n    events: events_,\n    fromBlock,\n    strict,\n    toBlock,\n  }: CreateEventFilterParameters<\n    abiEvent,\n    abiEvents,\n    strict,\n    fromBlock,\n    toBlock,\n    _eventName,\n    _args\n  > = {} as any,\n): Promise<\n  CreateEventFilterReturnType<\n    abiEvent,\n    abiEvents,\n    strict,\n    fromBlock,\n    toBlock,\n    _eventName,\n    _args\n  >\n> {\n  const events = events_ ?? (event ? [event] : undefined)\n\n  const getRequest = createFilterRequestScope(client, {\n    method: 'eth_newFilter',\n  })\n\n  let topics: LogTopic[] = []\n  if (events) {\n    const encoded = (events as AbiEvent[]).flatMap((event) =>\n      encodeEventTopics({\n        abi: [event],\n        eventName: (event as AbiEvent).name,\n        args,\n      } as EncodeEventTopicsParameters),\n    )\n    // TODO: Clean up type casting\n    topics = [encoded as LogTopic]\n    if (event) topics = topics[0] as LogTopic[]\n  }\n\n  const id: Hex = await client.request({\n    method: 'eth_newFilter',\n    params: [\n      {\n        address,\n        fromBlock:\n          typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n        toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n        ...(topics.length ? { topics } : {}),\n      },\n    ],\n  })\n\n  return {\n    abi: events,\n    args,\n    eventName: event ? (event as AbiEvent).name : undefined,\n    fromBlock,\n    id,\n    request: getRequest(id),\n    strict: Boolean(strict),\n    toBlock,\n    type: 'event',\n  } as unknown as CreateEventFilterReturnType<\n    abiEvent,\n    abiEvents,\n    strict,\n    fromBlock,\n    toBlock,\n    _eventName,\n    _args\n  >\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { createFilterRequestScope } from '../../utils/filters/createFilterRequestScope.js'\n\nexport type CreatePendingTransactionFilterReturnType = Filter<'transaction'>\n\nexport type CreatePendingTransactionFilterErrorType =\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n *\n * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter\n * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n *\n * @param client - Client to use\n * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createPendingTransactionFilter } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createPendingTransactionFilter(client)\n * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n */\nexport async function createPendingTransactionFilter<\n  transport extends Transport,\n  chain extends Chain | undefined,\n>(\n  client: Client<transport, chain>,\n): Promise<CreatePendingTransactionFilterReturnType> {\n  const getRequest = createFilterRequestScope(client, {\n    method: 'eth_newPendingTransactionFilter',\n  })\n  const id = await client.request({\n    method: 'eth_newPendingTransactionFilter',\n  })\n  return { id, request: getRequest(id), type: 'transaction' }\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type GetBlobBaseFeeReturnType = bigint\n\nexport type GetBlobBaseFeeErrorType = RequestErrorType | ErrorType\n\n/**\n * Returns the base fee per blob gas in wei.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n *\n * @param client - Client to use\n * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlobBaseFee } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const blobBaseFee = await getBlobBaseFee(client)\n */\nexport async function getBlobBaseFee<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n): Promise<GetBlobBaseFeeReturnType> {\n  const baseFee = await client.request({\n    method: 'eth_blobBaseFee',\n  })\n  return BigInt(baseFee)\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { Quantity } from '../../types/rpc.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type HexToNumberErrorType,\n  hexToNumber,\n} from '../../utils/encoding/fromHex.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetBlockTransactionCountParameters =\n  | {\n      /** Hash of the block. */\n      blockHash?: Hash | undefined\n      blockNumber?: undefined\n      blockTag?: undefined\n    }\n  | {\n      blockHash?: undefined\n      /** The block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockHash?: undefined\n      blockNumber?: undefined\n      /** The block tag. Defaults to 'latest'. */\n      blockTag?: BlockTag | undefined\n    }\n\nexport type GetBlockTransactionCountReturnType = number\n\nexport type GetBlockTransactionCountErrorType =\n  | NumberToHexErrorType\n  | HexToNumberErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns the number of Transactions at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n * - JSON-RPC Methods:\n *   - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n *   - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockTransactionCountParameters}\n * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlockTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const count = await getBlockTransactionCount(client)\n */\nexport async function getBlockTransactionCount<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    blockHash,\n    blockNumber,\n    blockTag = 'latest',\n  }: GetBlockTransactionCountParameters = {},\n): Promise<GetBlockTransactionCountReturnType> {\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n  let count: Quantity\n  if (blockHash) {\n    count = await client.request(\n      {\n        method: 'eth_getBlockTransactionCountByHash',\n        params: [blockHash],\n      },\n      { dedupe: true },\n    )\n  } else {\n    count = await client.request(\n      {\n        method: 'eth_getBlockTransactionCountByNumber',\n        params: [blockNumberHex || blockTag],\n      },\n      { dedupe: Boolean(blockNumberHex) },\n    )\n  }\n\n  return hexToNumber(count)\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetCodeParameters = {\n  address: Address\n} & (\n  | {\n      blockNumber?: undefined\n      blockTag?: BlockTag | undefined\n    }\n  | {\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n)\n\nexport type GetCodeReturnType = Hex | undefined\n\nexport type GetCodeErrorType =\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Retrieves the bytecode at an address.\n *\n * - Docs: https://viem.sh/docs/contract/getCode\n * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n *\n * @param client - Client to use\n * @param parameters - {@link GetCodeParameters}\n * @returns The contract's bytecode. {@link GetCodeReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCode } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const code = await getCode(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * })\n */\nexport async function getCode<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { address, blockNumber, blockTag = 'latest' }: GetCodeParameters,\n): Promise<GetCodeReturnType> {\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n  const hex = await client.request(\n    {\n      method: 'eth_getCode',\n      params: [address, blockNumberHex || blockTag],\n    },\n    { dedupe: Boolean(blockNumberHex) },\n  )\n  if (hex === '0x') return undefined\n  return hex\n}\n","import type { Address } from 'abitype'\nimport { BaseError } from './base.js'\n\nexport type Eip712DomainNotFoundErrorType = Eip712DomainNotFoundError & {\n  name: 'Eip712DomainNotFoundError'\n}\nexport class Eip712DomainNotFoundError extends BaseError {\n  constructor({ address }: { address: Address }) {\n    super(`No EIP-712 domain found on contract \"${address}\".`, {\n      metaMessages: [\n        'Ensure that:',\n        `- The contract is deployed at the address \"${address}\".`,\n        '- `eip712Domain()` function exists on the contract.',\n        '- `eip712Domain()` function matches signature to ERC-5267 specification.',\n      ],\n      name: 'Eip712DomainNotFoundError',\n    })\n  }\n}\n","import type { Address, TypedDataDomain } from 'abitype'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  Eip712DomainNotFoundError,\n  type Eip712DomainNotFoundErrorType,\n} from '../../errors/eip712.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RequiredBy } from '../../types/utils.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type ReadContractErrorType,\n  type ReadContractParameters,\n  readContract,\n} from './readContract.js'\n\nexport type GetEip712DomainParameters = {\n  address: Address\n} & Pick<ReadContractParameters, 'factory' | 'factoryData'>\n\nexport type GetEip712DomainReturnType = {\n  domain: RequiredBy<\n    TypedDataDomain,\n    'chainId' | 'name' | 'verifyingContract' | 'salt' | 'version'\n  >\n  fields: Hex\n  extensions: readonly bigint[]\n}\n\nexport type GetEip712DomainErrorType =\n  | Eip712DomainNotFoundErrorType\n  | ReadContractErrorType\n  | ErrorType\n\n/**\n * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n *\n * @param client - A {@link Client} instance.\n * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, getEip712Domain } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n *\n * const domain = await getEip712Domain(client, {\n *   address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * })\n * // {\n * //   domain: {\n * //     name: 'ExampleContract',\n * //     version: '1',\n * //     chainId: 1,\n * //     verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n * //   },\n * //   fields: '0x0f',\n * //   extensions: [],\n * // }\n * ```\n */\nexport async function getEip712Domain(\n  client: Client<Transport>,\n  parameters: GetEip712DomainParameters,\n): Promise<GetEip712DomainReturnType> {\n  const { address, factory, factoryData } = parameters\n\n  try {\n    const [\n      fields,\n      name,\n      version,\n      chainId,\n      verifyingContract,\n      salt,\n      extensions,\n    ] = await getAction(\n      client,\n      readContract,\n      'readContract',\n    )({\n      abi,\n      address,\n      functionName: 'eip712Domain',\n      factory,\n      factoryData,\n    })\n\n    return {\n      domain: {\n        name,\n        version,\n        chainId: Number(chainId),\n        verifyingContract,\n        salt,\n      },\n      extensions,\n      fields,\n    }\n  } catch (e) {\n    const error = e as ReadContractErrorType\n    if (\n      error.name === 'ContractFunctionExecutionError' &&\n      error.cause.name === 'ContractFunctionZeroDataError'\n    ) {\n      throw new Eip712DomainNotFoundError({ address })\n    }\n    throw error\n  }\n}\n\nconst abi = [\n  {\n    inputs: [],\n    name: 'eip712Domain',\n    outputs: [\n      { name: 'fields', type: 'bytes1' },\n      { name: 'name', type: 'string' },\n      { name: 'version', type: 'string' },\n      { name: 'chainId', type: 'uint256' },\n      { name: 'verifyingContract', type: 'address' },\n      { name: 'salt', type: 'bytes32' },\n      { name: 'extensions', type: 'uint256[]' },\n    ],\n    stateMutability: 'view',\n    type: 'function',\n  },\n] as const\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { FeeHistory } from '../../types/fee.js'\nimport type { RpcFeeHistory } from '../../types/rpc.js'\n\nexport type FormatFeeHistoryErrorType = ErrorType\n\nexport function formatFeeHistory(feeHistory: RpcFeeHistory): FeeHistory {\n  return {\n    baseFeePerGas: feeHistory.baseFeePerGas.map((value) => BigInt(value)),\n    gasUsedRatio: feeHistory.gasUsedRatio,\n    oldestBlock: BigInt(feeHistory.oldestBlock),\n    reward: feeHistory.reward?.map((reward) =>\n      reward.map((value) => BigInt(value)),\n    ),\n  }\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { FeeHistory } from '../../types/fee.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type FormatFeeHistoryErrorType,\n  formatFeeHistory,\n} from '../../utils/formatters/feeHistory.js'\n\nexport type GetFeeHistoryParameters = {\n  /**\n   * Number of blocks in the requested range. Between 1 and 1024 blocks can be requested in a single query. Less than requested may be returned if not all blocks are available.\n   */\n  blockCount: number\n  /**\n   * A monotonically increasing list of percentile values to sample from each block's effective priority fees per gas in ascending order, weighted by gas used.\n   */\n  rewardPercentiles: number[]\n} & (\n  | {\n      blockNumber?: undefined\n      /**\n       * Highest number block of the requested range.\n       * @default 'latest'\n       */\n      blockTag?: BlockTag | undefined\n    }\n  | {\n      /** Highest number block of the requested range. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n)\nexport type GetFeeHistoryReturnType = FeeHistory\n\nexport type GetFeeHistoryErrorType =\n  | NumberToHexErrorType\n  | RequestErrorType\n  | FormatFeeHistoryErrorType\n\n/**\n * Returns a collection of historical gas information.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n *\n * @param client - Client to use\n * @param parameters - {@link GetFeeHistoryParameters}\n * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getFeeHistory } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const feeHistory = await getFeeHistory(client, {\n *   blockCount: 4,\n *   rewardPercentiles: [25, 75],\n * })\n */\nexport async function getFeeHistory<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    blockCount,\n    blockNumber,\n    blockTag = 'latest',\n    rewardPercentiles,\n  }: GetFeeHistoryParameters,\n): Promise<GetFeeHistoryReturnType> {\n  const blockNumberHex =\n    typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined\n  const feeHistory = await client.request(\n    {\n      method: 'eth_feeHistory',\n      params: [\n        numberToHex(blockCount),\n        blockNumberHex || blockTag,\n        rewardPercentiles,\n      ],\n    },\n    { dedupe: Boolean(blockNumberHex) },\n  )\n  return formatFeeHistory(feeHistory)\n}\n","import type { Abi, AbiEvent, ExtractAbiEvent } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport type { DecodeEventLogErrorType } from '../../utils/abi/decodeEventLog.js'\nimport { parseEventLogs } from '../../utils/abi/parseEventLogs.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type FormatLogErrorType,\n  formatLog,\n} from '../../utils/formatters/log.js'\n\nexport type GetFilterLogsParameters<\n  abi extends Abi | readonly unknown[] | undefined = undefined,\n  eventName extends string | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n> = {\n  filter: Filter<'event', abi, eventName, any, strict, fromBlock, toBlock>\n}\nexport type GetFilterLogsReturnType<\n  abi extends Abi | readonly unknown[] | undefined = undefined,\n  eventName extends string | undefined = undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  _AbiEvent extends AbiEvent | undefined = abi extends Abi\n    ? eventName extends string\n      ? ExtractAbiEvent<abi, eventName>\n      : undefined\n    : undefined,\n  _Pending extends boolean =\n    | (fromBlock extends 'pending' ? true : false)\n    | (toBlock extends 'pending' ? true : false),\n> = Log<bigint, number, _Pending, _AbiEvent, strict, abi, eventName>[]\n\nexport type GetFilterLogsErrorType =\n  | RequestErrorType\n  | DecodeEventLogErrorType\n  | FormatLogErrorType\n  | ErrorType\n\n/**\n * Returns a list of event logs since the filter was created.\n *\n * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n *\n * `getFilterLogs` is only compatible with **event filters**.\n *\n * @param client - Client to use\n * @param parameters - {@link GetFilterLogsParameters}\n * @returns A list of event logs. {@link GetFilterLogsReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbiItem } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { createEventFilter, getFilterLogs } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const filter = await createEventFilter(client, {\n *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n *   event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n * })\n * const logs = await getFilterLogs(client, { filter })\n */\nexport async function getFilterLogs<\n  chain extends Chain | undefined,\n  const abi extends Abi | readonly unknown[] | undefined,\n  eventName extends string | undefined,\n  strict extends boolean | undefined = undefined,\n  fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n  toBlock extends BlockNumber | BlockTag | undefined = undefined,\n>(\n  _client: Client<Transport, chain>,\n  {\n    filter,\n  }: GetFilterLogsParameters<abi, eventName, strict, fromBlock, toBlock>,\n): Promise<\n  GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>\n> {\n  const strict = filter.strict ?? false\n\n  const logs = await filter.request({\n    method: 'eth_getFilterLogs',\n    params: [filter.id],\n  })\n\n  const formattedLogs = logs.map((log) => formatLog(log))\n  if (!filter.abi)\n    return formattedLogs as GetFilterLogsReturnType<\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >\n  return parseEventLogs({\n    abi: filter.abi,\n    logs: formattedLogs,\n    strict,\n  }) as unknown as GetFilterLogsReturnType<\n    abi,\n    eventName,\n    strict,\n    fromBlock,\n    toBlock\n  >\n}\n","import { versionedHashVersionKzg } from '../../constants/kzg.js'\nimport { maxUint256 } from '../../constants/number.js'\nimport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport { BaseError, type BaseErrorType } from '../../errors/base.js'\nimport {\n  EmptyBlobError,\n  type EmptyBlobErrorType,\n  InvalidVersionedHashSizeError,\n  type InvalidVersionedHashSizeErrorType,\n  InvalidVersionedHashVersionError,\n  type InvalidVersionedHashVersionErrorType,\n} from '../../errors/blob.js'\nimport {\n  InvalidChainIdError,\n  type InvalidChainIdErrorType,\n} from '../../errors/chain.js'\nimport {\n  FeeCapTooHighError,\n  type FeeCapTooHighErrorType,\n  TipAboveFeeCapError,\n  type TipAboveFeeCapErrorType,\n} from '../../errors/node.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  TransactionSerializableEIP1559,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableLegacy,\n} from '../../types/transaction.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport { size } from '../data/size.js'\nimport { slice } from '../data/slice.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nexport type AssertTransactionEIP7702ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | ErrorType\n\nexport function assertTransactionEIP7702(\n  transaction: TransactionSerializableEIP7702,\n) {\n  const { authorizationList } = transaction\n  if (authorizationList) {\n    for (const authorization of authorizationList) {\n      const { chainId } = authorization\n      const address = authorization.address\n      if (!isAddress(address)) throw new InvalidAddressError({ address })\n      if (chainId < 0) throw new InvalidChainIdError({ chainId })\n    }\n  }\n  assertTransactionEIP1559(transaction as {} as TransactionSerializableEIP1559)\n}\n\nexport type AssertTransactionEIP4844ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | EmptyBlobErrorType\n  | InvalidVersionedHashSizeErrorType\n  | InvalidVersionedHashVersionErrorType\n  | ErrorType\n\nexport function assertTransactionEIP4844(\n  transaction: TransactionSerializableEIP4844,\n) {\n  const { blobVersionedHashes } = transaction\n  if (blobVersionedHashes) {\n    if (blobVersionedHashes.length === 0) throw new EmptyBlobError()\n    for (const hash of blobVersionedHashes) {\n      const size_ = size(hash)\n      const version = hexToNumber(slice(hash, 0, 1))\n      if (size_ !== 32)\n        throw new InvalidVersionedHashSizeError({ hash, size: size_ })\n      if (version !== versionedHashVersionKzg)\n        throw new InvalidVersionedHashVersionError({\n          hash,\n          version,\n        })\n    }\n  }\n  assertTransactionEIP1559(transaction as {} as TransactionSerializableEIP1559)\n}\n\nexport type AssertTransactionEIP1559ErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | TipAboveFeeCapErrorType\n  | ErrorType\n\nexport function assertTransactionEIP1559(\n  transaction: TransactionSerializableEIP1559,\n) {\n  const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction\n  if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (maxFeePerGas && maxFeePerGas > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas })\n  if (\n    maxPriorityFeePerGas &&\n    maxFeePerGas &&\n    maxPriorityFeePerGas > maxFeePerGas\n  )\n    throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })\n}\n\nexport type AssertTransactionEIP2930ErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | ErrorType\n\nexport function assertTransactionEIP2930(\n  transaction: TransactionSerializableEIP2930,\n) {\n  const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n    transaction\n  if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (maxPriorityFeePerGas || maxFeePerGas)\n    throw new BaseError(\n      '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.',\n    )\n  if (gasPrice && gasPrice > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n}\n\nexport type AssertTransactionLegacyErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | ErrorType\n\nexport function assertTransactionLegacy(\n  transaction: TransactionSerializableLegacy,\n) {\n  const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n    transaction\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (typeof chainId !== 'undefined' && chainId <= 0)\n    throw new InvalidChainIdError({ chainId })\n  if (maxPriorityFeePerGas || maxFeePerGas)\n    throw new BaseError(\n      '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.',\n    )\n  if (gasPrice && gasPrice > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n}\n","import {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport {\n  InvalidStorageKeySizeError,\n  type InvalidStorageKeySizeErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { AccessList } from '../../types/transaction.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport type { RecursiveArray } from '../encoding/toRlp.js'\n\nexport type SerializeAccessListErrorType =\n  | InvalidStorageKeySizeErrorType\n  | InvalidAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\n/*\n * Serialize an  EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(\n  accessList?: AccessList | undefined,\n): RecursiveArray<Hex> {\n  if (!accessList || accessList.length === 0) return []\n\n  const serializedAccessList = []\n  for (let i = 0; i < accessList.length; i++) {\n    const { address, storageKeys } = accessList[i]\n\n    for (let j = 0; j < storageKeys.length; j++) {\n      if (storageKeys[j].length - 2 !== 64) {\n        throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] })\n      }\n    }\n\n    if (!isAddress(address, { strict: false })) {\n      throw new InvalidAddressError({ address })\n    }\n\n    serializedAccessList.push([address, storageKeys])\n  }\n  return serializedAccessList\n}\n","import {\n  InvalidLegacyVError,\n  type InvalidLegacyVErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  ByteArray,\n  Hex,\n  Signature,\n  SignatureLegacy,\n} from '../../types/misc.js'\nimport type {\n  TransactionSerializable,\n  TransactionSerializableEIP1559,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableGeneric,\n  TransactionSerializableLegacy,\n  TransactionSerialized,\n  TransactionSerializedEIP1559,\n  TransactionSerializedEIP2930,\n  TransactionSerializedEIP4844,\n  TransactionSerializedEIP7702,\n  TransactionSerializedLegacy,\n  TransactionType,\n} from '../../types/transaction.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type SerializeAuthorizationListErrorType,\n  serializeAuthorizationList,\n} from '../authorization/serializeAuthorizationList.js'\nimport {\n  type BlobsToCommitmentsErrorType,\n  blobsToCommitments,\n} from '../blob/blobsToCommitments.js'\nimport {\n  blobsToProofs,\n  type blobsToProofsErrorType,\n} from '../blob/blobsToProofs.js'\nimport {\n  type CommitmentsToVersionedHashesErrorType,\n  commitmentsToVersionedHashes,\n} from '../blob/commitmentsToVersionedHashes.js'\nimport {\n  type ToBlobSidecarsErrorType,\n  toBlobSidecars,\n} from '../blob/toBlobSidecars.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport { trim } from '../data/trim.js'\nimport {\n  bytesToHex,\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../encoding/toHex.js'\nimport { type ToRlpErrorType, toRlp } from '../encoding/toRlp.js'\n\nimport {\n  type AssertTransactionEIP1559ErrorType,\n  type AssertTransactionEIP2930ErrorType,\n  type AssertTransactionEIP4844ErrorType,\n  type AssertTransactionEIP7702ErrorType,\n  type AssertTransactionLegacyErrorType,\n  assertTransactionEIP1559,\n  assertTransactionEIP2930,\n  assertTransactionEIP4844,\n  assertTransactionEIP7702,\n  assertTransactionLegacy,\n} from './assertTransaction.js'\nimport {\n  type GetTransactionType,\n  type GetTransactionTypeErrorType,\n  getTransactionType,\n} from './getTransactionType.js'\nimport {\n  type SerializeAccessListErrorType,\n  serializeAccessList,\n} from './serializeAccessList.js'\n\nexport type SerializedTransactionReturnType<\n  transaction extends TransactionSerializable = TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = GetTransactionType<transaction>,\n> = TransactionSerialized<_transactionType>\n\nexport type SerializeTransactionFn<\n  transaction extends TransactionSerializableGeneric = TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = never,\n> = typeof serializeTransaction<\n  OneOf<TransactionSerializable | transaction>,\n  _transactionType\n>\n\nexport type SerializeTransactionErrorType =\n  | GetTransactionTypeErrorType\n  | SerializeTransactionEIP1559ErrorType\n  | SerializeTransactionEIP2930ErrorType\n  | SerializeTransactionEIP4844ErrorType\n  | SerializeTransactionEIP7702ErrorType\n  | SerializeTransactionLegacyErrorType\n  | ErrorType\n\nexport function serializeTransaction<\n  const transaction extends TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = GetTransactionType<transaction>,\n>(\n  transaction: transaction,\n  signature?: Signature | undefined,\n): SerializedTransactionReturnType<transaction, _transactionType> {\n  const type = getTransactionType(transaction) as GetTransactionType\n\n  if (type === 'eip1559')\n    return serializeTransactionEIP1559(\n      transaction as TransactionSerializableEIP1559,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip2930')\n    return serializeTransactionEIP2930(\n      transaction as TransactionSerializableEIP2930,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip4844')\n    return serializeTransactionEIP4844(\n      transaction as TransactionSerializableEIP4844,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip7702')\n    return serializeTransactionEIP7702(\n      transaction as TransactionSerializableEIP7702,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  return serializeTransactionLegacy(\n    transaction as TransactionSerializableLegacy,\n    signature as SignatureLegacy,\n  ) as SerializedTransactionReturnType<transaction>\n}\n\ntype SerializeTransactionEIP7702ErrorType =\n  | AssertTransactionEIP7702ErrorType\n  | SerializeAuthorizationListErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP7702(\n  transaction: TransactionSerializableEIP7702,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP7702 {\n  const {\n    authorizationList,\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP7702(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n  const serializedAuthorizationList =\n    serializeAuthorizationList(authorizationList)\n\n  return concatHex([\n    '0x04',\n    toRlp([\n      numberToHex(chainId),\n      nonce ? numberToHex(nonce) : '0x',\n      maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n      maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n      gas ? numberToHex(gas) : '0x',\n      to ?? '0x',\n      value ? numberToHex(value) : '0x',\n      data ?? '0x',\n      serializedAccessList,\n      serializedAuthorizationList,\n      ...toYParitySignatureArray(transaction, signature),\n    ]),\n  ]) as TransactionSerializedEIP7702\n}\n\ntype SerializeTransactionEIP4844ErrorType =\n  | AssertTransactionEIP4844ErrorType\n  | BlobsToCommitmentsErrorType\n  | CommitmentsToVersionedHashesErrorType\n  | blobsToProofsErrorType\n  | ToBlobSidecarsErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP4844(\n  transaction: TransactionSerializableEIP4844,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP4844 {\n  const {\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerBlobGas,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP4844(transaction)\n\n  let blobVersionedHashes = transaction.blobVersionedHashes\n  let sidecars = transaction.sidecars\n  // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n  if (\n    transaction.blobs &&\n    (typeof blobVersionedHashes === 'undefined' ||\n      typeof sidecars === 'undefined')\n  ) {\n    const blobs = (\n      typeof transaction.blobs[0] === 'string'\n        ? transaction.blobs\n        : (transaction.blobs as ByteArray[]).map((x) => bytesToHex(x))\n    ) as Hex[]\n    const kzg = transaction.kzg!\n    const commitments = blobsToCommitments({\n      blobs,\n      kzg,\n    })\n\n    if (typeof blobVersionedHashes === 'undefined')\n      blobVersionedHashes = commitmentsToVersionedHashes({\n        commitments,\n      })\n    if (typeof sidecars === 'undefined') {\n      const proofs = blobsToProofs({ blobs, commitments, kzg })\n      sidecars = toBlobSidecars({ blobs, commitments, proofs })\n    }\n  }\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n    maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n    blobVersionedHashes ?? [],\n    ...toYParitySignatureArray(transaction, signature),\n  ] as const\n\n  const blobs: Hex[] = []\n  const commitments: Hex[] = []\n  const proofs: Hex[] = []\n  if (sidecars)\n    for (let i = 0; i < sidecars.length; i++) {\n      const { blob, commitment, proof } = sidecars[i]\n      blobs.push(blob)\n      commitments.push(commitment)\n      proofs.push(proof)\n    }\n\n  return concatHex([\n    '0x03',\n    sidecars\n      ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n        toRlp([serializedTransaction, blobs, commitments, proofs])\n      : // If sidecars are disabled, standard envelope is used:\n        toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP4844\n}\n\ntype SerializeTransactionEIP1559ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP1559(\n  transaction: TransactionSerializableEIP1559,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP1559 {\n  const {\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP1559(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n    maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    ...toYParitySignatureArray(transaction, signature),\n  ]\n\n  return concatHex([\n    '0x02',\n    toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP1559\n}\n\ntype SerializeTransactionEIP2930ErrorType =\n  | AssertTransactionEIP2930ErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP2930(\n  transaction: TransactionSerializableEIP2930,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP2930 {\n  const { chainId, gas, data, nonce, to, value, accessList, gasPrice } =\n    transaction\n\n  assertTransactionEIP2930(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    gasPrice ? numberToHex(gasPrice) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    ...toYParitySignatureArray(transaction, signature),\n  ]\n\n  return concatHex([\n    '0x01',\n    toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP2930\n}\n\ntype SerializeTransactionLegacyErrorType =\n  | AssertTransactionLegacyErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | ErrorType\n\nfunction serializeTransactionLegacy(\n  transaction: TransactionSerializableLegacy,\n  signature?: SignatureLegacy | undefined,\n): TransactionSerializedLegacy {\n  const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction\n\n  assertTransactionLegacy(transaction)\n\n  let serializedTransaction = [\n    nonce ? numberToHex(nonce) : '0x',\n    gasPrice ? numberToHex(gasPrice) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n  ]\n\n  if (signature) {\n    const v = (() => {\n      // EIP-155 (inferred chainId)\n      if (signature.v >= 35n) {\n        const inferredChainId = (signature.v - 35n) / 2n\n        if (inferredChainId > 0) return signature.v\n        return 27n + (signature.v === 35n ? 0n : 1n)\n      }\n\n      // EIP-155 (explicit chainId)\n      if (chainId > 0)\n        return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)\n\n      // Pre-EIP-155 (no chainId)\n      const v = 27n + (signature.v === 27n ? 0n : 1n)\n      if (signature.v !== v) throw new InvalidLegacyVError({ v: signature.v })\n      return v\n    })()\n\n    const r = trim(signature.r)\n    const s = trim(signature.s)\n\n    serializedTransaction = [\n      ...serializedTransaction,\n      numberToHex(v),\n      r === '0x00' ? '0x' : r,\n      s === '0x00' ? '0x' : s,\n    ]\n  } else if (chainId > 0) {\n    serializedTransaction = [\n      ...serializedTransaction,\n      numberToHex(chainId),\n      '0x',\n      '0x',\n    ]\n  }\n\n  return toRlp(serializedTransaction) as TransactionSerializedLegacy\n}\n\nexport function toYParitySignatureArray(\n  transaction: TransactionSerializableGeneric,\n  signature_?: Signature | undefined,\n) {\n  const signature = signature_ ?? transaction\n  const { v, yParity } = signature\n\n  if (typeof signature.r === 'undefined') return []\n  if (typeof signature.s === 'undefined') return []\n  if (typeof v === 'undefined' && typeof yParity === 'undefined') return []\n\n  const r = trim(signature.r)\n  const s = trim(signature.s)\n\n  const yParity_ = (() => {\n    if (typeof yParity === 'number') return yParity ? numberToHex(1) : '0x'\n    if (v === 0n) return '0x'\n    if (v === 1n) return numberToHex(1)\n\n    return v === 27n ? '0x' : numberToHex(1)\n  })()\n\n  return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s]\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type {\n  AuthorizationList,\n  SerializedAuthorizationList,\n} from '../../types/authorization.js'\nimport { toHex } from '../encoding/toHex.js'\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js'\n\nexport type SerializeAuthorizationListReturnType = SerializedAuthorizationList\n\nexport type SerializeAuthorizationListErrorType = ErrorType\n\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(\n  authorizationList?: AuthorizationList<number, true> | undefined,\n): SerializeAuthorizationListReturnType {\n  if (!authorizationList || authorizationList.length === 0) return []\n\n  const serializedAuthorizationList = []\n  for (const authorization of authorizationList) {\n    const { chainId, nonce, ...signature } = authorization\n    const contractAddress = authorization.address\n    serializedAuthorizationList.push([\n      chainId ? toHex(chainId) : '0x',\n      contractAddress,\n      nonce ? toHex(nonce) : '0x',\n      ...toYParitySignatureArray({}, signature),\n    ])\n  }\n\n  return serializedAuthorizationList as {} as SerializeAuthorizationListReturnType\n}\n","import { LruMap } from '../lru.js'\n\n/** @internal */\nexport const promiseCache = /*#__PURE__*/ new LruMap<Promise<any>>(8192)\n\ntype WithDedupeOptions = {\n  enabled?: boolean | undefined\n  id?: string | undefined\n}\n\n/** Deduplicates in-flight promises. */\nexport function withDedupe<data>(\n  fn: () => Promise<data>,\n  { enabled = true, id }: WithDedupeOptions,\n): Promise<data> {\n  if (!enabled || !id) return fn()\n  if (promiseCache.get(id)) return promiseCache.get(id)!\n  const promise = fn().finally(() => promiseCache.delete(id))\n  promiseCache.set(id, promise)\n  return promise\n}\n","import { BaseError } from '../errors/base.js'\nimport {\n  HttpRequestError,\n  type HttpRequestErrorType,\n  type RpcRequestErrorType,\n  type TimeoutErrorType,\n  type WebSocketRequestErrorType,\n} from '../errors/request.js'\nimport {\n  AtomicityNotSupportedError,\n  type AtomicityNotSupportedErrorType,\n  AtomicReadyWalletRejectedUpgradeError,\n  type AtomicReadyWalletRejectedUpgradeErrorType,\n  BundleTooLargeError,\n  type BundleTooLargeErrorType,\n  ChainDisconnectedError,\n  type ChainDisconnectedErrorType,\n  DuplicateIdError,\n  type DuplicateIdErrorType,\n  InternalRpcError,\n  type InternalRpcErrorType,\n  InvalidInputRpcError,\n  type InvalidInputRpcErrorType,\n  InvalidParamsRpcError,\n  type InvalidParamsRpcErrorType,\n  InvalidRequestRpcError,\n  type InvalidRequestRpcErrorType,\n  JsonRpcVersionUnsupportedError,\n  type JsonRpcVersionUnsupportedErrorType,\n  LimitExceededRpcError,\n  type LimitExceededRpcErrorType,\n  MethodNotFoundRpcError,\n  type MethodNotFoundRpcErrorType,\n  MethodNotSupportedRpcError,\n  type MethodNotSupportedRpcErrorType,\n  ParseRpcError,\n  type ParseRpcErrorType,\n  ProviderDisconnectedError,\n  type ProviderDisconnectedErrorType,\n  type ProviderRpcErrorCode,\n  ResourceNotFoundRpcError,\n  type ResourceNotFoundRpcErrorType,\n  ResourceUnavailableRpcError,\n  type ResourceUnavailableRpcErrorType,\n  type RpcError,\n  type RpcErrorCode,\n  type RpcErrorType,\n  SwitchChainError,\n  type SwitchChainErrorType,\n  TransactionRejectedRpcError,\n  type TransactionRejectedRpcErrorType,\n  UnauthorizedProviderError,\n  type UnauthorizedProviderErrorType,\n  UnknownBundleIdError,\n  type UnknownBundleIdErrorType,\n  UnknownRpcError,\n  type UnknownRpcErrorType,\n  UnsupportedChainIdError,\n  type UnsupportedChainIdErrorType,\n  UnsupportedNonOptionalCapabilityError,\n  type UnsupportedNonOptionalCapabilityErrorType,\n  UnsupportedProviderMethodError,\n  type UnsupportedProviderMethodErrorType,\n  UserRejectedRequestError,\n  type UserRejectedRequestErrorType,\n} from '../errors/rpc.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type {\n  EIP1193RequestFn,\n  EIP1193RequestOptions,\n} from '../types/eip1193.js'\nimport { stringToHex } from './encoding/toHex.js'\nimport type { CreateBatchSchedulerErrorType } from './promise/createBatchScheduler.js'\nimport { withDedupe } from './promise/withDedupe.js'\nimport { type WithRetryErrorType, withRetry } from './promise/withRetry.js'\nimport type { GetSocketRpcClientErrorType } from './rpc/socket.js'\nimport { stringify } from './stringify.js'\n\nexport type RequestErrorType =\n  | AtomicityNotSupportedErrorType\n  | AtomicReadyWalletRejectedUpgradeErrorType\n  | BundleTooLargeErrorType\n  | ChainDisconnectedErrorType\n  | CreateBatchSchedulerErrorType\n  | DuplicateIdErrorType\n  | HttpRequestErrorType\n  | InternalRpcErrorType\n  | InvalidInputRpcErrorType\n  | InvalidParamsRpcErrorType\n  | InvalidRequestRpcErrorType\n  | GetSocketRpcClientErrorType\n  | JsonRpcVersionUnsupportedErrorType\n  | LimitExceededRpcErrorType\n  | MethodNotFoundRpcErrorType\n  | MethodNotSupportedRpcErrorType\n  | ParseRpcErrorType\n  | ProviderDisconnectedErrorType\n  | ResourceNotFoundRpcErrorType\n  | ResourceUnavailableRpcErrorType\n  | RpcErrorType\n  | RpcRequestErrorType\n  | SwitchChainErrorType\n  | TimeoutErrorType\n  | TransactionRejectedRpcErrorType\n  | UnauthorizedProviderErrorType\n  | UnknownBundleIdErrorType\n  | UnknownRpcErrorType\n  | UnsupportedChainIdErrorType\n  | UnsupportedNonOptionalCapabilityErrorType\n  | UnsupportedProviderMethodErrorType\n  | UserRejectedRequestErrorType\n  | WebSocketRequestErrorType\n  | WithRetryErrorType\n  | ErrorType\n\nexport function buildRequest<request extends (args: any) => Promise<any>>(\n  request: request,\n  options: EIP1193RequestOptions = {},\n): EIP1193RequestFn {\n  return async (args, overrideOptions = {}) => {\n    const {\n      dedupe = false,\n      methods,\n      retryDelay = 150,\n      retryCount = 3,\n      uid,\n    } = {\n      ...options,\n      ...overrideOptions,\n    }\n\n    const { method } = args\n    if (methods?.exclude?.includes(method))\n      throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n        method,\n      })\n    if (methods?.include && !methods.include.includes(method))\n      throw new MethodNotSupportedRpcError(new Error('method not supported'), {\n        method,\n      })\n\n    const requestId = dedupe\n      ? stringToHex(`${uid}.${stringify(args)}`)\n      : undefined\n    return withDedupe(\n      () =>\n        withRetry(\n          async () => {\n            try {\n              return await request(args)\n            } catch (err_) {\n              const err = err_ as unknown as RpcError<\n                RpcErrorCode | ProviderRpcErrorCode\n              >\n              switch (err.code) {\n                // -32700\n                case ParseRpcError.code:\n                  throw new ParseRpcError(err)\n                // -32600\n                case InvalidRequestRpcError.code:\n                  throw new InvalidRequestRpcError(err)\n                // -32601\n                case MethodNotFoundRpcError.code:\n                  throw new MethodNotFoundRpcError(err, { method: args.method })\n                // -32602\n                case InvalidParamsRpcError.code:\n                  throw new InvalidParamsRpcError(err)\n                // -32603\n                case InternalRpcError.code:\n                  throw new InternalRpcError(err)\n                // -32000\n                case InvalidInputRpcError.code:\n                  throw new InvalidInputRpcError(err)\n                // -32001\n                case ResourceNotFoundRpcError.code:\n                  throw new ResourceNotFoundRpcError(err)\n                // -32002\n                case ResourceUnavailableRpcError.code:\n                  throw new ResourceUnavailableRpcError(err)\n                // -32003\n                case TransactionRejectedRpcError.code:\n                  throw new TransactionRejectedRpcError(err)\n                // -32004\n                case MethodNotSupportedRpcError.code:\n                  throw new MethodNotSupportedRpcError(err, {\n                    method: args.method,\n                  })\n                // -32005\n                case LimitExceededRpcError.code:\n                  throw new LimitExceededRpcError(err)\n                // -32006\n                case JsonRpcVersionUnsupportedError.code:\n                  throw new JsonRpcVersionUnsupportedError(err)\n\n                // 4001\n                case UserRejectedRequestError.code:\n                  throw new UserRejectedRequestError(err)\n                // 4100\n                case UnauthorizedProviderError.code:\n                  throw new UnauthorizedProviderError(err)\n                // 4200\n                case UnsupportedProviderMethodError.code:\n                  throw new UnsupportedProviderMethodError(err)\n                // 4900\n                case ProviderDisconnectedError.code:\n                  throw new ProviderDisconnectedError(err)\n                // 4901\n                case ChainDisconnectedError.code:\n                  throw new ChainDisconnectedError(err)\n                // 4902\n                case SwitchChainError.code:\n                  throw new SwitchChainError(err)\n\n                // 5700\n                case UnsupportedNonOptionalCapabilityError.code:\n                  throw new UnsupportedNonOptionalCapabilityError(err)\n                // 5710\n                case UnsupportedChainIdError.code:\n                  throw new UnsupportedChainIdError(err)\n                // 5720\n                case DuplicateIdError.code:\n                  throw new DuplicateIdError(err)\n                // 5730\n                case UnknownBundleIdError.code:\n                  throw new UnknownBundleIdError(err)\n                // 5740\n                case BundleTooLargeError.code:\n                  throw new BundleTooLargeError(err)\n                // 5750\n                case AtomicReadyWalletRejectedUpgradeError.code:\n                  throw new AtomicReadyWalletRejectedUpgradeError(err)\n                // 5760\n                case AtomicityNotSupportedError.code:\n                  throw new AtomicityNotSupportedError(err)\n\n                // CAIP-25: User Rejected Error\n                // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n                case 5000:\n                  throw new UserRejectedRequestError(err)\n\n                default:\n                  if (err_ instanceof BaseError) throw err_\n                  throw new UnknownRpcError(err as Error)\n              }\n            }\n          },\n          {\n            delay: ({ count, error }) => {\n              // If we find a Retry-After header, let's retry after the given time.\n              if (error && error instanceof HttpRequestError) {\n                const retryAfter = error?.headers?.get('Retry-After')\n                if (retryAfter?.match(/\\d/))\n                  return Number.parseInt(retryAfter, 10) * 1000\n              }\n\n              // Otherwise, let's retry with an exponential backoff.\n              return ~~(1 << count) * retryDelay\n            },\n            retryCount,\n            shouldRetry: ({ error }) => shouldRetry(error),\n          },\n        ),\n      { enabled: dedupe, id: requestId },\n    )\n  }\n}\n\n/** @internal */\nexport function shouldRetry(error: Error) {\n  if ('code' in error && typeof error.code === 'number') {\n    if (error.code === -1) return true // Unknown error\n    if (error.code === LimitExceededRpcError.code) return true\n    if (error.code === InternalRpcError.code) return true\n    return false\n  }\n  if (error instanceof HttpRequestError && error.status) {\n    // Forbidden\n    if (error.status === 403) return true\n    // Request Timeout\n    if (error.status === 408) return true\n    // Request Entity Too Large\n    if (error.status === 413) return true\n    // Too Many Requests\n    if (error.status === 429) return true\n    // Internal Server Error\n    if (error.status === 500) return true\n    // Bad Gateway\n    if (error.status === 502) return true\n    // Service Unavailable\n    if (error.status === 503) return true\n    // Gateway Timeout\n    if (error.status === 504) return true\n    return false\n  }\n  return true\n}\n","import type { Chain, ChainFormatters } from '../../types/chain.js'\nimport type { Assign, Prettify } from '../../types/utils.js'\n\nexport function defineChain<\n  formatters extends ChainFormatters,\n  const chain extends Chain<formatters>,\n>(chain: chain): Prettify<Assign<Chain<undefined>, chain>> {\n  return {\n    formatters: undefined,\n    fees: undefined,\n    serializers: undefined,\n    ...chain,\n  } as Assign<Chain<undefined>, chain>\n}\n","import type { ErrorType } from '../../errors/utils.js'\n\nexport type WithTimeoutErrorType = ErrorType\n\nexport function withTimeout<data>(\n  fn: ({\n    signal,\n  }: {\n    signal: AbortController['signal'] | null\n  }) => Promise<data>,\n  {\n    errorInstance = new Error('timed out'),\n    timeout,\n    signal,\n  }: {\n    // The error instance to throw when the timeout is reached.\n    errorInstance?: Error | undefined\n    // The timeout (in ms).\n    timeout: number\n    // Whether or not the timeout should use an abort signal.\n    signal?: boolean | undefined\n  },\n): Promise<data> {\n  return new Promise((resolve, reject) => {\n    ;(async () => {\n      let timeoutId!: NodeJS.Timeout\n      try {\n        const controller = new AbortController()\n        if (timeout > 0) {\n          timeoutId = setTimeout(() => {\n            if (signal) {\n              controller.abort()\n            } else {\n              reject(errorInstance)\n            }\n          }, timeout) as NodeJS.Timeout // need to cast because bun globals.d.ts overrides @types/node\n        }\n        resolve(await fn({ signal: controller?.signal || null }))\n      } catch (err) {\n        if ((err as Error)?.name === 'AbortError') reject(errorInstance)\n        reject(err)\n      } finally {\n        clearTimeout(timeoutId)\n      }\n    })()\n  })\n}\n","function createIdStore() {\n  return {\n    current: 0,\n    take() {\n      return this.current++\n    },\n    reset() {\n      this.current = 0\n    },\n  }\n}\n\nexport const idCache = /*#__PURE__*/ createIdStore()\n","import {\n  HttpRequestError,\n  type HttpRequestErrorType as HttpRequestErrorType_,\n  TimeoutError,\n  type TimeoutErrorType,\n} from '../../errors/request.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { RpcRequest, RpcResponse } from '../../types/rpc.js'\nimport type { MaybePromise } from '../../types/utils.js'\nimport {\n  type WithTimeoutErrorType,\n  withTimeout,\n} from '../promise/withTimeout.js'\nimport { stringify } from '../stringify.js'\nimport { idCache } from './id.js'\n\nexport type HttpRpcClientOptions = {\n  /** Request configuration to pass to `fetch`. */\n  fetchOptions?: Omit<RequestInit, 'body'> | undefined\n  /** A callback to handle the request. */\n  onRequest?:\n    | ((\n        request: Request,\n        init: RequestInit,\n      ) => MaybePromise<\n        void | undefined | (RequestInit & { url?: string | undefined })\n      >)\n    | undefined\n  /** A callback to handle the response. */\n  onResponse?: ((response: Response) => Promise<void> | void) | undefined\n  /** The timeout (in ms) for the request. */\n  timeout?: number | undefined\n}\n\nexport type HttpRequestParameters<\n  body extends RpcRequest | RpcRequest[] = RpcRequest,\n> = {\n  /** The RPC request body. */\n  body: body\n  /** Request configuration to pass to `fetch`. */\n  fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined\n  /** A callback to handle the response. */\n  onRequest?:\n    | ((\n        request: Request,\n        init: RequestInit,\n      ) => MaybePromise<\n        void | undefined | (RequestInit & { url?: string | undefined })\n      >)\n    | undefined\n  /** A callback to handle the response. */\n  onResponse?: ((response: Response) => Promise<void> | void) | undefined\n  /** The timeout (in ms) for the request. */\n  timeout?: HttpRpcClientOptions['timeout'] | undefined\n}\n\nexport type HttpRequestReturnType<\n  body extends RpcRequest | RpcRequest[] = RpcRequest,\n> = body extends RpcRequest[] ? RpcResponse[] : RpcResponse\n\nexport type HttpRequestErrorType =\n  | HttpRequestErrorType_\n  | TimeoutErrorType\n  | WithTimeoutErrorType\n  | ErrorType\n\nexport type HttpRpcClient = {\n  request<body extends RpcRequest | RpcRequest[]>(\n    params: HttpRequestParameters<body>,\n  ): Promise<HttpRequestReturnType<body>>\n}\n\nexport function getHttpRpcClient(\n  url: string,\n  options: HttpRpcClientOptions = {},\n): HttpRpcClient {\n  return {\n    async request(params) {\n      const {\n        body,\n        onRequest = options.onRequest,\n        onResponse = options.onResponse,\n        timeout = options.timeout ?? 10_000,\n      } = params\n\n      const fetchOptions = {\n        ...(options.fetchOptions ?? {}),\n        ...(params.fetchOptions ?? {}),\n      }\n\n      const { headers, method, signal: signal_ } = fetchOptions\n\n      try {\n        const response = await withTimeout(\n          async ({ signal }) => {\n            const init: RequestInit = {\n              ...fetchOptions,\n              body: Array.isArray(body)\n                ? stringify(\n                    body.map((body) => ({\n                      jsonrpc: '2.0',\n                      id: body.id ?? idCache.take(),\n                      ...body,\n                    })),\n                  )\n                : stringify({\n                    jsonrpc: '2.0',\n                    id: body.id ?? idCache.take(),\n                    ...body,\n                  }),\n              headers: {\n                'Content-Type': 'application/json',\n                ...headers,\n              },\n              method: method || 'POST',\n              signal: signal_ || (timeout > 0 ? signal : null),\n            }\n            const request = new Request(url, init)\n            const args = (await onRequest?.(request, init)) ?? { ...init, url }\n            const response = await fetch(args.url ?? url, args)\n            return response\n          },\n          {\n            errorInstance: new TimeoutError({ body, url }),\n            timeout,\n            signal: true,\n          },\n        )\n\n        if (onResponse) await onResponse(response)\n\n        let data: any\n        if (\n          response.headers.get('Content-Type')?.startsWith('application/json')\n        )\n          data = await response.json()\n        else {\n          data = await response.text()\n          try {\n            data = JSON.parse(data || '{}')\n          } catch (err) {\n            if (response.ok) throw err\n            data = { error: data }\n          }\n        }\n\n        if (!response.ok) {\n          throw new HttpRequestError({\n            body,\n            details: stringify(data.error) || response.statusText,\n            headers: response.headers,\n            status: response.status,\n            url,\n          })\n        }\n\n        return data\n      } catch (err) {\n        if (err instanceof HttpRequestError) throw err\n        if (err instanceof TimeoutError) throw err\n        throw new HttpRequestError({\n          body,\n          cause: err as Error,\n          url,\n        })\n      }\n    },\n  }\n}\n","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n'\n","import { presignMessagePrefix } from '../../constants/strings.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport { type ConcatErrorType, concat } from '../data/concat.js'\nimport { size } from '../data/size.js'\nimport {\n  type BytesToHexErrorType,\n  bytesToHex,\n  type StringToHexErrorType,\n  stringToHex,\n} from '../encoding/toHex.js'\n\nexport type ToPrefixedMessageErrorType =\n  | ConcatErrorType\n  | StringToHexErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\nexport function toPrefixedMessage(message_: SignableMessage): Hex {\n  const message = (() => {\n    if (typeof message_ === 'string') return stringToHex(message_)\n    if (typeof message_.raw === 'string') return message_.raw\n    return bytesToHex(message_.raw)\n  })()\n  const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`)\n  return concat([prefix, message])\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport { toPrefixedMessage } from './toPrefixedMessage.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type HashMessageReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type HashMessageErrorType = Keccak256ErrorType | ErrorType\n\nexport function hashMessage<to extends To = 'hex'>(\n  message: SignableMessage,\n  to_?: to | undefined,\n): HashMessageReturnType<to> {\n  return keccak256(toPrefixedMessage(message), to_)\n}\n","import type { TypedData } from 'abitype'\n\nimport { stringify } from '../utils/stringify.js'\nimport { BaseError } from './base.js'\n\nexport type InvalidDomainErrorType = InvalidDomainError & {\n  name: 'InvalidDomainError'\n}\nexport class InvalidDomainError extends BaseError {\n  constructor({ domain }: { domain: unknown }) {\n    super(`Invalid domain \"${stringify(domain)}\".`, {\n      metaMessages: ['Must be a valid EIP-712 domain.'],\n    })\n  }\n}\n\nexport type InvalidPrimaryTypeErrorType = InvalidPrimaryTypeError & {\n  name: 'InvalidPrimaryTypeError'\n}\nexport class InvalidPrimaryTypeError extends BaseError {\n  constructor({\n    primaryType,\n    types,\n  }: { primaryType: string; types: TypedData | Record<string, unknown> }) {\n    super(\n      `Invalid primary type \\`${primaryType}\\` must be one of \\`${JSON.stringify(Object.keys(types))}\\`.`,\n      {\n        docsPath: '/api/glossary/Errors#typeddatainvalidprimarytypeerror',\n        metaMessages: ['Check that the primary type is a key in `types`.'],\n      },\n    )\n  }\n}\n\nexport type InvalidStructTypeErrorType = InvalidStructTypeError & {\n  name: 'InvalidStructTypeError'\n}\nexport class InvalidStructTypeError extends BaseError {\n  constructor({ type }: { type: string }) {\n    super(`Struct type \"${type}\" is invalid.`, {\n      metaMessages: ['Struct type must not be a Solidity type.'],\n      name: 'InvalidStructTypeError',\n    })\n  }\n}\n","import type { TypedData, TypedDataDomain, TypedDataParameter } from 'abitype'\n\nimport { BytesSizeMismatchError } from '../errors/abi.js'\nimport { InvalidAddressError } from '../errors/address.js'\nimport {\n  InvalidDomainError,\n  InvalidPrimaryTypeError,\n  InvalidStructTypeError,\n} from '../errors/typedData.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Hex } from '../types/misc.js'\nimport type { TypedDataDefinition } from '../types/typedData.js'\nimport { type IsAddressErrorType, isAddress } from './address/isAddress.js'\nimport { type SizeErrorType, size } from './data/size.js'\nimport { type NumberToHexErrorType, numberToHex } from './encoding/toHex.js'\nimport { bytesRegex, integerRegex } from './regex.js'\nimport {\n  type HashDomainErrorType,\n  hashDomain,\n} from './signature/hashTypedData.js'\nimport { stringify } from './stringify.js'\n\nexport type SerializeTypedDataErrorType =\n  | HashDomainErrorType\n  | IsAddressErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nexport function serializeTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(parameters: TypedDataDefinition<typedData, primaryType>) {\n  const {\n    domain: domain_,\n    message: message_,\n    primaryType,\n    types,\n  } = parameters as unknown as TypedDataDefinition\n\n  const normalizeData = (\n    struct: readonly TypedDataParameter[],\n    data_: Record<string, unknown>,\n  ) => {\n    const data = { ...data_ }\n    for (const param of struct) {\n      const { name, type } = param\n      if (type === 'address') data[name] = (data[name] as string).toLowerCase()\n    }\n    return data\n  }\n\n  const domain = (() => {\n    if (!types.EIP712Domain) return {}\n    if (!domain_) return {}\n    return normalizeData(types.EIP712Domain, domain_)\n  })()\n\n  const message = (() => {\n    if (primaryType === 'EIP712Domain') return undefined\n    return normalizeData(types[primaryType], message_)\n  })()\n\n  return stringify({ domain, message, primaryType, types })\n}\n\nexport type ValidateTypedDataErrorType =\n  | HashDomainErrorType\n  | IsAddressErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nexport function validateTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(parameters: TypedDataDefinition<typedData, primaryType>) {\n  const { domain, message, primaryType, types } =\n    parameters as unknown as TypedDataDefinition\n\n  const validateData = (\n    struct: readonly TypedDataParameter[],\n    data: Record<string, unknown>,\n  ) => {\n    for (const param of struct) {\n      const { name, type } = param\n      const value = data[name]\n\n      const integerMatch = type.match(integerRegex)\n      if (\n        integerMatch &&\n        (typeof value === 'number' || typeof value === 'bigint')\n      ) {\n        const [_type, base, size_] = integerMatch\n        // If number cannot be cast to a sized hex value, it is out of range\n        // and will throw.\n        numberToHex(value, {\n          signed: base === 'int',\n          size: Number.parseInt(size_, 10) / 8,\n        })\n      }\n\n      if (type === 'address' && typeof value === 'string' && !isAddress(value))\n        throw new InvalidAddressError({ address: value })\n\n      const bytesMatch = type.match(bytesRegex)\n      if (bytesMatch) {\n        const [_type, size_] = bytesMatch\n        if (size_ && size(value as Hex) !== Number.parseInt(size_, 10))\n          throw new BytesSizeMismatchError({\n            expectedSize: Number.parseInt(size_, 10),\n            givenSize: size(value as Hex),\n          })\n      }\n\n      const struct = types[type]\n      if (struct) {\n        validateReference(type)\n        validateData(struct, value as Record<string, unknown>)\n      }\n    }\n  }\n\n  // Validate domain types.\n  if (types.EIP712Domain && domain) {\n    if (typeof domain !== 'object') throw new InvalidDomainError({ domain })\n    validateData(types.EIP712Domain, domain)\n  }\n\n  // Validate message types.\n  if (primaryType !== 'EIP712Domain') {\n    if (types[primaryType]) validateData(types[primaryType], message)\n    else throw new InvalidPrimaryTypeError({ primaryType, types })\n  }\n}\n\nexport type GetTypesForEIP712DomainErrorType = ErrorType\n\nexport function getTypesForEIP712Domain({\n  domain,\n}: {\n  domain?: TypedDataDomain | undefined\n}): TypedDataParameter[] {\n  return [\n    typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n    domain?.version && { name: 'version', type: 'string' },\n    (typeof domain?.chainId === 'number' ||\n      typeof domain?.chainId === 'bigint') && {\n      name: 'chainId',\n      type: 'uint256',\n    },\n    domain?.verifyingContract && {\n      name: 'verifyingContract',\n      type: 'address',\n    },\n    domain?.salt && { name: 'salt', type: 'bytes32' },\n  ].filter(Boolean) as TypedDataParameter[]\n}\n\nexport type DomainSeparatorErrorType =\n  | GetTypesForEIP712DomainErrorType\n  | HashDomainErrorType\n  | ErrorType\n\nexport function domainSeparator({ domain }: { domain: TypedDataDomain }): Hex {\n  return hashDomain({\n    domain,\n    types: {\n      EIP712Domain: getTypesForEIP712Domain({ domain }),\n    },\n  })\n}\n\n/** @internal */\nfunction validateReference(type: string) {\n  // Struct type must not be a Solidity type.\n  if (\n    type === 'address' ||\n    type === 'bool' ||\n    type === 'string' ||\n    type.startsWith('bytes') ||\n    type.startsWith('uint') ||\n    type.startsWith('int')\n  )\n    throw new InvalidStructTypeError({ type })\n}\n","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\n\nimport type { AbiParameter, TypedData, TypedDataDomain } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport {\n  type EncodeAbiParametersErrorType,\n  encodeAbiParameters,\n} from '../abi/encodeAbiParameters.js'\nimport { concat } from '../data/concat.js'\nimport { type ToHexErrorType, toHex } from '../encoding/toHex.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport {\n  type GetTypesForEIP712DomainErrorType,\n  getTypesForEIP712Domain,\n  type ValidateTypedDataErrorType,\n  validateTypedData,\n} from '../typedData.js'\n\ntype MessageTypeProperty = {\n  name: string\n  type: string\n}\n\nexport type HashTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n> = TypedDataDefinition<typedData, primaryType>\n\nexport type HashTypedDataReturnType = Hex\n\nexport type HashTypedDataErrorType =\n  | GetTypesForEIP712DomainErrorType\n  | HashDomainErrorType\n  | HashStructErrorType\n  | ValidateTypedDataErrorType\n  | ErrorType\n\nexport function hashTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(\n  parameters: HashTypedDataParameters<typedData, primaryType>,\n): HashTypedDataReturnType {\n  const {\n    domain = {},\n    message,\n    primaryType,\n  } = parameters as HashTypedDataParameters\n  const types = {\n    EIP712Domain: getTypesForEIP712Domain({ domain }),\n    ...parameters.types,\n  }\n\n  // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n  // as we can't statically check this with TypeScript.\n  validateTypedData({\n    domain,\n    message,\n    primaryType,\n    types,\n  })\n\n  const parts: Hex[] = ['0x1901']\n  if (domain)\n    parts.push(\n      hashDomain({\n        domain,\n        types: types as Record<string, MessageTypeProperty[]>,\n      }),\n    )\n\n  if (primaryType !== 'EIP712Domain')\n    parts.push(\n      hashStruct({\n        data: message,\n        primaryType,\n        types: types as Record<string, MessageTypeProperty[]>,\n      }),\n    )\n\n  return keccak256(concat(parts))\n}\n\nexport type HashDomainErrorType = HashStructErrorType | ErrorType\n\nexport function hashDomain({\n  domain,\n  types,\n}: {\n  domain: TypedDataDomain\n  types: Record<string, MessageTypeProperty[]>\n}) {\n  return hashStruct({\n    data: domain,\n    primaryType: 'EIP712Domain',\n    types,\n  })\n}\n\nexport type HashStructErrorType =\n  | EncodeDataErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\nexport function hashStruct({\n  data,\n  primaryType,\n  types,\n}: {\n  data: Record<string, unknown>\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encoded = encodeData({\n    data,\n    primaryType,\n    types,\n  })\n  return keccak256(encoded)\n}\n\ntype EncodeDataErrorType =\n  | EncodeAbiParametersErrorType\n  | EncodeFieldErrorType\n  | HashTypeErrorType\n  | ErrorType\n\nfunction encodeData({\n  data,\n  primaryType,\n  types,\n}: {\n  data: Record<string, unknown>\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encodedTypes: AbiParameter[] = [{ type: 'bytes32' }]\n  const encodedValues: unknown[] = [hashType({ primaryType, types })]\n\n  for (const field of types[primaryType]) {\n    const [type, value] = encodeField({\n      types,\n      name: field.name,\n      type: field.type,\n      value: data[field.name],\n    })\n    encodedTypes.push(type)\n    encodedValues.push(value)\n  }\n\n  return encodeAbiParameters(encodedTypes, encodedValues)\n}\n\ntype HashTypeErrorType =\n  | ToHexErrorType\n  | EncodeTypeErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\nfunction hashType({\n  primaryType,\n  types,\n}: {\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encodedHashType = toHex(encodeType({ primaryType, types }))\n  return keccak256(encodedHashType)\n}\n\ntype EncodeTypeErrorType = FindTypeDependenciesErrorType\n\nexport function encodeType({\n  primaryType,\n  types,\n}: {\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  let result = ''\n  const unsortedDeps = findTypeDependencies({ primaryType, types })\n  unsortedDeps.delete(primaryType)\n\n  const deps = [primaryType, ...Array.from(unsortedDeps).sort()]\n  for (const type of deps) {\n    result += `${type}(${types[type]\n      .map(({ name, type: t }) => `${t} ${name}`)\n      .join(',')})`\n  }\n\n  return result\n}\n\ntype FindTypeDependenciesErrorType = ErrorType\n\nfunction findTypeDependencies(\n  {\n    primaryType: primaryType_,\n    types,\n  }: {\n    primaryType: string\n    types: Record<string, readonly MessageTypeProperty[]>\n  },\n  results: Set<string> = new Set(),\n): Set<string> {\n  const match = primaryType_.match(/^\\w*/u)\n  const primaryType = match?.[0]!\n  if (results.has(primaryType) || types[primaryType] === undefined) {\n    return results\n  }\n\n  results.add(primaryType)\n\n  for (const field of types[primaryType]) {\n    findTypeDependencies({ primaryType: field.type, types }, results)\n  }\n  return results\n}\n\ntype EncodeFieldErrorType =\n  | Keccak256ErrorType\n  | EncodeAbiParametersErrorType\n  | ToHexErrorType\n  | ErrorType\n\nfunction encodeField({\n  types,\n  name,\n  type,\n  value,\n}: {\n  types: Record<string, readonly MessageTypeProperty[]>\n  name: string\n  type: string\n  value: any\n}): [type: AbiParameter, value: any] {\n  if (types[type] !== undefined) {\n    return [\n      { type: 'bytes32' },\n      keccak256(encodeData({ data: value, primaryType: type, types })),\n    ]\n  }\n\n  if (type === 'bytes') {\n    const prepend = value.length % 2 ? '0' : ''\n    value = `0x${prepend + value.slice(2)}`\n    return [{ type: 'bytes32' }, keccak256(value)]\n  }\n\n  if (type === 'string') return [{ type: 'bytes32' }, keccak256(toHex(value))]\n\n  if (type.lastIndexOf(']') === type.length - 1) {\n    const parsedType = type.slice(0, type.lastIndexOf('['))\n    const typeValuePairs = (value as [AbiParameter, any][]).map((item) =>\n      encodeField({\n        name,\n        type: parsedType,\n        types,\n        value: item,\n      }),\n    )\n    return [\n      { type: 'bytes32' },\n      keccak256(\n        encodeAbiParameters(\n          typeValuePairs.map(([t]) => t),\n          typeValuePairs.map(([, v]) => v),\n        ),\n      ),\n    ]\n  }\n\n  return [{ type }, value]\n}\n","export const erc6492MagicBytes =\n  '0x6492649264926492649264926492649264926492649264926492649264926492' as const\n\nexport const zeroHash =\n  '0x0000000000000000000000000000000000000000000000000000000000000000' as const\n","import { erc6492MagicBytes } from '../../constants/bytes.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport { type SliceHexErrorType, sliceHex } from '../data/slice.js'\n\nexport type IsErc6492SignatureParameters = Hex\nexport type IsErc6492SignatureReturnType = boolean\nexport type IsErc6492SignatureErrorType = SliceHexErrorType | ErrorType\n\n/** Whether or not the signature is an ERC-6492 formatted signature. */\nexport function isErc6492Signature(\n  signature: IsErc6492SignatureParameters,\n): IsErc6492SignatureReturnType {\n  return sliceHex(signature, -32) === erc6492MagicBytes\n}\n","import type { Address } from 'abitype'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { OneOf, Prettify } from '../../types/utils.js'\nimport {\n  type DecodeAbiParametersErrorType,\n  decodeAbiParameters,\n} from '../abi/decodeAbiParameters.js'\nimport {\n  type IsErc6492SignatureErrorType,\n  isErc6492Signature,\n} from './isErc6492Signature.js'\n\nexport type ParseErc6492SignatureParameters = Hex\n\nexport type ParseErc6492SignatureReturnType = Prettify<\n  OneOf<\n    | {\n        /**\n         * The ERC-4337 Account Factory or preparation address to use for counterfactual verification.\n         * `undefined` if the signature is not in ERC-6492 format.\n         */\n        address: Address\n        /**\n         * Calldata to pass to deploy account (if not deployed) for counterfactual verification.\n         * `undefined` if the signature is not in ERC-6492 format.\n         */\n        data: Hex\n        /** The original signature. */\n        signature: Hex\n      }\n    | {\n        /** The original signature. */\n        signature: Hex\n      }\n  >\n>\n\nexport type ParseErc6492SignatureErrorType =\n  | IsErc6492SignatureErrorType\n  | DecodeAbiParametersErrorType\n  | ErrorType\n\n/**\n * @description Parses a hex-formatted ERC-6492 flavoured signature.\n * If the signature is not in ERC-6492 format, then the underlying (original) signature is returned.\n *\n * @param signature ERC-6492 signature in hex format.\n * @returns The parsed ERC-6492 signature.\n *\n * @example\n * parseSignature('0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492')\n * // { address: '0x...', data: '0x...', signature: '0x...' }\n */\nexport function parseErc6492Signature(\n  signature: ParseErc6492SignatureParameters,\n): ParseErc6492SignatureReturnType {\n  if (!isErc6492Signature(signature)) return { signature }\n\n  const [address, data, signature_] = decodeAbiParameters(\n    [{ type: 'address' }, { type: 'bytes' }, { type: 'bytes' }],\n    signature,\n  )\n  return { address, data, signature: signature_ }\n}\n","import type { Address } from 'abitype'\nimport { erc6492MagicBytes } from '../../constants/bytes.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { encodeAbiParameters } from '../abi/encodeAbiParameters.js'\nimport { concatHex } from '../data/concat.js'\nimport { hexToBytes } from '../encoding/toBytes.js'\n\ntype To = 'bytes' | 'hex'\n\nexport type SerializeErc6492SignatureParameters<to extends To = 'hex'> = {\n  /** The ERC-4337 Account Factory address to use for counterfactual verification. */\n  address: Address\n  /** Calldata to pass to deploy account (if not deployed) for counterfactual verification. */\n  data: Hex\n  /** The original signature. */\n  signature: Hex\n  to?: to | To | undefined\n}\n\nexport type SerializeErc6492SignatureReturnType<to extends To = 'hex'> =\n  | (to extends 'hex' ? Hex : never)\n  | (to extends 'bytes' ? ByteArray : never)\n\nexport type SerializeErc6492SignatureErrorType = ErrorType\n\n/**\n * @description Serializes a ERC-6492 flavoured signature into hex format.\n *\n * @param signature ERC-6492 signature in object format.\n * @returns ERC-6492 signature in hex format.\n *\n * @example\n * serializeSignature({ address: '0x...', data: '0x...', signature: '0x...' })\n * // '0x000000000000000000000000cafebabecafebabecafebabecafebabecafebabe000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000004deadbeef000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041a461f509887bd19e312c0c58467ce8ff8e300d3c1a90b608a760c5b80318eaf15fe57c96f9175d6cd4daad4663763baa7e78836e067d0163e9a2ccf2ff753f5b1b000000000000000000000000000000000000000000000000000000000000006492649264926492649264926492649264926492649264926492649264926492'\n */\nexport function serializeErc6492Signature<to extends To = 'hex'>(\n  parameters: SerializeErc6492SignatureParameters<to>,\n): SerializeErc6492SignatureReturnType<to> {\n  const { address, data, signature, to = 'hex' } = parameters\n  const signature_ = concatHex([\n    encodeAbiParameters(\n      [{ type: 'address' }, { type: 'bytes' }, { type: 'bytes' }],\n      [address, data, signature],\n    ),\n    erc6492MagicBytes,\n  ])\n\n  if (to === 'hex') return signature_ as SerializeErc6492SignatureReturnType<to>\n  return hexToBytes(signature_) as SerializeErc6492SignatureReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Proof } from '../../types/proof.js'\nimport type { RpcProof } from '../../types/rpc.js'\nimport type { ExactPartial } from '../../types/utils.js'\nimport { hexToNumber } from '../index.js'\n\nexport type FormatProofErrorType = ErrorType\n\nfunction formatStorageProof(storageProof: RpcProof['storageProof']) {\n  return storageProof.map((proof) => ({\n    ...proof,\n    value: BigInt(proof.value),\n  }))\n}\n\nexport function formatProof(proof: ExactPartial<RpcProof>) {\n  return {\n    ...proof,\n    balance: proof.balance ? BigInt(proof.balance) : undefined,\n    nonce: proof.nonce ? hexToNumber(proof.nonce) : undefined,\n    storageProof: proof.storageProof\n      ? formatStorageProof(proof.storageProof)\n      : undefined,\n  } as Proof\n}\n","import type { Address } from 'abitype'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { Proof } from '../../types/proof.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type FormatProofErrorType,\n  formatProof,\n} from '../../utils/formatters/proof.js'\n\nexport type GetProofParameters = {\n  /** Account address. */\n  address: Address\n  /** Array of storage-keys that should be proofed and included. */\n  storageKeys: Hash[]\n} & (\n  | {\n      /** The block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockNumber?: undefined\n      /**\n       * The block tag.\n       * @default 'latest'\n       */\n      blockTag?: BlockTag | undefined\n    }\n)\n\nexport type GetProofReturnType = Proof\n\nexport type GetProofErrorType =\n  | NumberToHexErrorType\n  | FormatProofErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns the account and storage values of the specified account including the Merkle-proof.\n *\n * - Docs: https://viem.sh/docs/actions/public/getProof\n * - JSON-RPC Methods:\n *   - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n *\n * @param client - Client to use\n * @param parameters - {@link GetProofParameters}\n * @returns Proof data. {@link GetProofReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getProof } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const block = await getProof(client, {\n *  address: '0x...',\n *  storageKeys: ['0x...'],\n * })\n */\nexport async function getProof<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    address,\n    blockNumber,\n    blockTag: blockTag_,\n    storageKeys,\n  }: GetProofParameters,\n): Promise<GetProofReturnType> {\n  const blockTag = blockTag_ ?? 'latest'\n\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n  const proof = await client.request({\n    method: 'eth_getProof',\n    params: [address, storageKeys, blockNumberHex || blockTag],\n  })\n\n  return formatProof(proof)\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type GetStorageAtParameters = {\n  address: Address\n  slot: Hex\n} & (\n  | {\n      blockNumber?: undefined\n      blockTag?: BlockTag | undefined\n    }\n  | {\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n)\n\nexport type GetStorageAtReturnType = Hex | undefined\n\nexport type GetStorageAtErrorType =\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns the value from a storage slot at a given address.\n *\n * - Docs: https://viem.sh/docs/contract/getStorageAt\n * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n *\n * @param client - Client to use\n * @param parameters - {@link GetStorageAtParameters}\n * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getStorageAt } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const code = await getStorageAt(client, {\n *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *   slot: toHex(0),\n * })\n */\nexport async function getStorageAt<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { address, blockNumber, blockTag = 'latest', slot }: GetStorageAtParameters,\n): Promise<GetStorageAtReturnType> {\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n  const data = await client.request({\n    method: 'eth_getStorageAt',\n    params: [address, slot, blockNumberHex || blockTag],\n  })\n  return data\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  TransactionNotFoundError,\n  type TransactionNotFoundErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RpcTransaction } from '../../types/rpc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport {\n  type FormattedTransaction,\n  formatTransaction,\n} from '../../utils/formatters/transaction.js'\n\nexport type GetTransactionParameters<blockTag extends BlockTag = 'latest'> =\n  | {\n      /** The block hash */\n      blockHash: Hash\n      blockNumber?: undefined\n      blockTag?: undefined\n      hash?: undefined\n      /** The index of the transaction on the block. */\n      index: number\n    }\n  | {\n      blockHash?: undefined\n      /** The block number */\n      blockNumber: bigint\n      blockTag?: undefined\n      hash?: undefined\n      /** The index of the transaction on the block. */\n      index: number\n    }\n  | {\n      blockHash?: undefined\n      blockNumber?: undefined\n      /** The block tag. */\n      blockTag: blockTag | BlockTag\n      hash?: undefined\n      /** The index of the transaction on the block. */\n      index: number\n    }\n  | {\n      blockHash?: undefined\n      blockNumber?: undefined\n      blockTag?: undefined\n      /** The hash of the transaction. */\n      hash: Hash\n      index?: number | undefined\n    }\n\nexport type GetTransactionReturnType<\n  chain extends Chain | undefined = undefined,\n  blockTag extends BlockTag = 'latest',\n> = Prettify<FormattedTransaction<chain, blockTag>>\n\nexport type GetTransactionErrorType =\n  | TransactionNotFoundErrorType\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransaction\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionParameters}\n * @returns The transaction information. {@link GetTransactionReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransaction } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const transaction = await getTransaction(client, {\n *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransaction<\n  chain extends Chain | undefined,\n  blockTag extends BlockTag = 'latest',\n>(\n  client: Client<Transport, chain>,\n  {\n    blockHash,\n    blockNumber,\n    blockTag: blockTag_,\n    hash,\n    index,\n  }: GetTransactionParameters<blockTag>,\n): Promise<GetTransactionReturnType<chain, blockTag>> {\n  const blockTag = blockTag_ || 'latest'\n\n  const blockNumberHex =\n    blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n  let transaction: RpcTransaction | null = null\n  if (hash) {\n    transaction = await client.request(\n      {\n        method: 'eth_getTransactionByHash',\n        params: [hash],\n      },\n      { dedupe: true },\n    )\n  } else if (blockHash) {\n    transaction = await client.request(\n      {\n        method: 'eth_getTransactionByBlockHashAndIndex',\n        params: [blockHash, numberToHex(index)],\n      },\n      { dedupe: true },\n    )\n  } else if (blockNumberHex || blockTag) {\n    transaction = await client.request(\n      {\n        method: 'eth_getTransactionByBlockNumberAndIndex',\n        params: [blockNumberHex || blockTag, numberToHex(index)],\n      },\n      { dedupe: Boolean(blockNumberHex) },\n    )\n  }\n\n  if (!transaction)\n    throw new TransactionNotFoundError({\n      blockHash,\n      blockNumber,\n      blockTag,\n      hash,\n      index,\n    })\n\n  const format =\n    client.chain?.formatters?.transaction?.format || formatTransaction\n  return format(transaction)\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { FormattedTransactionReceipt } from '../../utils/formatters/transactionReceipt.js'\nimport { getAction } from '../../utils/getAction.js'\n\nimport {\n  type GetBlockNumberErrorType,\n  getBlockNumber,\n} from './getBlockNumber.js'\nimport {\n  type GetTransactionErrorType,\n  getTransaction,\n} from './getTransaction.js'\n\nexport type GetTransactionConfirmationsParameters<\n  chain extends Chain | undefined = Chain,\n> =\n  | {\n      /** The transaction hash. */\n      hash: Hash\n      transactionReceipt?: undefined\n    }\n  | {\n      hash?: undefined\n      /** The transaction receipt. */\n      transactionReceipt: FormattedTransactionReceipt<chain>\n    }\n\nexport type GetTransactionConfirmationsReturnType = bigint\n\nexport type GetTransactionConfirmationsErrorType =\n  | GetBlockNumberErrorType\n  | GetTransactionErrorType\n  | ErrorType\n\n/**\n * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionConfirmationsParameters}\n * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionConfirmations } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const confirmations = await getTransactionConfirmations(client, {\n *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionConfirmations<\n  chain extends Chain | undefined,\n>(\n  client: Client<Transport, chain>,\n  { hash, transactionReceipt }: GetTransactionConfirmationsParameters<chain>,\n): Promise<GetTransactionConfirmationsReturnType> {\n  const [blockNumber, transaction] = await Promise.all([\n    getAction(client, getBlockNumber, 'getBlockNumber')({}),\n    hash\n      ? getAction(client, getTransaction, 'getTransaction')({ hash })\n      : undefined,\n  ])\n  const transactionBlockNumber =\n    transactionReceipt?.blockNumber || transaction?.blockNumber\n  if (!transactionBlockNumber) return 0n\n  return blockNumber - transactionBlockNumber! + 1n\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  TransactionReceiptNotFoundError,\n  type TransactionReceiptNotFoundErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type FormattedTransactionReceipt,\n  formatTransactionReceipt,\n} from '../../utils/formatters/transactionReceipt.js'\n\nexport type GetTransactionReceiptParameters = {\n  /** The hash of the transaction. */\n  hash: Hash\n}\n\nexport type GetTransactionReceiptReturnType<\n  chain extends Chain | undefined = undefined,\n> = FormattedTransactionReceipt<chain>\n\nexport type GetTransactionReceiptErrorType =\n  | RequestErrorType\n  | TransactionReceiptNotFoundErrorType\n  | ErrorType\n\n/**\n * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactionreceipt)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionReceiptParameters}\n * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionReceipt } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const transactionReceipt = await getTransactionReceipt(client, {\n *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function getTransactionReceipt<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  { hash }: GetTransactionReceiptParameters,\n) {\n  const receipt = await client.request(\n    {\n      method: 'eth_getTransactionReceipt',\n      params: [hash],\n    },\n    { dedupe: true },\n  )\n\n  if (!receipt) throw new TransactionReceiptNotFoundError({ hash })\n\n  const format =\n    client.chain?.formatters?.transactionReceipt?.format ||\n    formatTransactionReceipt\n  return format(receipt) as GetTransactionReceiptReturnType<chain>\n}\n","import type { AbiStateMutability, Address, Narrow } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { multicall3Abi } from '../../constants/abis.js'\nimport { multicall3Bytecode } from '../../constants/contracts.js'\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js'\nimport { BaseError } from '../../errors/base.js'\nimport { RawContractError } from '../../errors/contract.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ContractFunctionParameters } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type {\n  MulticallContracts,\n  MulticallResults,\n} from '../../types/multicall.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport {\n  type GetChainContractAddressErrorType,\n  getChainContractAddress,\n} from '../../utils/chain/getChainContractAddress.js'\nimport {\n  type GetContractErrorReturnType,\n  getContractError,\n} from '../../utils/errors/getContractError.js'\nimport { getAction } from '../../utils/getAction.js'\nimport type { CallParameters } from './call.js'\nimport { type ReadContractErrorType, readContract } from './readContract.js'\n\nexport type MulticallParameters<\n  contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n  allowFailure extends boolean = true,\n  options extends {\n    optional?: boolean\n    properties?: Record<string, any>\n  } = {},\n> = Pick<\n  CallParameters,\n  'authorizationList' | 'blockNumber' | 'blockTag' | 'stateOverride'\n> & {\n  /** The account to use for the multicall. */\n  account?: Address | undefined\n  /** Whether to allow failures. */\n  allowFailure?: allowFailure | boolean | undefined\n  /** The size of each batch of calls. */\n  batchSize?: number | undefined\n  /** Enable deployless multicall. */\n  deployless?: boolean | undefined\n  /** The contracts to call. */\n  contracts: MulticallContracts<\n    Narrow<contracts>,\n    { mutability: AbiStateMutability } & options\n  >\n  /** The address of the multicall3 contract to use. */\n  multicallAddress?: Address | undefined\n}\n\nexport type MulticallReturnType<\n  contracts extends readonly unknown[] = readonly ContractFunctionParameters[],\n  allowFailure extends boolean = true,\n  options extends {\n    error?: Error\n  } = { error: Error },\n> = MulticallResults<\n  Narrow<contracts>,\n  allowFailure,\n  { mutability: AbiStateMutability } & options\n>\n\nexport type MulticallErrorType =\n  | GetChainContractAddressErrorType\n  | ReadContractErrorType\n  | GetContractErrorReturnType<\n      EncodeFunctionDataErrorType | DecodeFunctionResultErrorType\n    >\n  | ErrorType\n\n/**\n * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n *\n * - Docs: https://viem.sh/docs/contract/multicall\n *\n * @param client - Client to use\n * @param parameters - {@link MulticallParameters}\n * @returns An array of results with accompanying status. {@link MulticallReturnType}\n *\n * @example\n * import { createPublicClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { multicall } from 'viem/contract'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const abi = parseAbi([\n *   'function balanceOf(address) view returns (uint256)',\n *   'function totalSupply() view returns (uint256)',\n * ])\n * const results = await multicall(client, {\n *   contracts: [\n *     {\n *       address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *       abi,\n *       functionName: 'balanceOf',\n *       args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n *     },\n *     {\n *       address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n *       abi,\n *       functionName: 'totalSupply',\n *     },\n *   ],\n * })\n * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n */\nexport async function multicall<\n  const contracts extends readonly unknown[],\n  chain extends Chain | undefined,\n  allowFailure extends boolean = true,\n>(\n  client: Client<Transport, chain>,\n  parameters: MulticallParameters<contracts, allowFailure>,\n): Promise<MulticallReturnType<contracts, allowFailure>> {\n  const {\n    account,\n    authorizationList,\n    allowFailure = true,\n    blockNumber,\n    blockTag,\n    stateOverride,\n  } = parameters\n  const contracts = parameters.contracts as ContractFunctionParameters[]\n\n  const {\n    batchSize = parameters.batchSize ?? 1024,\n    deployless = parameters.deployless ?? false,\n  } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {}\n\n  const multicallAddress = (() => {\n    if (parameters.multicallAddress) return parameters.multicallAddress\n    if (deployless) return null\n    if (client.chain) {\n      return getChainContractAddress({\n        blockNumber,\n        chain: client.chain,\n        contract: 'multicall3',\n      })\n    }\n    throw new Error(\n      'client chain not configured. multicallAddress is required.',\n    )\n  })()\n\n  type Aggregate3Calls = {\n    allowFailure: boolean\n    callData: Hex\n    target: Address\n  }[]\n\n  const chunkedCalls: Aggregate3Calls[] = [[]]\n  let currentChunk = 0\n  let currentChunkSize = 0\n  for (let i = 0; i < contracts.length; i++) {\n    const { abi, address, args, functionName } = contracts[i]\n    try {\n      const callData = encodeFunctionData({ abi, args, functionName })\n\n      currentChunkSize += (callData.length - 2) / 2\n      // Check to see if we need to create a new chunk.\n      if (\n        // Check if batching is enabled.\n        batchSize > 0 &&\n        // Check if the current size of the batch exceeds the size limit.\n        currentChunkSize > batchSize &&\n        // Check if the current chunk is not already empty.\n        chunkedCalls[currentChunk].length > 0\n      ) {\n        currentChunk++\n        currentChunkSize = (callData.length - 2) / 2\n        chunkedCalls[currentChunk] = []\n      }\n\n      chunkedCalls[currentChunk] = [\n        ...chunkedCalls[currentChunk],\n        {\n          allowFailure: true,\n          callData,\n          target: address,\n        },\n      ]\n    } catch (err) {\n      const error = getContractError(err as BaseError, {\n        abi,\n        address,\n        args,\n        docsPath: '/docs/contract/multicall',\n        functionName,\n        sender: account,\n      })\n      if (!allowFailure) throw error\n      chunkedCalls[currentChunk] = [\n        ...chunkedCalls[currentChunk],\n        {\n          allowFailure: true,\n          callData: '0x' as Hex,\n          target: address,\n        },\n      ]\n    }\n  }\n\n  const aggregate3Results = await Promise.allSettled(\n    chunkedCalls.map((calls) =>\n      getAction(\n        client,\n        readContract,\n        'readContract',\n      )({\n        ...(multicallAddress === null\n          ? { code: multicall3Bytecode }\n          : { address: multicallAddress }),\n        abi: multicall3Abi,\n        account,\n        args: [calls],\n        authorizationList,\n        blockNumber,\n        blockTag,\n        functionName: 'aggregate3',\n        stateOverride,\n      }),\n    ),\n  )\n\n  const results = []\n  for (let i = 0; i < aggregate3Results.length; i++) {\n    const result = aggregate3Results[i]\n\n    // If an error occurred in a `readContract` invocation (ie. network error),\n    // then append the failure reason to each contract result.\n    if (result.status === 'rejected') {\n      if (!allowFailure) throw result.reason\n      for (let j = 0; j < chunkedCalls[i].length; j++) {\n        results.push({\n          status: 'failure',\n          error: result.reason,\n          result: undefined,\n        })\n      }\n      continue\n    }\n\n    // If the `readContract` call was successful, then decode the results.\n    const aggregate3Result = result.value\n    for (let j = 0; j < aggregate3Result.length; j++) {\n      // Extract the response from `readContract`\n      const { returnData, success } = aggregate3Result[j]\n\n      // Extract the request call data from the original call.\n      const { callData } = chunkedCalls[i][j]\n\n      // Extract the contract config for this call from the `contracts` argument\n      // for decoding.\n      const { abi, address, functionName, args } = contracts[\n        results.length\n      ] as ContractFunctionParameters\n\n      try {\n        if (callData === '0x') throw new AbiDecodingZeroDataError()\n        if (!success) throw new RawContractError({ data: returnData })\n        const result = decodeFunctionResult({\n          abi,\n          args,\n          data: returnData,\n          functionName,\n        })\n        results.push(allowFailure ? { result, status: 'success' } : result)\n      } catch (err) {\n        const error = getContractError(err as BaseError, {\n          abi,\n          address,\n          args,\n          docsPath: '/docs/contract/multicall',\n          functionName,\n        })\n        if (!allowFailure) throw error\n        results.push({ error, result: undefined, status: 'failure' })\n      }\n    }\n  }\n\n  if (results.length !== contracts.length)\n    throw new BaseError('multicall results mismatch')\n  return results as MulticallReturnType<contracts, allowFailure>\n}\n","import type { Abi, AbiStateMutability, Address, Narrow } from 'abitype'\nimport * as BlockOverrides from 'ox/BlockOverrides'\n\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AbiDecodingZeroDataError } from '../../errors/abi.js'\nimport type { BaseError } from '../../errors/base.js'\nimport { RawContractError } from '../../errors/contract.js'\nimport { UnknownNodeError } from '../../errors/node.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { Block, BlockTag } from '../../types/block.js'\nimport type { Call, Calls } from '../../types/calls.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { MulticallResults } from '../../types/multicall.js'\nimport type { StateOverride } from '../../types/stateOverride.js'\nimport type { TransactionRequest } from '../../types/transaction.js'\nimport type { ExactPartial, UnionOmit } from '../../types/utils.js'\nimport {\n  type DecodeFunctionResultErrorType,\n  decodeFunctionResult,\n} from '../../utils/abi/decodeFunctionResult.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { concat } from '../../utils/data/concat.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport { getContractError } from '../../utils/errors/getContractError.js'\nimport {\n  type GetNodeErrorReturnType,\n  getNodeError,\n} from '../../utils/errors/getNodeError.js'\nimport {\n  type FormatBlockErrorType,\n  formatBlock,\n} from '../../utils/formatters/block.js'\nimport { formatLog } from '../../utils/formatters/log.js'\nimport {\n  type FormatTransactionRequestErrorType,\n  formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport {\n  type SerializeStateOverrideErrorType,\n  serializeStateOverride,\n} from '../../utils/stateOverride.js'\nimport {\n  type AssertRequestErrorType,\n  assertRequest,\n} from '../../utils/transaction/assertRequest.js'\n\ntype CallExtraProperties = ExactPartial<\n  UnionOmit<\n    TransactionRequest,\n    'blobs' | 'data' | 'kzg' | 'to' | 'sidecars' | 'value'\n  >\n> & {\n  /** Account attached to the call (msg.sender). */\n  account?: Account | Address | undefined\n  /** Recipient. `null` if contract deployment. */\n  to?: Address | null | undefined\n}\n\nexport type SimulateBlocksParameters<\n  calls extends readonly unknown[] = readonly unknown[],\n> = {\n  /** Blocks to simulate. */\n  blocks: readonly {\n    /** Block overrides. */\n    blockOverrides?: BlockOverrides.BlockOverrides | undefined\n    /** Calls to execute. */\n    calls: Calls<Narrow<calls>, CallExtraProperties>\n    /** State overrides. */\n    stateOverrides?: StateOverride | undefined\n  }[]\n  /** Whether to return the full transactions. */\n  returnFullTransactions?: boolean | undefined\n  /** Whether to trace transfers. */\n  traceTransfers?: boolean | undefined\n  /** Whether to enable validation mode. */\n  validation?: boolean | undefined\n} & (\n  | {\n      /** The balance of the account at a block number. */\n      blockNumber?: bigint | undefined\n      blockTag?: undefined\n    }\n  | {\n      blockNumber?: undefined\n      /**\n       * The balance of the account at a block tag.\n       * @default 'latest'\n       */\n      blockTag?: BlockTag | undefined\n    }\n)\n\nexport type SimulateBlocksReturnType<\n  calls extends readonly unknown[] = readonly unknown[],\n> = readonly (Block & {\n  calls: MulticallResults<\n    Narrow<calls>,\n    true,\n    {\n      extraProperties: {\n        data: Hex\n        gasUsed: bigint\n        logs?: Log[] | undefined\n      }\n      error: Error\n      mutability: AbiStateMutability\n    }\n  >\n})[]\n\nexport type SimulateBlocksErrorType =\n  | AssertRequestErrorType\n  | DecodeFunctionResultErrorType\n  | EncodeFunctionDataErrorType\n  | FormatBlockErrorType\n  | FormatTransactionRequestErrorType\n  | GetNodeErrorReturnType\n  | ParseAccountErrorType\n  | SerializeStateOverrideErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\n/**\n * Simulates a set of calls on block(s) with optional block and state overrides.\n *\n * @example\n * ```ts\n * import { createClient, http, parseEther } from 'viem'\n * import { simulate } from 'viem/actions'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n *\n * const result = await simulate(client, {\n *   blocks: [{\n *     blockOverrides: {\n *       number: 69420n,\n *     },\n *     calls: [{\n *       {\n *         account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n *         data: '0xdeadbeef',\n *         to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *       },\n *       {\n *         account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n *         to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *         value: parseEther('1'),\n *       },\n *     }],\n *     stateOverrides: [{\n *       address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n *       balance: parseEther('10'),\n *     }],\n *   }]\n * })\n * ```\n *\n * @param client - Client to use.\n * @param parameters - {@link SimulateBlocksParameters}\n * @returns Simulated blocks. {@link SimulateBlocksReturnType}\n */\nexport async function simulateBlocks<\n  chain extends Chain | undefined,\n  const calls extends readonly unknown[],\n>(\n  client: Client<Transport, chain>,\n  parameters: SimulateBlocksParameters<calls>,\n): Promise<SimulateBlocksReturnType<calls>> {\n  const {\n    blockNumber,\n    blockTag = client.experimental_blockTag ?? 'latest',\n    blocks,\n    returnFullTransactions,\n    traceTransfers,\n    validation,\n  } = parameters\n\n  try {\n    const blockStateCalls = []\n    for (const block of blocks) {\n      const blockOverrides = block.blockOverrides\n        ? BlockOverrides.toRpc(block.blockOverrides)\n        : undefined\n      const calls = block.calls.map((call_) => {\n        const call = call_ as Call<unknown, CallExtraProperties>\n        const account = call.account ? parseAccount(call.account) : undefined\n        const data = call.abi ? encodeFunctionData(call) : call.data\n        const request = {\n          ...call,\n          data: call.dataSuffix\n            ? concat([data || '0x', call.dataSuffix])\n            : data,\n          from: call.from ?? account?.address,\n        } as const\n        assertRequest(request)\n        return formatTransactionRequest(request)\n      })\n      const stateOverrides = block.stateOverrides\n        ? serializeStateOverride(block.stateOverrides)\n        : undefined\n\n      blockStateCalls.push({\n        blockOverrides,\n        calls,\n        stateOverrides,\n      })\n    }\n\n    const blockNumberHex =\n      typeof blockNumber === 'bigint' ? numberToHex(blockNumber) : undefined\n    const block = blockNumberHex || blockTag\n\n    const result = await client.request({\n      method: 'eth_simulateV1',\n      params: [\n        { blockStateCalls, returnFullTransactions, traceTransfers, validation },\n        block,\n      ],\n    })\n\n    return result.map((block, i) => ({\n      ...formatBlock(block),\n      calls: block.calls.map((call, j) => {\n        const { abi, args, functionName, to } = blocks[i].calls[j] as Call<\n          unknown,\n          CallExtraProperties\n        >\n\n        const data = call.error?.data ?? call.returnData\n        const gasUsed = BigInt(call.gasUsed)\n        const logs = call.logs?.map((log) => formatLog(log))\n        const status = call.status === '0x1' ? 'success' : 'failure'\n\n        const result =\n          abi && status === 'success' && data !== '0x'\n            ? decodeFunctionResult({\n                abi,\n                data,\n                functionName,\n              })\n            : null\n\n        const error = (() => {\n          if (status === 'success') return undefined\n\n          let error: Error | undefined\n          if (call.error?.data === '0x') error = new AbiDecodingZeroDataError()\n          else if (call.error) error = new RawContractError(call.error)\n\n          if (!error) return undefined\n          return getContractError(error, {\n            abi: (abi ?? []) as Abi,\n            address: to ?? '0x',\n            args,\n            functionName: functionName ?? '<unknown>',\n          })\n        })()\n\n        return {\n          data,\n          gasUsed,\n          logs,\n          status,\n          ...(status === 'success'\n            ? {\n                result,\n              }\n            : {\n                error,\n              }),\n        }\n      }),\n    })) as unknown as SimulateBlocksReturnType<calls>\n  } catch (e) {\n    const cause = e as BaseError\n    const error = getNodeError(cause, {})\n    if (error instanceof UnknownNodeError) throw cause\n    throw error\n  }\n}\n","import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160'\nimport { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3'\nimport { sha256 as noble_sha256 } from '@noble/hashes/sha256'\nimport * as Bytes from './Bytes.js'\nimport type * as Errors from './Errors.js'\nimport * as Hex from './Hex.js'\n\n/**\n * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `keccak_256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef')\n * // @log: '0xd4fd4e189132273036449fc9e11198c739161b4c0116a9a2dccdfa1c492006f1'\n * ```\n *\n * @example\n * ### Calculate Hash of a String\n *\n * ```ts twoslash\n * import { Hash, Hex } from 'ox'\n *\n * Hash.keccak256(Hex.fromString('hello world'))\n * // @log: '0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0'\n * ```\n *\n * @example\n * ### Configure Return Type\n *\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.keccak256('0xdeadbeef', { as: 'Bytes' })\n * // @log: Uint8Array [...]\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Keccak256 hash.\n */\nexport function keccak256<\n  value extends Hex.Hex | Bytes.Bytes,\n  as extends 'Hex' | 'Bytes' =\n    | (value extends Hex.Hex ? 'Hex' : never)\n    | (value extends Bytes.Bytes ? 'Bytes' : never),\n>(\n  value: value | Hex.Hex | Bytes.Bytes,\n  options: keccak256.Options<as> = {},\n): keccak256.ReturnType<as> {\n  const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options\n  const bytes = noble_keccak256(Bytes.from(value))\n  if (as === 'Bytes') return bytes as never\n  return Hex.fromBytes(bytes) as never\n}\n\nexport declare namespace keccak256 {\n  type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {\n    /** The return type. @default 'Hex' */\n    as?: as | 'Hex' | 'Bytes' | undefined\n  }\n\n  type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> =\n    | (as extends 'Bytes' ? Bytes.Bytes : never)\n    | (as extends 'Hex' ? Hex.Hex : never)\n\n  type ErrorType =\n    | Bytes.from.ErrorType\n    | Hex.fromBytes.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `ripemd160` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.ripemd160('0xdeadbeef')\n * // '0x226821c2f5423e11fe9af68bd285c249db2e4b5a'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Ripemd160 hash.\n */\nexport function ripemd160<\n  value extends Hex.Hex | Bytes.Bytes,\n  as extends 'Hex' | 'Bytes' =\n    | (value extends Hex.Hex ? 'Hex' : never)\n    | (value extends Bytes.Bytes ? 'Bytes' : never),\n>(\n  value: value | Hex.Hex | Bytes.Bytes,\n  options: ripemd160.Options<as> = {},\n): ripemd160.ReturnType<as> {\n  const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options\n  const bytes = noble_ripemd160(Bytes.from(value))\n  if (as === 'Bytes') return bytes as never\n  return Hex.fromBytes(bytes) as never\n}\n\nexport declare namespace ripemd160 {\n  type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {\n    /** The return type. @default 'Hex' */\n    as?: as | 'Hex' | 'Bytes' | undefined\n  }\n\n  type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> =\n    | (as extends 'Bytes' ? Bytes.Bytes : never)\n    | (as extends 'Hex' ? Hex.Hex : never)\n\n  type ErrorType =\n    | Bytes.from.ErrorType\n    | Hex.fromBytes.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Calculates the [Sha256](https://en.wikipedia.org/wiki/SHA-256) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n *\n * This function is a re-export of `sha256` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.sha256('0xdeadbeef')\n * // '0x5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'\n * ```\n *\n * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.\n * @param options - Options.\n * @returns Sha256 hash.\n */\nexport function sha256<\n  value extends Hex.Hex | Bytes.Bytes,\n  as extends 'Hex' | 'Bytes' =\n    | (value extends Hex.Hex ? 'Hex' : never)\n    | (value extends Bytes.Bytes ? 'Bytes' : never),\n>(\n  value: value | Hex.Hex | Bytes.Bytes,\n  options: sha256.Options<as> = {},\n): sha256.ReturnType<as> {\n  const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options\n  const bytes = noble_sha256(Bytes.from(value))\n  if (as === 'Bytes') return bytes as never\n  return Hex.fromBytes(bytes) as never\n}\n\nexport declare namespace sha256 {\n  type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {\n    /** The return type. @default 'Hex' */\n    as?: as | 'Hex' | 'Bytes' | undefined\n  }\n\n  type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex'> =\n    | (as extends 'Bytes' ? Bytes.Bytes : never)\n    | (as extends 'Hex' ? Hex.Hex : never)\n\n  type ErrorType =\n    | Bytes.from.ErrorType\n    | Hex.fromBytes.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Checks if a string is a valid hash value.\n *\n * @example\n * ```ts twoslash\n * import { Hash } from 'ox'\n *\n * Hash.validate('0x')\n * // @log: false\n *\n * Hash.validate('0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0')\n * // @log: true\n * ```\n *\n * @param value - Value to check.\n * @returns Whether the value is a valid hash.\n */\nexport function validate(value: string): value is Hex.Hex {\n  return Hex.validate(value) && Hex.size(value) === 32\n}\n\nexport declare namespace validate {\n  type ErrorType =\n    | Hex.validate.ErrorType\n    | Hex.size.ErrorType\n    | Errors.GlobalErrorType\n}\n","/**\n * @internal\n *\n * Map with a LRU (Least recently used) policy.\n * @see https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap<value = unknown> extends Map<string, value> {\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) && value !== undefined) {\n      this.delete(key)\n      super.set(key, value)\n    }\n\n    return value\n  }\n\n  override set(key: string, value: value) {\n    super.set(key, value)\n    if (this.maxSize && this.size > this.maxSize) {\n      const firstKey = this.keys().next().value\n      if (firstKey) this.delete(firstKey)\n    }\n    return this\n  }\n}\n","import type * as Address from './Address.js'\nimport { LruMap } from './internal/lru.js'\n\nconst caches = {\n  checksum: /*#__PURE__*/ new LruMap<Address.Address>(8192),\n}\n\nexport const checksum = caches.checksum\n\n/**\n * Clears all global caches.\n *\n * @example\n * ```ts\n * import { Caches } from 'ox'\n * Caches.clear()\n * ```\n */\nexport function clear() {\n  for (const cache of Object.values(caches)) cache.clear()\n}\n","import type { Address as abitype_Address } from 'abitype'\nimport * as Bytes from './Bytes.js'\nimport * as Caches from './Caches.js'\nimport * as Errors from './Errors.js'\nimport * as Hash from './Hash.js'\nimport * as PublicKey from './PublicKey.js'\n\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/\n\n/** Root type for Address. */\nexport type Address = abitype_Address\n\n/**\n * Asserts that the given value is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.assert('0xdeadbeef')\n * // @error: InvalidAddressError: Address \"0xdeadbeef\" is invalid.\n * ```\n *\n * @param value - Value to assert if it is a valid address.\n * @param options - Assertion options.\n */\nexport function assert(\n  value: string,\n  options: assert.Options = {},\n): asserts value is Address {\n  const { strict = true } = options\n\n  if (!addressRegex.test(value))\n    throw new InvalidAddressError({\n      address: value,\n      cause: new InvalidInputError(),\n    })\n\n  if (strict) {\n    if (value.toLowerCase() === value) return\n    if (checksum(value as Address) !== value)\n      throw new InvalidAddressError({\n        address: value,\n        cause: new InvalidChecksumError(),\n      })\n  }\n}\n\nexport declare namespace assert {\n  type Options = {\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\n  type ErrorType = InvalidAddressError | Errors.GlobalErrorType\n}\n\n/**\n * Computes the checksum address for the given {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.checksum('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @param address - The address to compute the checksum for.\n * @returns The checksummed address.\n */\nexport function checksum(address: string): Address {\n  if (Caches.checksum.has(address)) return Caches.checksum.get(address)!\n\n  assert(address, { strict: false })\n\n  const hexAddress = address.substring(2).toLowerCase()\n  const hash = Hash.keccak256(Bytes.fromString(hexAddress), { as: 'Bytes' })\n\n  const characters = hexAddress.split('')\n  for (let i = 0; i < 40; i += 2) {\n    if (hash[i >> 1]! >> 4 >= 8 && characters[i]) {\n      characters[i] = characters[i]!.toUpperCase()\n    }\n    if ((hash[i >> 1]! & 0x0f) >= 8 && characters[i + 1]) {\n      characters[i + 1] = characters[i + 1]!.toUpperCase()\n    }\n  }\n\n  const result = `0x${characters.join('')}` as const\n  Caches.checksum.set(address, result)\n  return result\n}\n\nexport declare namespace checksum {\n  type ErrorType =\n    | assert.ErrorType\n    | Hash.keccak256.ErrorType\n    | Bytes.fromString.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Converts a stringified address to a typed (checksummed) {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e')\n * // @log: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0xa0cf798816d4b9b9866b5330eea46a18382f251e', {\n *   checksum: false\n * })\n * // @log: '0xa0cf798816d4b9b9866b5330eea46a18382f251e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('hello')\n * // @error: InvalidAddressError: Address \"0xa\" is invalid.\n * ```\n *\n * @param address - An address string to convert to a typed Address.\n * @param options - Conversion options.\n * @returns The typed Address.\n */\nexport function from(address: string, options: from.Options = {}): Address {\n  const { checksum: checksumVal = false } = options\n  assert(address)\n  if (checksumVal) return checksum(address)\n  return address as Address\n}\n\nexport declare namespace from {\n  type Options = {\n    /**\n     * Whether to checksum the address.\n     *\n     * @default false\n     */\n    checksum?: boolean | undefined\n  }\n\n  type ErrorType =\n    | assert.ErrorType\n    | checksum.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Converts an ECDSA public key to an {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address, PublicKey } from 'ox'\n *\n * const publicKey = PublicKey.from(\n *   '0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5',\n * )\n * const address = Address.fromPublicKey(publicKey)\n * // @log: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266'\n * ```\n *\n * @param publicKey - The ECDSA public key to convert to an {@link ox#Address.Address}.\n * @param options - Conversion options.\n * @returns The {@link ox#Address.Address} corresponding to the public key.\n */\nexport function fromPublicKey(\n  publicKey: PublicKey.PublicKey,\n  options: fromPublicKey.Options = {},\n): Address {\n  const address = Hash.keccak256(\n    `0x${PublicKey.toHex(publicKey).slice(4)}`,\n  ).substring(26)\n  return from(`0x${address}`, options)\n}\n\nexport declare namespace fromPublicKey {\n  type Options = {\n    /**\n     * Whether to checksum the address.\n     *\n     * @default false\n     */\n    checksum?: boolean | undefined\n  }\n\n  type ErrorType =\n    | Hash.keccak256.ErrorType\n    | PublicKey.toHex.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Checks if two {@link ox#Address.Address} are equal.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n *   '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n *   '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'\n * )\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.isEqual(\n *   '0xa0cf798816d4b9b9866b5330eea46a18382f251e',\n *   '0xA0Cf798816D4b9b9866b5330EEa46a18382f251f'\n * )\n * // @log: false\n * ```\n *\n * @param addressA - The first address to compare.\n * @param addressB - The second address to compare.\n * @returns Whether the addresses are equal.\n */\nexport function isEqual(addressA: Address, addressB: Address): boolean {\n  assert(addressA, { strict: false })\n  assert(addressB, { strict: false })\n  return addressA.toLowerCase() === addressB.toLowerCase()\n}\n\nexport declare namespace isEqual {\n  type ErrorType = assert.ErrorType | Errors.GlobalErrorType\n}\n\n/**\n * Checks if the given address is a valid {@link ox#Address.Address}.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xA0Cf798816D4b9b9866b5330EEa46a18382f251e')\n * // @log: true\n * ```\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.validate('0xdeadbeef')\n * // @log: false\n * ```\n *\n * @param address - Value to check if it is a valid address.\n * @param options - Check options.\n * @returns Whether the address is a valid address.\n */\nexport function validate(\n  address: string,\n  options: validate.Options = {},\n): address is Address {\n  const { strict = true } = options ?? {}\n  try {\n    assert(address, { strict })\n    return true\n  } catch {\n    return false\n  }\n}\n\nexport declare namespace validate {\n  type Options = {\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}\n\n/**\n * Thrown when an address is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Address } from 'ox'\n *\n * Address.from('0x123')\n * // @error: Address.InvalidAddressError: Address `0x123` is invalid.\n * ```\n */\nexport class InvalidAddressError<\n  cause extends InvalidInputError | InvalidChecksumError =\n    | InvalidInputError\n    | InvalidChecksumError,\n> extends Errors.BaseError<cause> {\n  override readonly name = 'Address.InvalidAddressError'\n\n  constructor({ address, cause }: { address: string; cause: cause }) {\n    super(`Address \"${address}\" is invalid.`, {\n      cause,\n    })\n  }\n}\n\n/** Thrown when an address is not a 20 byte (40 hexadecimal character) value. */\nexport class InvalidInputError extends Errors.BaseError {\n  override readonly name = 'Address.InvalidInputError'\n\n  constructor() {\n    super('Address is not a 20 byte (40 hexadecimal character) value.')\n  }\n}\n\n/** Thrown when an address does not match its checksum counterpart. */\nexport class InvalidChecksumError extends Errors.BaseError {\n  override readonly name = 'Address.InvalidChecksumError'\n\n  constructor() {\n    super('Address does not match its checksum counterpart.')\n  }\n}\n","import type * as abitype from 'abitype'\nimport type * as Abi from '../Abi.js'\nimport type * as AbiItem from '../AbiItem.js'\nimport type * as AbiParameters from '../AbiParameters.js'\nimport * as Address from '../Address.js'\nimport * as Errors from '../Errors.js'\nimport type {\n  Compute,\n  IsNever,\n  IsUnion,\n  TypeErrorMessage,\n  UnionToTuple,\n} from './types.js'\n\n/** @internal */\nexport type ExtractArgs<\n  abi extends Abi.Abi | readonly unknown[] = Abi.Abi,\n  name extends AbiItem.Name<abi> = AbiItem.Name<abi>,\n> = abitype.AbiParametersToPrimitiveTypes<\n  AbiItem.FromAbi<abi extends Abi.Abi ? abi : Abi.Abi, name>['inputs'],\n  'inputs'\n> extends infer args\n  ? [args] extends [never]\n    ? readonly unknown[]\n    : args\n  : readonly unknown[]\n\n/** @internal */\nexport type ExtractForArgs<\n  abi extends Abi.Abi,\n  name extends AbiItem.Name<abi>,\n  args extends ExtractArgs<abi, name>,\n> = IsUnion<name> extends true\n  ? {\n      [key in keyof abi]: abi[key] extends { name: name } ? abi[key] : never\n    }[number]\n  : AbiItem.FromAbi<abi, name> extends infer abiItem extends AbiItem.AbiItem & {\n        inputs: readonly abitype.AbiParameter[]\n      }\n    ? IsUnion<abiItem> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match\n      ? UnionToTuple<abiItem> extends infer abiItems extends\n          readonly (AbiItem.AbiItem & {\n            inputs: readonly abitype.AbiParameter[]\n          })[]\n        ? IsNever<TupleToUnion<abiItems, abi, name, args>> extends true\n          ? Compute<\n              abiItems[0] & {\n                readonly overloads: UnionToTuple<\n                  Exclude<abiItems[number], abiItems[0]>\n                >\n              }\n            >\n          : TupleToUnion<abiItems, abi, name, args> // convert back to union (removes `never` tuple entries: `['foo', never, 'bar'][number]` => `'foo' | 'bar'`)\n        : never\n      : abiItem\n    : never\n\n/** @internal */\nexport type TupleToUnion<\n  abiItems extends readonly {\n    inputs: readonly abitype.AbiParameter[]\n  }[],\n  abi extends Abi.Abi,\n  name extends AbiItem.Name<abi>,\n  args extends ExtractArgs<abi, name>,\n> = {\n  [k in keyof abiItems]: (\n    readonly [] extends args\n      ? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)\n      : args\n  ) extends abitype.AbiParametersToPrimitiveTypes<\n    abiItems[k]['inputs'],\n    'inputs'\n  >\n    ? abiItems[k]\n    : never\n}[number]\n\n/** @internal */\nexport type ErrorSignature<\n  name extends string = string,\n  parameters extends string = string,\n> = `error ${name}(${parameters})`\n\n/** @internal */\nexport type IsErrorSignature<signature extends string> =\n  signature extends ErrorSignature<infer name> ? IsName<name> : false\n\n/** @internal */\nexport type EventSignature<\n  name extends string = string,\n  parameters extends string = string,\n> = `event ${name}(${parameters})`\n\n/** @internal */\nexport type IsEventSignature<signature extends string> =\n  signature extends EventSignature<infer name> ? IsName<name> : false\n\n/** @internal */\nexport type FunctionSignature<\n  name extends string = string,\n  tail extends string = string,\n> = `function ${name}(${tail}`\nexport type IsFunctionSignature<signature> =\n  signature extends FunctionSignature<infer name>\n    ? IsName<name> extends true\n      ? signature extends ValidFunctionSignatures\n        ? true\n        : // Check that `Parameters` is not absorbing other types (e.g. `returns`)\n          signature extends `function ${string}(${infer parameters})`\n          ? parameters extends InvalidFunctionParameters\n            ? false\n            : true\n          : false\n      : false\n    : false\n/** @internal */\nexport type Scope = 'public' | 'external' // `internal` or `private` functions wouldn't make it to ABI so can ignore\n\n/** @internal */\nexport type Returns = `returns (${string})` | `returns(${string})`\n\n// Almost all valid function signatures, except `function ${string}(${infer parameters})` since `parameters` can absorb returns\n/** @internal */\nexport type ValidFunctionSignatures =\n  | `function ${string}()`\n  // basic\n  | `function ${string}() ${Returns}`\n  | `function ${string}() ${abitype.AbiStateMutability}`\n  | `function ${string}() ${Scope}`\n  // combinations\n  | `function ${string}() ${abitype.AbiStateMutability} ${Returns}`\n  | `function ${string}() ${Scope} ${Returns}`\n  | `function ${string}() ${Scope} ${abitype.AbiStateMutability}`\n  | `function ${string}() ${Scope} ${abitype.AbiStateMutability} ${Returns}`\n  // Parameters\n  | `function ${string}(${string}) ${Returns}`\n  | `function ${string}(${string}) ${abitype.AbiStateMutability}`\n  | `function ${string}(${string}) ${Scope}`\n  | `function ${string}(${string}) ${abitype.AbiStateMutability} ${Returns}`\n  | `function ${string}(${string}) ${Scope} ${Returns}`\n  | `function ${string}(${string}) ${Scope} ${abitype.AbiStateMutability}`\n  | `function ${string}(${string}) ${Scope} ${abitype.AbiStateMutability} ${Returns}`\n\n/** @internal */\nexport type StructSignature<\n  name extends string = string,\n  properties extends string = string,\n> = `struct ${name} {${properties}}`\n\n/** @internal */\nexport type IsStructSignature<signature extends string> =\n  signature extends StructSignature<infer name> ? IsName<name> : false\n\n/** @internal */\nexport type ConstructorSignature<tail extends string = string> =\n  `constructor(${tail}`\n\n/** @internal */\nexport type IsConstructorSignature<signature> =\n  signature extends ConstructorSignature\n    ? signature extends ValidConstructorSignatures\n      ? true\n      : false\n    : false\n\n/** @internal */\nexport type ValidConstructorSignatures =\n  | `constructor(${string})`\n  | `constructor(${string}) payable`\n\n/** @internal */\nexport type FallbackSignature<abiStateMutability extends '' | ' payable' = ''> =\n  `fallback() external${abiStateMutability}`\n\n/** @internal */\nexport type ReceiveSignature = 'receive() external payable'\n\n// TODO: Maybe use this for signature validation one day\n// https://twitter.com/devanshj__/status/1610423724708343808\n/** @internal */\nexport type IsSignature<type extends string> =\n  | (IsErrorSignature<type> extends true ? true : never)\n  | (IsEventSignature<type> extends true ? true : never)\n  | (IsFunctionSignature<type> extends true ? true : never)\n  | (IsStructSignature<type> extends true ? true : never)\n  | (IsConstructorSignature<type> extends true ? true : never)\n  | (type extends FallbackSignature ? true : never)\n  | (type extends ReceiveSignature ? true : never) extends infer condition\n  ? [condition] extends [never]\n    ? false\n    : true\n  : false\n\n/** @internal */\nexport type Signature<\n  string1 extends string,\n  string2 extends string | unknown = unknown,\n> = IsSignature<string1> extends true\n  ? string1\n  : string extends string1 // if exactly `string` (not narrowed), then pass through as valid\n    ? string1\n    : TypeErrorMessage<`Signature \"${string1}\" is invalid${string2 extends string\n        ? ` at position ${string2}`\n        : ''}.`>\n\n/** @internal */\nexport type Signatures<signatures extends readonly string[]> = {\n  [key in keyof signatures]: Signature<signatures[key], key>\n}\n\n/** @internal */\nexport type IsName<name extends string> = name extends ''\n  ? false\n  : ValidateName<name> extends name\n    ? true\n    : false\n\n/** @internal */\nexport type ValidateName<\n  name extends string,\n  checkCharacters extends boolean = false,\n> = name extends `${string}${' '}${string}`\n  ? TypeErrorMessage<`Identifier \"${name}\" cannot contain whitespace.`>\n  : IsSolidityKeyword<name> extends true\n    ? TypeErrorMessage<`\"${name}\" is a protected Solidity keyword.`>\n    : name extends `${number}`\n      ? TypeErrorMessage<`Identifier \"${name}\" cannot be a number string.`>\n      : name extends `${number}${string}`\n        ? TypeErrorMessage<`Identifier \"${name}\" cannot start with a number.`>\n        : checkCharacters extends true\n          ? IsValidCharacter<name> extends true\n            ? name\n            : TypeErrorMessage<`\"${name}\" contains invalid character.`>\n          : name\n\n/** @internal */\nexport type IsSolidityKeyword<type extends string> =\n  type extends SolidityKeywords ? true : false\n\n/** @internal */\nexport type SolidityKeywords =\n  | 'after'\n  | 'alias'\n  | 'anonymous'\n  | 'apply'\n  | 'auto'\n  | 'byte'\n  | 'calldata'\n  | 'case'\n  | 'catch'\n  | 'constant'\n  | 'copyof'\n  | 'default'\n  | 'defined'\n  | 'error'\n  | 'event'\n  | 'external'\n  | 'false'\n  | 'final'\n  | 'function'\n  | 'immutable'\n  | 'implements'\n  | 'in'\n  | 'indexed'\n  | 'inline'\n  | 'internal'\n  | 'let'\n  | 'mapping'\n  | 'match'\n  | 'memory'\n  | 'mutable'\n  | 'null'\n  | 'of'\n  | 'override'\n  | 'partial'\n  | 'private'\n  | 'promise'\n  | 'public'\n  | 'pure'\n  | 'reference'\n  | 'relocatable'\n  | 'return'\n  | 'returns'\n  | 'sizeof'\n  | 'static'\n  | 'storage'\n  | 'struct'\n  | 'super'\n  | 'supports'\n  | 'switch'\n  | 'this'\n  | 'true'\n  | 'try'\n  | 'typedef'\n  | 'typeof'\n  | 'var'\n  | 'view'\n  | 'virtual'\n  | `address${`[${string}]` | ''}`\n  | `bool${`[${string}]` | ''}`\n  | `string${`[${string}]` | ''}`\n  | `tuple${`[${string}]` | ''}`\n  | `bytes${number | ''}${`[${string}]` | ''}`\n  | `${'u' | ''}int${number | ''}${`[${string}]` | ''}`\n\n/** @internal */\nexport type IsValidCharacter<character extends string> =\n  character extends `${ValidCharacters}${infer tail}`\n    ? tail extends ''\n      ? true\n      : IsValidCharacter<tail>\n    : false\n\n// biome-ignore format: no formatting\n/** @internal */\nexport type ValidCharacters =\n  // uppercase letters\n  | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'\n  // lowercase letters\n  | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'\n  // numbers\n  | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'\n  // special characters\n  | '_' | '$'\n\n// Template string inference can absorb `returns`:\n// type Result = `function foo(string) return s (uint256)` extends `function ${string}(${infer Parameters})` ? Parameters : never\n// //   ^? type Result = \"string ) return s (uint256\"\n// So we need to validate against `returns` keyword with all combinations of whitespace\n/** @internal */\nexport type InvalidFunctionParameters =\n  | `${string}${MangledReturns} (${string}`\n  | `${string}) ${MangledReturns}${string}`\n  | `${string})${string}${MangledReturns}${string}(${string}`\n\n// r_e_t_u_r_n_s\n/** @internal */\nexport type MangledReturns =\n  // Single\n  | `r${string}eturns`\n  | `re${string}turns`\n  | `ret${string}urns`\n  | `retu${string}rns`\n  | `retur${string}ns`\n  | `return${string}s`\n  // Double\n  // `r_e*`\n  | `r${string}e${string}turns`\n  | `r${string}et${string}urns`\n  | `r${string}etu${string}rns`\n  | `r${string}etur${string}ns`\n  | `r${string}eturn${string}s`\n  // `re_t*`\n  | `re${string}t${string}urns`\n  | `re${string}tu${string}rns`\n  | `re${string}tur${string}ns`\n  | `re${string}turn${string}s`\n  // `ret_u*`\n  | `ret${string}u${string}rns`\n  | `ret${string}ur${string}ns`\n  | `ret${string}urn${string}s`\n  // `retu_r*`\n  | `retu${string}r${string}ns`\n  | `retu${string}rn${string}s`\n  // `retur_n*`\n  | `retur${string}n${string}s`\n  // Triple\n  // `r_e_t*`\n  | `r${string}e${string}t${string}urns`\n  | `r${string}e${string}tu${string}rns`\n  | `r${string}e${string}tur${string}ns`\n  | `r${string}e${string}turn${string}s`\n  // `re_t_u*`\n  | `re${string}t${string}u${string}rns`\n  | `re${string}t${string}ur${string}ns`\n  | `re${string}t${string}urn${string}s`\n  // `ret_u_r*`\n  | `ret${string}u${string}r${string}ns`\n  | `ret${string}u${string}rn${string}s`\n  // `retu_r_n*`\n  | `retu${string}r${string}n${string}s`\n  // Quadruple\n  // `r_e_t_u*`\n  | `r${string}e${string}t${string}u${string}rns`\n  | `r${string}e${string}t${string}ur${string}ns`\n  | `r${string}e${string}t${string}urn${string}s`\n  // `re_t_u_r*`\n  | `re${string}t${string}u${string}r${string}ns`\n  | `re${string}t${string}u${string}rn${string}s`\n  // `ret_u_r_n*`\n  | `ret${string}u${string}r${string}n${string}s`\n  // Quintuple\n  // `r_e_t_u_r*`\n  | `r${string}e${string}t${string}u${string}r${string}ns`\n  | `r${string}e${string}t${string}u${string}rn${string}s`\n  // `re_t_u_r_n*`\n  | `re${string}t${string}u${string}r${string}n${string}s`\n  // Sextuple\n  // `r_e_t_u_r_n_s`\n  | `r${string}e${string}t${string}u${string}r${string}n${string}s`\n\n/** @internal */\nexport type Widen<type> =\n  | ([unknown] extends [type] ? unknown : never)\n  | (type extends Function ? type : never)\n  | (type extends abitype.ResolvedRegister['bigIntType'] ? bigint : never)\n  | (type extends boolean ? boolean : never)\n  | (type extends abitype.ResolvedRegister['intType'] ? number : never)\n  | (type extends string\n      ? type extends abitype.ResolvedRegister['addressType']\n        ? abitype.ResolvedRegister['addressType']\n        : type extends abitype.ResolvedRegister['bytesType']['inputs']\n          ? abitype.ResolvedRegister['bytesType']\n          : string\n      : never)\n  | (type extends readonly [] ? readonly [] : never)\n  | (type extends Record<string, unknown>\n      ? { [K in keyof type]: Widen<type[K]> }\n      : never)\n  | (type extends { length: number }\n      ? {\n          [K in keyof type]: Widen<type[K]>\n        } extends infer Val extends readonly unknown[]\n        ? readonly [...Val]\n        : never\n      : never)\n\n/** @internal */\nexport function normalizeSignature(signature: string): string {\n  let active = true\n  let current = ''\n  let level = 0\n  let result = ''\n  let valid = false\n\n  for (let i = 0; i < signature.length; i++) {\n    const char = signature[i]!\n\n    // If the character is a separator, we want to reactivate.\n    if (['(', ')', ','].includes(char)) active = true\n\n    // If the character is a \"level\" token, we want to increment/decrement.\n    if (char === '(') level++\n    if (char === ')') level--\n\n    // If we aren't active, we don't want to mutate the result.\n    if (!active) continue\n\n    // If level === 0, we are at the definition level.\n    if (level === 0) {\n      if (char === ' ' && ['event', 'function', 'error', ''].includes(result))\n        result = ''\n      else {\n        result += char\n\n        // If we are at the end of the definition, we must be finished.\n        if (char === ')') {\n          valid = true\n          break\n        }\n      }\n\n      continue\n    }\n\n    // Ignore spaces\n    if (char === ' ') {\n      // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n      if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n        current = ''\n        active = false\n      }\n      continue\n    }\n\n    result += char\n    current += char\n  }\n\n  if (!valid) throw new Errors.BaseError('Unable to normalize signature.')\n\n  return result\n}\n\n/** @internal */\nexport declare namespace normalizeSignature {\n  export type ErrorType = Errors.BaseError | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function isArgOfType(\n  arg: unknown,\n  abiParameter: AbiParameters.Parameter,\n): boolean {\n  const argType = typeof arg\n  const abiParameterType = abiParameter.type\n  switch (abiParameterType) {\n    case 'address':\n      return Address.validate(arg as Address.Address, { strict: false })\n    case 'bool':\n      return argType === 'boolean'\n    case 'function':\n      return argType === 'string'\n    case 'string':\n      return argType === 'string'\n    default: {\n      if (abiParameterType === 'tuple' && 'components' in abiParameter)\n        return Object.values(abiParameter.components).every(\n          (component, index) => {\n            return isArgOfType(\n              Object.values(arg as unknown[] | Record<string, unknown>)[index],\n              component as AbiParameters.Parameter,\n            )\n          },\n        )\n\n      // `(u)int<M>`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n      // https://regexr.com/6v8hp\n      if (\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)?$/.test(\n          abiParameterType,\n        )\n      )\n        return argType === 'number' || argType === 'bigint'\n\n      // `bytes<M>`: binary type of `M` bytes, `0 < M <= 32`\n      // https://regexr.com/6va55\n      if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n        return argType === 'string' || arg instanceof Uint8Array\n\n      // fixed-length (`<type>[M]`) and dynamic (`<type>[]`) arrays\n      // https://regexr.com/6va6i\n      if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n        return (\n          Array.isArray(arg) &&\n          arg.every((x: unknown) =>\n            isArgOfType(x, {\n              ...abiParameter,\n              // Pop off `[]` or `[M]` from end of type\n              type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n            } as AbiParameters.Parameter),\n          )\n        )\n      }\n\n      return false\n    }\n  }\n}\n\n/** @internal */\nexport function getAmbiguousTypes(\n  sourceParameters: readonly AbiParameters.Parameter[],\n  targetParameters: readonly AbiParameters.Parameter[],\n  args: ExtractArgs,\n): AbiParameters.Parameter['type'][] | undefined {\n  for (const parameterIndex in sourceParameters) {\n    const sourceParameter = sourceParameters[parameterIndex]!\n    const targetParameter = targetParameters[parameterIndex]!\n\n    if (\n      sourceParameter.type === 'tuple' &&\n      targetParameter.type === 'tuple' &&\n      'components' in sourceParameter &&\n      'components' in targetParameter\n    )\n      return getAmbiguousTypes(\n        sourceParameter.components,\n        targetParameter.components,\n        (args as any)[parameterIndex],\n      )\n\n    const types = [sourceParameter.type, targetParameter.type]\n\n    const ambiguous = (() => {\n      if (types.includes('address') && types.includes('bytes20')) return true\n      if (types.includes('address') && types.includes('string'))\n        return Address.validate(args[parameterIndex] as Address.Address, {\n          strict: false,\n        })\n      if (types.includes('address') && types.includes('bytes'))\n        return Address.validate(args[parameterIndex] as Address.Address, {\n          strict: false,\n        })\n      return false\n    })()\n\n    if (ambiguous) return types\n  }\n\n  return\n}\n","import * as abitype from 'abitype'\nimport type * as Abi from './Abi.js'\nimport * as Errors from './Errors.js'\nimport * as Hash from './Hash.js'\nimport * as Hex from './Hex.js'\nimport * as internal from './internal/abiItem.js'\nimport type { UnionCompute } from './internal/types.js'\n\n/** Root type for an item on an {@link ox#Abi.Abi}. */\nexport type AbiItem = Abi.Abi[number]\n\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} item from an {@link ox#Abi.Abi}, given a name.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n *   'error Foo(string)',\n *   'function foo(string)',\n *   'event Bar(uint256)',\n * ])\n *\n * type Foo = AbiItem.FromAbi<typeof abi, 'Foo'>\n * //   ^?\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n */\nexport type FromAbi<\n  abi extends Abi.Abi,\n  name extends ExtractNames<abi>,\n> = Extract<abi[number], { name: name }>\n\n/**\n * Extracts the names of all {@link ox#AbiItem.AbiItem} items in an {@link ox#Abi.Abi}.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n *   'error Foo(string)',\n *   'function foo(string)',\n *   'event Bar(uint256)',\n * ])\n *\n * type names = AbiItem.Name<typeof abi>\n * //   ^?\n *\n * ```\n */\nexport type Name<abi extends Abi.Abi | readonly unknown[] = Abi.Abi> =\n  abi extends Abi.Abi ? ExtractNames<abi> : string\n\nexport type ExtractNames<abi extends Abi.Abi> = Extract<\n  abi[number],\n  { name: string }\n>['name']\n\n/**\n * Formats an {@link ox#AbiItem.AbiItem} into a **Human Readable ABI Item**.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const formatted = AbiItem.format({\n *   type: 'function',\n *   name: 'approve',\n *   stateMutability: 'nonpayable',\n *   inputs: [\n *     {\n *       name: 'spender',\n *       type: 'address',\n *     },\n *     {\n *       name: 'amount',\n *       type: 'uint256',\n *     },\n *   ],\n *   outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * //    ^?\n *\n *\n * ```\n *\n * @param abiItem - The ABI Item to format.\n * @returns The formatted ABI Item  .\n */\nexport function format<const abiItem extends AbiItem>(\n  abiItem: abiItem | AbiItem,\n): abitype.FormatAbiItem<abiItem> {\n  return abitype.formatAbiItem(abiItem) as never\n}\n\nexport declare namespace format {\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Parses an arbitrary **JSON ABI Item** or **Human Readable ABI Item** into a typed {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from({\n *   type: 'function',\n *   name: 'approve',\n *   stateMutability: 'nonpayable',\n *   inputs: [\n *     {\n *       name: 'spender',\n *       type: 'address',\n *     },\n *     {\n *       name: 'amount',\n *       type: 'uint256',\n *     },\n *   ],\n *   outputs: [{ type: 'bool' }],\n * })\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from(\n *   'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const abiItem = AbiItem.from([\n *   'struct Foo { address spender; uint256 amount; }', // [!code hl]\n *   'function approve(Foo foo) returns (bool)',\n * ])\n *\n * abiItem\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiItem - The ABI Item to parse.\n * @returns The typed ABI Item.\n */\nexport function from<\n  const abiItem extends AbiItem | string | readonly string[],\n>(\n  abiItem: (abiItem | AbiItem | string | readonly string[]) &\n    (\n      | (abiItem extends string ? internal.Signature<abiItem> : never)\n      | (abiItem extends readonly string[]\n          ? internal.Signatures<abiItem>\n          : never)\n      | AbiItem\n    ),\n  options: from.Options = {},\n): from.ReturnType<abiItem> {\n  const { prepare = true } = options\n  const item = (() => {\n    if (Array.isArray(abiItem)) return abitype.parseAbiItem(abiItem)\n    if (typeof abiItem === 'string')\n      return abitype.parseAbiItem(abiItem as never)\n    return abiItem\n  })() as AbiItem\n  return {\n    ...item,\n    ...(prepare ? { hash: getSignatureHash(item) } : {}),\n  } as never\n}\n\nexport declare namespace from {\n  type Options = {\n    /**\n     * Whether or not to prepare the extracted item (optimization for encoding performance).\n     * When `true`, the `hash` property is computed and included in the returned value.\n     *\n     * @default true\n     */\n    prepare?: boolean | undefined\n  }\n\n  type ReturnType<abiItem extends AbiItem | string | readonly string[]> =\n    abiItem extends string\n      ? abitype.ParseAbiItem<abiItem>\n      : abiItem extends readonly string[]\n        ? abitype.ParseAbiItem<abiItem>\n        : abiItem\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Extracts an {@link ox#AbiItem.AbiItem} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ABI Items can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo()',\n *   'event Transfer(address owner, address to, uint256 tokenId)',\n *   'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiItem.fromAbi(abi, 'Transfer') // [!code focus]\n * //    ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Items can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiItem } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo()',\n *   'event Transfer(address owner, address to, uint256 tokenId)',\n *   'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiItem.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * //    ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Item from an `eth_call` RPC response,\n * a Transaction `input`, or from Event Log `topics`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi<\n  const abi extends Abi.Abi | readonly unknown[],\n  name extends Name<abi>,\n  const args extends internal.ExtractArgs<abi, name> | undefined = undefined,\n  //\n  allNames = Name<abi>,\n>(\n  abi: abi | Abi.Abi | readonly unknown[],\n  name: Hex.Hex | (name extends allNames ? name : never),\n  options?: fromAbi.Options<abi, name, args>,\n): fromAbi.ReturnType<abi, name, args> {\n  const { args = [], prepare = true } = (options ??\n    {}) as unknown as fromAbi.Options\n\n  const isSelector = Hex.validate(name, { strict: false })\n  const abiItems = (abi as Abi.Abi).filter((abiItem) => {\n    if (isSelector) {\n      if (abiItem.type === 'function' || abiItem.type === 'error')\n        return getSelector(abiItem) === Hex.slice(name, 0, 4)\n      if (abiItem.type === 'event') return getSignatureHash(abiItem) === name\n      return false\n    }\n    return 'name' in abiItem && abiItem.name === name\n  })\n\n  if (abiItems.length === 0) throw new NotFoundError({ name: name as string })\n  if (abiItems.length === 1)\n    return {\n      ...abiItems[0],\n      ...(prepare ? { hash: getSignatureHash(abiItems[0]!) } : {}),\n    } as never\n\n  let matchedAbiItem: AbiItem | undefined\n  for (const abiItem of abiItems) {\n    if (!('inputs' in abiItem)) continue\n    if (!args || args.length === 0) {\n      if (!abiItem.inputs || abiItem.inputs.length === 0)\n        return {\n          ...abiItem,\n          ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n        } as never\n      continue\n    }\n    if (!abiItem.inputs) continue\n    if (abiItem.inputs.length === 0) continue\n    if (abiItem.inputs.length !== args.length) continue\n    const matched = args.every((arg, index) => {\n      const abiParameter = 'inputs' in abiItem && abiItem.inputs![index]\n      if (!abiParameter) return false\n      return internal.isArgOfType(arg, abiParameter)\n    })\n    if (matched) {\n      // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n      if (\n        matchedAbiItem &&\n        'inputs' in matchedAbiItem &&\n        matchedAbiItem.inputs\n      ) {\n        const ambiguousTypes = internal.getAmbiguousTypes(\n          abiItem.inputs,\n          matchedAbiItem.inputs,\n          args as readonly unknown[],\n        )\n        if (ambiguousTypes)\n          throw new AmbiguityError(\n            {\n              abiItem,\n              type: ambiguousTypes[0]!,\n            },\n            {\n              abiItem: matchedAbiItem,\n              type: ambiguousTypes[1]!,\n            },\n          )\n      }\n\n      matchedAbiItem = abiItem\n    }\n  }\n\n  const abiItem = (() => {\n    if (matchedAbiItem) return matchedAbiItem\n    const [abiItem, ...overloads] = abiItems\n    return { ...abiItem!, overloads }\n  })()\n\n  if (!abiItem) throw new NotFoundError({ name: name as string })\n  return {\n    ...abiItem,\n    ...(prepare ? { hash: getSignatureHash(abiItem) } : {}),\n  } as never\n}\n\nexport declare namespace fromAbi {\n  type Options<\n    abi extends Abi.Abi | readonly unknown[] = Abi.Abi,\n    name extends Name<abi> = Name<abi>,\n    args extends\n      | internal.ExtractArgs<abi, name>\n      | undefined = internal.ExtractArgs<abi, name>,\n    ///\n    allArgs = internal.ExtractArgs<abi, name>,\n  > = {\n    /**\n     * Whether or not to prepare the extracted item (optimization for encoding performance).\n     * When `true`, the `hash` property is computed and included in the returned value.\n     *\n     * @default true\n     */\n    prepare?: boolean | undefined\n  } & UnionCompute<\n    readonly [] extends allArgs\n      ? {\n          args?:\n            | allArgs // show all options\n            // infer value, widen inferred value of `args` conditionally to match `allArgs`\n            | (abi extends Abi.Abi\n                ? args extends allArgs\n                  ? internal.Widen<args>\n                  : never\n                : never)\n            | undefined\n        }\n      : {\n          args?:\n            | allArgs // show all options\n            | (internal.Widen<args> & (args extends allArgs ? unknown : never)) // infer value, widen inferred value of `args` match `allArgs` (e.g. avoid union `args: readonly [123n] | readonly [bigint]`)\n            | undefined\n        }\n  >\n\n  type ReturnType<\n    abi extends Abi.Abi | readonly unknown[] = Abi.Abi,\n    name extends Name<abi> = Name<abi>,\n    args extends\n      | internal.ExtractArgs<abi, name>\n      | undefined = internal.ExtractArgs<abi, name>,\n    fallback = AbiItem,\n  > = abi extends Abi.Abi\n    ? Abi.Abi extends abi\n      ? fallback\n      : internal.ExtractForArgs<\n          abi,\n          name,\n          args extends internal.ExtractArgs<abi, name>\n            ? args\n            : internal.ExtractArgs<abi, name>\n        >\n    : fallback\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiItem.AbiItem}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const selector = AbiItem.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const selector = AbiItem.getSelector({\n *   inputs: [{ type: 'uint256' }],\n *   name: 'ownerOf',\n *   outputs: [],\n *   stateMutability: 'view',\n *   type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for. Can be a signature or an ABI item for an error, event, function, etc.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem: string | AbiItem): Hex.Hex {\n  return Hex.slice(getSignatureHash(abiItem), 0, 4)\n}\n\nexport declare namespace getSelector {\n  type ErrorType =\n    | getSignatureHash.ErrorType\n    | Hex.slice.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Computes the stringified signature for a given {@link ox#AbiItem.AbiItem}.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const signature = AbiItem.getSignature('function ownerOf(uint256 tokenId)')\n * // @log: 'ownerOf(uint256)'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const signature = AbiItem.getSignature({\n *   name: 'ownerOf',\n *   type: 'function',\n *   inputs: [{ name: 'tokenId', type: 'uint256' }],\n *   outputs: [],\n *   stateMutability: 'view',\n * })\n * // @log: 'ownerOf(uint256)'\n * ```\n *\n * @param abiItem - The ABI Item to compute the signature for.\n * @returns The stringified signature of the ABI Item.\n */\nexport function getSignature(abiItem: string | AbiItem): string {\n  const signature = (() => {\n    if (typeof abiItem === 'string') return abiItem\n    return abitype.formatAbiItem(abiItem)\n  })()\n  return internal.normalizeSignature(signature)\n}\n\nexport declare namespace getSignature {\n  type ErrorType =\n    | internal.normalizeSignature.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Computes the signature hash for an {@link ox#AbiItem.AbiItem}.\n *\n * Useful for computing Event Topic values.\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const hash = AbiItem.getSignatureHash('event Transfer(address indexed from, address indexed to, uint256 amount)')\n * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiItem } from 'ox'\n *\n * const hash = AbiItem.getSignatureHash({\n *   name: 'Transfer',\n *   type: 'event',\n *   inputs: [\n *     { name: 'from', type: 'address', indexed: true },\n *     { name: 'to', type: 'address', indexed: true },\n *     { name: 'amount', type: 'uint256', indexed: false },\n *   ],\n * })\n * // @log: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'\n * ```\n *\n * @param abiItem - The ABI Item to compute the signature hash for.\n * @returns The {@link ox#Hash.(keccak256:function)} hash of the ABI item's signature.\n */\nexport function getSignatureHash(abiItem: string | AbiItem): Hex.Hex {\n  if (typeof abiItem !== 'string' && 'hash' in abiItem && abiItem.hash)\n    return abiItem.hash as Hex.Hex\n  return Hash.keccak256(Hex.fromString(getSignature(abiItem)))\n}\n\nexport declare namespace getSignatureHash {\n  type ErrorType =\n    | getSignature.ErrorType\n    | Hash.keccak256.ErrorType\n    | Hex.fromString.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * Throws when ambiguous types are found on overloaded ABI items.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from(['function foo(address)', 'function foo(bytes20)'])\n * AbiFunction.fromAbi(foo, 'foo', {\n *   args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n *\n * ### Solution\n *\n * Remove one of the ambiguous types from the ABI.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n *   'function foo(address)',\n *   'function foo(bytes20)' // [!code --]\n * ])\n * AbiFunction.fromAbi(foo, 'foo', {\n *   args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n * })\n * // @error: AbiItem.AmbiguityError: Found ambiguous types in overloaded ABI Items.\n * // @error: `bytes20` in `foo(bytes20)`, and\n * // @error: `address` in `foo(address)`\n * // @error: These types encode differently and cannot be distinguished at runtime.\n * // @error: Remove one of the ambiguous items in the ABI.\n * ```\n */\nexport class AmbiguityError extends Errors.BaseError {\n  override readonly name = 'AbiItem.AmbiguityError'\n  constructor(\n    x: { abiItem: Abi.Abi[number]; type: string },\n    y: { abiItem: Abi.Abi[number]; type: string },\n  ) {\n    super('Found ambiguous types in overloaded ABI Items.', {\n      metaMessages: [\n        // TODO: abitype to add support for signature-formatted ABI items.\n        `\\`${x.type}\\` in \\`${internal.normalizeSignature(abitype.formatAbiItem(x.abiItem))}\\`, and`,\n        `\\`${y.type}\\` in \\`${internal.normalizeSignature(abitype.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    })\n  }\n}\n\n/**\n * Throws when an ABI item is not found in the ABI.\n *\n * @example\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n *   'function foo(address)',\n *   'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * // @error: AbiItem.NotFoundError: ABI function with name \"baz\" not found.\n * ```\n *\n * ### Solution\n *\n * Ensure the ABI item exists on the ABI.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n *   'function foo(address)',\n *   'function bar(uint)',\n *   'function baz(bool)' // [!code ++]\n * ])\n * AbiFunction.fromAbi(foo, 'baz')\n * ```\n */\nexport class NotFoundError extends Errors.BaseError {\n  override readonly name = 'AbiItem.NotFoundError'\n  constructor({\n    name,\n    data,\n    type = 'item',\n  }: {\n    name?: string | undefined\n    data?: Hex.Hex | undefined\n    type?: string | undefined\n  }) {\n    const selector = (() => {\n      if (name) return ` with name \"${name}\"`\n      if (data) return ` with data \"${data}\"`\n      return ''\n    })()\n    super(`ABI ${type}${selector} not found.`)\n  }\n}\n\n/**\n * Throws when the selector size is invalid.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n *   'function foo(address)',\n *   'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0xaaa')\n * // @error: AbiItem.InvalidSelectorSizeError: Selector size is invalid. Expected 4 bytes. Received 2 bytes (\"0xaaa\").\n * ```\n *\n * ### Solution\n *\n * Ensure the selector size is 4 bytes.\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const foo = Abi.from([\n *   'function foo(address)',\n *   'function bar(uint)'\n * ])\n * AbiFunction.fromAbi(foo, '0x7af82b1a')\n * ```\n */\nexport class InvalidSelectorSizeError extends Errors.BaseError {\n  override readonly name = 'AbiItem.InvalidSelectorSizeError'\n  constructor({ data }: { data: Hex.Hex }) {\n    super(\n      `Selector size is invalid. Expected 4 bytes. Received ${Hex.size(data)} bytes (\"${data}\").`,\n    )\n  }\n}\n","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/\n\n// `bytes<M>`: 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<M>`: (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\nexport const maxInt8 = 2n ** (8n - 1n) - 1n\nexport const maxInt16 = 2n ** (16n - 1n) - 1n\nexport const maxInt24 = 2n ** (24n - 1n) - 1n\nexport const maxInt32 = 2n ** (32n - 1n) - 1n\nexport const maxInt40 = 2n ** (40n - 1n) - 1n\nexport const maxInt48 = 2n ** (48n - 1n) - 1n\nexport const maxInt56 = 2n ** (56n - 1n) - 1n\nexport const maxInt64 = 2n ** (64n - 1n) - 1n\nexport const maxInt72 = 2n ** (72n - 1n) - 1n\nexport const maxInt80 = 2n ** (80n - 1n) - 1n\nexport const maxInt88 = 2n ** (88n - 1n) - 1n\nexport const maxInt96 = 2n ** (96n - 1n) - 1n\nexport const maxInt104 = 2n ** (104n - 1n) - 1n\nexport const maxInt112 = 2n ** (112n - 1n) - 1n\nexport const maxInt120 = 2n ** (120n - 1n) - 1n\nexport const maxInt128 = 2n ** (128n - 1n) - 1n\nexport const maxInt136 = 2n ** (136n - 1n) - 1n\nexport const maxInt144 = 2n ** (144n - 1n) - 1n\nexport const maxInt152 = 2n ** (152n - 1n) - 1n\nexport const maxInt160 = 2n ** (160n - 1n) - 1n\nexport const maxInt168 = 2n ** (168n - 1n) - 1n\nexport const maxInt176 = 2n ** (176n - 1n) - 1n\nexport const maxInt184 = 2n ** (184n - 1n) - 1n\nexport const maxInt192 = 2n ** (192n - 1n) - 1n\nexport const maxInt200 = 2n ** (200n - 1n) - 1n\nexport const maxInt208 = 2n ** (208n - 1n) - 1n\nexport const maxInt216 = 2n ** (216n - 1n) - 1n\nexport const maxInt224 = 2n ** (224n - 1n) - 1n\nexport const maxInt232 = 2n ** (232n - 1n) - 1n\nexport const maxInt240 = 2n ** (240n - 1n) - 1n\nexport const maxInt248 = 2n ** (248n - 1n) - 1n\nexport const maxInt256 = 2n ** (256n - 1n) - 1n\n\nexport const minInt8 = -(2n ** (8n - 1n))\nexport const minInt16 = -(2n ** (16n - 1n))\nexport const minInt24 = -(2n ** (24n - 1n))\nexport const minInt32 = -(2n ** (32n - 1n))\nexport const minInt40 = -(2n ** (40n - 1n))\nexport const minInt48 = -(2n ** (48n - 1n))\nexport const minInt56 = -(2n ** (56n - 1n))\nexport const minInt64 = -(2n ** (64n - 1n))\nexport const minInt72 = -(2n ** (72n - 1n))\nexport const minInt80 = -(2n ** (80n - 1n))\nexport const minInt88 = -(2n ** (88n - 1n))\nexport const minInt96 = -(2n ** (96n - 1n))\nexport const minInt104 = -(2n ** (104n - 1n))\nexport const minInt112 = -(2n ** (112n - 1n))\nexport const minInt120 = -(2n ** (120n - 1n))\nexport const minInt128 = -(2n ** (128n - 1n))\nexport const minInt136 = -(2n ** (136n - 1n))\nexport const minInt144 = -(2n ** (144n - 1n))\nexport const minInt152 = -(2n ** (152n - 1n))\nexport const minInt160 = -(2n ** (160n - 1n))\nexport const minInt168 = -(2n ** (168n - 1n))\nexport const minInt176 = -(2n ** (176n - 1n))\nexport const minInt184 = -(2n ** (184n - 1n))\nexport const minInt192 = -(2n ** (192n - 1n))\nexport const minInt200 = -(2n ** (200n - 1n))\nexport const minInt208 = -(2n ** (208n - 1n))\nexport const minInt216 = -(2n ** (216n - 1n))\nexport const minInt224 = -(2n ** (224n - 1n))\nexport const minInt232 = -(2n ** (232n - 1n))\nexport const minInt240 = -(2n ** (240n - 1n))\nexport const minInt248 = -(2n ** (248n - 1n))\nexport const minInt256 = -(2n ** (256n - 1n))\n\nexport const maxUint8 = 2n ** 8n - 1n\nexport const maxUint16 = 2n ** 16n - 1n\nexport const maxUint24 = 2n ** 24n - 1n\nexport const maxUint32 = 2n ** 32n - 1n\nexport const maxUint40 = 2n ** 40n - 1n\nexport const maxUint48 = 2n ** 48n - 1n\nexport const maxUint56 = 2n ** 56n - 1n\nexport const maxUint64 = 2n ** 64n - 1n\nexport const maxUint72 = 2n ** 72n - 1n\nexport const maxUint80 = 2n ** 80n - 1n\nexport const maxUint88 = 2n ** 88n - 1n\nexport const maxUint96 = 2n ** 96n - 1n\nexport const maxUint104 = 2n ** 104n - 1n\nexport const maxUint112 = 2n ** 112n - 1n\nexport const maxUint120 = 2n ** 120n - 1n\nexport const maxUint128 = 2n ** 128n - 1n\nexport const maxUint136 = 2n ** 136n - 1n\nexport const maxUint144 = 2n ** 144n - 1n\nexport const maxUint152 = 2n ** 152n - 1n\nexport const maxUint160 = 2n ** 160n - 1n\nexport const maxUint168 = 2n ** 168n - 1n\nexport const maxUint176 = 2n ** 176n - 1n\nexport const maxUint184 = 2n ** 184n - 1n\nexport const maxUint192 = 2n ** 192n - 1n\nexport const maxUint200 = 2n ** 200n - 1n\nexport const maxUint208 = 2n ** 208n - 1n\nexport const maxUint216 = 2n ** 216n - 1n\nexport const maxUint224 = 2n ** 224n - 1n\nexport const maxUint232 = 2n ** 232n - 1n\nexport const maxUint240 = 2n ** 240n - 1n\nexport const maxUint248 = 2n ** 248n - 1n\nexport const maxUint256 = 2n ** 256n - 1n\n","import type {\n  AbiParameter,\n  AbiParameterKind,\n  AbiParametersToPrimitiveTypes,\n  AbiParameterToPrimitiveType,\n} from 'abitype'\nimport * as AbiParameters from '../AbiParameters.js'\nimport * as Address from '../Address.js'\nimport * as Bytes from '../Bytes.js'\nimport * as Errors from '../Errors.js'\nimport * as Hex from '../Hex.js'\nimport { integerRegex } from '../Solidity.js'\nimport type * as Cursor from './cursor.js'\nimport type { Compute, IsNarrowable, UnionToIntersection } from './types.js'\n\n/** @internal */\nexport type ParameterToPrimitiveType<\n  abiParameter extends AbiParameter | { name: string; type: unknown },\n  abiParameterKind extends AbiParameterKind = AbiParameterKind,\n> = AbiParameterToPrimitiveType<abiParameter, abiParameterKind>\n\n/** @internal */\nexport type PreparedParameter = { dynamic: boolean; encoded: Hex.Hex }\n\n/** @internal */\nexport type ToObject<\n  parameters extends readonly AbiParameter[],\n  kind extends AbiParameterKind = AbiParameterKind,\n> = IsNarrowable<parameters, AbiParameters.AbiParameters> extends true\n  ? Compute<\n      UnionToIntersection<\n        {\n          [index in keyof parameters]: parameters[index] extends {\n            name: infer name extends string\n          }\n            ? {\n                [key in name]: AbiParameterToPrimitiveType<\n                  parameters[index],\n                  kind\n                >\n              }\n            : {\n                [key in index]: AbiParameterToPrimitiveType<\n                  parameters[index],\n                  kind\n                >\n              }\n        }[number]\n      >\n    >\n  : unknown\n\n/** @internal */\nexport type ToPrimitiveTypes<\n  abiParameters extends readonly AbiParameter[],\n  abiParameterKind extends AbiParameterKind = AbiParameterKind,\n> = AbiParametersToPrimitiveTypes<abiParameters, abiParameterKind>\n\n/** @internal */\nexport type Tuple = ParameterToPrimitiveType<TupleAbiParameter>\n\n/** @internal */\nexport function decodeParameter(\n  cursor: Cursor.Cursor,\n  param: AbiParameters.Parameter,\n  options: { checksumAddress?: boolean | undefined; staticPosition: number },\n) {\n  const { checksumAddress, staticPosition } = options\n  const arrayComponents = getArrayComponents(param.type)\n  if (arrayComponents) {\n    const [length, type] = arrayComponents\n    return decodeArray(\n      cursor,\n      { ...param, type },\n      { checksumAddress, length, staticPosition },\n    )\n  }\n  if (param.type === 'tuple')\n    return decodeTuple(cursor, param as TupleAbiParameter, {\n      checksumAddress,\n      staticPosition,\n    })\n  if (param.type === 'address')\n    return decodeAddress(cursor, { checksum: checksumAddress })\n  if (param.type === 'bool') return decodeBool(cursor)\n  if (param.type.startsWith('bytes'))\n    return decodeBytes(cursor, param, { staticPosition })\n  if (param.type.startsWith('uint') || param.type.startsWith('int'))\n    return decodeNumber(cursor, param)\n  if (param.type === 'string') return decodeString(cursor, { staticPosition })\n  throw new AbiParameters.InvalidTypeError(param.type)\n}\n\nexport declare namespace decodeParameter {\n  type ErrorType =\n    | decodeArray.ErrorType\n    | decodeTuple.ErrorType\n    | decodeAddress.ErrorType\n    | decodeBool.ErrorType\n    | decodeBytes.ErrorType\n    | decodeNumber.ErrorType\n    | decodeString.ErrorType\n    | AbiParameters.InvalidTypeError\n    | Errors.GlobalErrorType\n}\n\nconst sizeOfLength = 32\nconst sizeOfOffset = 32\n\n/** @internal */\nexport function decodeAddress(\n  cursor: Cursor.Cursor,\n  options: { checksum?: boolean | undefined } = {},\n) {\n  const { checksum = false } = options\n  const value = cursor.readBytes(32)\n  const wrap = (address: Hex.Hex) =>\n    checksum ? Address.checksum(address) : address\n  return [wrap(Hex.fromBytes(Bytes.slice(value, -20))), 32]\n}\n\nexport declare namespace decodeAddress {\n  type ErrorType =\n    | Hex.fromBytes.ErrorType\n    | Bytes.slice.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function decodeArray(\n  cursor: Cursor.Cursor,\n  param: AbiParameters.Parameter,\n  options: {\n    checksumAddress?: boolean | undefined\n    length: number | null\n    staticPosition: number\n  },\n) {\n  const { checksumAddress, length, staticPosition } = options\n\n  // If the length of the array is not known in advance (dynamic array),\n  // this means we will need to wonder off to the pointer and decode.\n  if (!length) {\n    // Dealing with a dynamic type, so get the offset of the array data.\n    const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))\n\n    // Start is the static position of current slot + offset.\n    const start = staticPosition + offset\n    const startOfData = start + sizeOfLength\n\n    // Get the length of the array from the offset.\n    cursor.setPosition(start)\n    const length = Bytes.toNumber(cursor.readBytes(sizeOfLength))\n\n    // Check if the array has any dynamic children.\n    const dynamicChild = hasDynamicChild(param)\n\n    let consumed = 0\n    const value: unknown[] = []\n    for (let i = 0; i < length; ++i) {\n      // If any of the children is dynamic, then all elements will be offset pointer, thus size of one slot (32 bytes).\n      // Otherwise, elements will be the size of their encoding (consumed bytes).\n      cursor.setPosition(startOfData + (dynamicChild ? i * 32 : consumed))\n      const [data, consumed_] = decodeParameter(cursor, param, {\n        checksumAddress,\n        staticPosition: startOfData,\n      })\n      consumed += consumed_\n      value.push(data)\n    }\n\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\n\n  // If the length of the array is known in advance,\n  // and the length of an element deeply nested in the array is not known,\n  // we need to decode the offset of the array data.\n  if (hasDynamicChild(param)) {\n    // Dealing with dynamic types, so get the offset of the array data.\n    const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))\n\n    // Start is the static position of current slot + offset.\n    const start = staticPosition + offset\n\n    const value: unknown[] = []\n    for (let i = 0; i < length; ++i) {\n      // Move cursor along to the next slot (next offset pointer).\n      cursor.setPosition(start + i * 32)\n      const [data] = decodeParameter(cursor, param, {\n        checksumAddress,\n        staticPosition: start,\n      })\n      value.push(data)\n    }\n\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\n\n  // If the length of the array is known in advance and the array is deeply static,\n  // then we can just decode each element in sequence.\n  let consumed = 0\n  const value: unknown[] = []\n  for (let i = 0; i < length; ++i) {\n    const [data, consumed_] = decodeParameter(cursor, param, {\n      checksumAddress,\n      staticPosition: staticPosition + consumed,\n    })\n    consumed += consumed_\n    value.push(data)\n  }\n  return [value, consumed]\n}\n\nexport declare namespace decodeArray {\n  type ErrorType = Bytes.toNumber.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function decodeBool(cursor: Cursor.Cursor) {\n  return [Bytes.toBoolean(cursor.readBytes(32), { size: 32 }), 32]\n}\n\nexport declare namespace decodeBool {\n  type ErrorType = Bytes.toBoolean.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function decodeBytes(\n  cursor: Cursor.Cursor,\n  param: AbiParameters.Parameter,\n  { staticPosition }: { staticPosition: number },\n) {\n  const [_, size] = param.type.split('bytes')\n  if (!size) {\n    // Dealing with dynamic types, so get the offset of the bytes data.\n    const offset = Bytes.toNumber(cursor.readBytes(32))\n\n    // Set position of the cursor to start of bytes data.\n    cursor.setPosition(staticPosition + offset)\n\n    const length = Bytes.toNumber(cursor.readBytes(32))\n\n    // If there is no length, we have zero data.\n    if (length === 0) {\n      // As we have gone wondering, restore to the original position + next slot.\n      cursor.setPosition(staticPosition + 32)\n      return ['0x', 32]\n    }\n\n    const data = cursor.readBytes(length)\n\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [Hex.fromBytes(data), 32]\n  }\n\n  const value = Hex.fromBytes(cursor.readBytes(Number.parseInt(size, 10), 32))\n  return [value, 32]\n}\n\nexport declare namespace decodeBytes {\n  type ErrorType =\n    | Hex.fromBytes.ErrorType\n    | Bytes.toNumber.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function decodeNumber(\n  cursor: Cursor.Cursor,\n  param: AbiParameters.Parameter,\n) {\n  const signed = param.type.startsWith('int')\n  const size = Number.parseInt(param.type.split('int')[1] || '256', 10)\n  const value = cursor.readBytes(32)\n  return [\n    size > 48\n      ? Bytes.toBigInt(value, { signed })\n      : Bytes.toNumber(value, { signed }),\n    32,\n  ]\n}\n\nexport declare namespace decodeNumber {\n  type ErrorType =\n    | Bytes.toNumber.ErrorType\n    | Bytes.toBigInt.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport type TupleAbiParameter = AbiParameters.Parameter & {\n  components: readonly AbiParameters.Parameter[]\n}\n\n/** @internal */\nexport function decodeTuple(\n  cursor: Cursor.Cursor,\n  param: TupleAbiParameter,\n  options: { checksumAddress?: boolean | undefined; staticPosition: number },\n) {\n  const { checksumAddress, staticPosition } = options\n\n  // Tuples can have unnamed components (i.e. they are arrays), so we must\n  // determine whether the tuple is named or unnamed. In the case of a named\n  // tuple, the value will be an object where each property is the name of the\n  // component. In the case of an unnamed tuple, the value will be an array.\n  const hasUnnamedChild =\n    param.components.length === 0 || param.components.some(({ name }) => !name)\n\n  // Initialize the value to an object or an array, depending on whether the\n  // tuple is named or unnamed.\n  const value: any = hasUnnamedChild ? [] : {}\n  let consumed = 0\n\n  // If the tuple has a dynamic child, we must first decode the offset to the\n  // tuple data.\n  if (hasDynamicChild(param)) {\n    // Dealing with dynamic types, so get the offset of the tuple data.\n    const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))\n\n    // Start is the static position of referencing slot + offset.\n    const start = staticPosition + offset\n\n    for (let i = 0; i < param.components.length; ++i) {\n      const component = param.components[i]!\n      cursor.setPosition(start + consumed)\n      const [data, consumed_] = decodeParameter(cursor, component, {\n        checksumAddress,\n        staticPosition: start,\n      })\n      consumed += consumed_\n      value[hasUnnamedChild ? i : component?.name!] = data\n    }\n\n    // As we have gone wondering, restore to the original position + next slot.\n    cursor.setPosition(staticPosition + 32)\n    return [value, 32]\n  }\n\n  // If the tuple has static children, we can just decode each component\n  // in sequence.\n  for (let i = 0; i < param.components.length; ++i) {\n    const component = param.components[i]!\n    const [data, consumed_] = decodeParameter(cursor, component, {\n      checksumAddress,\n      staticPosition,\n    })\n    value[hasUnnamedChild ? i : component?.name!] = data\n    consumed += consumed_\n  }\n  return [value, consumed]\n}\n\nexport declare namespace decodeTuple {\n  type ErrorType = Bytes.toNumber.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function decodeString(\n  cursor: Cursor.Cursor,\n  { staticPosition }: { staticPosition: number },\n) {\n  // Get offset to start of string data.\n  const offset = Bytes.toNumber(cursor.readBytes(32))\n\n  // Start is the static position of current slot + offset.\n  const start = staticPosition + offset\n  cursor.setPosition(start)\n\n  const length = Bytes.toNumber(cursor.readBytes(32))\n\n  // If there is no length, we have zero data (empty string).\n  if (length === 0) {\n    cursor.setPosition(staticPosition + 32)\n    return ['', 32]\n  }\n\n  const data = cursor.readBytes(length, 32)\n  const value = Bytes.toString(Bytes.trimLeft(data))\n\n  // As we have gone wondering, restore to the original position + next slot.\n  cursor.setPosition(staticPosition + 32)\n\n  return [value, 32]\n}\n\nexport declare namespace decodeString {\n  type ErrorType =\n    | Bytes.toNumber.ErrorType\n    | Bytes.toString.ErrorType\n    | Bytes.trimLeft.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function prepareParameters<\n  const parameters extends AbiParameters.AbiParameters,\n>({\n  checksumAddress,\n  parameters,\n  values,\n}: {\n  checksumAddress?: boolean | undefined\n  parameters: parameters\n  values: parameters extends AbiParameters.AbiParameters\n    ? ToPrimitiveTypes<parameters>\n    : never\n}) {\n  const preparedParameters: PreparedParameter[] = []\n  for (let i = 0; i < parameters.length; i++) {\n    preparedParameters.push(\n      prepareParameter({\n        checksumAddress,\n        parameter: parameters[i]!,\n        value: values[i],\n      }),\n    )\n  }\n  return preparedParameters\n}\n\n/** @internal */\nexport declare namespace prepareParameters {\n  type ErrorType = prepareParameter.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function prepareParameter<\n  const parameter extends AbiParameters.Parameter,\n>({\n  checksumAddress = false,\n  parameter: parameter_,\n  value,\n}: {\n  parameter: parameter\n  value: parameter extends AbiParameters.Parameter\n    ? ParameterToPrimitiveType<parameter>\n    : never\n  checksumAddress?: boolean | undefined\n}): PreparedParameter {\n  const parameter = parameter_ as AbiParameters.Parameter\n\n  const arrayComponents = getArrayComponents(parameter.type)\n  if (arrayComponents) {\n    const [length, type] = arrayComponents\n    return encodeArray(value, {\n      checksumAddress,\n      length,\n      parameter: {\n        ...parameter,\n        type,\n      },\n    })\n  }\n  if (parameter.type === 'tuple') {\n    return encodeTuple(value as unknown as Tuple, {\n      checksumAddress,\n      parameter: parameter as TupleAbiParameter,\n    })\n  }\n  if (parameter.type === 'address') {\n    return encodeAddress(value as unknown as Hex.Hex, {\n      checksum: checksumAddress,\n    })\n  }\n  if (parameter.type === 'bool') {\n    return encodeBoolean(value as unknown as boolean)\n  }\n  if (parameter.type.startsWith('uint') || parameter.type.startsWith('int')) {\n    const signed = parameter.type.startsWith('int')\n    const [, , size = '256'] = integerRegex.exec(parameter.type) ?? []\n    return encodeNumber(value as unknown as number, {\n      signed,\n      size: Number(size),\n    })\n  }\n  if (parameter.type.startsWith('bytes')) {\n    return encodeBytes(value as unknown as Hex.Hex, { type: parameter.type })\n  }\n  if (parameter.type === 'string') {\n    return encodeString(value as unknown as string)\n  }\n  throw new AbiParameters.InvalidTypeError(parameter.type)\n}\n\n/** @internal */\nexport declare namespace prepareParameter {\n  type ErrorType =\n    | encodeArray.ErrorType\n    | encodeTuple.ErrorType\n    | encodeAddress.ErrorType\n    | encodeBoolean.ErrorType\n    | encodeBytes.ErrorType\n    | encodeString.ErrorType\n    | AbiParameters.InvalidTypeError\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encode(preparedParameters: PreparedParameter[]): Hex.Hex {\n  // 1. Compute the size of the static part of the parameters.\n  let staticSize = 0\n  for (let i = 0; i < preparedParameters.length; i++) {\n    const { dynamic, encoded } = preparedParameters[i]!\n    if (dynamic) staticSize += 32\n    else staticSize += Hex.size(encoded)\n  }\n\n  // 2. Split the parameters into static and dynamic parts.\n  const staticParameters: Hex.Hex[] = []\n  const dynamicParameters: Hex.Hex[] = []\n  let dynamicSize = 0\n  for (let i = 0; i < preparedParameters.length; i++) {\n    const { dynamic, encoded } = preparedParameters[i]!\n    if (dynamic) {\n      staticParameters.push(\n        Hex.fromNumber(staticSize + dynamicSize, { size: 32 }),\n      )\n      dynamicParameters.push(encoded)\n      dynamicSize += Hex.size(encoded)\n    } else {\n      staticParameters.push(encoded)\n    }\n  }\n\n  // 3. Concatenate static and dynamic parts.\n  return Hex.concat(...staticParameters, ...dynamicParameters)\n}\n\n/** @internal */\nexport declare namespace encode {\n  type ErrorType =\n    | Hex.concat.ErrorType\n    | Hex.fromNumber.ErrorType\n    | Hex.size.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeAddress(\n  value: Hex.Hex,\n  options: { checksum: boolean },\n): PreparedParameter {\n  const { checksum = false } = options\n  Address.assert(value, { strict: checksum })\n  return {\n    dynamic: false,\n    encoded: Hex.padLeft(value.toLowerCase() as Hex.Hex),\n  }\n}\n\n/** @internal */\nexport declare namespace encodeAddress {\n  type ErrorType =\n    | Address.assert.ErrorType\n    | Hex.padLeft.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeArray<const parameter extends AbiParameters.Parameter>(\n  value: ParameterToPrimitiveType<parameter>,\n  options: {\n    checksumAddress?: boolean | undefined\n    length: number | null\n    parameter: parameter\n  },\n): PreparedParameter {\n  const { checksumAddress, length, parameter } = options\n\n  const dynamic = length === null\n\n  if (!Array.isArray(value)) throw new AbiParameters.InvalidArrayError(value)\n  if (!dynamic && value.length !== length)\n    throw new AbiParameters.ArrayLengthMismatchError({\n      expectedLength: length!,\n      givenLength: value.length,\n      type: `${parameter.type}[${length}]`,\n    })\n\n  let dynamicChild = false\n  const preparedParameters: PreparedParameter[] = []\n  for (let i = 0; i < value.length; i++) {\n    const preparedParam = prepareParameter({\n      checksumAddress,\n      parameter,\n      value: value[i],\n    })\n    if (preparedParam.dynamic) dynamicChild = true\n    preparedParameters.push(preparedParam)\n  }\n\n  if (dynamic || dynamicChild) {\n    const data = encode(preparedParameters)\n    if (dynamic) {\n      const length = Hex.fromNumber(preparedParameters.length, { size: 32 })\n      return {\n        dynamic: true,\n        encoded:\n          preparedParameters.length > 0 ? Hex.concat(length, data) : length,\n      }\n    }\n    if (dynamicChild) return { dynamic: true, encoded: data }\n  }\n  return {\n    dynamic: false,\n    encoded: Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n  }\n}\n\n/** @internal */\nexport declare namespace encodeArray {\n  type ErrorType =\n    | AbiParameters.InvalidArrayError\n    | AbiParameters.ArrayLengthMismatchError\n    | Hex.concat.ErrorType\n    | Hex.fromNumber.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeBytes(\n  value: Hex.Hex,\n  { type }: { type: string },\n): PreparedParameter {\n  const [, parametersize] = type.split('bytes')\n  const bytesSize = Hex.size(value)\n  if (!parametersize) {\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_ = Hex.padRight(value_, Math.ceil((value.length - 2) / 2 / 32) * 32)\n    return {\n      dynamic: true,\n      encoded: Hex.concat(\n        Hex.padLeft(Hex.fromNumber(bytesSize, { size: 32 })),\n        value_,\n      ),\n    }\n  }\n  if (bytesSize !== Number.parseInt(parametersize, 10))\n    throw new AbiParameters.BytesSizeMismatchError({\n      expectedSize: Number.parseInt(parametersize, 10),\n      value,\n    })\n  return { dynamic: false, encoded: Hex.padRight(value) }\n}\n\n/** @internal */\nexport declare namespace encodeBytes {\n  type ErrorType =\n    | Hex.padLeft.ErrorType\n    | Hex.padRight.ErrorType\n    | Hex.fromNumber.ErrorType\n    | Hex.slice.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeBoolean(value: boolean): PreparedParameter {\n  if (typeof value !== 'boolean')\n    throw new Errors.BaseError(\n      `Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`,\n    )\n  return { dynamic: false, encoded: Hex.padLeft(Hex.fromBoolean(value)) }\n}\n\n/** @internal */\nexport declare namespace encodeBoolean {\n  type ErrorType =\n    | Hex.padLeft.ErrorType\n    | Hex.fromBoolean.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeNumber(\n  value: number,\n  { signed, size }: { signed: boolean; size: number },\n): PreparedParameter {\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 Hex.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: Hex.fromNumber(value, {\n      size: 32,\n      signed,\n    }),\n  }\n}\n\n/** @internal */\nexport declare namespace encodeNumber {\n  type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeString(value: string): PreparedParameter {\n  const hexValue = Hex.fromString(value)\n  const partsLength = Math.ceil(Hex.size(hexValue) / 32)\n  const parts: Hex.Hex[] = []\n  for (let i = 0; i < partsLength; i++) {\n    parts.push(Hex.padRight(Hex.slice(hexValue, i * 32, (i + 1) * 32)))\n  }\n  return {\n    dynamic: true,\n    encoded: Hex.concat(\n      Hex.padRight(Hex.fromNumber(Hex.size(hexValue), { size: 32 })),\n      ...parts,\n    ),\n  }\n}\n\n/** @internal */\nexport declare namespace encodeString {\n  type ErrorType =\n    | Hex.fromNumber.ErrorType\n    | Hex.padRight.ErrorType\n    | Hex.slice.ErrorType\n    | Hex.size.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function encodeTuple<\n  const parameter extends AbiParameters.Parameter & {\n    components: readonly AbiParameters.Parameter[]\n  },\n>(\n  value: ParameterToPrimitiveType<parameter>,\n  options: {\n    checksumAddress?: boolean | undefined\n    parameter: parameter\n  },\n): PreparedParameter {\n  const { checksumAddress, parameter } = options\n\n  let dynamic = false\n  const preparedParameters: PreparedParameter[] = []\n  for (let i = 0; i < parameter.components.length; i++) {\n    const param_ = parameter.components[i]!\n    const index = Array.isArray(value) ? i : param_.name\n    const preparedParam = prepareParameter({\n      checksumAddress,\n      parameter: param_,\n      value: (value as any)[index!] as readonly unknown[],\n    })\n    preparedParameters.push(preparedParam)\n    if (preparedParam.dynamic) dynamic = true\n  }\n  return {\n    dynamic,\n    encoded: dynamic\n      ? encode(preparedParameters)\n      : Hex.concat(...preparedParameters.map(({ encoded }) => encoded)),\n  }\n}\n\n/** @internal */\nexport declare namespace encodeTuple {\n  type ErrorType = Hex.concat.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\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\n/** @internal */\nexport function hasDynamicChild(param: AbiParameters.Parameter) {\n  const { type } = param\n  if (type === 'string') return true\n  if (type === 'bytes') return true\n  if (type.endsWith('[]')) return true\n\n  if (type === 'tuple') return (param as any).components?.some(hasDynamicChild)\n\n  const arrayComponents = getArrayComponents(param.type)\n  if (\n    arrayComponents &&\n    hasDynamicChild({\n      ...param,\n      type: arrayComponents[1],\n    } as AbiParameters.Parameter)\n  )\n    return true\n\n  return false\n}\n","import * as abitype from 'abitype'\nimport * as Address from './Address.js'\nimport * as Bytes from './Bytes.js'\nimport * as Errors from './Errors.js'\nimport * as Hex from './Hex.js'\nimport * as internal from './internal/abiParameters.js'\nimport * as Cursor from './internal/cursor.js'\nimport * as Solidity from './Solidity.js'\n\n/** Root type for ABI parameters. */\nexport type AbiParameters = readonly abitype.AbiParameter[]\n\n/** A parameter on an {@link ox#AbiParameters.AbiParameters}. */\nexport type Parameter = abitype.AbiParameter\n\n/** A packed ABI type. */\nexport type PackedAbiType =\n  | abitype.SolidityAddress\n  | abitype.SolidityBool\n  | abitype.SolidityBytes\n  | abitype.SolidityInt\n  | abitype.SolidityString\n  | abitype.SolidityArrayWithoutTuple\n\n/**\n * Decodes ABI-encoded data into its respective primitive values based on ABI Parameters.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.decode(\n *   AbiParameters.from(['string', 'uint', 'bool']),\n *   '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\n * )\n * // @log: ['wagmi', 420n, true]\n * ```\n *\n * @example\n * ### JSON Parameters\n *\n * You can pass **JSON ABI** Parameters:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.decode(\n *   [\n *     { name: 'x', type: 'string' },\n *     { name: 'y', type: 'uint' },\n *     { name: 'z', type: 'bool' },\n *   ],\n *   '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',\n * )\n * // @log: ['wagmi', 420n, true]\n * ```\n *\n * @param parameters - The set of ABI parameters to decode, in the shape of the `inputs` or `outputs` attribute of an ABI Item. These parameters must include valid [ABI types](https://docs.soliditylang.org/en/latest/types.html).\n * @param data - ABI encoded data.\n * @param options - Decoding options.\n * @returns Array of decoded values.\n */\nexport function decode<\n  const parameters extends AbiParameters,\n  as extends 'Object' | 'Array' = 'Array',\n>(\n  parameters: parameters,\n  data: Bytes.Bytes | Hex.Hex,\n  options?: decode.Options<as>,\n): decode.ReturnType<parameters, as>\n\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function decode(\n  parameters: AbiParameters,\n  data: Bytes.Bytes | Hex.Hex,\n  options: {\n    as?: 'Array' | 'Object' | undefined\n    checksumAddress?: boolean | undefined\n  } = {},\n): readonly unknown[] | Record<string, unknown> {\n  const { as = 'Array', checksumAddress = false } = options\n\n  const bytes = typeof data === 'string' ? Bytes.fromHex(data) : data\n  const cursor = Cursor.create(bytes)\n\n  if (Bytes.size(bytes) === 0 && parameters.length > 0)\n    throw new ZeroDataError()\n  if (Bytes.size(bytes) && Bytes.size(bytes) < 32)\n    throw new DataSizeTooSmallError({\n      data: typeof data === 'string' ? data : Hex.fromBytes(data),\n      parameters: parameters as readonly Parameter[],\n      size: Bytes.size(bytes),\n    })\n\n  let consumed = 0\n  const values: any = as === 'Array' ? [] : {}\n  for (let i = 0; i < parameters.length; ++i) {\n    const param = parameters[i] as Parameter\n    cursor.setPosition(consumed)\n    const [data, consumed_] = internal.decodeParameter(cursor, param, {\n      checksumAddress,\n      staticPosition: 0,\n    })\n    consumed += consumed_\n    if (as === 'Array') values.push(data)\n    else values[param.name ?? i] = data\n  }\n  return values\n}\n\nexport declare namespace decode {\n  type Options<as extends 'Object' | 'Array'> = {\n    /**\n     * Whether the decoded values should be returned as an `Object` or `Array`.\n     *\n     * @default \"Array\"\n     */\n    as?: as | 'Object' | 'Array' | undefined\n    /**\n     * Whether decoded addresses should be checksummed.\n     *\n     * @default false\n     */\n    checksumAddress?: boolean | undefined\n  }\n\n  type ReturnType<\n    parameters extends AbiParameters = AbiParameters,\n    as extends 'Object' | 'Array' = 'Array',\n  > = parameters extends readonly []\n    ? as extends 'Object'\n      ? {}\n      : []\n    : as extends 'Object'\n      ? internal.ToObject<parameters>\n      : internal.ToPrimitiveTypes<parameters>\n\n  type ErrorType =\n    | Bytes.fromHex.ErrorType\n    | internal.decodeParameter.ErrorType\n    | ZeroDataError\n    | DataSizeTooSmallError\n    | Errors.GlobalErrorType\n}\n\n/**\n * Encodes primitive values into ABI encoded data as per the [Application Binary Interface (ABI) Specification](https://docs.soliditylang.org/en/latest/abi-spec).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n *   AbiParameters.from(['string', 'uint', 'bool']),\n *   ['wagmi', 420n, true],\n * )\n * ```\n *\n * @example\n * ### JSON Parameters\n *\n * Specify **JSON ABI** Parameters as schema:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const data = AbiParameters.encode(\n *   [\n *     { type: 'string', name: 'name' },\n *     { type: 'uint', name: 'age' },\n *     { type: 'bool', name: 'isOwner' },\n *   ],\n *   ['wagmi', 420n, true],\n * )\n * ```\n *\n * @param parameters - The set of ABI parameters to encode, in the shape of the `inputs` or `outputs` attribute of an ABI Item. These parameters must include valid [ABI types](https://docs.soliditylang.org/en/latest/types.html).\n * @param values - The set of primitive values that correspond to the ABI types defined in `parameters`.\n * @returns ABI encoded data.\n */\nexport function encode<\n  const parameters extends AbiParameters | readonly unknown[],\n>(\n  parameters: parameters,\n  values: parameters extends AbiParameters\n    ? internal.ToPrimitiveTypes<parameters>\n    : never,\n  options?: encode.Options,\n): Hex.Hex {\n  const { checksumAddress = false } = options ?? {}\n\n  if (parameters.length !== values.length)\n    throw new LengthMismatchError({\n      expectedLength: parameters.length as number,\n      givenLength: values.length as any,\n    })\n  // Prepare the parameters to determine dynamic types to encode.\n  const preparedParameters = internal.prepareParameters({\n    checksumAddress,\n    parameters: parameters as readonly Parameter[],\n    values: values as any,\n  })\n  const data = internal.encode(preparedParameters)\n  if (data.length === 0) return '0x'\n  return data\n}\n\nexport declare namespace encode {\n  type ErrorType =\n    | LengthMismatchError\n    | internal.encode.ErrorType\n    | internal.prepareParameters.ErrorType\n    | Errors.GlobalErrorType\n\n  type Options = {\n    /**\n     * Whether addresses should be checked against their checksum.\n     *\n     * @default false\n     */\n    checksumAddress?: boolean | undefined\n  }\n}\n\n/**\n * Encodes an array of primitive values to a [packed ABI encoding](https://docs.soliditylang.org/en/latest/abi-spec.html#non-standard-packed-mode).\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const encoded = AbiParameters.encodePacked(\n *   ['address', 'string'],\n *   ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 'hello world'],\n * )\n * // @log: '0xd8da6bf26964af9d7eed9e03e53415d37aa9604568656c6c6f20776f726c64'\n * ```\n *\n * @param types - Set of ABI types to pack encode.\n * @param values - The set of primitive values that correspond to the ABI types defined in `types`.\n * @returns The encoded packed data.\n */\nexport function encodePacked<\n  const packedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],\n>(types: packedAbiTypes, values: encodePacked.Values<packedAbiTypes>): Hex.Hex {\n  if (types.length !== values.length)\n    throw new LengthMismatchError({\n      expectedLength: types.length as number,\n      givenLength: values.length as number,\n    })\n\n  const data: Hex.Hex[] = []\n  for (let i = 0; i < (types as unknown[]).length; i++) {\n    const type = types[i]\n    const value = values[i]\n    data.push(encodePacked.encode(type, value))\n  }\n  return Hex.concat(...data)\n}\n\nexport namespace encodePacked {\n  export type ErrorType =\n    | Hex.concat.ErrorType\n    | LengthMismatchError\n    | Errors.GlobalErrorType\n\n  export type Values<\n    packedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],\n  > = {\n    [key in keyof packedAbiTypes]: packedAbiTypes[key] extends abitype.AbiType\n      ? abitype.AbiParameterToPrimitiveType<{ type: packedAbiTypes[key] }>\n      : unknown\n  }\n\n  // eslint-disable-next-line jsdoc/require-jsdoc\n  export function encode<const packedAbiType extends PackedAbiType | unknown>(\n    type: packedAbiType,\n    value: Values<[packedAbiType]>[0],\n    isArray = false,\n  ): Hex.Hex {\n    if (type === 'address') {\n      const address = value as Address.Address\n      Address.assert(address)\n      return Hex.padLeft(\n        address.toLowerCase() as Hex.Hex,\n        isArray ? 32 : 0,\n      ) as Address.Address\n    }\n    if (type === 'string') return Hex.fromString(value as string)\n    if (type === 'bytes') return value as Hex.Hex\n    if (type === 'bool')\n      return Hex.padLeft(Hex.fromBoolean(value as boolean), isArray ? 32 : 1)\n\n    const intMatch = (type as string).match(Solidity.integerRegex)\n    if (intMatch) {\n      const [_type, baseType, bits = '256'] = intMatch\n      const size = Number.parseInt(bits, 10) / 8\n      return Hex.fromNumber(value as number, {\n        size: isArray ? 32 : size,\n        signed: baseType === 'int',\n      })\n    }\n\n    const bytesMatch = (type as string).match(Solidity.bytesRegex)\n    if (bytesMatch) {\n      const [_type, size] = bytesMatch\n      if (Number.parseInt(size!, 10) !== ((value as Hex.Hex).length - 2) / 2)\n        throw new BytesSizeMismatchError({\n          expectedSize: Number.parseInt(size!, 10),\n          value: value as Hex.Hex,\n        })\n      return Hex.padRight(value as Hex.Hex, isArray ? 32 : 0) as Hex.Hex\n    }\n\n    const arrayMatch = (type as string).match(Solidity.arrayRegex)\n    if (arrayMatch && Array.isArray(value)) {\n      const [_type, childType] = arrayMatch\n      const data: Hex.Hex[] = []\n      for (let i = 0; i < value.length; i++) {\n        data.push(encode(childType, value[i], true))\n      }\n      if (data.length === 0) return '0x'\n      return Hex.concat(...data)\n    }\n\n    throw new InvalidTypeError(type as string)\n  }\n}\n\n/**\n * Formats {@link ox#AbiParameters.AbiParameters} into **Human Readable ABI Parameters**.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const formatted = AbiParameters.format([\n *   {\n *     name: 'spender',\n *     type: 'address',\n *   },\n *   {\n *     name: 'amount',\n *     type: 'uint256',\n *   },\n * ])\n *\n * formatted\n * //    ^?\n *\n *\n * ```\n *\n * @param parameters - The ABI Parameters to format.\n * @returns The formatted ABI Parameters  .\n */\nexport function format<\n  const parameters extends readonly [\n    Parameter | abitype.AbiEventParameter,\n    ...(readonly (Parameter | abitype.AbiEventParameter)[]),\n  ],\n>(\n  parameters:\n    | parameters\n    | readonly [\n        Parameter | abitype.AbiEventParameter,\n        ...(readonly (Parameter | abitype.AbiEventParameter)[]),\n      ],\n): abitype.FormatAbiParameters<parameters> {\n  return abitype.formatAbiParameters(parameters)\n}\n\nexport declare namespace format {\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Parses arbitrary **JSON ABI Parameters** or **Human Readable ABI Parameters** into typed {@link ox#AbiParameters.AbiParameters}.\n *\n * @example\n * ### JSON Parameters\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n *   {\n *     name: 'spender',\n *     type: 'address',\n *   },\n *   {\n *     name: 'amount',\n *     type: 'uint256',\n *   },\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable Parameters\n *\n * Human Readable ABI Parameters can be parsed into a typed {@link ox#AbiParameters.AbiParameters}:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from('address spender, uint256 amount')\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * const parameters = AbiParameters.from([\n *   'struct Foo { address spender; uint256 amount; }', // [!code hl]\n *   'Foo foo, address bar',\n * ])\n *\n * parameters\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param parameters - The ABI Parameters to parse.\n * @returns The typed ABI Parameters.\n */\nexport function from<\n  const parameters extends AbiParameters | string | readonly string[],\n>(\n  parameters: parameters | AbiParameters | string | readonly string[],\n): from.ReturnType<parameters> {\n  if (Array.isArray(parameters) && typeof parameters[0] === 'string')\n    return abitype.parseAbiParameters(parameters) as never\n  if (typeof parameters === 'string')\n    return abitype.parseAbiParameters(parameters) as never\n  return parameters as never\n}\n\nexport declare namespace from {\n  type ReturnType<\n    parameters extends AbiParameters | string | readonly string[],\n  > = parameters extends string\n    ? abitype.ParseAbiParameters<parameters>\n    : parameters extends readonly string[]\n      ? abitype.ParseAbiParameters<parameters>\n      : parameters\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Throws when the data size is too small for the given parameters.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x010f')\n * //                                             ↑ ❌ 2 bytes\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data:   0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass a valid data size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * //                                             ↑ ✅ 32 bytes\n * ```\n */\nexport class DataSizeTooSmallError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.DataSizeTooSmallError'\n  constructor({\n    data,\n    parameters,\n    size,\n  }: { data: Hex.Hex; parameters: readonly Parameter[]; size: number }) {\n    super(`Data size of ${size} bytes is too small for given parameters.`, {\n      metaMessages: [\n        `Params: (${abitype.formatAbiParameters(parameters as readonly [Parameter])})`,\n        `Data:   ${data} (${size} bytes)`,\n      ],\n    })\n  }\n}\n\n/**\n * Throws when zero data is provided, but data is expected.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x')\n * //                                           ↑ ❌ zero data\n * // @error: AbiParameters.DataSizeTooSmallError: Data size of 2 bytes is too small for given parameters.\n * // @error: Params: (uint256)\n * // @error: Data:   0x010f (2 bytes)\n * ```\n *\n * ### Solution\n *\n * Pass valid data.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'uint256' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * //                                             ↑ ✅ 32 bytes\n * ```\n */\nexport class ZeroDataError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.ZeroDataError'\n  constructor() {\n    super('Cannot decode zero data (\"0x\") with ABI parameters.')\n  }\n}\n\n/**\n * The length of the array value does not match the length specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('uint256[3]'), [[69n, 420n]])\n * //                                               ↑ expected: 3  ↑ ❌ length: 2\n * // @error: AbiParameters.ArrayLengthMismatchError: ABI encoding array length mismatch\n * // @error: for type `uint256[3]`. Expected: `3`. Given: `2`.\n * ```\n *\n * ### Solution\n *\n * Pass an array of the correct length.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [[69n, 420n, 69n]])\n * //                                                         ↑ ✅ length: 3\n * ```\n */\nexport class ArrayLengthMismatchError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.ArrayLengthMismatchError'\n  constructor({\n    expectedLength,\n    givenLength,\n    type,\n  }: { expectedLength: number; givenLength: number; type: string }) {\n    super(\n      `Array length mismatch for type \\`${type}\\`. Expected: \\`${expectedLength}\\`. Given: \\`${givenLength}\\`.`,\n    )\n  }\n}\n\n/**\n * The size of the bytes value does not match the size specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from('bytes8'), [['0xdeadbeefdeadbeefdeadbeef']])\n * //                                            ↑ expected: 8 bytes  ↑ ❌ size: 12 bytes\n * // @error: BytesSizeMismatchError: Size of bytes \"0xdeadbeefdeadbeefdeadbeef\"\n * // @error: (bytes12) does not match expected size (bytes8).\n * ```\n *\n * ### Solution\n *\n * Pass a bytes value of the correct size.\n *\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['bytes8']), ['0xdeadbeefdeadbeef'])\n * //                                                       ↑ ✅ size: 8 bytes\n * ```\n */\nexport class BytesSizeMismatchError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.BytesSizeMismatchError'\n  constructor({\n    expectedSize,\n    value,\n  }: { expectedSize: number; value: Hex.Hex }) {\n    super(\n      `Size of bytes \"${value}\" (bytes${Hex.size(\n        value,\n      )}) does not match expected size (bytes${expectedSize}).`,\n    )\n  }\n}\n\n/**\n * The length of the values to encode does not match the length of the ABI parameters.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['string', 'uint256']), ['hello'])\n * // @error: LengthMismatchError: ABI encoding params/values length mismatch.\n * // @error: Expected length (params): 2\n * // @error: Given length (values): 1\n * ```\n *\n * ### Solution\n *\n * Pass the correct number of values to encode.\n *\n * ### Solution\n *\n * Pass a [valid ABI type](https://docs.soliditylang.org/en/develop/abi-spec.html#types).\n */\nexport class LengthMismatchError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.LengthMismatchError'\n  constructor({\n    expectedLength,\n    givenLength,\n  }: { expectedLength: number; givenLength: number }) {\n    super(\n      [\n        'ABI encoding parameters/values length mismatch.',\n        `Expected length (parameters): ${expectedLength}`,\n        `Given length (values): ${givenLength}`,\n      ].join('\\n'),\n    )\n  }\n}\n\n/**\n * The value provided is not a valid array as specified in the corresponding ABI parameter.\n *\n * ### Example\n *\n * ```ts twoslash\n * // @noErrors\n * import { AbiParameters } from 'ox'\n * // ---cut---\n * AbiParameters.encode(AbiParameters.from(['uint256[3]']), [69])\n * ```\n *\n * ### Solution\n *\n * Pass an array value.\n */\nexport class InvalidArrayError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.InvalidArrayError'\n  constructor(value: unknown) {\n    super(`Value \\`${value}\\` is not a valid array.`)\n  }\n}\n\n/**\n * Throws when the ABI parameter type is invalid.\n *\n * @example\n * ```ts twoslash\n * import { AbiParameters } from 'ox'\n *\n * AbiParameters.decode([{ type: 'lol' }], '0x00000000000000000000000000000000000000000000000000000000000010f')\n * //                             ↑ ❌ invalid type\n * // @error: AbiParameters.InvalidTypeError: Type `lol` is not a valid ABI Type.\n * ```\n */\nexport class InvalidTypeError extends Errors.BaseError {\n  override readonly name = 'AbiParameters.InvalidTypeError'\n  constructor(type: string) {\n    super(`Type \\`${type}\\` is not a valid ABI Type.`)\n  }\n}\n","import * as abitype from 'abitype'\nimport type * as Abi from './Abi.js'\nimport * as AbiItem from './AbiItem.js'\nimport * as AbiParameters from './AbiParameters.js'\nimport type * as Errors from './Errors.js'\nimport * as Hex from './Hex.js'\nimport type * as internal from './internal/abiConstructor.js'\nimport type { IsNarrowable } from './internal/types.js'\n\n/** Root type for an {@link ox#AbiItem.AbiItem} with a `constructor` type. */\nexport type AbiConstructor = abitype.AbiConstructor\n\n/** @internal */\nexport function decode<const abiConstructor extends AbiConstructor>(\n  abiConstructor: abiConstructor,\n  options: decode.Options,\n): decode.ReturnType<abiConstructor>\n/**\n * ABI-decodes the provided constructor input (`inputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from('constructor(address, uint256)')\n *\n * const bytecode = '0x...'\n *\n * const data = AbiConstructor.encode(constructor, {\n *   bytecode,\n *   args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],\n * })\n *\n * const decoded = AbiConstructor.decode(constructor, { // [!code focus]\n *   bytecode, // [!code focus]\n *   data, // [!code focus]\n * }) // [!code focus]\n * ```\n *\n * @param abiConstructor - The ABI Constructor to decode.\n * @param options - Decoding options.\n * @returns The decoded constructor inputs.\n */\nexport function decode(\n  abiConstructor: AbiConstructor,\n  options: decode.Options,\n): readonly unknown[] | undefined\n/** @internal */\nexport function decode(\n  abiConstructor: AbiConstructor,\n  options: decode.Options,\n): decode.ReturnType {\n  const { bytecode } = options\n  if (abiConstructor.inputs.length === 0) return undefined\n  const data = options.data.replace(bytecode, '0x') as Hex.Hex\n  return AbiParameters.decode(abiConstructor.inputs, data)\n}\n\nexport declare namespace decode {\n  interface Options {\n    /** The bytecode of the contract. */\n    bytecode: Hex.Hex\n    /** The encoded constructor. */\n    data: Hex.Hex\n  }\n\n  type ReturnType<abiConstructor extends AbiConstructor = AbiConstructor> =\n    | (abiConstructor['inputs']['length'] extends 0\n        ? undefined\n        : abitype.AbiParametersToPrimitiveTypes<abiConstructor['inputs']>)\n    | (IsNarrowable<abiConstructor, AbiConstructor> extends true\n        ? never\n        : undefined)\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * ABI-encodes the provided constructor input (`inputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from('constructor(address, uint256)')\n *\n * const data = AbiConstructor.encode(constructor, {\n *   bytecode: '0x...',\n *   args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],\n * })\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiConstructor.encode` to encode the constructor of a contract and deploy it.\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { AbiConstructor, Hex } from 'ox'\n *\n * // 1. Instantiate the ABI Constructor.\n * const constructor = AbiConstructor.from(\n *   'constructor(address owner, uint256 amount)',\n * )\n *\n * // 2. Encode the ABI Constructor.\n * const data = AbiConstructor.encode(constructor, {\n *   bytecode: '0x...',\n *   args: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 123n],\n * })\n *\n * // 3. Deploy the contract.\n * const hash = await window.ethereum!.request({\n *   method: 'eth_sendTransaction',\n *   params: [{ data }],\n * })\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiConstructor - The ABI Constructor to encode.\n * @param options - Encoding options.\n * @returns The encoded constructor.\n */\nexport function encode<const abiConstructor extends AbiConstructor>(\n  abiConstructor: abiConstructor,\n  options: encode.Options<abiConstructor>,\n): encode.ReturnType {\n  const { bytecode, args } = options\n  return Hex.concat(\n    bytecode,\n    abiConstructor.inputs?.length && args?.length\n      ? AbiParameters.encode(abiConstructor.inputs, args as readonly unknown[])\n      : '0x',\n  )\n}\n\nexport declare namespace encode {\n  type Options<\n    abiConstructor extends AbiConstructor = AbiConstructor,\n    ///\n    args extends abitype.AbiParametersToPrimitiveTypes<\n      abiConstructor['inputs']\n    > = abitype.AbiParametersToPrimitiveTypes<abiConstructor['inputs']>,\n  > = {\n    /** The bytecode of the contract. */\n    bytecode: Hex.Hex\n    /** The constructor arguments to encode. */\n    args?: args | undefined\n  } & (readonly [] extends args\n    ? {}\n    : {\n        /** The constructor arguments to encode. */\n        args: args\n      })\n\n  type ReturnType = Hex.Hex\n\n  type ErrorType =\n    | Hex.concat.ErrorType\n    | AbiParameters.encode.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function format<const abiConstructor extends AbiConstructor>(\n  abiConstructor: abiConstructor,\n): format.ReturnType<abiConstructor>\n/**\n * Formats an {@link ox#AbiConstructor.AbiConstructor} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const formatted = AbiConstructor.format({\n *   inputs: [\n *     { name: 'owner', type: 'address' },\n *   ],\n *   payable: false,\n *   stateMutability: 'nonpayable',\n *   type: 'constructor',\n * })\n *\n * formatted\n * //    ^?\n *\n *\n * ```\n *\n * @param abiConstructor - The ABI Constructor to format.\n * @returns The formatted ABI Constructor.\n */\nexport function format(abiConstructor: AbiConstructor): string\n/** @internal */\nexport function format(abiConstructor: AbiConstructor): format.ReturnType {\n  return abitype.formatAbiItem(abiConstructor)\n}\n\nexport declare namespace format {\n  type ReturnType<abiConstructor extends AbiConstructor = AbiConstructor> =\n    abitype.FormatAbiItem<abiConstructor>\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function from<\n  const abiConstructor extends AbiConstructor | string | readonly string[],\n>(\n  abiConstructor: (abiConstructor | string | readonly string[]) &\n    (\n      | (abiConstructor extends string\n          ? internal.Signature<abiConstructor>\n          : never)\n      | (abiConstructor extends readonly string[]\n          ? internal.Signatures<abiConstructor>\n          : never)\n      | AbiConstructor\n    ),\n): from.ReturnType<abiConstructor>\n/**\n * Parses an arbitrary **JSON ABI Constructor** or **Human Readable ABI Constructor** into a typed {@link ox#AbiConstructor.AbiConstructor}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from({\n *   inputs: [\n *     { name: 'owner', type: 'address' },\n *   ],\n *   payable: false,\n *   stateMutability: 'nonpayable',\n *   type: 'constructor',\n * })\n *\n * constructor\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from(\n *   'constructor(address owner)' // [!code hl]\n * )\n *\n * constructor\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiConstructor } from 'ox'\n *\n * const constructor = AbiConstructor.from([\n *   'struct Foo { address owner; uint256 amount; }', // [!code hl]\n *   'constructor(Foo foo)',\n * ])\n *\n * constructor\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiConstructor - The ABI Constructor to parse.\n * @returns Typed ABI Constructor.\n */\nexport function from(\n  abiConstructor: AbiConstructor | string | readonly string[],\n): AbiConstructor\n/** @internal */\nexport function from(\n  abiConstructor: AbiConstructor | string | readonly string[],\n): from.ReturnType {\n  return AbiItem.from(abiConstructor as AbiConstructor)\n}\n\nexport declare namespace from {\n  type ReturnType<\n    abiConstructor extends\n      | AbiConstructor\n      | string\n      | readonly string[] = AbiConstructor,\n  > = AbiItem.from.ReturnType<abiConstructor>\n\n  type ErrorType = AbiItem.from.ErrorType | Errors.GlobalErrorType\n}\n\n/** @internal */\nexport function fromAbi<const abi extends Abi.Abi | readonly unknown[]>(\n  abi: abi | Abi.Abi | readonly unknown[],\n): fromAbi.ReturnType<abi>\n/**\n * Extracts an {@link ox#AbiConstructor.AbiConstructor} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Events can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiConstructor } from 'ox'\n *\n * const abi = Abi.from([\n *   'constructor(address owner)',\n *   'function foo()',\n *   'event Transfer(address owner, address to, uint256 tokenId)',\n *   'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiConstructor.fromAbi(abi) // [!code focus]\n * //    ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @returns The ABI constructor.\n */\nexport function fromAbi(abi: Abi.Abi | readonly unknown[]): AbiConstructor\n/** @internal */\nexport function fromAbi(abi: Abi.Abi | readonly unknown[]): fromAbi.ReturnType {\n  const item = (abi as Abi.Abi).find((item) => item.type === 'constructor')\n  if (!item) throw new AbiItem.NotFoundError({ name: 'constructor' })\n  return item\n}\n\nexport declare namespace fromAbi {\n  type ReturnType<abi extends Abi.Abi | readonly unknown[] = Abi.Abi> = Extract<\n    abi[number],\n    { type: 'constructor' }\n  >\n\n  type ErrorType = AbiItem.NotFoundError | Errors.GlobalErrorType\n}\n","import * as abitype from 'abitype'\nimport type * as Abi from './Abi.js'\nimport * as AbiItem from './AbiItem.js'\nimport * as AbiParameters from './AbiParameters.js'\nimport type * as Errors from './Errors.js'\nimport * as Hex from './Hex.js'\nimport type * as internal from './internal/abiFunction.js'\nimport type * as AbiItem_internal from './internal/abiItem.js'\nimport type * as AbiParameters_internal from './internal/abiParameters.js'\nimport type { IsNarrowable } from './internal/types.js'\n\n/** Root type for an {@link ox#AbiItem.AbiItem} with a `function` type. */\nexport type AbiFunction = abitype.AbiFunction & {\n  hash?: Hex.Hex | undefined\n  overloads?: readonly AbiFunction[] | undefined\n}\n\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} item from an {@link ox#Abi.Abi}, given a name.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo(string)',\n *   'function bar(uint256)',\n * ])\n *\n * type Foo = AbiFunction.FromAbi<typeof abi, 'foo'>\n * //   ^?\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n */\nexport type FromAbi<\n  abi extends Abi.Abi,\n  name extends ExtractNames<abi>,\n> = abitype.ExtractAbiFunction<abi, name>\n\n/**\n * Extracts the names of all {@link ox#AbiFunction.AbiFunction} items in an {@link ox#Abi.Abi}.\n *\n * @example\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo(string)',\n *   'function bar(uint256)',\n * ])\n *\n * type names = AbiFunction.Name<typeof abi>\n * //   ^?\n *\n *\n * ```\n */\nexport type Name<abi extends Abi.Abi | readonly unknown[] = Abi.Abi> =\n  abi extends Abi.Abi ? ExtractNames<abi> : string\n\nexport type ExtractNames<\n  abi extends Abi.Abi,\n  abiStateMutability extends\n    abitype.AbiStateMutability = abitype.AbiStateMutability,\n> = abitype.ExtractAbiFunctionNames<abi, abiStateMutability>\n\n/**\n * ABI-decodes function arguments according to the ABI Item's input types (`inputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from('function approve(address, uint256)')\n *\n * const data = AbiFunction.encodeData(\n *   approve,\n *   ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * )\n * // '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n *\n * const input = AbiFunction.decodeData(approve, data) // [!code focus]\n * // @log: ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * ```\n *\n * @param abiFunction - The ABI Item to decode.\n * @param data - The data to decode.\n */\nexport function decodeData<const abiItem extends AbiFunction>(\n  abiFunction: abiItem | AbiFunction,\n  data: Hex.Hex,\n): decodeData.ReturnType<abiItem> {\n  const { overloads } = abiFunction\n\n  if (Hex.size(data) < 4) throw new AbiItem.InvalidSelectorSizeError({ data })\n  if (abiFunction.inputs.length === 0) return undefined\n\n  const item = overloads\n    ? fromAbi([abiFunction, ...overloads], data as never)\n    : abiFunction\n\n  if (Hex.size(data) <= 4) return undefined\n  return AbiParameters.decode(item.inputs, Hex.slice(data, 4))\n}\n\nexport declare namespace decodeData {\n  type ReturnType<abiFunction extends AbiFunction = AbiFunction> = IsNarrowable<\n    abiFunction,\n    AbiFunction\n  > extends true\n    ? abiFunction['inputs'] extends readonly []\n      ? undefined\n      :\n          | AbiParameters_internal.ToPrimitiveTypes<abiFunction['inputs']>\n          | (abiFunction['overloads'] extends readonly AbiFunction[]\n              ? AbiParameters_internal.ToPrimitiveTypes<\n                  abiFunction['overloads'][number]['inputs']\n                >\n              : never)\n    : unknown\n\n  type ErrorType =\n    | fromAbi.ErrorType\n    | AbiParameters.decode.ErrorType\n    | Hex.size.ErrorType\n    | Hex.slice.ErrorType\n    | Errors.GlobalErrorType\n}\n\n/**\n * ABI-decodes a function's result according to the ABI Item's output types (`outputs`).\n *\n * :::tip\n *\n * This function is typically used to decode contract function return values (e.g. the response of an `eth_call` or the `input` property of a Transaction).\n *\n * See the [End-to-end Example](#end-to-end).\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const data = '0x000000000000000000000000000000000000000000000000000000000000002a'\n *\n * const totalSupply = AbiFunction.from('function totalSupply() returns (uint256)')\n *\n * const output = AbiFunction.decodeResult(totalSupply, data)\n * // @log: 42n\n * ```\n *\n * @example\n * You can extract an ABI Function from a JSON ABI with {@link ox#AbiFunction.(fromAbi:function)}:\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const data = '0x000000000000000000000000000000000000000000000000000000000000002a'\n *\n * const erc20Abi = Abi.from([...]) // [!code hl]\n * const totalSupply = AbiFunction.fromAbi(erc20Abi, 'totalSupply') // [!code hl]\n *\n * const output = AbiFunction.decodeResult(totalSupply, data)\n * // @log: 42n\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiFunction.decodeResult` to decode the result of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { Abi, AbiFunction } from 'ox'\n *\n * // 1. Extract the Function from the Contract's ABI.\n * const abi = Abi.from([\n *   // ...\n *   {\n *     name: 'balanceOf',\n *     type: 'function',\n *     inputs: [{ name: 'account', type: 'address' }],\n *     outputs: [{ name: 'balance', type: 'uint256' }],\n *     stateMutability: 'view',\n *   },\n *   // ...\n * ])\n * const balanceOf = AbiFunction.fromAbi(abi, 'balanceOf')\n *\n * // 2. Encode the Function Input.\n * const data = AbiFunction.encodeData(\n *   balanceOf,\n *   ['0xd2135CfB216b74109775236E36d4b433F1DF507B']\n * )\n *\n * // 3. Perform the Contract Call.\n * const response = await window.ethereum!.request({\n *   method: 'eth_call',\n *   params: [\n *     {\n *       data,\n *       to: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n *     },\n *   ],\n * })\n *\n * // 4. Decode the Function Output. // [!code focus]\n * const balance = AbiFunction.decodeResult(balanceOf, response) // [!code focus]\n * // @log: 42n\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiFunction - ABI Function to decode\n * @param data - ABI-encoded function output\n * @param options - Decoding options\n * @returns Decoded function output\n */\nexport function decodeResult<\n  const abiFunction extends AbiFunction,\n  as extends 'Object' | 'Array' = 'Array',\n>(\n  abiFunction: abiFunction | AbiFunction,\n  data: Hex.Hex,\n  options: decodeResult.Options<as> = {},\n): decodeResult.ReturnType<abiFunction, as> {\n  const values = AbiParameters.decode(abiFunction.outputs, data, options)\n  if (values && Object.keys(values).length === 0) return undefined\n  if (values && Object.keys(values).length === 1) {\n    if (Array.isArray(values)) return values[0]\n    return Object.values(values)[0]\n  }\n  return values\n}\n\nexport declare namespace decodeResult {\n  type Options<as extends 'Object' | 'Array'> = {\n    /**\n     * Whether the decoded values should be returned as an `Object` or `Array`.\n     *\n     * @default \"Array\"\n     */\n    as?: as | 'Array' | 'Object' | undefined\n  }\n\n  type ReturnType<\n    abiFunction extends AbiFunction = AbiFunction,\n    as extends 'Object' | 'Array' = 'Array',\n  > = IsNarrowable<abiFunction, AbiFunction> extends true\n    ? abiFunction['outputs'] extends readonly []\n      ? undefined\n      : abiFunction['outputs'] extends readonly [\n            infer type extends abitype.AbiParameter,\n          ]\n        ? abitype.AbiParameterToPrimitiveType<type>\n        : AbiParameters.decode.ReturnType<\n              abiFunction['outputs'],\n              as\n            > extends infer types\n          ? types extends readonly []\n            ? undefined\n            : types extends readonly [infer type]\n              ? type\n              : types\n          : never\n    : unknown\n\n  type ErrorType = AbiParameters.decode.ErrorType | Errors.GlobalErrorType\n}\n\n/**\n * ABI-encodes function arguments (`inputs`), prefixed with the 4 byte function selector.\n *\n * :::tip\n *\n * This function is typically used to encode a contract function and its arguments for contract calls (e.g. `data` parameter of an `eth_call` or `eth_sendTransaction`).\n *\n * See the [End-to-end Example](#end-to-end).\n *\n * :::\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from('function approve(address, uint256)')\n *\n * const data = AbiFunction.encodeData( // [!code focus]\n *   approve, // [!code focus]\n *   ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n] // [!code focus]\n * ) // [!code focus]\n * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n * ```\n *\n * @example\n * You can extract an ABI Function from a JSON ABI with {@link ox#AbiFunction.(fromAbi:function)}:\n *\n * ```ts twoslash\n * // @noErrors\n * import { Abi, AbiFunction } from 'ox'\n *\n * const erc20Abi = Abi.from([...]) // [!code hl]\n * const approve = AbiFunction.fromAbi(erc20Abi, 'approve') // [!code hl]\n *\n * const data = AbiFunction.encodeData(\n *   approve,\n *   ['0xd8da6bf26964af9d7eed9e03e53415d37aa96045', 69420n]\n * )\n * // @log: '0x095ea7b3000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000000000000000010f2c'\n * ```\n *\n * @example\n * ### End-to-end\n *\n * Below is an end-to-end example of using `AbiFunction.encodeData` to encode the input of a `balanceOf` contract call on the [Wagmi Mint Example contract](https://etherscan.io/address/0xfba3912ca04dd458c843e2ee08967fc04f3579c2).\n *\n * ```ts twoslash\n * import 'ox/window'\n * import { Abi, AbiFunction } from 'ox'\n *\n * // 1. Extract the Function from the Contract's ABI.\n * const abi = Abi.from([\n *   // ...\n *   {\n *     name: 'balanceOf',\n *     type: 'function',\n *     inputs: [{ name: 'account', type: 'address' }],\n *     outputs: [{ name: 'balance', type: 'uint256' }],\n *     stateMutability: 'view',\n *   },\n *   // ...\n * ])\n * const balanceOf = AbiFunction.fromAbi(abi, 'balanceOf')\n *\n * // 2. Encode the Function Input. // [!code focus]\n * const data = AbiFunction.encodeData( // [!code focus]\n *   balanceOf, // [!code focus]\n *   ['0xd2135CfB216b74109775236E36d4b433F1DF507B'] // [!code focus]\n * ) // [!code focus]\n *\n * // 3. Perform the Contract Call.\n * const response = await window.ethereum!.request({\n *   method: 'eth_call',\n *   params: [\n *     {\n *       data,\n *       to: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n *     },\n *   ],\n * })\n *\n * // 4. Decode the Function Output.\n * const balance = AbiFunction.decodeResult(balanceOf, response)\n * ```\n *\n * :::note\n *\n * For simplicity, the above example uses `window.ethereum.request`, but you can use any\n * type of JSON-RPC interface.\n *\n * :::\n *\n * @param abiFunction - ABI Function to encode\n * @param args - Function arguments\n * @returns ABI-encoded function name and arguments\n */\nexport function encodeData<const abiFunction extends AbiFunction>(\n  abiFunction: abiFunction | AbiFunction,\n  ...args: encodeData.Args<abiFunction>\n): Hex.Hex {\n  const { overloads } = abiFunction\n\n  const item = overloads\n    ? (fromAbi([abiFunction as AbiFunction, ...overloads], abiFunction.name, {\n        args: (args as any)[0],\n      }) as AbiFunction)\n    : abiFunction\n\n  const selector = getSelector(item)\n\n  const data =\n    args.length > 0\n      ? AbiParameters.encode(item.inputs, (args as any)[0])\n      : undefined\n\n  return data ? Hex.concat(selector, data) : selector\n}\n\nexport declare namespace encodeData {\n  type Args<abiFunction extends AbiFunction = AbiFunction> = IsNarrowable<\n    abiFunction,\n    AbiFunction\n  > extends true\n    ?\n        | (abitype.AbiParametersToPrimitiveTypes<\n            abiFunction['inputs']\n          > extends readonly []\n            ? []\n            : [abitype.AbiParametersToPrimitiveTypes<abiFunction['inputs']>])\n        | (abiFunction['overloads'] extends readonly AbiFunction[]\n            ? [\n                abitype.AbiParametersToPrimitiveTypes<\n                  abiFunction['overloads'][number]['inputs']\n                >,\n              ]\n            : [])\n    : readonly unknown[]\n\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * ABI-encodes a function's result (`outputs`).\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const totalSupply = AbiFunction.from('function totalSupply() returns (uint256)')\n * const output = AbiFunction.decodeResult(totalSupply, '0x000000000000000000000000000000000000000000000000000000000000002a')\n * // 42n\n *\n * const data = AbiFunction.encodeResult(totalSupply, 42n) // [!code focus]\n * // @log: '0x000000000000000000000000000000000000000000000000000000000000002a'\n * ```\n *\n * @param abiFunction - The ABI item to encode the function output for.\n * @param output - The function output to encode.\n * @param options - Encoding options.\n * @returns The encoded function output.\n */\nexport function encodeResult<\n  const abiFunction extends AbiFunction,\n  as extends 'Object' | 'Array' = 'Array',\n>(\n  abiFunction: abiFunction | AbiFunction,\n  output: encodeResult.Output<abiFunction, as>,\n  options: encodeResult.Options<as> = {},\n): Hex.Hex {\n  const { as = 'Array' } = options\n\n  const values = (() => {\n    if (abiFunction.outputs.length === 1) return [output]\n    if (Array.isArray(output)) return output\n    if (as === 'Object') return Object.values(output as any)\n    return [output]\n  })()\n\n  return AbiParameters.encode(abiFunction.outputs, values)\n}\n\nexport declare namespace encodeResult {\n  type Output<\n    abiFunction extends AbiFunction = AbiFunction,\n    as extends 'Object' | 'Array' = 'Array',\n  > = abiFunction['outputs'] extends readonly []\n    ? never\n    : abiFunction['outputs']['length'] extends 1\n      ? AbiParameters_internal.ToPrimitiveTypes<abiFunction['outputs']>[0]\n      : as extends 'Object'\n        ? AbiParameters_internal.ToObject<abiFunction['outputs']>\n        : AbiParameters_internal.ToPrimitiveTypes<abiFunction['outputs']>\n\n  type Options<as extends 'Object' | 'Array'> = {\n    as?: as | 'Object' | 'Array' | undefined\n  }\n\n  type ErrorType = AbiParameters.encode.ErrorType | Errors.GlobalErrorType\n}\n\n/**\n * Formats an {@link ox#AbiFunction.AbiFunction} into a **Human Readable ABI Function**.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const formatted = AbiFunction.format({\n *   type: 'function',\n *   name: 'approve',\n *   stateMutability: 'nonpayable',\n *   inputs: [\n *     {\n *       name: 'spender',\n *       type: 'address',\n *     },\n *     {\n *       name: 'amount',\n *       type: 'uint256',\n *     },\n *   ],\n *   outputs: [{ type: 'bool' }],\n * })\n *\n * formatted\n * //    ^?\n *\n *\n * ```\n *\n * @param abiFunction - The ABI Function to format.\n * @returns The formatted ABI Function.\n */\nexport function format<const abiFunction extends AbiFunction>(\n  abiFunction: abiFunction | AbiFunction,\n): abitype.FormatAbiItem<abiFunction> {\n  return abitype.formatAbiItem(abiFunction) as never\n}\n\nexport declare namespace format {\n  type ErrorType = Errors.GlobalErrorType\n}\n\n/**\n * Parses an arbitrary **JSON ABI Function** or **Human Readable ABI Function** into a typed {@link ox#AbiFunction.AbiFunction}.\n *\n * @example\n * ### JSON ABIs\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from({\n *   type: 'function',\n *   name: 'approve',\n *   stateMutability: 'nonpayable',\n *   inputs: [\n *     {\n *       name: 'spender',\n *       type: 'address',\n *     },\n *     {\n *       name: 'amount',\n *       type: 'uint256',\n *     },\n *   ],\n *   outputs: [{ type: 'bool' }],\n * })\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Human Readable ABIs\n *\n * A Human Readable ABI can be parsed into a typed ABI object:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from(\n *   'function approve(address spender, uint256 amount) returns (bool)' // [!code hl]\n * )\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * It is possible to specify `struct`s along with your definitions:\n *\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const approve = AbiFunction.from([\n *   'struct Foo { address spender; uint256 amount; }', // [!code hl]\n *   'function approve(Foo foo) returns (bool)',\n * ])\n *\n * approve\n * //^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n *\n *\n * @param abiFunction - The ABI Function to parse.\n * @returns Typed ABI Function.\n */\nexport function from<\n  const abiFunction extends AbiFunction | string | readonly string[],\n>(\n  abiFunction: (abiFunction | AbiFunction | string | readonly string[]) &\n    (\n      | (abiFunction extends string ? internal.Signature<abiFunction> : never)\n      | (abiFunction extends readonly string[]\n          ? internal.Signatures<abiFunction>\n          : never)\n      | AbiFunction\n    ),\n  options: from.Options = {},\n): from.ReturnType<abiFunction> {\n  return AbiItem.from(abiFunction as AbiFunction, options) as never\n}\n\nexport declare namespace from {\n  type Options = {\n    /**\n     * Whether or not to prepare the extracted function (optimization for encoding performance).\n     * When `true`, the `hash` property is computed and included in the returned value.\n     *\n     * @default true\n     */\n    prepare?: boolean | undefined\n  }\n\n  type ReturnType<\n    abiFunction extends AbiFunction | string | readonly string[],\n  > = AbiItem.from.ReturnType<abiFunction>\n\n  type ErrorType = AbiItem.from.ErrorType | Errors.GlobalErrorType\n}\n\n/**\n * Extracts an {@link ox#AbiFunction.AbiFunction} from an {@link ox#Abi.Abi} given a name and optional arguments.\n *\n * @example\n * ### Extracting by Name\n *\n * ABI Functions can be extracted by their name using the `name` option:\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo()',\n *   'event Transfer(address owner, address to, uint256 tokenId)',\n *   'function bar(string a) returns (uint256 x)',\n * ])\n *\n * const item = AbiFunction.fromAbi(abi, 'foo') // [!code focus]\n * //    ^?\n *\n *\n *\n *\n *\n *\n * ```\n *\n * @example\n * ### Extracting by Selector\n *\n * ABI Functions can be extract by their selector when {@link ox#Hex.Hex} is provided to `name`.\n *\n * ```ts twoslash\n * import { Abi, AbiFunction } from 'ox'\n *\n * const abi = Abi.from([\n *   'function foo()',\n *   'event Transfer(address owner, address to, uint256 tokenId)',\n *   'function bar(string a) returns (uint256 x)',\n * ])\n * const item = AbiFunction.fromAbi(abi, '0x095ea7b3') // [!code focus]\n * //    ^?\n *\n *\n *\n *\n *\n *\n *\n *\n *\n * ```\n *\n * :::note\n *\n * Extracting via a hex selector is useful when extracting an ABI Function from an `eth_call` RPC response or\n * from a Transaction `input`.\n *\n * :::\n *\n * @param abi - The ABI to extract from.\n * @param name - The name (or selector) of the ABI item to extract.\n * @param options - Extraction options.\n * @returns The ABI item.\n */\nexport function fromAbi<\n  const abi extends Abi.Abi | readonly unknown[],\n  name extends Name<abi>,\n  const args extends\n    | AbiItem_internal.ExtractArgs<abi, name>\n    | undefined = undefined,\n  //\n  allNames = Name<abi>,\n>(\n  abi: abi | Abi.Abi | readonly unknown[],\n  name: Hex.Hex | (name extends allNames ? name : never),\n  options?: AbiItem.fromAbi.Options<\n    abi,\n    name,\n    args,\n    AbiItem_internal.ExtractArgs<abi, name>\n  >,\n): AbiItem.fromAbi.ReturnType<abi, name, args, AbiFunction> {\n  const item = AbiItem.fromAbi(abi, name, options as any)\n  if (item.type !== 'function')\n    throw new AbiItem.NotFoundError({ name, type: 'function' })\n  return item as never\n}\n\nexport declare namespace fromAbi {\n  type ErrorType = AbiItem.fromAbi.ErrorType | Errors.GlobalErrorType\n}\n\n/**\n * Computes the [4-byte selector](https://solidity-by-example.org/function-selector/) for an {@link ox#AbiFunction.AbiFunction}.\n *\n * Useful for computing function selectors for calldata.\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector('function ownerOf(uint256 tokenId)')\n * // @log: '0x6352211e'\n * ```\n *\n * @example\n * ```ts twoslash\n * import { AbiFunction } from 'ox'\n *\n * const selector = AbiFunction.getSelector({\n *   inputs: [{ type: 'uint256' }],\n *   name: 'ownerOf',\n *   outputs: [],\n *   stateMutability: 'view',\n *   type: 'function'\n * })\n * // @log: '0x6352211e'\n * ```\n *\n * @param abiItem - The ABI item to compute the selector for.\n * @returns The first 4 bytes of the {@link ox#Hash.(keccak256:function)} hash of the function signature.\n */\nexport function getSelector(abiItem: string | AbiFunction): Hex.Hex {\n  return AbiItem.getSelector(abiItem)\n}\n\nexport declare namespace getSelector {\n  type ErrorType = AbiItem.getSelector.ErrorType | Errors.GlobalErrorType\n}\n","export const entryPoint06Address =\n  '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789' as const\nexport const entryPoint07Address =\n  '0x0000000071727De22E5E9d8BAf0edAc6f37da032' as const\nexport const entryPoint08Address =\n  '0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108' as const\n\nexport const ethAddress = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee' as const\n\nexport const zeroAddress = '0x0000000000000000000000000000000000000000' as const\n","import type { AbiStateMutability, Address, Narrow } from 'abitype'\nimport * as AbiConstructor from 'ox/AbiConstructor'\nimport * as AbiFunction from 'ox/AbiFunction'\n\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { ethAddress, zeroAddress } from '../../constants/address.js'\nimport { deploylessCallViaBytecodeBytecode } from '../../constants/contracts.js'\nimport { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { Block } from '../../types/block.js'\nimport type { Call, Calls } from '../../types/calls.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Log } from '../../types/log.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { MulticallResults } from '../../types/multicall.js'\nimport type { StateOverride } from '../../types/stateOverride.js'\nimport type { Mutable } from '../../types/utils.js'\nimport {\n  type EncodeFunctionDataErrorType,\n  encodeFunctionData,\n} from '../../utils/abi/encodeFunctionData.js'\nimport { hexToBigInt } from '../../utils/index.js'\nimport {\n  type CreateAccessListErrorType,\n  createAccessList,\n} from './createAccessList.js'\nimport {\n  type SimulateBlocksErrorType,\n  type SimulateBlocksParameters,\n  simulateBlocks,\n} from './simulateBlocks.js'\n\nconst getBalanceCode =\n  '0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033'\n\nexport type SimulateCallsParameters<\n  calls extends readonly unknown[] = readonly unknown[],\n  account extends Account | Address | undefined = Account | Address | undefined,\n> = Omit<SimulateBlocksParameters, 'blocks' | 'returnFullTransactions'> & {\n  /** Account attached to the calls (msg.sender). */\n  account?: account | undefined\n  /** Calls to simulate. */\n  calls: Calls<Narrow<calls>>\n  /** State overrides. */\n  stateOverrides?: StateOverride | undefined\n  /** Whether to trace asset changes. */\n  traceAssetChanges?: boolean | undefined\n}\n\nexport type SimulateCallsReturnType<\n  calls extends readonly unknown[] = readonly unknown[],\n> = {\n  /** Asset changes. */\n  assetChanges: readonly {\n    token: {\n      address: Address\n      decimals?: number | undefined\n      symbol?: string | undefined\n    }\n    value: { pre: bigint; post: bigint; diff: bigint }\n  }[]\n  /** Block results. */\n  block: Block\n  /** Call results. */\n  results: MulticallResults<\n    Narrow<calls>,\n    true,\n    {\n      extraProperties: {\n        data: Hex\n        gasUsed: bigint\n        logs?: Log[] | undefined\n      }\n      error: Error\n      mutability: AbiStateMutability\n    }\n  >\n}\n\nexport type SimulateCallsErrorType =\n  | AbiFunction.encodeData.ErrorType\n  | AbiFunction.from.ErrorType\n  | CreateAccessListErrorType\n  | EncodeFunctionDataErrorType\n  | SimulateBlocksErrorType\n  | ErrorType\n\n/**\n * Simulates execution of a batch of calls.\n *\n * @param client - Client to use\n * @param parameters - {@link SimulateCallsParameters}\n * @returns Results. {@link SimulateCallsReturnType}\n *\n * @example\n * ```ts\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateCalls } from 'viem/actions'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n *\n * const result = await simulateCalls(client, {\n *   account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n *   calls: [{\n *     {\n *       data: '0xdeadbeef',\n *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *     },\n *     {\n *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n *       value: parseEther('1'),\n *     },\n *   ]\n * })\n * ```\n */\nexport async function simulateCalls<\n  const calls extends readonly unknown[],\n  chain extends Chain | undefined,\n  account extends Account | Address | undefined = undefined,\n>(\n  client: Client<Transport, chain>,\n  parameters: SimulateCallsParameters<calls, account>,\n): Promise<SimulateCallsReturnType<calls>> {\n  const {\n    blockNumber,\n    blockTag,\n    calls,\n    stateOverrides,\n    traceAssetChanges,\n    traceTransfers,\n    validation,\n  } = parameters\n\n  const account = parameters.account\n    ? parseAccount(parameters.account)\n    : undefined\n\n  if (traceAssetChanges && !account)\n    throw new BaseError(\n      '`account` is required when `traceAssetChanges` is true',\n    )\n\n  // Derive bytecode to extract ETH balance via a contract call.\n  const getBalanceData = account\n    ? AbiConstructor.encode(AbiConstructor.from('constructor(bytes, bytes)'), {\n        bytecode: deploylessCallViaBytecodeBytecode,\n        args: [\n          getBalanceCode,\n          AbiFunction.encodeData(\n            AbiFunction.from('function getBalance(address)'),\n            [account.address],\n          ),\n        ],\n      })\n    : undefined\n\n  // Fetch ERC20/721 addresses that were \"touched\" from the calls.\n  const assetAddresses = traceAssetChanges\n    ? await Promise.all(\n        parameters.calls.map(async (call: any) => {\n          if (!call.data && !call.abi) return\n          const { accessList } = await createAccessList(client, {\n            account: account!.address,\n            ...call,\n            data: call.abi ? encodeFunctionData(call) : call.data,\n          })\n          return accessList.map(({ address, storageKeys }) =>\n            storageKeys.length > 0 ? address : null,\n          )\n        }),\n      ).then((x) => x.flat().filter(Boolean))\n    : []\n\n  const blocks = await simulateBlocks(client, {\n    blockNumber,\n    blockTag: blockTag as undefined,\n    blocks: [\n      ...(traceAssetChanges\n        ? [\n            // ETH pre balances\n            {\n              calls: [{ data: getBalanceData }],\n              stateOverrides,\n            },\n\n            // Asset pre balances\n            {\n              calls: assetAddresses.map((address, i) => ({\n                abi: [\n                  AbiFunction.from(\n                    'function balanceOf(address) returns (uint256)',\n                  ),\n                ],\n                functionName: 'balanceOf',\n                args: [account!.address],\n                to: address,\n                from: zeroAddress,\n                nonce: i,\n              })),\n              stateOverrides: [\n                {\n                  address: zeroAddress,\n                  nonce: 0,\n                },\n              ],\n            },\n          ]\n        : []),\n\n      {\n        calls: [...calls, {}].map((call) => ({\n          ...(call as Call),\n          from: account?.address,\n        })) as any,\n        stateOverrides,\n      },\n\n      ...(traceAssetChanges\n        ? [\n            // ETH post balances\n            {\n              calls: [{ data: getBalanceData }],\n            },\n\n            // Asset post balances\n            {\n              calls: assetAddresses.map((address, i) => ({\n                abi: [\n                  AbiFunction.from(\n                    'function balanceOf(address) returns (uint256)',\n                  ),\n                ],\n                functionName: 'balanceOf',\n                args: [account!.address],\n                to: address,\n                from: zeroAddress,\n                nonce: i,\n              })),\n              stateOverrides: [\n                {\n                  address: zeroAddress,\n                  nonce: 0,\n                },\n              ],\n            },\n\n            // Decimals\n            {\n              calls: assetAddresses.map((address, i) => ({\n                to: address,\n                abi: [\n                  AbiFunction.from('function decimals() returns (uint256)'),\n                ],\n                functionName: 'decimals',\n                from: zeroAddress,\n                nonce: i,\n              })),\n              stateOverrides: [\n                {\n                  address: zeroAddress,\n                  nonce: 0,\n                },\n              ],\n            },\n\n            // Token URI\n            {\n              calls: assetAddresses.map((address, i) => ({\n                to: address,\n                abi: [\n                  AbiFunction.from(\n                    'function tokenURI(uint256) returns (string)',\n                  ),\n                ],\n                functionName: 'tokenURI',\n                args: [0n],\n                from: zeroAddress,\n                nonce: i,\n              })),\n              stateOverrides: [\n                {\n                  address: zeroAddress,\n                  nonce: 0,\n                },\n              ],\n            },\n\n            // Symbols\n            {\n              calls: assetAddresses.map((address, i) => ({\n                to: address,\n                abi: [AbiFunction.from('function symbol() returns (string)')],\n                functionName: 'symbol',\n                from: zeroAddress,\n                nonce: i,\n              })),\n              stateOverrides: [\n                {\n                  address: zeroAddress,\n                  nonce: 0,\n                },\n              ],\n            },\n          ]\n        : []),\n    ],\n    traceTransfers,\n    validation,\n  })\n\n  const block_results = traceAssetChanges ? blocks[2] : blocks[0]\n  const [\n    block_ethPre,\n    block_assetsPre,\n    ,\n    block_ethPost,\n    block_assetsPost,\n    block_decimals,\n    block_tokenURI,\n    block_symbols,\n  ] = traceAssetChanges ? blocks : []\n\n  // Extract call results from the simulation.\n  const { calls: block_calls, ...block } = block_results\n  const results = block_calls.slice(0, -1) ?? []\n\n  // Extract pre-execution ETH and asset balances.\n  const ethPre = block_ethPre?.calls ?? []\n  const assetsPre = block_assetsPre?.calls ?? []\n  const balancesPre = [...ethPre, ...assetsPre].map((call) =>\n    call.status === 'success' ? hexToBigInt(call.data) : null,\n  )\n\n  // Extract post-execution ETH and asset balances.\n  const ethPost = block_ethPost?.calls ?? []\n  const assetsPost = block_assetsPost?.calls ?? []\n  const balancesPost = [...ethPost, ...assetsPost].map((call) =>\n    call.status === 'success' ? hexToBigInt(call.data) : null,\n  )\n\n  // Extract asset symbols & decimals.\n  const decimals = (block_decimals?.calls ?? []).map((x) =>\n    x.status === 'success' ? x.result : null,\n  ) as (number | null)[]\n  const symbols = (block_symbols?.calls ?? []).map((x) =>\n    x.status === 'success' ? x.result : null,\n  ) as (string | null)[]\n  const tokenURI = (block_tokenURI?.calls ?? []).map((x) =>\n    x.status === 'success' ? x.result : null,\n  ) as (string | null)[]\n\n  const changes: Mutable<SimulateCallsReturnType<calls>['assetChanges']> = []\n  for (const [i, balancePost] of balancesPost.entries()) {\n    const balancePre = balancesPre[i]\n\n    if (typeof balancePost !== 'bigint') continue\n    if (typeof balancePre !== 'bigint') continue\n\n    const decimals_ = decimals[i - 1]\n    const symbol_ = symbols[i - 1]\n    const tokenURI_ = tokenURI[i - 1]\n\n    const token = (() => {\n      if (i === 0)\n        return {\n          address: ethAddress,\n          decimals: 18,\n          symbol: 'ETH',\n        }\n\n      return {\n        address: assetAddresses[i - 1]! as Address,\n        decimals: tokenURI_ || decimals_ ? Number(decimals_ ?? 1) : undefined,\n        symbol: symbol_ ?? undefined,\n      }\n    })()\n\n    if (changes.some((change) => change.token.address === token.address))\n      continue\n\n    changes.push({\n      token,\n      value: {\n        pre: balancePre,\n        post: balancePost,\n        diff: balancePost - balancePre,\n      },\n    })\n  }\n\n  return {\n    assetChanges: changes,\n    block,\n    results,\n  } as unknown as SimulateCallsReturnType<calls>\n}\n","import { secp256k1 } from '@noble/curves/secp256k1'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { type HexToBigIntErrorType, hexToBigInt } from '../encoding/fromHex.js'\nimport { hexToBytes } from '../encoding/toBytes.js'\nimport type { ToHexErrorType } from '../encoding/toHex.js'\n\ntype To = 'bytes' | 'hex'\n\nexport type SerializeSignatureParameters<to extends To = 'hex'> = Signature & {\n  to?: to | To | undefined\n}\n\nexport type SerializeSignatureReturnType<to extends To = 'hex'> =\n  | (to extends 'hex' ? Hex : never)\n  | (to extends 'bytes' ? ByteArray : never)\n\nexport type SerializeSignatureErrorType =\n  | HexToBigIntErrorType\n  | ToHexErrorType\n  | ErrorType\n\n/**\n * @description Converts a signature into hex format.\n *\n * @param signature The signature to convert.\n * @returns The signature in hex format.\n *\n * @example\n * serializeSignature({\n *   r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',\n *   s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',\n *   yParity: 1\n * })\n * // \"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c\"\n */\nexport function serializeSignature<to extends To = 'hex'>({\n  r,\n  s,\n  to = 'hex',\n  v,\n  yParity,\n}: SerializeSignatureParameters<to>): SerializeSignatureReturnType<to> {\n  const yParity_ = (() => {\n    if (yParity === 0 || yParity === 1) return yParity\n    if (v && (v === 27n || v === 28n || v >= 35n)) return v % 2n === 0n ? 1 : 0\n    throw new Error('Invalid `v` or `yParity` value')\n  })()\n  const signature = `0x${new secp256k1.Signature(\n    hexToBigInt(r),\n    hexToBigInt(s),\n  ).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}` as const\n\n  if (to === 'hex') return signature as SerializeSignatureReturnType<to>\n  return hexToBytes(signature) as SerializeSignatureReturnType<to>\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { universalSignatureValidatorAbi } from '../../constants/abis.js'\nimport { universalSignatureValidatorByteCode } from '../../constants/contracts.js'\nimport { CallExecutionError } from '../../errors/contract.js'\nimport type { InvalidHexBooleanError } from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type EncodeDeployDataErrorType,\n  encodeDeployData,\n} from '../../utils/abi/encodeDeployData.js'\nimport { getAddress } from '../../utils/address/getAddress.js'\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js'\nimport { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'\nimport { bytesToHex, type ToHexErrorType } from '../../utils/encoding/toHex.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { encodeFunctionData, hexToBool } from '../../utils/index.js'\nimport { isErc6492Signature } from '../../utils/signature/isErc6492Signature.js'\nimport { recoverAddress } from '../../utils/signature/recoverAddress.js'\nimport { serializeErc6492Signature } from '../../utils/signature/serializeErc6492Signature.js'\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js'\nimport { type CallErrorType, type CallParameters, call } from './call.js'\n\nexport type VerifyHashParameters = Pick<\n  CallParameters,\n  'blockNumber' | 'blockTag'\n> & {\n  /** The address that signed the original message. */\n  address: Address\n  /** The hash to be verified. */\n  hash: Hex\n  /** The signature that was generated by signing the message with the address's private key. */\n  signature: Hex | ByteArray | Signature\n  universalSignatureVerifierAddress?: Address | undefined\n} & OneOf<{ factory: Address; factoryData: Hex } | {}>\n\nexport type VerifyHashReturnType = boolean\n\nexport type VerifyHashErrorType =\n  | CallErrorType\n  | IsHexErrorType\n  | ToHexErrorType\n  | InvalidHexBooleanError\n  | EncodeDeployDataErrorType\n  | ErrorType\n\n/**\n * Verifies a message hash onchain using ERC-6492.\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyHashParameters}\n * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}\n */\nexport async function verifyHash<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: VerifyHashParameters,\n): Promise<VerifyHashReturnType> {\n  const {\n    address,\n    factory,\n    factoryData,\n    hash,\n    signature,\n    universalSignatureVerifierAddress = client.chain?.contracts\n      ?.universalSignatureVerifier?.address,\n    ...rest\n  } = parameters\n\n  const signatureHex = (() => {\n    if (isHex(signature)) return signature\n    if (typeof signature === 'object' && 'r' in signature && 's' in signature)\n      return serializeSignature(signature)\n    return bytesToHex(signature)\n  })()\n\n  const wrappedSignature = await (async () => {\n    // If no `factory` or `factoryData` is provided, it is assumed that the\n    // address is not a Smart Account, or the Smart Account is already deployed.\n    if (!factory && !factoryData) return signatureHex\n\n    // If the signature is already wrapped, return the signature.\n    if (isErc6492Signature(signatureHex)) return signatureHex\n\n    // If the Smart Account is not deployed, wrap the signature with a 6492 wrapper\n    // to perform counterfactual validation.\n    return serializeErc6492Signature({\n      address: factory!,\n      data: factoryData!,\n      signature: signatureHex,\n    })\n  })()\n\n  try {\n    const args = universalSignatureVerifierAddress\n      ? ({\n          to: universalSignatureVerifierAddress,\n          data: encodeFunctionData({\n            abi: universalSignatureValidatorAbi,\n            functionName: 'isValidSig',\n            args: [address, hash, wrappedSignature],\n          }),\n          ...rest,\n        } as unknown as CallParameters)\n      : ({\n          data: encodeDeployData({\n            abi: universalSignatureValidatorAbi,\n            args: [address, hash, wrappedSignature],\n            bytecode: universalSignatureValidatorByteCode,\n          }),\n          ...rest,\n        } as unknown as CallParameters)\n\n    const { data } = await getAction(client, call, 'call')(args)\n\n    return hexToBool(data ?? '0x0')\n  } catch (error) {\n    // Fallback attempt to verify the signature via ECDSA recovery.\n    try {\n      const verified = isAddressEqual(\n        getAddress(address),\n        await recoverAddress({ hash, signature }),\n      )\n      if (verified) return true\n    } catch {}\n\n    if (error instanceof CallExecutionError) {\n      // if the execution fails, the signature was not valid and an internal method inside of the validator reverted\n      // this can happen for many reasons, for example if signer can not be recovered from the signature\n      // or if the signature has no valid format\n      return false\n    }\n\n    throw error\n  }\n}\n","import type { Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ByteArray,\n  Hex,\n  SignableMessage,\n  Signature,\n} from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { HashMessageErrorType } from '../../utils/signature/hashMessage.js'\nimport { hashMessage } from '../../utils/signature/hashMessage.js'\nimport {\n  type VerifyHashErrorType,\n  type VerifyHashParameters,\n  verifyHash,\n} from './verifyHash.js'\n\nexport type VerifyMessageParameters = Prettify<\n  Omit<VerifyHashParameters, 'hash'> & {\n    /** The address that signed the original message. */\n    address: Address\n    /** The message to be verified. */\n    message: SignableMessage\n    /** The signature that was generated by signing the message with the address's private key. */\n    signature: Hex | ByteArray | Signature\n  }\n>\n\nexport type VerifyMessageReturnType = boolean\n\nexport type VerifyMessageErrorType =\n  | HashMessageErrorType\n  | VerifyHashErrorType\n  | ErrorType\n\n/**\n * Verify that a message was signed by the provided address.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n */\nexport async function verifyMessage<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  {\n    address,\n    message,\n    factory,\n    factoryData,\n    signature,\n    ...callRequest\n  }: VerifyMessageParameters,\n): Promise<VerifyMessageReturnType> {\n  const hash = hashMessage(message)\n  return verifyHash(client, {\n    address,\n    factory: factory!,\n    factoryData: factoryData!,\n    hash,\n    signature,\n    ...callRequest,\n  })\n}\n","import type { Address, TypedData } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport {\n  type HashTypedDataErrorType,\n  hashTypedData,\n} from '../../utils/signature/hashTypedData.js'\nimport {\n  type VerifyHashErrorType,\n  type VerifyHashParameters,\n  verifyHash,\n} from './verifyHash.js'\n\nexport type VerifyTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n> = Omit<VerifyHashParameters, 'hash'> &\n  TypedDataDefinition<typedData, primaryType> & {\n    /** The address to verify the typed data for. */\n    address: Address\n    /** The signature to verify */\n    signature: Hex | ByteArray | Signature\n  }\n\nexport type VerifyTypedDataReturnType = boolean\n\nexport type VerifyTypedDataErrorType =\n  | HashTypedDataErrorType\n  | VerifyHashErrorType\n  | ErrorType\n\n/**\n * Verify that typed data was signed by the provided address.\n *\n * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifyTypedDataParameters}\n * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n */\nexport async function verifyTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n  chain extends Chain | undefined,\n>(\n  client: Client<Transport, chain>,\n  parameters: VerifyTypedDataParameters<typedData, primaryType>,\n): Promise<VerifyTypedDataReturnType> {\n  const {\n    address,\n    factory,\n    factoryData,\n    signature,\n    message,\n    primaryType,\n    types,\n    domain,\n    ...callRequest\n  } = parameters as VerifyTypedDataParameters\n  const hash = hashTypedData({ message, primaryType, types, domain })\n  return verifyHash(client, {\n    address,\n    factory: factory!,\n    factoryData: factoryData!,\n    hash,\n    signature,\n    ...callRequest,\n  })\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { HasTransportType } from '../../types/transport.js'\nimport { hexToBigInt } from '../../utils/encoding/fromHex.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { observe } from '../../utils/observe.js'\nimport { type PollErrorType, poll } from '../../utils/poll.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport {\n  type GetBlockNumberReturnType,\n  getBlockNumber,\n} from './getBlockNumber.js'\n\nexport type OnBlockNumberParameter = GetBlockNumberReturnType\nexport type OnBlockNumberFn = (\n  blockNumber: OnBlockNumberParameter,\n  prevBlockNumber: OnBlockNumberParameter | undefined,\n) => void\n\nexport type WatchBlockNumberParameters<\n  transport extends Transport = Transport,\n> = {\n  /** The callback to call when a new block number is received. */\n  onBlockNumber: OnBlockNumberFn\n  /** The callback to call when an error occurred when trying to get for a new block. */\n  onError?: ((error: Error) => void) | undefined\n} & (\n  | (HasTransportType<transport, 'webSocket' | 'ipc'> extends true\n      ? {\n          emitMissed?: undefined\n          emitOnBegin?: undefined\n          /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */\n          poll?: false | undefined\n          pollingInterval?: undefined\n        }\n      : never)\n  | {\n      /** Whether or not to emit the missed block numbers to the callback. */\n      emitMissed?: boolean | undefined\n      /** Whether or not to emit the latest block number to the callback when the subscription opens. */\n      emitOnBegin?: boolean | undefined\n      poll?: true | undefined\n      /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n      pollingInterval?: number | undefined\n    }\n)\n\nexport type WatchBlockNumberReturnType = () => void\n\nexport type WatchBlockNumberErrorType = PollErrorType | ErrorType\n\n/**\n * Watches and returns incoming block numbers.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n * - JSON-RPC Methods:\n *   - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\n *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlockNumberParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\n *\n * @example\n * import { createPublicClient, watchBlockNumber, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const unwatch = watchBlockNumber(client, {\n *   onBlockNumber: (blockNumber) => console.log(blockNumber),\n * })\n */\nexport function watchBlockNumber<\n  chain extends Chain | undefined,\n  transport extends Transport,\n>(\n  client: Client<transport, chain>,\n  {\n    emitOnBegin = false,\n    emitMissed = false,\n    onBlockNumber,\n    onError,\n    poll: poll_,\n    pollingInterval = client.pollingInterval,\n  }: WatchBlockNumberParameters<transport>,\n): WatchBlockNumberReturnType {\n  const enablePolling = (() => {\n    if (typeof poll_ !== 'undefined') return poll_\n    if (\n      client.transport.type === 'webSocket' ||\n      client.transport.type === 'ipc'\n    )\n      return false\n    if (\n      client.transport.type === 'fallback' &&\n      (client.transport.transports[0].config.type === 'webSocket' ||\n        client.transport.transports[0].config.type === 'ipc')\n    )\n      return false\n    return true\n  })()\n\n  let prevBlockNumber: GetBlockNumberReturnType | undefined\n\n  const pollBlockNumber = () => {\n    const observerId = stringify([\n      'watchBlockNumber',\n      client.uid,\n      emitOnBegin,\n      emitMissed,\n      pollingInterval,\n    ])\n\n    return observe(observerId, { onBlockNumber, onError }, (emit) =>\n      poll(\n        async () => {\n          try {\n            const blockNumber = await getAction(\n              client,\n              getBlockNumber,\n              'getBlockNumber',\n            )({ cacheTime: 0 })\n\n            if (prevBlockNumber) {\n              // If the current block number is the same as the previous,\n              // we can skip.\n              if (blockNumber === prevBlockNumber) return\n\n              // If we have missed out on some previous blocks, and the\n              // `emitMissed` flag is truthy, let's emit those blocks.\n              if (blockNumber - prevBlockNumber > 1 && emitMissed) {\n                for (let i = prevBlockNumber + 1n; i < blockNumber; i++) {\n                  emit.onBlockNumber(i, prevBlockNumber)\n                  prevBlockNumber = i\n                }\n              }\n            }\n\n            // If the next block number is greater than the previous,\n            // it is not in the past, and we can emit the new block number.\n            if (!prevBlockNumber || blockNumber > prevBlockNumber) {\n              emit.onBlockNumber(blockNumber, prevBlockNumber)\n              prevBlockNumber = blockNumber\n            }\n          } catch (err) {\n            emit.onError?.(err as Error)\n          }\n        },\n        {\n          emitOnBegin,\n          interval: pollingInterval,\n        },\n      ),\n    )\n  }\n\n  const subscribeBlockNumber = () => {\n    const observerId = stringify([\n      'watchBlockNumber',\n      client.uid,\n      emitOnBegin,\n      emitMissed,\n    ])\n\n    return observe(observerId, { onBlockNumber, onError }, (emit) => {\n      let active = true\n      let unsubscribe = () => (active = false)\n      ;(async () => {\n        try {\n          const transport = (() => {\n            if (client.transport.type === 'fallback') {\n              const transport = client.transport.transports.find(\n                (transport: ReturnType<Transport>) =>\n                  transport.config.type === 'webSocket' ||\n                  transport.config.type === 'ipc',\n              )\n              if (!transport) return client.transport\n              return transport.value\n            }\n            return client.transport\n          })()\n\n          const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n            params: ['newHeads'],\n            onData(data: any) {\n              if (!active) return\n              const blockNumber = hexToBigInt(data.result?.number)\n              emit.onBlockNumber(blockNumber, prevBlockNumber)\n              prevBlockNumber = blockNumber\n            },\n            onError(error: Error) {\n              emit.onError?.(error)\n            },\n          })\n          unsubscribe = unsubscribe_\n          if (!active) unsubscribe()\n        } catch (err) {\n          onError?.(err as Error)\n        }\n      })()\n      return () => unsubscribe()\n    })\n  }\n\n  return enablePolling ? pollBlockNumber() : subscribeBlockNumber()\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { BlockNotFoundError } from '../../errors/block.js'\nimport {\n  TransactionNotFoundError,\n  TransactionReceiptNotFoundError,\n  WaitForTransactionReceiptTimeoutError,\n  type WaitForTransactionReceiptTimeoutErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { Transaction } from '../../types/transaction.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { type ObserveErrorType, observe } from '../../utils/observe.js'\nimport { withResolvers } from '../../utils/promise/withResolvers.js'\nimport {\n  type WithRetryParameters,\n  withRetry,\n} from '../../utils/promise/withRetry.js'\nimport { stringify } from '../../utils/stringify.js'\n\nimport { type GetBlockErrorType, getBlock } from './getBlock.js'\nimport {\n  type GetTransactionErrorType,\n  type GetTransactionReturnType,\n  getTransaction,\n} from './getTransaction.js'\nimport {\n  type GetTransactionReceiptErrorType,\n  type GetTransactionReceiptReturnType,\n  getTransactionReceipt,\n} from './getTransactionReceipt.js'\nimport {\n  type WatchBlockNumberErrorType,\n  watchBlockNumber,\n} from './watchBlockNumber.js'\n\nexport type ReplacementReason = 'cancelled' | 'replaced' | 'repriced'\nexport type ReplacementReturnType<\n  chain extends Chain | undefined = Chain | undefined,\n> = {\n  reason: ReplacementReason\n  replacedTransaction: Transaction\n  transaction: Transaction\n  transactionReceipt: GetTransactionReceiptReturnType<chain>\n}\n\nexport type WaitForTransactionReceiptReturnType<\n  chain extends Chain | undefined = Chain | undefined,\n> = GetTransactionReceiptReturnType<chain>\n\nexport type WaitForTransactionReceiptParameters<\n  chain extends Chain | undefined = Chain | undefined,\n> = {\n  /**\n   * Whether to check for transaction replacements.\n   * @default true\n   */\n  checkReplacement?: boolean | undefined\n  /**\n   * The number of confirmations (blocks that have passed) to wait before resolving.\n   * @default 1\n   */\n  confirmations?: number | undefined\n  /** The hash of the transaction. */\n  hash: Hash\n  /** Optional callback to emit if the transaction has been replaced. */\n  onReplaced?: ((response: ReplacementReturnType<chain>) => void) | undefined\n  /**\n   * Polling frequency (in ms). Defaults to the client's pollingInterval config.\n   * @default client.pollingInterval\n   */\n  pollingInterval?: number | undefined\n  /**\n   * Number of times to retry if the transaction or block is not found.\n   * @default 6 (exponential backoff)\n   */\n  retryCount?: WithRetryParameters['retryCount'] | undefined\n  /**\n   * Time to wait (in ms) between retries.\n   * @default `({ count }) => ~~(1 << count) * 200` (exponential backoff)\n   */\n  retryDelay?: WithRetryParameters['delay'] | undefined\n  /**\n   * Optional timeout (in milliseconds) to wait before stopping polling.\n   * @default 180_000\n   */\n  timeout?: number | undefined\n}\n\nexport type WaitForTransactionReceiptErrorType =\n  | ObserveErrorType\n  | GetBlockErrorType\n  | GetTransactionErrorType\n  | GetTransactionReceiptErrorType\n  | WatchBlockNumberErrorType\n  | WaitForTransactionReceiptTimeoutErrorType\n  | ErrorType\n\n/**\n * Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt).\n *\n * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\n * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n * - JSON-RPC Methods:\n *   - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\n *   - If a Transaction has been replaced:\n *     - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\n *     - Checks if one of the Transactions is a replacement\n *     - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\n *\n * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\n *\n * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\n *\n * There are 3 types of Transaction Replacement reasons:\n *\n * - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\n * - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\n * - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\n *\n * @param client - Client to use\n * @param parameters - {@link WaitForTransactionReceiptParameters}\n * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}\n *\n * @example\n * import { createPublicClient, waitForTransactionReceipt, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const transactionReceipt = await waitForTransactionReceipt(client, {\n *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n * })\n */\nexport async function waitForTransactionReceipt<\n  chain extends Chain | undefined,\n>(\n  client: Client<Transport, chain>,\n  parameters: WaitForTransactionReceiptParameters<chain>,\n): Promise<WaitForTransactionReceiptReturnType<chain>> {\n  const {\n    checkReplacement = true,\n    confirmations = 1,\n    hash,\n    onReplaced,\n    retryCount = 6,\n    retryDelay = ({ count }) => ~~(1 << count) * 200, // exponential backoff\n    timeout = 180_000,\n  } = parameters\n\n  const observerId = stringify(['waitForTransactionReceipt', client.uid, hash])\n\n  const pollingInterval = (() => {\n    if (parameters.pollingInterval) return parameters.pollingInterval\n    if (client.chain?.experimental_preconfirmationTime)\n      return client.chain.experimental_preconfirmationTime\n    return client.pollingInterval\n  })()\n\n  let transaction: GetTransactionReturnType<chain> | undefined\n  let replacedTransaction: GetTransactionReturnType<chain> | undefined\n  let receipt: GetTransactionReceiptReturnType<chain> | undefined\n  let retrying = false\n\n  let _unobserve: () => void\n  let _unwatch: () => void\n\n  const { promise, resolve, reject } =\n    withResolvers<WaitForTransactionReceiptReturnType<chain>>()\n\n  const timer = timeout\n    ? setTimeout(() => {\n        _unwatch?.()\n        _unobserve?.()\n        reject(new WaitForTransactionReceiptTimeoutError({ hash }))\n      }, timeout)\n    : undefined\n\n  _unobserve = observe(\n    observerId,\n    { onReplaced, resolve, reject },\n    async (emit) => {\n      receipt = await getAction(\n        client,\n        getTransactionReceipt,\n        'getTransactionReceipt',\n      )({ hash }).catch(() => undefined)\n\n      if (receipt && confirmations <= 1) {\n        clearTimeout(timer)\n        emit.resolve(receipt)\n        _unobserve?.()\n        return\n      }\n\n      _unwatch = getAction(\n        client,\n        watchBlockNumber,\n        'watchBlockNumber',\n      )({\n        emitMissed: true,\n        emitOnBegin: true,\n        poll: true,\n        pollingInterval,\n        async onBlockNumber(blockNumber_) {\n          const done = (fn: () => void) => {\n            clearTimeout(timer)\n            _unwatch?.()\n            fn()\n            _unobserve?.()\n          }\n\n          let blockNumber = blockNumber_\n\n          if (retrying) return\n\n          try {\n            // If we already have a valid receipt, let's check if we have enough\n            // confirmations. If we do, then we can resolve.\n            if (receipt) {\n              if (\n                confirmations > 1 &&\n                (!receipt.blockNumber ||\n                  blockNumber - receipt.blockNumber + 1n < confirmations)\n              )\n                return\n\n              done(() => emit.resolve(receipt!))\n              return\n            }\n\n            // Get the transaction to check if it's been replaced.\n            // We need to retry as some RPC Providers may be slow to sync\n            // up mined transactions.\n            if (checkReplacement && !transaction) {\n              retrying = true\n              await withRetry(\n                async () => {\n                  transaction = (await getAction(\n                    client,\n                    getTransaction,\n                    'getTransaction',\n                  )({ hash })) as GetTransactionReturnType<chain>\n                  if (transaction.blockNumber)\n                    blockNumber = transaction.blockNumber\n                },\n                {\n                  delay: retryDelay,\n                  retryCount,\n                },\n              )\n              retrying = false\n            }\n\n            // Get the receipt to check if it's been processed.\n            receipt = await getAction(\n              client,\n              getTransactionReceipt,\n              'getTransactionReceipt',\n            )({ hash })\n\n            // Check if we have enough confirmations. If not, continue polling.\n            if (\n              confirmations > 1 &&\n              (!receipt.blockNumber ||\n                blockNumber - receipt.blockNumber + 1n < confirmations)\n            )\n              return\n\n            done(() => emit.resolve(receipt!))\n          } catch (err) {\n            // If the receipt is not found, the transaction will be pending.\n            // We need to check if it has potentially been replaced.\n            if (\n              err instanceof TransactionNotFoundError ||\n              err instanceof TransactionReceiptNotFoundError\n            ) {\n              if (!transaction) {\n                retrying = false\n                return\n              }\n\n              try {\n                replacedTransaction = transaction\n\n                // Let's retrieve the transactions from the current block.\n                // We need to retry as some RPC Providers may be slow to sync\n                // up mined blocks.\n                retrying = true\n                const block = await withRetry(\n                  () =>\n                    getAction(\n                      client,\n                      getBlock,\n                      'getBlock',\n                    )({\n                      blockNumber,\n                      includeTransactions: true,\n                    }),\n                  {\n                    delay: retryDelay,\n                    retryCount,\n                    shouldRetry: ({ error }) =>\n                      error instanceof BlockNotFoundError,\n                  },\n                )\n                retrying = false\n\n                const replacementTransaction = (\n                  block.transactions as {} as Transaction[]\n                ).find(\n                  ({ from, nonce }) =>\n                    from === replacedTransaction!.from &&\n                    nonce === replacedTransaction!.nonce,\n                )\n\n                // If we couldn't find a replacement transaction, continue polling.\n                if (!replacementTransaction) return\n\n                // If we found a replacement transaction, return it's receipt.\n                receipt = await getAction(\n                  client,\n                  getTransactionReceipt,\n                  'getTransactionReceipt',\n                )({\n                  hash: replacementTransaction.hash,\n                })\n\n                // Check if we have enough confirmations. If not, continue polling.\n                if (\n                  confirmations > 1 &&\n                  (!receipt.blockNumber ||\n                    blockNumber - receipt.blockNumber + 1n < confirmations)\n                )\n                  return\n\n                let reason: ReplacementReason = 'replaced'\n                if (\n                  replacementTransaction.to === replacedTransaction.to &&\n                  replacementTransaction.value === replacedTransaction.value &&\n                  replacementTransaction.input === replacedTransaction.input\n                ) {\n                  reason = 'repriced'\n                } else if (\n                  replacementTransaction.from === replacementTransaction.to &&\n                  replacementTransaction.value === 0n\n                ) {\n                  reason = 'cancelled'\n                }\n\n                done(() => {\n                  emit.onReplaced?.({\n                    reason,\n                    replacedTransaction: replacedTransaction! as any,\n                    transaction: replacementTransaction,\n                    transactionReceipt: receipt!,\n                  })\n                  emit.resolve(receipt!)\n                })\n              } catch (err_) {\n                done(() => emit.reject(err_))\n              }\n            } else {\n              done(() => emit.reject(err))\n            }\n          }\n        },\n      })\n    },\n  )\n\n  return promise\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { HasTransportType } from '../../types/transport.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { observe } from '../../utils/observe.js'\nimport { type PollErrorType, poll } from '../../utils/poll.js'\nimport { type StringifyErrorType, stringify } from '../../utils/stringify.js'\n\nimport { type GetBlockReturnType, getBlock } from './getBlock.js'\n\nexport type OnBlockParameter<\n  chain extends Chain | undefined = Chain,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n> = GetBlockReturnType<chain, includeTransactions, blockTag>\n\nexport type OnBlock<\n  chain extends Chain | undefined = Chain,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n> = (\n  block: OnBlockParameter<chain, includeTransactions, blockTag>,\n  prevBlock: OnBlockParameter<chain, includeTransactions, blockTag> | undefined,\n) => void\n\nexport type WatchBlocksParameters<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n> = {\n  /** The callback to call when a new block is received. */\n  onBlock: OnBlock<chain, includeTransactions, blockTag>\n  /** The callback to call when an error occurred when trying to get for a new block. */\n  onError?: ((error: Error) => void) | undefined\n} & (\n  | (HasTransportType<transport, 'webSocket' | 'ipc'> extends true\n      ? {\n          blockTag?: undefined\n          emitMissed?: undefined\n          emitOnBegin?: undefined\n          includeTransactions?: undefined\n          /** Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`. */\n          poll?: false | undefined\n          pollingInterval?: undefined\n        }\n      : never)\n  | {\n      /** The block tag. Defaults to \"latest\". */\n      blockTag?: blockTag | BlockTag | undefined\n      /** Whether or not to emit the missed blocks to the callback. */\n      emitMissed?: boolean | undefined\n      /** Whether or not to emit the block to the callback when the subscription opens. */\n      emitOnBegin?: boolean | undefined\n      /** Whether or not to include transaction data in the response. */\n      includeTransactions?: includeTransactions | undefined\n      poll?: true | undefined\n      /** Polling frequency (in ms). Defaults to the client's pollingInterval config. */\n      pollingInterval?: number | undefined\n    }\n)\n\nexport type WatchBlocksReturnType = () => void\n\nexport type WatchBlocksErrorType =\n  | StringifyErrorType\n  | PollErrorType\n  | ErrorType\n\n/**\n * Watches and returns information for incoming blocks.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n * - JSON-RPC Methods:\n *   - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchBlocksParameters}\n * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n *\n * @example\n * import { createPublicClient, watchBlocks, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const unwatch = watchBlocks(client, {\n *   onBlock: (block) => console.log(block),\n * })\n */\nexport function watchBlocks<\n  transport extends Transport,\n  chain extends Chain | undefined,\n  includeTransactions extends boolean = false,\n  blockTag extends BlockTag = 'latest',\n>(\n  client: Client<transport, chain>,\n  {\n    blockTag = client.experimental_blockTag ?? 'latest',\n    emitMissed = false,\n    emitOnBegin = false,\n    onBlock,\n    onError,\n    includeTransactions: includeTransactions_,\n    poll: poll_,\n    pollingInterval = client.pollingInterval,\n  }: WatchBlocksParameters<transport, chain, includeTransactions, blockTag>,\n): WatchBlocksReturnType {\n  const enablePolling = (() => {\n    if (typeof poll_ !== 'undefined') return poll_\n    if (\n      client.transport.type === 'webSocket' ||\n      client.transport.type === 'ipc'\n    )\n      return false\n    if (\n      client.transport.type === 'fallback' &&\n      (client.transport.transports[0].config.type === 'webSocket' ||\n        client.transport.transports[0].config.type === 'ipc')\n    )\n      return false\n    return true\n  })()\n  const includeTransactions = includeTransactions_ ?? false\n\n  let prevBlock:\n    | GetBlockReturnType<chain, false | includeTransactions, 'latest'>\n    | undefined\n\n  const pollBlocks = () => {\n    const observerId = stringify([\n      'watchBlocks',\n      client.uid,\n      blockTag,\n      emitMissed,\n      emitOnBegin,\n      includeTransactions,\n      pollingInterval,\n    ])\n\n    return observe(observerId, { onBlock, onError }, (emit) =>\n      poll(\n        async () => {\n          try {\n            const block = await getAction(\n              client,\n              getBlock,\n              'getBlock',\n            )({\n              blockTag,\n              includeTransactions,\n            })\n            if (block.number !== null && prevBlock?.number != null) {\n              // If the current block number is the same as the previous,\n              // we can skip.\n              if (block.number === prevBlock.number) return\n\n              // If we have missed out on some previous blocks, and the\n              // `emitMissed` flag is truthy, let's emit those blocks.\n              if (block.number - prevBlock.number > 1 && emitMissed) {\n                for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n                  const block = (await getAction(\n                    client,\n                    getBlock,\n                    'getBlock',\n                  )({\n                    blockNumber: i,\n                    includeTransactions,\n                  })) as GetBlockReturnType<chain>\n                  emit.onBlock(block as any, prevBlock as any)\n                  prevBlock = block\n                }\n              }\n            }\n\n            if (\n              // If no previous block exists, emit.\n              prevBlock?.number == null ||\n              // If the block tag is \"pending\" with no block number, emit.\n              (blockTag === 'pending' && block?.number == null) ||\n              // If the next block number is greater than the previous block number, emit.\n              // We don't want to emit blocks in the past.\n              (block.number !== null && block.number > prevBlock.number)\n            ) {\n              emit.onBlock(block as any, prevBlock as any)\n              prevBlock = block as any\n            }\n          } catch (err) {\n            emit.onError?.(err as Error)\n          }\n        },\n        {\n          emitOnBegin,\n          interval: pollingInterval,\n        },\n      ),\n    )\n  }\n\n  const subscribeBlocks = () => {\n    let active = true\n    let emitFetched = true\n    let unsubscribe = () => (active = false)\n    ;(async () => {\n      try {\n        if (emitOnBegin) {\n          getAction(\n            client,\n            getBlock,\n            'getBlock',\n          )({\n            blockTag,\n            includeTransactions,\n          })\n            .then((block) => {\n              if (!active) return\n              if (!emitFetched) return\n              onBlock(block as any, undefined)\n              emitFetched = false\n            })\n            .catch(onError)\n        }\n\n        const transport = (() => {\n          if (client.transport.type === 'fallback') {\n            const transport = client.transport.transports.find(\n              (transport: ReturnType<Transport>) =>\n                transport.config.type === 'webSocket' ||\n                transport.config.type === 'ipc',\n            )\n            if (!transport) return client.transport\n            return transport.value\n          }\n          return client.transport\n        })()\n\n        const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n          params: ['newHeads'],\n          async onData(data: any) {\n            if (!active) return\n            const block = (await getAction(\n              client,\n              getBlock,\n              'getBlock',\n            )({\n              blockNumber: data.result?.number,\n              includeTransactions,\n            }).catch(() => {})) as GetBlockReturnType<chain>\n            if (!active) return\n            onBlock(block as any, prevBlock as any)\n            emitFetched = false\n            prevBlock = block\n          },\n          onError(error: Error) {\n            onError?.(error)\n          },\n        })\n        unsubscribe = unsubscribe_\n        if (!active) unsubscribe()\n      } catch (err) {\n        onError?.(err as Error)\n      }\n    })()\n    return () => unsubscribe()\n  }\n\n  return enablePolling ? pollBlocks() : subscribeBlocks()\n}\n","import type { AbiEvent, Address } from 'abitype'\n\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  DecodeLogDataMismatch,\n  DecodeLogTopicsMismatch,\n} from '../../errors/abi.js'\nimport { InvalidInputRpcError } from '../../errors/rpc.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { BlockNumber } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  MaybeAbiEventName,\n  MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Log } from '../../types/log.js'\nimport type { LogTopic } from '../../types/misc.js'\nimport type { GetPollOptions } from '../../types/transport.js'\nimport { decodeEventLog } from '../../utils/abi/decodeEventLog.js'\nimport {\n  type EncodeEventTopicsParameters,\n  encodeEventTopics,\n} from '../../utils/abi/encodeEventTopics.js'\nimport { formatLog } from '../../utils/formatters/log.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { type ObserveErrorType, observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { type StringifyErrorType, stringify } from '../../utils/stringify.js'\nimport {\n  type CreateEventFilterParameters,\n  createEventFilter,\n} from './createEventFilter.js'\nimport { getBlockNumber } from './getBlockNumber.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { type GetLogsParameters, getLogs } from './getLogs.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type WatchEventOnLogsParameter<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n> = Log<bigint, number, false, abiEvent, strict, abiEvents, eventName>[]\nexport type WatchEventOnLogsFn<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  //\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n> = (\n  logs: WatchEventOnLogsParameter<abiEvent, abiEvents, strict, _eventName>,\n) => void\n\nexport type WatchEventParameters<\n  abiEvent extends AbiEvent | undefined = undefined,\n  abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  transport extends Transport = Transport,\n  //\n  _eventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n> = {\n  /** The address of the contract. */\n  address?: Address | Address[] | undefined\n  /** Block to start listening from. */\n  fromBlock?: BlockNumber<bigint> | undefined\n  /** The callback to call when an error occurred when trying to get for a new block. */\n  onError?: ((error: Error) => void) | undefined\n  /** The callback to call when new event logs are received. */\n  onLogs: WatchEventOnLogsFn<abiEvent, abiEvents, strict, _eventName>\n} & GetPollOptions<transport> &\n  (\n    | {\n        event: abiEvent\n        events?: undefined\n        args?: MaybeExtractEventArgsFromAbi<abiEvents, _eventName> | undefined\n        /**\n         * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n         * @default false\n         */\n        strict?: strict | undefined\n      }\n    | {\n        event?: undefined\n        events?: abiEvents | undefined\n        args?: undefined\n        /**\n         * Whether or not the logs must match the indexed/non-indexed arguments on `event`.\n         * @default false\n         */\n        strict?: strict | undefined\n      }\n    | {\n        event?: undefined\n        events?: undefined\n        args?: undefined\n        strict?: undefined\n      }\n  )\n\nexport type WatchEventReturnType = () => void\n\nexport type WatchEventErrorType =\n  | StringifyErrorType\n  | ObserveErrorType\n  | ErrorType\n\n/**\n * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n *\n * - Docs: https://viem.sh/docs/actions/public/watchEvent\n * - JSON-RPC Methods:\n *   - **RPC Provider supports `eth_newFilter`:**\n *     - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n *     - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n *   - **RPC Provider does not support `eth_newFilter`:**\n *     - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n *\n * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n *\n * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n *\n * @param client - Client to use\n * @param parameters - {@link WatchEventParameters}\n * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchEvent } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const unwatch = watchEvent(client, {\n *   onLogs: (logs) => console.log(logs),\n * })\n */\nexport function watchEvent<\n  chain extends Chain | undefined,\n  const abiEvent extends AbiEvent | undefined = undefined,\n  const abiEvents extends\n    | readonly AbiEvent[]\n    | readonly unknown[]\n    | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n  strict extends boolean | undefined = undefined,\n  transport extends Transport = Transport,\n  _eventName extends string | undefined = undefined,\n>(\n  client: Client<transport, chain>,\n  {\n    address,\n    args,\n    batch = true,\n    event,\n    events,\n    fromBlock,\n    onError,\n    onLogs,\n    poll: poll_,\n    pollingInterval = client.pollingInterval,\n    strict: strict_,\n  }: WatchEventParameters<abiEvent, abiEvents, strict, transport>,\n): WatchEventReturnType {\n  const enablePolling = (() => {\n    if (typeof poll_ !== 'undefined') return poll_\n    if (typeof fromBlock === 'bigint') return true\n    if (\n      client.transport.type === 'webSocket' ||\n      client.transport.type === 'ipc'\n    )\n      return false\n    if (\n      client.transport.type === 'fallback' &&\n      (client.transport.transports[0].config.type === 'webSocket' ||\n        client.transport.transports[0].config.type === 'ipc')\n    )\n      return false\n    return true\n  })()\n  const strict = strict_ ?? false\n\n  const pollEvent = () => {\n    const observerId = stringify([\n      'watchEvent',\n      address,\n      args,\n      batch,\n      client.uid,\n      event,\n      pollingInterval,\n      fromBlock,\n    ])\n\n    return observe(observerId, { onLogs, onError }, (emit) => {\n      let previousBlockNumber: bigint\n      if (fromBlock !== undefined) previousBlockNumber = fromBlock - 1n\n      let filter: Filter<'event', abiEvents, _eventName, any>\n      let initialized = false\n\n      const unwatch = poll(\n        async () => {\n          if (!initialized) {\n            try {\n              filter = (await getAction(\n                client,\n                createEventFilter as any,\n                'createEventFilter',\n              )({\n                address,\n                args,\n                event: event!,\n                events,\n                strict,\n                fromBlock,\n              } as unknown as CreateEventFilterParameters)) as unknown as Filter<\n                'event',\n                abiEvents,\n                _eventName\n              >\n            } catch {}\n            initialized = true\n            return\n          }\n\n          try {\n            let logs: Log[]\n            if (filter) {\n              logs = await getAction(\n                client,\n                getFilterChanges,\n                'getFilterChanges',\n              )({ filter })\n            } else {\n              // If the filter doesn't exist, we will fall back to use `getLogs`.\n              // The fall back exists because some RPC Providers do not support filters.\n\n              // Fetch the block number to use for `getLogs`.\n              const blockNumber = await getAction(\n                client,\n                getBlockNumber,\n                'getBlockNumber',\n              )({})\n\n              // If the block number has changed, we will need to fetch the logs.\n              // If the block number doesn't exist, we are yet to reach the first poll interval,\n              // so do not emit any logs.\n              if (previousBlockNumber && previousBlockNumber !== blockNumber) {\n                logs = await getAction(\n                  client,\n                  getLogs,\n                  'getLogs',\n                )({\n                  address,\n                  args,\n                  event: event!,\n                  events,\n                  fromBlock: previousBlockNumber + 1n,\n                  toBlock: blockNumber,\n                } as unknown as GetLogsParameters)\n              } else {\n                logs = []\n              }\n              previousBlockNumber = blockNumber\n            }\n\n            if (logs.length === 0) return\n            if (batch) emit.onLogs(logs as any)\n            else for (const log of logs) emit.onLogs([log] as any)\n          } catch (err) {\n            // If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.\n            // Reinitialize the filter when this occurs\n            if (filter && err instanceof InvalidInputRpcError)\n              initialized = false\n            emit.onError?.(err as Error)\n          }\n        },\n        {\n          emitOnBegin: true,\n          interval: pollingInterval,\n        },\n      )\n\n      return async () => {\n        if (filter)\n          await getAction(\n            client,\n            uninstallFilter,\n            'uninstallFilter',\n          )({ filter })\n        unwatch()\n      }\n    })\n  }\n\n  const subscribeEvent = () => {\n    let active = true\n    let unsubscribe = () => (active = false)\n    ;(async () => {\n      try {\n        const transport = (() => {\n          if (client.transport.type === 'fallback') {\n            const transport = client.transport.transports.find(\n              (transport: ReturnType<Transport>) =>\n                transport.config.type === 'webSocket' ||\n                transport.config.type === 'ipc',\n            )\n            if (!transport) return client.transport\n            return transport.value\n          }\n          return client.transport\n        })()\n\n        const events_ = events ?? (event ? [event] : undefined)\n        let topics: LogTopic[] = []\n        if (events_) {\n          const encoded = (events_ as AbiEvent[]).flatMap((event) =>\n            encodeEventTopics({\n              abi: [event],\n              eventName: (event as AbiEvent).name,\n              args,\n            } as EncodeEventTopicsParameters),\n          )\n          // TODO: Clean up type casting\n          topics = [encoded as LogTopic]\n          if (event) topics = topics[0] as LogTopic[]\n        }\n\n        const { unsubscribe: unsubscribe_ } = await transport.subscribe({\n          params: ['logs', { address, topics }],\n          onData(data: any) {\n            if (!active) return\n            const log = data.result\n            try {\n              const { eventName, args } = decodeEventLog({\n                abi: events_ ?? [],\n                data: log.data,\n                topics: log.topics,\n                strict,\n              })\n              const formatted = formatLog(log, { args, eventName })\n              onLogs([formatted] as any)\n            } catch (err) {\n              let eventName: string | undefined\n              let isUnnamed: boolean | undefined\n              if (\n                err instanceof DecodeLogDataMismatch ||\n                err instanceof DecodeLogTopicsMismatch\n              ) {\n                // If strict mode is on, and log data/topics do not match event definition, skip.\n                if (strict_) return\n                eventName = err.abiItem.name\n                isUnnamed = err.abiItem.inputs?.some(\n                  (x) => !('name' in x && x.name),\n                )\n              }\n\n              // Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).\n              const formatted = formatLog(log, {\n                args: isUnnamed ? [] : {},\n                eventName,\n              })\n              onLogs([formatted] as any)\n            }\n          },\n          onError(error: Error) {\n            onError?.(error)\n          },\n        })\n        unsubscribe = unsubscribe_\n        if (!active) unsubscribe()\n      } catch (err) {\n        onError?.(err as Error)\n      }\n    })()\n    return () => unsubscribe()\n  }\n\n  return enablePolling ? pollEvent() : subscribeEvent()\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Filter } from '../../types/filter.js'\nimport type { Hash } from '../../types/misc.js'\nimport type { GetPollOptions } from '../../types/transport.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { type ObserveErrorType, observe } from '../../utils/observe.js'\nimport { poll } from '../../utils/poll.js'\nimport { type StringifyErrorType, stringify } from '../../utils/stringify.js'\n\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter.js'\nimport { getFilterChanges } from './getFilterChanges.js'\nimport { uninstallFilter } from './uninstallFilter.js'\n\nexport type OnTransactionsParameter = Hash[]\nexport type OnTransactionsFn = (transactions: OnTransactionsParameter) => void\n\nexport type WatchPendingTransactionsParameters<\n  transport extends Transport = Transport,\n> = {\n  /** The callback to call when an error occurred when trying to get for a new block. */\n  onError?: ((error: Error) => void) | undefined\n  /** The callback to call when new transactions are received. */\n  onTransactions: OnTransactionsFn\n} & GetPollOptions<transport>\n\nexport type WatchPendingTransactionsReturnType = () => void\n\nexport type WatchPendingTransactionsErrorType =\n  | StringifyErrorType\n  | ObserveErrorType\n  | ErrorType\n\n/**\n * Watches and returns pending transaction hashes.\n *\n * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\n * - JSON-RPC Methods:\n *   - When `poll: true`\n *     - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n *     - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n *\n * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\n *\n * @param client - Client to use\n * @param parameters - {@link WatchPendingTransactionsParameters}\n * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchPendingTransactions } from 'viem/public'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const unwatch = await watchPendingTransactions(client, {\n *   onTransactions: (hashes) => console.log(hashes),\n * })\n */\nexport function watchPendingTransactions<\n  transport extends Transport,\n  chain extends Chain | undefined,\n>(\n  client: Client<transport, chain>,\n  {\n    batch = true,\n    onError,\n    onTransactions,\n    poll: poll_,\n    pollingInterval = client.pollingInterval,\n  }: WatchPendingTransactionsParameters<transport>,\n) {\n  const enablePolling =\n    typeof poll_ !== 'undefined'\n      ? poll_\n      : client.transport.type !== 'webSocket' && client.transport.type !== 'ipc'\n\n  const pollPendingTransactions = () => {\n    const observerId = stringify([\n      'watchPendingTransactions',\n      client.uid,\n      batch,\n      pollingInterval,\n    ])\n    return observe(observerId, { onTransactions, onError }, (emit) => {\n      let filter: Filter<'transaction'>\n\n      const unwatch = poll(\n        async () => {\n          try {\n            if (!filter) {\n              try {\n                filter = await getAction(\n                  client,\n                  createPendingTransactionFilter,\n                  'createPendingTransactionFilter',\n                )({})\n                return\n              } catch (err) {\n                unwatch()\n                throw err\n              }\n            }\n\n            const hashes = await getAction(\n              client,\n              getFilterChanges,\n              'getFilterChanges',\n            )({ filter })\n            if (hashes.length === 0) return\n            if (batch) emit.onTransactions(hashes)\n            else for (const hash of hashes) emit.onTransactions([hash])\n          } catch (err) {\n            emit.onError?.(err as Error)\n          }\n        },\n        {\n          emitOnBegin: true,\n          interval: pollingInterval,\n        },\n      )\n\n      return async () => {\n        if (filter)\n          await getAction(\n            client,\n            uninstallFilter,\n            'uninstallFilter',\n          )({ filter })\n        unwatch()\n      }\n    })\n  }\n\n  const subscribePendingTransactions = () => {\n    let active = true\n    let unsubscribe = () => (active = false)\n    ;(async () => {\n      try {\n        const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({\n          params: ['newPendingTransactions'],\n          onData(data: any) {\n            if (!active) return\n            const transaction = data.result\n            onTransactions([transaction])\n          },\n          onError(error: Error) {\n            onError?.(error)\n          },\n        })\n        unsubscribe = unsubscribe_\n        if (!active) unsubscribe()\n      } catch (err) {\n        onError?.(err as Error)\n      }\n    })()\n    return () => unsubscribe()\n  }\n\n  return enablePolling\n    ? pollPendingTransactions()\n    : subscribePendingTransactions()\n}\n","import type { Address } from 'abitype'\n\nimport type { ExactPartial, Prettify } from '../../types/utils.js'\nimport type { SiweMessage } from './types.js'\n\n/**\n * @description Parses EIP-4361 formatted message into message fields object.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n *\n * @returns EIP-4361 fields object\n */\nexport function parseSiweMessage(\n  message: string,\n): Prettify<ExactPartial<SiweMessage>> {\n  const { scheme, statement, ...prefix } = (message.match(prefixRegex)\n    ?.groups ?? {}) as {\n    address: Address\n    domain: string\n    scheme?: string\n    statement?: string\n  }\n  const { chainId, expirationTime, issuedAt, notBefore, requestId, ...suffix } =\n    (message.match(suffixRegex)?.groups ?? {}) as {\n      chainId: string\n      expirationTime?: string\n      issuedAt?: string\n      nonce: string\n      notBefore?: string\n      requestId?: string\n      uri: string\n      version: '1'\n    }\n  const resources = message.split('Resources:')[1]?.split('\\n- ').slice(1)\n  return {\n    ...prefix,\n    ...suffix,\n    ...(chainId ? { chainId: Number(chainId) } : {}),\n    ...(expirationTime ? { expirationTime: new Date(expirationTime) } : {}),\n    ...(issuedAt ? { issuedAt: new Date(issuedAt) } : {}),\n    ...(notBefore ? { notBefore: new Date(notBefore) } : {}),\n    ...(requestId ? { requestId } : {}),\n    ...(resources ? { resources } : {}),\n    ...(scheme ? { scheme } : {}),\n    ...(statement ? { statement } : {}),\n  }\n}\n\n// https://regexr.com/80gdj\nconst prefixRegex =\n  /^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\\/\\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\n)(?<address>0x[a-fA-F0-9]{40})\\n\\n(?:(?<statement>.*)\\n\\n)?/\n\n// https://regexr.com/80gf9\nconst suffixRegex =\n  /(?:URI: (?<uri>.+))\\n(?:Version: (?<version>.+))\\n(?:Chain ID: (?<chainId>\\d+))\\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\\n(?:Issued At: (?<issuedAt>.+))(?:\\nExpiration Time: (?<expirationTime>.+))?(?:\\nNot Before: (?<notBefore>.+))?(?:\\nRequest ID: (?<requestId>.+))?/\n","import type { Address } from 'abitype'\n\nimport type { ExactPartial } from '../../types/utils.js'\nimport { isAddress } from '../address/isAddress.js'\nimport { isAddressEqual } from '../address/isAddressEqual.js'\nimport type { SiweMessage } from './types.js'\n\nexport type ValidateSiweMessageParameters = {\n  /**\n   * Ethereum address to check against.\n   */\n  address?: Address | undefined\n  /**\n   * [RFC 3986](https://www.rfc-editor.org/rfc/rfc3986) authority to check against.\n   */\n  domain?: string | undefined\n  /**\n   * EIP-4361 message fields.\n   */\n  message: ExactPartial<SiweMessage>\n  /**\n   * Random string to check against.\n   */\n  nonce?: string | undefined\n  /**\n   * [RFC 3986](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) URI scheme to check against.\n   */\n  scheme?: string | undefined\n  /**\n   * Current time to check optional `expirationTime` and `notBefore` fields.\n   *\n   * @default new Date()\n   */\n  time?: Date | undefined\n}\n\nexport type ValidateSiweMessageReturnType = boolean\n\n/**\n * @description Validates EIP-4361 message.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4361\n */\nexport function validateSiweMessage(\n  parameters: ValidateSiweMessageParameters,\n): ValidateSiweMessageReturnType {\n  const {\n    address,\n    domain,\n    message,\n    nonce,\n    scheme,\n    time = new Date(),\n  } = parameters\n\n  if (domain && message.domain !== domain) return false\n  if (nonce && message.nonce !== nonce) return false\n  if (scheme && message.scheme !== scheme) return false\n\n  if (message.expirationTime && time >= message.expirationTime) return false\n  if (message.notBefore && time < message.notBefore) return false\n\n  try {\n    if (!message.address) return false\n    if (!isAddress(message.address, { strict: false })) return false\n    if (address && !isAddressEqual(message.address, address)) return false\n  } catch {\n    return false\n  }\n\n  return true\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { HashMessageErrorType } from '../../utils/signature/hashMessage.js'\nimport { hashMessage } from '../../utils/signature/hashMessage.js'\nimport { parseSiweMessage } from '../../utils/siwe/parseSiweMessage.js'\nimport {\n  type ValidateSiweMessageParameters,\n  validateSiweMessage,\n} from '../../utils/siwe/validateSiweMessage.js'\nimport {\n  type VerifyHashErrorType,\n  type VerifyHashParameters,\n  verifyHash,\n} from '../public/verifyHash.js'\n\nexport type VerifySiweMessageParameters = Prettify<\n  Pick<VerifyHashParameters, 'blockNumber' | 'blockTag'> &\n    Pick<\n      ValidateSiweMessageParameters,\n      'address' | 'domain' | 'nonce' | 'scheme' | 'time'\n    > & {\n      /**\n       * EIP-4361 formatted message.\n       */\n      message: string\n      /**\n       * Signature to check against.\n       */\n      signature: Hex\n    }\n>\n\nexport type VerifySiweMessageReturnType = boolean\n\nexport type VerifySiweMessageErrorType =\n  | HashMessageErrorType\n  | VerifyHashErrorType\n  | ErrorType\n\n/**\n * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n *\n * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n *\n * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n *\n * @param client - Client to use.\n * @param parameters - {@link VerifySiweMessageParameters}\n * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n */\nexport async function verifySiweMessage<chain extends Chain | undefined>(\n  client: Client<Transport, chain>,\n  parameters: VerifySiweMessageParameters,\n): Promise<VerifySiweMessageReturnType> {\n  const {\n    address,\n    domain,\n    message,\n    nonce,\n    scheme,\n    signature,\n    time = new Date(),\n    ...callRequest\n  } = parameters\n\n  const parsed = parseSiweMessage(message)\n  if (!parsed.address) return false\n\n  const isValid = validateSiweMessage({\n    address,\n    domain,\n    message: parsed,\n    nonce,\n    scheme,\n    time,\n  })\n  if (!isValid) return false\n\n  const hash = hashMessage(message)\n  return verifyHash(client, {\n    address: parsed.address,\n    hash,\n    signature,\n    ...callRequest,\n  })\n}\n","import type { Abi, AbiEvent, Address } from 'abitype'\n\nimport {\n  type GetEnsAddressParameters,\n  type GetEnsAddressReturnType,\n  getEnsAddress,\n} from '../../actions/ens/getEnsAddress.js'\nimport {\n  type GetEnsAvatarParameters,\n  type GetEnsAvatarReturnType,\n  getEnsAvatar,\n} from '../../actions/ens/getEnsAvatar.js'\nimport {\n  type GetEnsNameParameters,\n  type GetEnsNameReturnType,\n  getEnsName,\n} from '../../actions/ens/getEnsName.js'\nimport {\n  type GetEnsResolverParameters,\n  type GetEnsResolverReturnType,\n  getEnsResolver,\n} from '../../actions/ens/getEnsResolver.js'\nimport {\n  type GetEnsTextParameters,\n  type GetEnsTextReturnType,\n  getEnsText,\n} from '../../actions/ens/getEnsText.js'\nimport {\n  type CallParameters,\n  type CallReturnType,\n  call,\n} from '../../actions/public/call.js'\nimport {\n  type CreateAccessListParameters,\n  type CreateAccessListReturnType,\n  createAccessList,\n} from '../../actions/public/createAccessList.js'\nimport {\n  type CreateBlockFilterReturnType,\n  createBlockFilter,\n} from '../../actions/public/createBlockFilter.js'\nimport {\n  type CreateContractEventFilterParameters,\n  type CreateContractEventFilterReturnType,\n  createContractEventFilter,\n} from '../../actions/public/createContractEventFilter.js'\nimport {\n  type CreateEventFilterParameters,\n  type CreateEventFilterReturnType,\n  createEventFilter,\n} from '../../actions/public/createEventFilter.js'\nimport {\n  type CreatePendingTransactionFilterReturnType,\n  createPendingTransactionFilter,\n} from '../../actions/public/createPendingTransactionFilter.js'\nimport {\n  type EstimateContractGasParameters,\n  type EstimateContractGasReturnType,\n  estimateContractGas,\n} from '../../actions/public/estimateContractGas.js'\nimport {\n  type EstimateFeesPerGasParameters,\n  type EstimateFeesPerGasReturnType,\n  estimateFeesPerGas,\n} from '../../actions/public/estimateFeesPerGas.js'\nimport {\n  type EstimateGasParameters,\n  type EstimateGasReturnType,\n  estimateGas,\n} from '../../actions/public/estimateGas.js'\nimport {\n  type EstimateMaxPriorityFeePerGasParameters,\n  type EstimateMaxPriorityFeePerGasReturnType,\n  estimateMaxPriorityFeePerGas,\n} from '../../actions/public/estimateMaxPriorityFeePerGas.js'\nimport {\n  type GetBalanceParameters,\n  type GetBalanceReturnType,\n  getBalance,\n} from '../../actions/public/getBalance.js'\nimport {\n  type GetBlobBaseFeeReturnType,\n  getBlobBaseFee,\n} from '../../actions/public/getBlobBaseFee.js'\nimport {\n  type GetBlockParameters,\n  type GetBlockReturnType,\n  getBlock,\n} from '../../actions/public/getBlock.js'\nimport {\n  type GetBlockNumberParameters,\n  type GetBlockNumberReturnType,\n  getBlockNumber,\n} from '../../actions/public/getBlockNumber.js'\nimport {\n  type GetBlockTransactionCountParameters,\n  type GetBlockTransactionCountReturnType,\n  getBlockTransactionCount,\n} from '../../actions/public/getBlockTransactionCount.js'\nimport {\n  type GetChainIdReturnType,\n  getChainId,\n} from '../../actions/public/getChainId.js'\nimport {\n  type GetCodeParameters,\n  type GetCodeReturnType,\n  getCode,\n} from '../../actions/public/getCode.js'\nimport {\n  type GetContractEventsParameters,\n  type GetContractEventsReturnType,\n  getContractEvents,\n} from '../../actions/public/getContractEvents.js'\nimport {\n  type GetEip712DomainParameters,\n  type GetEip712DomainReturnType,\n  getEip712Domain,\n} from '../../actions/public/getEip712Domain.js'\nimport {\n  type GetFeeHistoryParameters,\n  type GetFeeHistoryReturnType,\n  getFeeHistory,\n} from '../../actions/public/getFeeHistory.js'\nimport {\n  type GetFilterChangesParameters,\n  type GetFilterChangesReturnType,\n  getFilterChanges,\n} from '../../actions/public/getFilterChanges.js'\nimport {\n  type GetFilterLogsParameters,\n  type GetFilterLogsReturnType,\n  getFilterLogs,\n} from '../../actions/public/getFilterLogs.js'\nimport {\n  type GetGasPriceReturnType,\n  getGasPrice,\n} from '../../actions/public/getGasPrice.js'\nimport {\n  type GetLogsParameters,\n  type GetLogsReturnType,\n  getLogs,\n} from '../../actions/public/getLogs.js'\nimport {\n  type GetProofParameters,\n  type GetProofReturnType,\n  getProof,\n} from '../../actions/public/getProof.js'\nimport {\n  type GetStorageAtParameters,\n  type GetStorageAtReturnType,\n  getStorageAt,\n} from '../../actions/public/getStorageAt.js'\nimport {\n  type GetTransactionParameters,\n  type GetTransactionReturnType,\n  getTransaction,\n} from '../../actions/public/getTransaction.js'\nimport {\n  type GetTransactionConfirmationsParameters,\n  type GetTransactionConfirmationsReturnType,\n  getTransactionConfirmations,\n} from '../../actions/public/getTransactionConfirmations.js'\nimport {\n  type GetTransactionCountParameters,\n  type GetTransactionCountReturnType,\n  getTransactionCount,\n} from '../../actions/public/getTransactionCount.js'\nimport {\n  type GetTransactionReceiptParameters,\n  type GetTransactionReceiptReturnType,\n  getTransactionReceipt,\n} from '../../actions/public/getTransactionReceipt.js'\nimport {\n  type MulticallParameters,\n  type MulticallReturnType,\n  multicall,\n} from '../../actions/public/multicall.js'\nimport {\n  type ReadContractParameters,\n  type ReadContractReturnType,\n  readContract,\n} from '../../actions/public/readContract.js'\nimport {\n  type SimulateBlocksParameters,\n  type SimulateBlocksReturnType,\n  simulateBlocks,\n} from '../../actions/public/simulateBlocks.js'\nimport {\n  type SimulateCallsParameters,\n  type SimulateCallsReturnType,\n  simulateCalls,\n} from '../../actions/public/simulateCalls.js'\nimport {\n  type SimulateContractParameters,\n  type SimulateContractReturnType,\n  simulateContract,\n} from '../../actions/public/simulateContract.js'\nimport {\n  type UninstallFilterParameters,\n  type UninstallFilterReturnType,\n  uninstallFilter,\n} from '../../actions/public/uninstallFilter.js'\nimport {\n  type VerifyMessageParameters,\n  type VerifyMessageReturnType,\n  verifyMessage,\n} from '../../actions/public/verifyMessage.js'\nimport {\n  type VerifyTypedDataParameters,\n  type VerifyTypedDataReturnType,\n  verifyTypedData,\n} from '../../actions/public/verifyTypedData.js'\nimport {\n  type WaitForTransactionReceiptParameters,\n  type WaitForTransactionReceiptReturnType,\n  waitForTransactionReceipt,\n} from '../../actions/public/waitForTransactionReceipt.js'\nimport {\n  type WatchBlockNumberParameters,\n  type WatchBlockNumberReturnType,\n  watchBlockNumber,\n} from '../../actions/public/watchBlockNumber.js'\nimport {\n  type WatchBlocksParameters,\n  type WatchBlocksReturnType,\n  watchBlocks,\n} from '../../actions/public/watchBlocks.js'\nimport {\n  type WatchContractEventParameters,\n  type WatchContractEventReturnType,\n  watchContractEvent,\n} from '../../actions/public/watchContractEvent.js'\nimport {\n  type WatchEventParameters,\n  type WatchEventReturnType,\n  watchEvent,\n} from '../../actions/public/watchEvent.js'\nimport {\n  type WatchPendingTransactionsParameters,\n  type WatchPendingTransactionsReturnType,\n  watchPendingTransactions,\n} from '../../actions/public/watchPendingTransactions.js'\nimport {\n  type VerifySiweMessageParameters,\n  type VerifySiweMessageReturnType,\n  verifySiweMessage,\n} from '../../actions/siwe/verifySiweMessage.js'\nimport {\n  type PrepareTransactionRequestParameters,\n  type PrepareTransactionRequestRequest,\n  type PrepareTransactionRequestReturnType,\n  prepareTransactionRequest,\n} from '../../actions/wallet/prepareTransactionRequest.js'\nimport {\n  type SendRawTransactionParameters,\n  type SendRawTransactionReturnType,\n  sendRawTransaction,\n} from '../../actions/wallet/sendRawTransaction.js'\nimport type { Account } from '../../types/account.js'\nimport type { BlockNumber, BlockTag } from '../../types/block.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractEventName,\n  ContractFunctionArgs,\n  ContractFunctionName,\n  MaybeAbiEventName,\n  MaybeExtractEventArgsFromAbi,\n} from '../../types/contract.js'\nimport type { FeeValuesType } from '../../types/fee.js'\nimport type { FilterType } from '../../types/filter.js'\nimport type { Client } from '../createClient.js'\nimport type { Transport } from '../transports/createTransport.js'\n\nexport type PublicActions<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n> = {\n  /**\n   * Executes a new message call immediately without submitting a transaction to the network.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/call\n   * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n   *\n   * @param args - {@link CallParameters}\n   * @returns The call data. {@link CallReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const data = await client.call({\n   *   account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n   *   data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n   *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   * })\n   */\n  call: (parameters: CallParameters<chain>) => Promise<CallReturnType>\n  /**\n   * Creates an EIP-2930 access list that you can include in a transaction.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/createAccessList\n   * - JSON-RPC Methods: `eth_createAccessList`\n   *\n   * @param args - {@link CreateAccessListParameters}\n   * @returns The call data. {@link CreateAccessListReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const data = await client.createAccessList({\n   *   data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n   *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   * })\n   */\n  createAccessList: (\n    parameters: CreateAccessListParameters<chain>,\n  ) => Promise<CreateAccessListReturnType>\n  /**\n   * Creates a Filter to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n   *\n   * - Docs: https://viem.sh/docs/actions/public/createBlockFilter\n   * - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter)\n   *\n   * @returns Filter. {@link CreateBlockFilterReturnType}\n   *\n   * @example\n   * import { createPublicClient, createBlockFilter, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await createBlockFilter(client)\n   * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'block' }\n   */\n  createBlockFilter: () => Promise<CreateBlockFilterReturnType>\n  /**\n   * Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs).\n   *\n   * - Docs: https://viem.sh/docs/contract/createContractEventFilter\n   *\n   * @param args - {@link CreateContractEventFilterParameters}\n   * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateContractEventFilterReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createContractEventFilter({\n   *   abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n   * })\n   */\n  createContractEventFilter: <\n    const abi extends Abi | readonly unknown[],\n    eventName extends ContractEventName<abi> | undefined,\n    args extends MaybeExtractEventArgsFromAbi<abi, eventName> | undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  >(\n    args: CreateContractEventFilterParameters<\n      abi,\n      eventName,\n      args,\n      strict,\n      fromBlock,\n      toBlock\n    >,\n  ) => Promise<\n    CreateContractEventFilterReturnType<\n      abi,\n      eventName,\n      args,\n      strict,\n      fromBlock,\n      toBlock\n    >\n  >\n  /**\n   * Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n   *\n   * - Docs: https://viem.sh/docs/actions/public/createEventFilter\n   * - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter)\n   *\n   * @param args - {@link CreateEventFilterParameters}\n   * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateEventFilterReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createEventFilter({\n   *   address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',\n   * })\n   */\n  createEventFilter: <\n    const abiEvent extends AbiEvent | undefined = undefined,\n    const abiEvents extends\n      | readonly AbiEvent[]\n      | readonly unknown[]\n      | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n    _EventName extends string | undefined = MaybeAbiEventName<abiEvent>,\n    _Args extends\n      | MaybeExtractEventArgsFromAbi<abiEvents, _EventName>\n      | undefined = undefined,\n  >(\n    args?:\n      | CreateEventFilterParameters<\n          abiEvent,\n          abiEvents,\n          strict,\n          fromBlock,\n          toBlock,\n          _EventName,\n          _Args\n        >\n      | undefined,\n  ) => Promise<\n    CreateEventFilterReturnType<\n      abiEvent,\n      abiEvents,\n      strict,\n      fromBlock,\n      toBlock,\n      _EventName,\n      _Args\n    >\n  >\n  /**\n   * Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges).\n   *\n   * - Docs: https://viem.sh/docs/actions/public/createPendingTransactionFilter\n   * - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter)\n   *\n   * @returns [`Filter`](https://viem.sh/docs/glossary/types#filter). {@link CreateBlockFilterReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createPendingTransactionFilter()\n   * // { id: \"0x345a6572337856574a76364e457a4366\", type: 'transaction' }\n   */\n  createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>\n  /**\n   * Estimates the gas required to successfully execute a contract write function call.\n   *\n   * - Docs: https://viem.sh/docs/contract/estimateContractGas\n   *\n   * @remarks\n   * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n   *\n   * @param args - {@link EstimateContractGasParameters}\n   * @returns The gas estimate (in wei). {@link EstimateContractGasReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const gas = await client.estimateContractGas({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['function mint() public']),\n   *   functionName: 'mint',\n   *   account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n   * })\n   */\n  estimateContractGas: <\n    chain extends Chain | undefined,\n    const abi extends Abi | readonly unknown[],\n    functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n    args extends ContractFunctionArgs<\n      abi,\n      'nonpayable' | 'payable',\n      functionName\n    >,\n  >(\n    args: EstimateContractGasParameters<abi, functionName, args, chain>,\n  ) => Promise<EstimateContractGasReturnType>\n  /**\n   * Estimates the gas necessary to complete a transaction without submitting it to the network.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/estimateGas\n   * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n   *\n   * @param args - {@link EstimateGasParameters}\n   * @returns The gas estimate (in wei). {@link EstimateGasReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseEther } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const gasEstimate = await client.estimateGas({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *   value: parseEther('1'),\n   * })\n   */\n  estimateGas: (\n    args: EstimateGasParameters<chain>,\n  ) => Promise<EstimateGasReturnType>\n  /**\n   * Returns the balance of an address in wei.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getBalance\n   * - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance)\n   *\n   * @remarks\n   * You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther).\n   *\n   * ```ts\n   * const balance = await getBalance(client, {\n   *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   blockTag: 'safe'\n   * })\n   * const balanceAsEther = formatEther(balance)\n   * // \"6.942\"\n   * ```\n   *\n   * @param args - {@link GetBalanceParameters}\n   * @returns The balance of the address in wei. {@link GetBalanceReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const balance = await client.getBalance({\n   *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   * // 10000000000000000000000n (wei)\n   */\n  getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>\n  /**\n   * Returns the base fee per blob gas in wei.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getBlobBaseFee\n   * - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee)\n   *\n   * @param client - Client to use\n   * @returns The blob base fee (in wei). {@link GetBlobBaseFeeReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { getBlobBaseFee } from 'viem/public'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const blobBaseFee = await client.getBlobBaseFee()\n   */\n  getBlobBaseFee: () => Promise<GetBlobBaseFeeReturnType>\n  /**\n   * Returns information about a block at a block number, hash, or tag.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getBlock\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n   * - JSON-RPC Methods:\n   *   - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n   *   - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n   *\n   * @param args - {@link GetBlockParameters}\n   * @returns Information about the block. {@link GetBlockReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const block = await client.getBlock()\n   */\n  getBlock: <\n    includeTransactions extends boolean = false,\n    blockTag extends BlockTag = 'latest',\n  >(\n    args?: GetBlockParameters<includeTransactions, blockTag> | undefined,\n  ) => Promise<GetBlockReturnType<chain, includeTransactions, blockTag>>\n  /**\n   * Returns the number of the most recent block seen.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getBlockNumber\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks\n   * - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber)\n   *\n   * @param args - {@link GetBlockNumberParameters}\n   * @returns The number of the block. {@link GetBlockNumberReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const blockNumber = await client.getBlockNumber()\n   * // 69420n\n   */\n  getBlockNumber: (\n    args?: GetBlockNumberParameters | undefined,\n  ) => Promise<GetBlockNumberReturnType>\n  /**\n   * Returns the number of Transactions at a block number, hash, or tag.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getBlockTransactionCount\n   * - JSON-RPC Methods:\n   *   - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`.\n   *   - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`.\n   *\n   * @param args - {@link GetBlockTransactionCountParameters}\n   * @returns The block transaction count. {@link GetBlockTransactionCountReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const count = await client.getBlockTransactionCount()\n   */\n  getBlockTransactionCount: (\n    args?: GetBlockTransactionCountParameters | undefined,\n  ) => Promise<GetBlockTransactionCountReturnType>\n  /** @deprecated Use `getCode` instead. */\n  getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>\n  /**\n   * Returns the chain ID associated with the current network.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getChainId\n   * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n   *\n   * @returns The current chain ID. {@link GetChainIdReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const chainId = await client.getChainId()\n   * // 1\n   */\n  getChainId: () => Promise<GetChainIdReturnType>\n  /**\n   * Retrieves the bytecode at an address.\n   *\n   * - Docs: https://viem.sh/docs/contract/getCode\n   * - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode)\n   *\n   * @param args - {@link GetBytecodeParameters}\n   * @returns The contract's bytecode. {@link GetBytecodeReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const code = await client.getCode({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   * })\n   */\n  getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>\n  /**\n   * Returns a list of event logs emitted by a contract.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getContractEvents\n   * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n   *\n   * @param client - Client to use\n   * @param parameters - {@link GetContractEventsParameters}\n   * @returns A list of event logs. {@link GetContractEventsReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { wagmiAbi } from './abi'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const logs = await client.getContractEvents(client, {\n   *  address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *  abi: wagmiAbi,\n   *  eventName: 'Transfer'\n   * })\n   */\n  getContractEvents: <\n    const abi extends Abi | readonly unknown[],\n    eventName extends ContractEventName<abi> | undefined = undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  >(\n    args: GetContractEventsParameters<\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >,\n  ) => Promise<\n    GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>\n  >\n  /**\n   * Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.\n   *\n   * @param client - A {@link Client} instance.\n   * @param parameters - The parameters of the action. {@link GetEip712DomainParameters}\n   * @returns The EIP-712 domain, fields, and extensions. {@link GetEip712DomainReturnType}\n   *\n   * @example\n   * ```ts\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const domain = await client.getEip712Domain({\n   *   address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n   * })\n   * // {\n   * //   domain: {\n   * //     name: 'ExampleContract',\n   * //     version: '1',\n   * //     chainId: 1,\n   * //     verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n   * //   },\n   * //   fields: '0x0f',\n   * //   extensions: [],\n   * // }\n   * ```\n   */\n  getEip712Domain: (\n    args: GetEip712DomainParameters,\n  ) => Promise<GetEip712DomainReturnType>\n  /**\n   * Gets address for ENS name.\n   *\n   * - Docs: https://viem.sh/docs/ens/actions/getEnsAddress\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n   *\n   * @remarks\n   * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n   *\n   * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n   *\n   * @param args - {@link GetEnsAddressParameters}\n   * @returns Address for ENS name or `null` if not found. {@link GetEnsAddressReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { normalize } from 'viem/ens'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const ensAddress = await client.getEnsAddress({\n   *   name: normalize('wevm.eth'),\n   * })\n   * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'\n   */\n  getEnsAddress: (\n    args: GetEnsAddressParameters,\n  ) => Promise<GetEnsAddressReturnType>\n  /**\n   * Gets the avatar of an ENS name.\n   *\n   * - Docs: https://viem.sh/docs/ens/actions/getEnsAvatar\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n   *\n   * @remarks\n   * Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`.\n   *\n   * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n   *\n   * @param args - {@link GetEnsAvatarParameters}\n   * @returns Avatar URI or `null` if not found. {@link GetEnsAvatarReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { normalize } from 'viem/ens'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const ensAvatar = await client.getEnsAvatar({\n   *   name: normalize('wevm.eth'),\n   * })\n   * // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'\n   */\n  getEnsAvatar: (\n    args: GetEnsAvatarParameters,\n  ) => Promise<GetEnsAvatarReturnType>\n  /**\n   * Gets primary name for specified address.\n   *\n   * - Docs: https://viem.sh/docs/ens/actions/getEnsName\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n   *\n   * @remarks\n   * Calls `reverse(bytes)` on ENS Universal Resolver Contract to \"reverse resolve\" the address to the primary ENS name.\n   *\n   * @param args - {@link GetEnsNameParameters}\n   * @returns Name or `null` if not found. {@link GetEnsNameReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const ensName = await client.getEnsName({\n   *   address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',\n   * })\n   * // 'wevm.eth'\n   */\n  getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>\n  /**\n   * Gets resolver for ENS name.\n   *\n   * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n   *\n   * @remarks\n   * Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.\n   *\n   * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n   *\n   * @param args - {@link GetEnsResolverParameters}\n   * @returns Address for ENS resolver. {@link GetEnsResolverReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { normalize } from 'viem/ens'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const resolverAddress = await client.getEnsResolver({\n   *   name: normalize('wevm.eth'),\n   * })\n   * // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'\n   */\n  getEnsResolver: (\n    args: GetEnsResolverParameters,\n  ) => Promise<GetEnsResolverReturnType>\n  /**\n   * Gets a text record for specified ENS name.\n   *\n   * - Docs: https://viem.sh/docs/ens/actions/getEnsResolver\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/ens\n   *\n   * @remarks\n   * Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.\n   *\n   * Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this.\n   *\n   * @param args - {@link GetEnsTextParameters}\n   * @returns Address for ENS resolver. {@link GetEnsTextReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { normalize } from 'viem/ens'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const twitterRecord = await client.getEnsText({\n   *   name: normalize('wevm.eth'),\n   *   key: 'com.twitter',\n   * })\n   * // 'wevm_dev'\n   */\n  getEnsText: (args: GetEnsTextParameters) => Promise<GetEnsTextReturnType>\n  /**\n   * Returns a collection of historical gas information.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getFeeHistory\n   * - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory)\n   *\n   * @param args - {@link GetFeeHistoryParameters}\n   * @returns The gas estimate (in wei). {@link GetFeeHistoryReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const feeHistory = await client.getFeeHistory({\n   *   blockCount: 4,\n   *   rewardPercentiles: [25, 75],\n   * })\n   */\n  getFeeHistory: (\n    args: GetFeeHistoryParameters,\n  ) => Promise<GetFeeHistoryReturnType>\n  /**\n   * Returns an estimate for the fees per gas for a transaction to be included\n   * in the next block.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas\n   *\n   * @param client - Client to use\n   * @param parameters - {@link EstimateFeesPerGasParameters}\n   * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const maxPriorityFeePerGas = await client.estimateFeesPerGas()\n   * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n   */\n  estimateFeesPerGas: <\n    chainOverride extends Chain | undefined = undefined,\n    type extends FeeValuesType = 'eip1559',\n  >(\n    args?: EstimateFeesPerGasParameters<chain, chainOverride, type> | undefined,\n  ) => Promise<EstimateFeesPerGasReturnType<type>>\n  /**\n   * Returns a list of logs or hashes based on a [Filter](/docs/glossary/terms#filter) since the last time it was called.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getFilterChanges\n   * - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges)\n   *\n   * @remarks\n   * A Filter can be created from the following actions:\n   *\n   * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n   * - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter)\n   * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n   * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n   *\n   * Depending on the type of filter, the return value will be different:\n   *\n   * - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs.\n   * - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes.\n   * - If the filter was created with `createBlockFilter`, it returns a list of block hashes.\n   *\n   * @param args - {@link GetFilterChangesParameters}\n   * @returns Logs or hashes. {@link GetFilterChangesReturnType}\n   *\n   * @example\n   * // Blocks\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createBlockFilter()\n   * const hashes = await client.getFilterChanges({ filter })\n   *\n   * @example\n   * // Contract Events\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createContractEventFilter({\n   *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n   *   abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),\n   *   eventName: 'Transfer',\n   * })\n   * const logs = await client.getFilterChanges({ filter })\n   *\n   * @example\n   * // Raw Events\n   * import { createPublicClient, http, parseAbiItem } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createEventFilter({\n   *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n   *   event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n   * })\n   * const logs = await client.getFilterChanges({ filter })\n   *\n   * @example\n   * // Transactions\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createPendingTransactionFilter()\n   * const hashes = await client.getFilterChanges({ filter })\n   */\n  getFilterChanges: <\n    filterType extends FilterType,\n    const abi extends Abi | readonly unknown[] | undefined,\n    eventName extends string | undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  >(\n    args: GetFilterChangesParameters<\n      filterType,\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >,\n  ) => Promise<\n    GetFilterChangesReturnType<\n      filterType,\n      abi,\n      eventName,\n      strict,\n      fromBlock,\n      toBlock\n    >\n  >\n  /**\n   * Returns a list of event logs since the filter was created.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getFilterLogs\n   * - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs)\n   *\n   * @remarks\n   * `getFilterLogs` is only compatible with **event filters**.\n   *\n   * @param args - {@link GetFilterLogsParameters}\n   * @returns A list of event logs. {@link GetFilterLogsReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbiItem } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const filter = await client.createEventFilter({\n   *   address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n   *   event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),\n   * })\n   * const logs = await client.getFilterLogs({ filter })\n   */\n  getFilterLogs: <\n    const abi extends Abi | readonly unknown[] | undefined,\n    eventName extends string | undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  >(\n    args: GetFilterLogsParameters<abi, eventName, strict, fromBlock, toBlock>,\n  ) => Promise<\n    GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>\n  >\n  /**\n   * Returns the current price of gas (in wei).\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getGasPrice\n   * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n   *\n   * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const gasPrice = await client.getGasPrice()\n   */\n  getGasPrice: () => Promise<GetGasPriceReturnType>\n  /**\n   * Returns a list of event logs matching the provided parameters.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getLogs\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs\n   * - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs)\n   *\n   * @param args - {@link GetLogsParameters}\n   * @returns A list of event logs. {@link GetLogsReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbiItem } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const logs = await client.getLogs()\n   */\n  getLogs: <\n    const abiEvent extends AbiEvent | undefined = undefined,\n    const abiEvents extends\n      | readonly AbiEvent[]\n      | readonly unknown[]\n      | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n    strict extends boolean | undefined = undefined,\n    fromBlock extends BlockNumber | BlockTag | undefined = undefined,\n    toBlock extends BlockNumber | BlockTag | undefined = undefined,\n  >(\n    args?:\n      | GetLogsParameters<abiEvent, abiEvents, strict, fromBlock, toBlock>\n      | undefined,\n  ) => Promise<\n    GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>\n  >\n  /**\n   * Returns the account and storage values of the specified account including the Merkle-proof.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getProof\n   * - JSON-RPC Methods:\n   *   - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186)\n   *\n   * @param client - Client to use\n   * @param parameters - {@link GetProofParameters}\n   * @returns Proof data. {@link GetProofReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const block = await client.getProof({\n   *  address: '0x...',\n   *  storageKeys: ['0x...'],\n   * })\n   */\n  getProof: (args: GetProofParameters) => Promise<GetProofReturnType>\n  /**\n   * Returns an estimate for the max priority fee per gas (in wei) for a transaction\n   * to be included in the next block.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas\n   *\n   * @param client - Client to use\n   * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()\n   * // 10000000n\n   */\n  estimateMaxPriorityFeePerGas: <\n    chainOverride extends Chain | undefined = undefined,\n  >(\n    args?:\n      | EstimateMaxPriorityFeePerGasParameters<chain, chainOverride>\n      | undefined,\n  ) => Promise<EstimateMaxPriorityFeePerGasReturnType>\n  /**\n   * Returns the value from a storage slot at a given address.\n   *\n   * - Docs: https://viem.sh/docs/contract/getStorageAt\n   * - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat)\n   *\n   * @param args - {@link GetStorageAtParameters}\n   * @returns The value of the storage slot. {@link GetStorageAtReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { getStorageAt } from 'viem/contract'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const code = await client.getStorageAt({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   slot: toHex(0),\n   * })\n   */\n  getStorageAt: (\n    args: GetStorageAtParameters,\n  ) => Promise<GetStorageAtReturnType>\n  /**\n   * Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getTransaction\n   * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n   * - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash)\n   *\n   * @param args - {@link GetTransactionParameters}\n   * @returns The transaction information. {@link GetTransactionReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const transaction = await client.getTransaction({\n   *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n   * })\n   */\n  getTransaction: <blockTag extends BlockTag = 'latest'>(\n    args: GetTransactionParameters<blockTag>,\n  ) => Promise<GetTransactionReturnType<chain, blockTag>>\n  /**\n   * Returns the number of blocks passed (confirmations) since the transaction was processed on a block.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getTransactionConfirmations\n   * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n   * - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations)\n   *\n   * @param args - {@link GetTransactionConfirmationsParameters}\n   * @returns The number of blocks passed since the transaction was processed. If confirmations is 0, then the Transaction has not been confirmed & processed yet. {@link GetTransactionConfirmationsReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const confirmations = await client.getTransactionConfirmations({\n   *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n   * })\n   */\n  getTransactionConfirmations: (\n    args: GetTransactionConfirmationsParameters<chain>,\n  ) => Promise<GetTransactionConfirmationsReturnType>\n  /**\n   * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has broadcast / sent.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getTransactionCount\n   * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n   *\n   * @param args - {@link GetTransactionCountParameters}\n   * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const transactionCount = await client.getTransactionCount({\n   *   address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   */\n  getTransactionCount: (\n    args: GetTransactionCountParameters,\n  ) => Promise<GetTransactionCountReturnType>\n  /**\n   * Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt\n   * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions\n   * - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)\n   *\n   * @param args - {@link GetTransactionReceiptParameters}\n   * @returns The transaction receipt. {@link GetTransactionReceiptReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const transactionReceipt = await client.getTransactionReceipt({\n   *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n   * })\n   */\n  getTransactionReceipt: (\n    args: GetTransactionReceiptParameters,\n  ) => Promise<GetTransactionReceiptReturnType<chain>>\n  /**\n   * Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall).\n   *\n   * - Docs: https://viem.sh/docs/contract/multicall\n   *\n   * @param args - {@link MulticallParameters}\n   * @returns An array of results with accompanying status. {@link MulticallReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const abi = parseAbi([\n   *   'function balanceOf(address) view returns (uint256)',\n   *   'function totalSupply() view returns (uint256)',\n   * ])\n   * const result = await client.multicall({\n   *   contracts: [\n   *     {\n   *       address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *       abi,\n   *       functionName: 'balanceOf',\n   *       args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n   *     },\n   *     {\n   *       address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *       abi,\n   *       functionName: 'totalSupply',\n   *     },\n   *   ],\n   * })\n   * // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]\n   */\n  multicall: <\n    const contracts extends readonly unknown[],\n    allowFailure extends boolean = true,\n  >(\n    args: MulticallParameters<contracts, allowFailure>,\n  ) => Promise<MulticallReturnType<contracts, allowFailure>>\n  /**\n   * Prepares a transaction request for signing.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\n   *\n   * @param args - {@link PrepareTransactionRequestParameters}\n   * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   */\n  prepareTransactionRequest: <\n    const request extends PrepareTransactionRequestRequest<\n      chain,\n      chainOverride\n    >,\n    chainOverride extends Chain | undefined = undefined,\n    accountOverride extends Account | Address | undefined = undefined,\n  >(\n    args: PrepareTransactionRequestParameters<\n      chain,\n      account,\n      chainOverride,\n      accountOverride,\n      request\n    >,\n  ) => Promise<\n    PrepareTransactionRequestReturnType<\n      chain,\n      account,\n      chainOverride,\n      accountOverride,\n      request\n    >\n  >\n  /**\n   * Calls a read-only function on a contract, and returns the response.\n   *\n   * - Docs: https://viem.sh/docs/contract/readContract\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_reading-contracts\n   *\n   * @remarks\n   * A \"read-only\" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.\n   *\n   * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n   *\n   * @param args - {@link ReadContractParameters}\n   * @returns The response from the contract. Type is inferred. {@link ReadContractReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { readContract } from 'viem/contract'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const result = await client.readContract({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['function balanceOf(address) view returns (uint256)']),\n   *   functionName: 'balanceOf',\n   *   args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],\n   * })\n   * // 424122n\n   */\n  readContract: <\n    const abi extends Abi | readonly unknown[],\n    functionName extends ContractFunctionName<abi, 'pure' | 'view'>,\n    const args extends ContractFunctionArgs<abi, 'pure' | 'view', functionName>,\n  >(\n    args: ReadContractParameters<abi, functionName, args>,\n  ) => Promise<ReadContractReturnType<abi, functionName, args>>\n  /**\n   * Sends a **signed** transaction to the network\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n   * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n   *\n   * @param client - Client to use\n   * @param parameters - {@link SendRawTransactionParameters}\n   * @returns The transaction hash. {@link SendRawTransactionReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { sendRawTransaction } from 'viem/wallet'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const hash = await client.sendRawTransaction({\n   *   serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n   * })\n   */\n  sendRawTransaction: (\n    args: SendRawTransactionParameters,\n  ) => Promise<SendRawTransactionReturnType>\n  /**\n   * @deprecated Use `simulateBlocks` instead.\n   */\n  simulate: <const calls extends readonly unknown[]>(\n    args: SimulateBlocksParameters<calls>,\n  ) => Promise<SimulateBlocksReturnType<calls>>\n  /**\n   * Simulates a set of calls on block(s) with optional block and state overrides.\n   *\n   * @example\n   * ```ts\n   * import { createPublicClient, http, parseEther } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const result = await client.simulateBlocks({\n   *   blocks: [{\n   *     blockOverrides: {\n   *       number: 69420n,\n   *     },\n   *     calls: [{\n   *       {\n   *         account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n   *         data: '0xdeadbeef',\n   *         to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *       },\n   *       {\n   *         account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n   *         to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *         value: parseEther('1'),\n   *       },\n   *     }],\n   *     stateOverrides: [{\n   *       address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n   *       balance: parseEther('10'),\n   *     }],\n   *   }]\n   * })\n   * ```\n   *\n   * @param client - Client to use.\n   * @param parameters - {@link SimulateParameters}\n   * @returns Simulated blocks. {@link SimulateReturnType}\n   */\n  simulateBlocks: <const calls extends readonly unknown[]>(\n    args: SimulateBlocksParameters<calls>,\n  ) => Promise<SimulateBlocksReturnType<calls>>\n  /**\n   * Simulates a set of calls.\n   *\n   * @example\n   * ```ts\n   * import { createPublicClient, http, parseEther } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const result = await client.simulateCalls({\n   *   account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',\n   *   calls: [{\n   *     {\n   *       data: '0xdeadbeef',\n   *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *     },\n   *     {\n   *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *       value: parseEther('1'),\n   *     },\n   *   ]\n   * })\n   * ```\n   *\n   * @param client - Client to use.\n   * @param parameters - {@link SimulateCallsParameters}\n   * @returns Results. {@link SimulateCallsReturnType}\n   */\n  simulateCalls: <const calls extends readonly unknown[]>(\n    args: SimulateCallsParameters<calls>,\n  ) => Promise<SimulateCallsReturnType<calls>>\n  /**\n   * Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions.\n   *\n   * - Docs: https://viem.sh/docs/contract/simulateContract\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n   *\n   * @remarks\n   * This function does not require gas to execute and _**does not**_ change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions.\n   *\n   * Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n   *\n   * @param args - {@link SimulateContractParameters}\n   * @returns The simulation result and write request. {@link SimulateContractReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const result = await client.simulateContract({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['function mint(uint32) view returns (uint32)']),\n   *   functionName: 'mint',\n   *   args: ['69420'],\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   */\n  simulateContract: <\n    const abi extends Abi | readonly unknown[],\n    functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,\n    const args extends ContractFunctionArgs<\n      abi,\n      'nonpayable' | 'payable',\n      functionName\n    >,\n    chainOverride extends Chain | undefined,\n    accountOverride extends Account | Address | undefined = undefined,\n  >(\n    args: SimulateContractParameters<\n      abi,\n      functionName,\n      args,\n      chain,\n      chainOverride,\n      accountOverride\n    >,\n  ) => Promise<\n    SimulateContractReturnType<\n      abi,\n      functionName,\n      args,\n      chain,\n      account,\n      chainOverride,\n      accountOverride\n    >\n  >\n  /**\n   * Verify that a message was signed by the provided address.\n   *\n   * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n   *\n   * - Docs {@link https://viem.sh/docs/actions/public/verifyMessage}\n   *\n   * @param parameters - {@link VerifyMessageParameters}\n   * @returns Whether or not the signature is valid. {@link VerifyMessageReturnType}\n   */\n  verifyMessage: (\n    args: VerifyMessageParameters,\n  ) => Promise<VerifyMessageReturnType>\n  /**\n   * Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed.\n   *\n   * Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492).\n   *\n   * - Docs {@link https://viem.sh/docs/siwe/actions/verifySiweMessage}\n   *\n   * @param parameters - {@link VerifySiweMessageParameters}\n   * @returns Whether or not the signature is valid. {@link VerifySiweMessageReturnType}\n   */\n  verifySiweMessage: (\n    args: VerifySiweMessageParameters,\n  ) => Promise<VerifySiweMessageReturnType>\n  /**\n   * Verify that typed data was signed by the provided address.\n   *\n   * - Docs {@link https://viem.sh/docs/actions/public/verifyTypedData}\n   *\n   * @param parameters - {@link VerifyTypedDataParameters}\n   * @returns Whether or not the signature is valid. {@link VerifyTypedDataReturnType}\n   */\n  verifyTypedData: (\n    args: VerifyTypedDataParameters,\n  ) => Promise<VerifyTypedDataReturnType>\n  /**\n   * Destroys a Filter that was created from one of the following Actions:\n   *\n   * - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter)\n   * - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter)\n   * - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter)\n   *\n   * - Docs: https://viem.sh/docs/actions/public/uninstallFilter\n   * - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter)\n   *\n   * @param args - {@link UninstallFilterParameters}\n   * @returns A boolean indicating if the Filter was successfully uninstalled. {@link UninstallFilterReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'\n   *\n   * const filter = await client.createPendingTransactionFilter()\n   * const uninstalled = await client.uninstallFilter({ filter })\n   * // true\n   */\n  uninstallFilter: (\n    args: UninstallFilterParameters,\n  ) => Promise<UninstallFilterReturnType>\n  /**\n   * Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/waitForTransactionReceipt\n   * - Example: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n   * - JSON-RPC Methods:\n   *   - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed.\n   *   - If a Transaction has been replaced:\n   *     - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions\n   *     - Checks if one of the Transactions is a replacement\n   *     - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt).\n   *\n   * @remarks\n   * The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions).\n   *\n   * Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.\n   *\n   * There are 3 types of Transaction Replacement reasons:\n   *\n   * - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`)\n   * - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`)\n   * - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`)\n   *\n   * @param args - {@link WaitForTransactionReceiptParameters}\n   * @returns The transaction receipt. {@link WaitForTransactionReceiptReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const transactionReceipt = await client.waitForTransactionReceipt({\n   *   hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',\n   * })\n   */\n  waitForTransactionReceipt: (\n    args: WaitForTransactionReceiptParameters<chain>,\n  ) => Promise<WaitForTransactionReceiptReturnType<chain>>\n  /**\n   * Watches and returns incoming block numbers.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/watchBlockNumber\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n   * - JSON-RPC Methods:\n   *   - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval.\n   *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n   *\n   * @param args - {@link WatchBlockNumberParameters}\n   * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlockNumberReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const unwatch = await client.watchBlockNumber({\n   *   onBlockNumber: (blockNumber) => console.log(blockNumber),\n   * })\n   */\n  watchBlockNumber: (\n    args: WatchBlockNumberParameters,\n  ) => WatchBlockNumberReturnType\n  /**\n   * Watches and returns information for incoming blocks.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/watchBlocks\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks\n   * - JSON-RPC Methods:\n   *   - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval.\n   *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newHeads\"` event.\n   *\n   * @param args - {@link WatchBlocksParameters}\n   * @returns A function that can be invoked to stop watching for new block numbers. {@link WatchBlocksReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const unwatch = await client.watchBlocks({\n   *   onBlock: (block) => console.log(block),\n   * })\n   */\n  watchBlocks: <\n    includeTransactions extends boolean = false,\n    blockTag extends BlockTag = 'latest',\n  >(\n    args: WatchBlocksParameters<\n      transport,\n      chain,\n      includeTransactions,\n      blockTag\n    >,\n  ) => WatchBlocksReturnType\n  /**\n   * Watches and returns emitted contract event logs.\n   *\n   * - Docs: https://viem.sh/docs/contract/watchContractEvent\n   *\n   * @remarks\n   * This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs).\n   *\n   * `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n   *\n   * @param args - {@link WatchContractEventParameters}\n   * @returns A function that can be invoked to stop watching for new event logs. {@link WatchContractEventReturnType}\n   *\n   * @example\n   * import { createPublicClient, http, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const unwatch = client.watchContractEvent({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),\n   *   eventName: 'Transfer',\n   *   args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },\n   *   onLogs: (logs) => console.log(logs),\n   * })\n   */\n  watchContractEvent: <\n    const abi extends Abi | readonly unknown[],\n    eventName extends ContractEventName<abi>,\n    strict extends boolean | undefined = undefined,\n  >(\n    args: WatchContractEventParameters<abi, eventName, strict, transport>,\n  ) => WatchContractEventReturnType\n  /**\n   * Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log).\n   *\n   * - Docs: https://viem.sh/docs/actions/public/watchEvent\n   * - JSON-RPC Methods:\n   *   - **RPC Provider supports `eth_newFilter`:**\n   *     - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize).\n   *     - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges).\n   *   - **RPC Provider does not support `eth_newFilter`:**\n   *     - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval.\n   *\n   * @remarks\n   * This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs).\n   *\n   * `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead.\n   *\n   * @param args - {@link WatchEventParameters}\n   * @returns A function that can be invoked to stop watching for new Event Logs. {@link WatchEventReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const unwatch = client.watchEvent({\n   *   onLogs: (logs) => console.log(logs),\n   * })\n   */\n  watchEvent: <\n    const abiEvent extends AbiEvent | undefined = undefined,\n    const abiEvents extends\n      | readonly AbiEvent[]\n      | readonly unknown[]\n      | undefined = abiEvent extends AbiEvent ? [abiEvent] : undefined,\n    strict extends boolean | undefined = undefined,\n  >(\n    args: WatchEventParameters<abiEvent, abiEvents, strict, transport>,\n  ) => WatchEventReturnType\n  /**\n   * Watches and returns pending transaction hashes.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/watchPendingTransactions\n   * - JSON-RPC Methods:\n   *   - When `poll: true`\n   *     - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter.\n   *     - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval.\n   *   - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `\"newPendingTransactions\"` event.\n   *\n   * @remarks\n   * This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions).\n   *\n   * @param args - {@link WatchPendingTransactionsParameters}\n   * @returns A function that can be invoked to stop watching for new pending transaction hashes. {@link WatchPendingTransactionsReturnType}\n   *\n   * @example\n   * import { createPublicClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createPublicClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const unwatch = await client.watchPendingTransactions({\n   *   onTransactions: (hashes) => console.log(hashes),\n   * })\n   */\n  watchPendingTransactions: (\n    args: WatchPendingTransactionsParameters<transport>,\n  ) => WatchPendingTransactionsReturnType\n}\n\nexport function publicActions<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n>(\n  client: Client<transport, chain, account>,\n): PublicActions<transport, chain, account> {\n  return {\n    call: (args) => call(client, args),\n    createAccessList: (args) => createAccessList(client, args),\n    createBlockFilter: () => createBlockFilter(client),\n    createContractEventFilter: (args) =>\n      createContractEventFilter(client, args),\n    createEventFilter: (args) => createEventFilter(client, args),\n    createPendingTransactionFilter: () =>\n      createPendingTransactionFilter(client),\n    estimateContractGas: (args) => estimateContractGas(client, args as any),\n    estimateGas: (args) => estimateGas(client, args),\n    getBalance: (args) => getBalance(client, args),\n    getBlobBaseFee: () => getBlobBaseFee(client),\n    getBlock: (args) => getBlock(client, args),\n    getBlockNumber: (args) => getBlockNumber(client, args),\n    getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n    getBytecode: (args) => getCode(client, args),\n    getChainId: () => getChainId(client),\n    getCode: (args) => getCode(client, args),\n    getContractEvents: (args) => getContractEvents(client, args),\n    getEip712Domain: (args) => getEip712Domain(client, args),\n    getEnsAddress: (args) => getEnsAddress(client, args),\n    getEnsAvatar: (args) => getEnsAvatar(client, args),\n    getEnsName: (args) => getEnsName(client, args),\n    getEnsResolver: (args) => getEnsResolver(client, args),\n    getEnsText: (args) => getEnsText(client, args),\n    getFeeHistory: (args) => getFeeHistory(client, args),\n    estimateFeesPerGas: (args) => estimateFeesPerGas(client, args),\n    getFilterChanges: (args) => getFilterChanges(client, args),\n    getFilterLogs: (args) => getFilterLogs(client, args),\n    getGasPrice: () => getGasPrice(client),\n    getLogs: (args) => getLogs(client, args as any),\n    getProof: (args) => getProof(client, args),\n    estimateMaxPriorityFeePerGas: (args) =>\n      estimateMaxPriorityFeePerGas(client, args),\n    getStorageAt: (args) => getStorageAt(client, args),\n    getTransaction: (args) => getTransaction(client, args),\n    getTransactionConfirmations: (args) =>\n      getTransactionConfirmations(client, args),\n    getTransactionCount: (args) => getTransactionCount(client, args),\n    getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n    multicall: (args) => multicall(client, args),\n    prepareTransactionRequest: (args) =>\n      prepareTransactionRequest(client as any, args as any) as any,\n    readContract: (args) => readContract(client, args),\n    sendRawTransaction: (args) => sendRawTransaction(client, args),\n    simulate: (args) => simulateBlocks(client, args),\n    simulateBlocks: (args) => simulateBlocks(client, args),\n    simulateCalls: (args) => simulateCalls(client, args),\n    simulateContract: (args) => simulateContract(client, args),\n    verifyMessage: (args) => verifyMessage(client, args),\n    verifySiweMessage: (args) => verifySiweMessage(client, args),\n    verifyTypedData: (args) => verifyTypedData(client, args),\n    uninstallFilter: (args) => uninstallFilter(client, args),\n    waitForTransactionReceipt: (args) =>\n      waitForTransactionReceipt(client, args),\n    watchBlocks: (args) => watchBlocks(client, args),\n    watchBlockNumber: (args) => watchBlockNumber(client, args),\n    watchContractEvent: (args) => watchContractEvent(client, args),\n    watchEvent: (args) => watchEvent(client, args),\n    watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n  }\n}\n","import type { Address } from 'abitype'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Account, ParseAccount } from '../types/account.js'\nimport type { Chain } from '../types/chain.js'\nimport type { PublicRpcSchema, RpcSchema } from '../types/eip1193.js'\nimport type { Prettify } from '../types/utils.js'\nimport {\n  type Client,\n  type ClientConfig,\n  type CreateClientErrorType,\n  createClient,\n} from './createClient.js'\nimport { type PublicActions, publicActions } from './decorators/public.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type PublicClientConfig<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  accountOrAddress extends Account | Address | undefined = undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = Prettify<\n  Pick<\n    ClientConfig<transport, chain, accountOrAddress, rpcSchema>,\n    | 'batch'\n    | 'cacheTime'\n    | 'ccipRead'\n    | 'chain'\n    | 'experimental_blockTag'\n    | 'key'\n    | 'name'\n    | 'pollingInterval'\n    | 'rpcSchema'\n    | 'transport'\n  >\n>\n\nexport type PublicClient<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  accountOrAddress extends Account | undefined = undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = Prettify<\n  Client<\n    transport,\n    chain,\n    accountOrAddress,\n    rpcSchema extends RpcSchema\n      ? [...PublicRpcSchema, ...rpcSchema]\n      : PublicRpcSchema,\n    PublicActions<transport, chain>\n  >\n>\n\nexport type CreatePublicClientErrorType = CreateClientErrorType | ErrorType\n\n/**\n * Creates a Public Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/public\n *\n * A Public Client is an interface to \"public\" [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods such as retrieving block numbers, transactions, reading from smart contracts, etc through [Public Actions](/docs/actions/public/introduction).\n *\n * @param config - {@link PublicClientConfig}\n * @returns A Public Client. {@link PublicClient}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createPublicClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n */\nexport function createPublicClient<\n  transport extends Transport,\n  chain extends Chain | undefined = undefined,\n  accountOrAddress extends Account | Address | undefined = undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n>(\n  parameters: PublicClientConfig<transport, chain, accountOrAddress, rpcSchema>,\n): PublicClient<transport, chain, ParseAccount<accountOrAddress>, rpcSchema> {\n  const { key = 'public', name = 'Public Client' } = parameters\n  const client = createClient({\n    ...parameters,\n    key,\n    name,\n    type: 'publicClient',\n  })\n  return client.extend(publicActions) as any\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type AddChainParameters = {\n  /** The chain to add to the wallet. */\n  chain: Chain\n}\n\nexport type AddChainErrorType =\n  | RequestErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(client: Client<Transport, chain, account>, { chain }: AddChainParameters) {\n  const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain\n  await client.request(\n    {\n      method: 'wallet_addEthereumChain',\n      params: [\n        {\n          chainId: numberToHex(id),\n          chainName: name,\n          nativeCurrency,\n          rpcUrls: rpcUrls.default.http,\n          blockExplorerUrls: blockExplorers\n            ? Object.values(blockExplorers).map(({ url }) => url)\n            : undefined,\n        },\n      ],\n    },\n    { dedupe: true, retryCount: 0 },\n  )\n}\n","import type { Abi } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain, GetChainParameter } from '../../types/chain.js'\nimport type { ContractConstructorArgs } from '../../types/contract.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { UnionEvaluate, UnionOmit } from '../../types/utils.js'\nimport { encodeDeployData } from '../../utils/abi/encodeDeployData.js'\nimport {\n  type SendTransactionErrorType,\n  type SendTransactionParameters,\n  type SendTransactionReturnType,\n  sendTransaction,\n} from './sendTransaction.js'\n\nexport type DeployContractParameters<\n  abi extends Abi | readonly unknown[] = Abi,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  ///\n  allArgs = ContractConstructorArgs<abi>,\n> = UnionOmit<\n  SendTransactionParameters<chain, account, chainOverride>,\n  'accessList' | 'chain' | 'to' | 'data'\n> &\n  GetChainParameter<chain, chainOverride> &\n  UnionEvaluate<\n    readonly [] extends allArgs\n      ? { args?: allArgs | undefined }\n      : { args: allArgs }\n  > & {\n    abi: abi\n    bytecode: Hex\n  }\n\nexport type DeployContractReturnType = SendTransactionReturnType\n\nexport type DeployContractErrorType = SendTransactionErrorType | ErrorType\n\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const hash = await deployContract(client, {\n *   abi: [],\n *   account: '0x…,\n *   bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract<\n  const abi extends Abi | readonly unknown[],\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  chainOverride extends Chain | undefined,\n>(\n  walletClient: Client<Transport, chain, account>,\n  parameters: DeployContractParameters<abi, chain, account, chainOverride>,\n): Promise<DeployContractReturnType> {\n  const { abi, args, bytecode, ...request } =\n    parameters as DeployContractParameters\n  const calldata = encodeDeployData({ abi, args, bytecode })\n  return sendTransaction(walletClient, {\n    ...request,\n    ...(request.authorizationList ? { to: null } : {}),\n    data: calldata,\n  } as unknown as SendTransactionParameters<chain, account, chainOverride>)\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport {\n  type ChecksumAddressErrorType,\n  checksumAddress,\n} from '../../utils/address/getAddress.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type GetAddressesReturnType = Address[]\n\nexport type GetAddressesErrorType =\n  | RequestErrorType\n  | ChecksumAddressErrorType\n  | ErrorType\n\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(client: Client<Transport, chain, account>): Promise<GetAddressesReturnType> {\n  if (client.account?.type === 'local') return [client.account.address]\n  const addresses = await client.request(\n    { method: 'eth_accounts' },\n    { dedupe: true },\n  )\n  return addresses.map((address) => checksumAddress(address))\n}\n","import type { Address } from 'abitype'\n\nimport { parseAccount } from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type {\n  Capabilities,\n  ChainIdToCapabilities,\n  ExtractCapabilities,\n} from '../../types/capabilities.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\n\nexport type GetCapabilitiesParameters<\n  chainId extends number | undefined = undefined,\n> = {\n  account?: Account | Address | undefined\n  chainId?: chainId | number | undefined\n}\n\nexport type GetCapabilitiesReturnType<\n  chainId extends number | undefined = undefined,\n> = Prettify<\n  chainId extends number\n    ? ExtractCapabilities<'getCapabilities', 'ReturnType'>\n    : ChainIdToCapabilities<\n        Capabilities<ExtractCapabilities<'getCapabilities', 'ReturnType'>>,\n        number\n      >\n>\n\nexport type GetCapabilitiesErrorType = RequestErrorType | ErrorType\n\n/**\n * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities\n * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getCapabilities } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const capabilities = await getCapabilities(client)\n */\nexport async function getCapabilities<\n  chainId extends number | undefined = undefined,\n>(\n  client: Client<Transport>,\n  parameters: GetCapabilitiesParameters<chainId> = {},\n): Promise<GetCapabilitiesReturnType<chainId>> {\n  const { account = client.account, chainId } = parameters\n\n  const account_ = account ? parseAccount(account) : undefined\n\n  const params = chainId\n    ? ([account_?.address, [numberToHex(chainId)]] as const)\n    : ([account_?.address] as const)\n  const capabilities_raw = await client.request({\n    method: 'wallet_getCapabilities',\n    params,\n  })\n\n  const capabilities = {} as ChainIdToCapabilities<\n    ExtractCapabilities<'getCapabilities', 'ReturnType'>,\n    number\n  >\n  for (const [chainId, capabilities_] of Object.entries(capabilities_raw)) {\n    capabilities[Number(chainId)] = {}\n    for (let [key, value] of Object.entries(capabilities_)) {\n      if (key === 'addSubAccount') key = 'unstable_addSubAccount'\n      capabilities[Number(chainId)][key] = value\n    }\n  }\n  return (\n    typeof chainId === 'number' ? capabilities[chainId] : capabilities\n  ) as never\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletPermission } from '../../types/eip1193.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type GetPermissionsReturnType = WalletPermission[]\n\nexport type GetPermissionsErrorType = RequestErrorType | ErrorType\n\n/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(client: Client<Transport, chain, account>) {\n  const permissions = await client.request(\n    { method: 'wallet_getPermissions' },\n    { dedupe: true },\n  )\n  return permissions\n}\n","import type { Address } from 'abitype'\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  AccountNotFoundError,\n  type AccountNotFoundErrorType,\n} from '../../errors/account.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type {\n  Authorization,\n  AuthorizationRequest,\n} from '../../types/authorization.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { PartialBy } from '../../types/utils.js'\nimport { isAddressEqual } from '../../utils/address/isAddressEqual.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport { getChainId } from '../public/getChainId.js'\nimport { getTransactionCount } from '../public/getTransactionCount.js'\n\nexport type PrepareAuthorizationParameters<\n  account extends Account | undefined = Account | undefined,\n> = GetAccountParameter<account> &\n  PartialBy<AuthorizationRequest, 'chainId' | 'nonce'> & {\n    /**\n     * Whether the EIP-7702 Transaction will be executed by the EOA (signing this Authorization) or another Account.\n     *\n     * By default, it will be assumed that the EIP-7702 Transaction will\n     * be executed by another Account.\n     */\n    executor?: 'self' | Account | Address | undefined\n  }\n\nexport type PrepareAuthorizationReturnType = Authorization\n\nexport type PrepareAuthorizationErrorType =\n  | ParseAccountErrorType\n  | RequestErrorType\n  | AccountNotFoundErrorType\n  | ErrorType\n\n/**\n * Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\n * This Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\n *\n * With the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link PrepareAuthorizationParameters}\n * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n *   account: privateKeyToAccount('0x..'),\n *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const authorization = await prepareAuthorization(client, {\n *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function prepareAuthorization<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: PrepareAuthorizationParameters<account>,\n): Promise<PrepareAuthorizationReturnType> {\n  const { account: account_ = client.account, chainId, nonce } = parameters\n\n  if (!account_)\n    throw new AccountNotFoundError({\n      docsPath: '/docs/eip7702/prepareAuthorization',\n    })\n  const account = parseAccount(account_)\n\n  const executor = (() => {\n    if (!parameters.executor) return undefined\n    if (parameters.executor === 'self') return parameters.executor\n    return parseAccount(parameters.executor)\n  })()\n\n  const authorization = {\n    address: parameters.contractAddress ?? parameters.address,\n    chainId,\n    nonce,\n  } as Authorization\n\n  if (typeof authorization.chainId === 'undefined')\n    authorization.chainId =\n      client.chain?.id ??\n      (await getAction(client, getChainId, 'getChainId')({}))\n\n  if (typeof authorization.nonce === 'undefined') {\n    authorization.nonce = await getAction(\n      client,\n      getTransactionCount,\n      'getTransactionCount',\n    )({\n      address: account.address,\n      blockTag: 'pending',\n    })\n    if (\n      executor === 'self' ||\n      (executor?.address && isAddressEqual(executor.address, account.address))\n    )\n      authorization.nonce += 1\n  }\n\n  return authorization\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport { getAddress } from '../../utils/address/getAddress.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type RequestAddressesReturnType = Address[]\n\nexport type RequestAddressesErrorType = RequestErrorType | ErrorType\n\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n): Promise<RequestAddressesReturnType> {\n  const addresses = await client.request(\n    { method: 'eth_requestAccounts' },\n    { dedupe: true, retryCount: 0 },\n  )\n  return addresses.map((address) => getAddress(address))\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WalletPermission } from '../../types/eip1193.js'\nimport type { Prettify } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type RequestPermissionsParameters = Prettify<\n  {\n    eth_accounts: Record<string, any>\n  } & {\n    [key: string]: Record<string, any>\n  }\n>\nexport type RequestPermissionsReturnType = WalletPermission[]\n\nexport type RequestPermissionsErrorType = RequestErrorType | ErrorType\n\n/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n *   eth_accounts: {}\n * })\n */\nexport async function requestPermissions<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  permissions: RequestPermissionsParameters,\n) {\n  return client.request(\n    {\n      method: 'wallet_requestPermissions',\n      params: [permissions],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Account } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type ShowCallsStatusParameters = { id: string }\n\nexport type ShowCallsStatusReturnType = void\n\nexport type ShowCallsStatusErrorType = RequestErrorType | ErrorType\n\n/**\n * Requests for the wallet to show information about a call batch\n * that was sent via `sendCalls`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus\n * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n *\n * @param client - Client to use\n * @returns Status of the calls. {@link ShowCallsStatusReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { showCallsStatus } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * await showCallsStatus(client, { id: '0xdeadbeef' })\n */\nexport async function showCallsStatus<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: ShowCallsStatusParameters,\n): Promise<ShowCallsStatusReturnType> {\n  const { id } = parameters\n  await client.request({\n    method: 'wallet_showCallsStatus',\n    params: [id],\n  })\n  return\n}\n","import type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type {\n  SignAuthorizationErrorType as SignAuthorizationErrorType_account,\n  SignAuthorizationReturnType as SignAuthorizationReturnType_account,\n} from '../../accounts/utils/signAuthorization.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  AccountNotFoundError,\n  type AccountNotFoundErrorType,\n  AccountTypeNotSupportedError,\n  type AccountTypeNotSupportedErrorType,\n} from '../../errors/account.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport {\n  type PrepareAuthorizationErrorType,\n  type PrepareAuthorizationParameters,\n  prepareAuthorization,\n} from './prepareAuthorization.js'\n\nexport type SignAuthorizationParameters<\n  account extends Account | undefined = Account | undefined,\n> = PrepareAuthorizationParameters<account>\n\nexport type SignAuthorizationReturnType = SignAuthorizationReturnType_account\n\nexport type SignAuthorizationErrorType =\n  | ParseAccountErrorType\n  | AccountNotFoundErrorType\n  | AccountTypeNotSupportedErrorType\n  | PrepareAuthorizationErrorType\n  | SignAuthorizationErrorType_account\n  | ErrorType\n\n/**\n * Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\n *\n * With the calculated signature, you can:\n * - use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\n * - use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\n *\n * @param client - Client to use\n * @param parameters - {@link SignAuthorizationParameters}\n * @returns The signed Authorization object. {@link SignAuthorizationReturnType}\n *\n * @example\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n *   account: privateKeyToAccount('0x..'),\n *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signAuthorization } from 'viem/experimental'\n *\n * const client = createClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const signature = await signAuthorization(client, {\n *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function signAuthorization<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SignAuthorizationParameters<account>,\n): Promise<SignAuthorizationReturnType> {\n  const { account: account_ = client.account } = parameters\n\n  if (!account_)\n    throw new AccountNotFoundError({\n      docsPath: '/docs/eip7702/signAuthorization',\n    })\n  const account = parseAccount(account_)\n\n  if (!account.signAuthorization)\n    throw new AccountTypeNotSupportedError({\n      docsPath: '/docs/eip7702/signAuthorization',\n      metaMessages: [\n        'The `signAuthorization` Action does not support JSON-RPC Accounts.',\n      ],\n      type: account.type,\n    })\n\n  const authorization = await prepareAuthorization(client, parameters)\n  return account.signAuthorization(authorization)\n}\n","import type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { SignMessageErrorType as SignMessageErrorType_account } from '../../accounts/utils/signMessage.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  stringToHex,\n  type ToHexErrorType,\n  toHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type SignMessageParameters<\n  account extends Account | undefined = Account | undefined,\n> = GetAccountParameter<account> & {\n  message: SignableMessage\n}\n\nexport type SignMessageReturnType = Hex\n\nexport type SignMessageErrorType =\n  | ParseAccountErrorType\n  | RequestErrorType\n  | SignMessageErrorType_account\n  | ToHexErrorType\n  | ErrorType\n\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n *   - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n *   message: 'hello world',\n * })\n */\nexport async function signMessage<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  {\n    account: account_ = client.account,\n    message,\n  }: SignMessageParameters<account>,\n): Promise<SignMessageReturnType> {\n  if (!account_)\n    throw new AccountNotFoundError({\n      docsPath: '/docs/actions/wallet/signMessage',\n    })\n  const account = parseAccount(account_)\n\n  if (account.signMessage) return account.signMessage({ message })\n\n  const message_ = (() => {\n    if (typeof message === 'string') return stringToHex(message)\n    if (message.raw instanceof Uint8Array) return toHex(message.raw)\n    return message.raw\n  })()\n\n  return client.request(\n    {\n      method: 'personal_sign',\n      params: [message_, account.address],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { SignTransactionErrorType as SignTransactionErrorType_account } from '../../accounts/utils/signTransaction.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport { AccountNotFoundError } from '../../errors/account.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type {\n  Chain,\n  DeriveChain,\n  GetChainParameter,\n} from '../../types/chain.js'\nimport type { GetTransactionRequestKzgParameter } from '../../types/kzg.js'\nimport type { RpcTransactionRequest } from '../../types/rpc.js'\nimport type {\n  TransactionRequest,\n  TransactionSerializable,\n  TransactionSerialized,\n} from '../../types/transaction.js'\nimport type { UnionOmit } from '../../types/utils.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type AssertCurrentChainErrorType,\n  assertCurrentChain,\n} from '../../utils/chain/assertCurrentChain.js'\nimport type { NumberToHexErrorType } from '../../utils/encoding/toHex.js'\nimport { numberToHex } from '../../utils/encoding/toHex.js'\nimport {\n  type FormattedTransactionRequest,\n  formatTransactionRequest,\n} from '../../utils/formatters/transactionRequest.js'\nimport { getAction } from '../../utils/getAction.js'\nimport {\n  type AssertRequestErrorType,\n  assertRequest,\n} from '../../utils/transaction/assertRequest.js'\nimport type { GetTransactionType } from '../../utils/transaction/getTransactionType.js'\nimport { type GetChainIdErrorType, getChainId } from '../public/getChainId.js'\n\nexport type SignTransactionRequest<\n  chain extends Chain | undefined = Chain | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  ///\n  _derivedChain extends Chain | undefined = DeriveChain<chain, chainOverride>,\n> = UnionOmit<FormattedTransactionRequest<_derivedChain>, 'from'>\n\nexport type SignTransactionParameters<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  chainOverride extends Chain | undefined = Chain | undefined,\n  request extends SignTransactionRequest<\n    chain,\n    chainOverride\n  > = SignTransactionRequest<chain, chainOverride>,\n> = request &\n  GetAccountParameter<account> &\n  GetChainParameter<chain, chainOverride> &\n  GetTransactionRequestKzgParameter<request>\n\nexport type SignTransactionReturnType<\n  request extends SignTransactionRequest = SignTransactionRequest,\n> = TransactionSerialized<GetTransactionType<request>>\n\nexport type SignTransactionErrorType =\n  | ParseAccountErrorType\n  | AssertRequestErrorType\n  | GetChainIdErrorType\n  | AssertCurrentChainErrorType\n  | SignTransactionErrorType_account\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *   - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized transaction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   to: '0x0000000000000000000000000000000000000000',\n *   value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n *   to: '0x0000000000000000000000000000000000000000',\n *   value: 1n,\n * })\n */\nexport async function signTransaction<\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n  chainOverride extends Chain | undefined = undefined,\n  const request extends SignTransactionRequest<\n    chain,\n    chainOverride\n  > = SignTransactionRequest<chain, chainOverride>,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SignTransactionParameters<chain, account, chainOverride, request>,\n): Promise<SignTransactionReturnType<request>> {\n  const {\n    account: account_ = client.account,\n    chain = client.chain,\n    ...transaction\n  } = parameters\n\n  if (!account_)\n    throw new AccountNotFoundError({\n      docsPath: '/docs/actions/wallet/signTransaction',\n    })\n  const account = parseAccount(account_)\n\n  assertRequest({\n    account,\n    ...parameters,\n  })\n\n  const chainId = await getAction(client, getChainId, 'getChainId')({})\n  if (chain !== null)\n    assertCurrentChain({\n      currentChainId: chainId,\n      chain,\n    })\n\n  const formatters = chain?.formatters || client.chain?.formatters\n  const format =\n    formatters?.transactionRequest?.format || formatTransactionRequest\n\n  if (account.signTransaction)\n    return account.signTransaction(\n      {\n        ...transaction,\n        chainId,\n      } as TransactionSerializable,\n      { serializer: client.chain?.serializers?.transaction },\n    ) as Promise<SignTransactionReturnType<request>>\n\n  return await client.request(\n    {\n      method: 'eth_signTransaction',\n      params: [\n        {\n          ...format(transaction as unknown as TransactionRequest),\n          chainId: numberToHex(chainId),\n          from: account.address,\n        } as unknown as RpcTransactionRequest,\n      ],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { TypedData } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type ParseAccountErrorType,\n  parseAccount,\n} from '../../accounts/utils/parseAccount.js'\nimport type { SignTypedDataErrorType as SignTypedDataErrorType_account } from '../../accounts/utils/signTypedData.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport {\n  AccountNotFoundError,\n  type AccountNotFoundErrorType,\n} from '../../errors/account.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { GetAccountParameter } from '../../types/account.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport type { IsHexErrorType } from '../../utils/data/isHex.js'\nimport type { StringifyErrorType } from '../../utils/stringify.js'\nimport {\n  type GetTypesForEIP712DomainErrorType,\n  getTypesForEIP712Domain,\n  type SerializeTypedDataErrorType,\n  serializeTypedData,\n  type ValidateTypedDataErrorType,\n  validateTypedData,\n} from '../../utils/typedData.js'\n\nexport type SignTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n  account extends Account | undefined = undefined,\n  ///\n  primaryTypes = typedData extends TypedData ? keyof typedData : string,\n> = TypedDataDefinition<typedData, primaryType, primaryTypes> &\n  GetAccountParameter<account>\n\nexport type SignTypedDataReturnType = Hex\n\nexport type SignTypedDataErrorType =\n  | AccountNotFoundErrorType\n  | ParseAccountErrorType\n  | GetTypesForEIP712DomainErrorType\n  | ValidateTypedDataErrorType\n  | StringifyErrorType\n  | SignTypedDataErrorType_account\n  | IsHexErrorType\n  | RequestErrorType\n  | SerializeTypedDataErrorType\n  | ErrorType\n\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n * - JSON-RPC Methods:\n *   - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n *   - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n *   domain: {\n *     name: 'Ether Mail',\n *     version: '1',\n *     chainId: 1,\n *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n *   },\n *   types: {\n *     Person: [\n *       { name: 'name', type: 'string' },\n *       { name: 'wallet', type: 'address' },\n *     ],\n *     Mail: [\n *       { name: 'from', type: 'Person' },\n *       { name: 'to', type: 'Person' },\n *       { name: 'contents', type: 'string' },\n *     ],\n *   },\n *   primaryType: 'Mail',\n *   message: {\n *     from: {\n *       name: 'Cow',\n *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n *     },\n *     to: {\n *       name: 'Bob',\n *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n *     },\n *     contents: 'Hello, Bob!',\n *   },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…'),\n *   chain: mainnet,\n *   transport: http(),\n * })\n * const signature = await signTypedData(client, {\n *   domain: {\n *     name: 'Ether Mail',\n *     version: '1',\n *     chainId: 1,\n *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n *   },\n *   types: {\n *     Person: [\n *       { name: 'name', type: 'string' },\n *       { name: 'wallet', type: 'address' },\n *     ],\n *     Mail: [\n *       { name: 'from', type: 'Person' },\n *       { name: 'to', type: 'Person' },\n *       { name: 'contents', type: 'string' },\n *     ],\n *   },\n *   primaryType: 'Mail',\n *   message: {\n *     from: {\n *       name: 'Cow',\n *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n *     },\n *     to: {\n *       name: 'Bob',\n *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n *     },\n *     contents: 'Hello, Bob!',\n *   },\n * })\n */\nexport async function signTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n  chain extends Chain | undefined,\n  account extends Account | undefined,\n>(\n  client: Client<Transport, chain, account>,\n  parameters: SignTypedDataParameters<typedData, primaryType, account>,\n): Promise<SignTypedDataReturnType> {\n  const {\n    account: account_ = client.account,\n    domain,\n    message,\n    primaryType,\n  } = parameters as unknown as SignTypedDataParameters\n\n  if (!account_)\n    throw new AccountNotFoundError({\n      docsPath: '/docs/actions/wallet/signTypedData',\n    })\n  const account = parseAccount(account_)\n\n  const types = {\n    EIP712Domain: getTypesForEIP712Domain({ domain }),\n    ...parameters.types,\n  }\n\n  // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n  // as we can't statically check this with TypeScript.\n  validateTypedData({ domain, message, primaryType, types })\n\n  if (account.signTypedData)\n    return account.signTypedData({ domain, message, primaryType, types })\n\n  const typedData = serializeTypedData({ domain, message, primaryType, types })\n  return client.request(\n    {\n      method: 'eth_signTypedData_v4',\n      params: [account.address, typedData],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\n\nexport type SwitchChainParameters = {\n  /** ID of Chain to switch to */\n  id: Chain['id']\n}\n\nexport type SwitchChainErrorType =\n  | NumberToHexErrorType\n  | RequestErrorType\n  | ErrorType\n\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain\n * - JSON-RPC Methods: [`wallet_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(client: Client<Transport, chain, account>, { id }: SwitchChainParameters) {\n  await client.request(\n    {\n      method: 'wallet_switchEthereumChain',\n      params: [\n        {\n          chainId: numberToHex(id),\n        },\n      ],\n    },\n    { retryCount: 0 },\n  )\n}\n","import type { Account } from '../../accounts/types.js'\nimport type { Client } from '../../clients/createClient.js'\nimport type { Transport } from '../../clients/transports/createTransport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { WatchAssetParams } from '../../types/eip1193.js'\nimport type { RequestErrorType } from '../../utils/buildRequest.js'\n\nexport type WatchAssetParameters = WatchAssetParams\nexport type WatchAssetReturnType = boolean\nexport type WatchAssetErrorType = RequestErrorType | ErrorType\n\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n *   type: 'ERC20',\n *   options: {\n *     address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n *     decimals: 18,\n *     symbol: 'WETH',\n *   },\n * })\n */\nexport async function watchAsset<\n  chain extends Chain | undefined,\n  account extends Account | undefined = undefined,\n>(\n  client: Client<Transport, chain, account>,\n  params: WatchAssetParameters,\n): Promise<WatchAssetReturnType> {\n  const added = await client.request(\n    {\n      method: 'wallet_watchAsset',\n      params,\n    },\n    { retryCount: 0 },\n  )\n  return added\n}\n","import type { Abi, Address, TypedData } from 'abitype'\n\nimport type { Account } from '../../accounts/types.js'\nimport {\n  type GetChainIdReturnType,\n  getChainId,\n} from '../../actions/public/getChainId.js'\nimport {\n  type AddChainParameters,\n  addChain,\n} from '../../actions/wallet/addChain.js'\nimport {\n  type DeployContractParameters,\n  type DeployContractReturnType,\n  deployContract,\n} from '../../actions/wallet/deployContract.js'\nimport {\n  type GetAddressesReturnType,\n  getAddresses,\n} from '../../actions/wallet/getAddresses.js'\nimport {\n  type GetCallsStatusParameters,\n  type GetCallsStatusReturnType,\n  getCallsStatus,\n} from '../../actions/wallet/getCallsStatus.js'\nimport {\n  type GetCapabilitiesParameters,\n  type GetCapabilitiesReturnType,\n  getCapabilities,\n} from '../../actions/wallet/getCapabilities.js'\nimport {\n  type GetPermissionsReturnType,\n  getPermissions,\n} from '../../actions/wallet/getPermissions.js'\nimport {\n  type PrepareAuthorizationParameters,\n  type PrepareAuthorizationReturnType,\n  prepareAuthorization,\n} from '../../actions/wallet/prepareAuthorization.js'\nimport {\n  type PrepareTransactionRequestParameters,\n  type PrepareTransactionRequestRequest,\n  type PrepareTransactionRequestReturnType,\n  prepareTransactionRequest,\n} from '../../actions/wallet/prepareTransactionRequest.js'\nimport {\n  type RequestAddressesReturnType,\n  requestAddresses,\n} from '../../actions/wallet/requestAddresses.js'\nimport {\n  type RequestPermissionsParameters,\n  type RequestPermissionsReturnType,\n  requestPermissions,\n} from '../../actions/wallet/requestPermissions.js'\nimport {\n  type SendCallsParameters,\n  type SendCallsReturnType,\n  sendCalls,\n} from '../../actions/wallet/sendCalls.js'\nimport {\n  type SendRawTransactionParameters,\n  type SendRawTransactionReturnType,\n  sendRawTransaction,\n} from '../../actions/wallet/sendRawTransaction.js'\nimport {\n  type SendTransactionParameters,\n  type SendTransactionRequest,\n  type SendTransactionReturnType,\n  sendTransaction,\n} from '../../actions/wallet/sendTransaction.js'\nimport {\n  type ShowCallsStatusParameters,\n  type ShowCallsStatusReturnType,\n  showCallsStatus,\n} from '../../actions/wallet/showCallsStatus.js'\nimport {\n  type SignAuthorizationParameters,\n  type SignAuthorizationReturnType,\n  signAuthorization,\n} from '../../actions/wallet/signAuthorization.js'\nimport {\n  type SignMessageParameters,\n  type SignMessageReturnType,\n  signMessage,\n} from '../../actions/wallet/signMessage.js'\nimport {\n  type SignTransactionParameters,\n  type SignTransactionRequest,\n  type SignTransactionReturnType,\n  signTransaction,\n} from '../../actions/wallet/signTransaction.js'\nimport {\n  type SignTypedDataParameters,\n  type SignTypedDataReturnType,\n  signTypedData,\n} from '../../actions/wallet/signTypedData.js'\nimport {\n  type SwitchChainParameters,\n  switchChain,\n} from '../../actions/wallet/switchChain.js'\nimport {\n  type WaitForCallsStatusParameters,\n  type WaitForCallsStatusReturnType,\n  waitForCallsStatus,\n} from '../../actions/wallet/waitForCallsStatus.js'\nimport {\n  type WatchAssetParameters,\n  type WatchAssetReturnType,\n  watchAsset,\n} from '../../actions/wallet/watchAsset.js'\nimport {\n  type WriteContractParameters,\n  type WriteContractReturnType,\n  writeContract,\n} from '../../actions/wallet/writeContract.js'\nimport type { Chain } from '../../types/chain.js'\nimport type {\n  ContractFunctionArgs,\n  ContractFunctionName,\n} from '../../types/contract.js'\nimport type { Client } from '../createClient.js'\nimport type { Transport } from '../transports/createTransport.js'\n\nexport type WalletActions<\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n> = {\n  /**\n   * Adds an EVM chain to the wallet.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/addChain\n   * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n   *\n   * @param args - {@link AddChainParameters}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { optimism } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   transport: custom(window.ethereum),\n   * })\n   * await client.addChain({ chain: optimism })\n   */\n  addChain: (args: AddChainParameters) => Promise<void>\n  /**\n   * Deploys a contract to the network, given bytecode and constructor arguments.\n   *\n   * - Docs: https://viem.sh/docs/contract/deployContract\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_deploying-contracts\n   *\n   * @param args - {@link DeployContractParameters}\n   * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}\n   *\n   * @example\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const hash = await client.deployContract({\n   *   abi: [],\n   *   account: '0x…,\n   *   bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n   * })\n   */\n  deployContract: <\n    const abi extends Abi | readonly unknown[],\n    chainOverride extends Chain | undefined,\n  >(\n    args: DeployContractParameters<abi, chain, account, chainOverride>,\n  ) => Promise<DeployContractReturnType>\n  /**\n   * Returns a list of account addresses owned by the wallet or client.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/getAddresses\n   * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n   *\n   * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const accounts = await client.getAddresses()\n   */\n  getAddresses: () => Promise<GetAddressesReturnType>\n  /**\n   * Returns the status of a call batch that was sent via `sendCalls`.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/getCallsStatus\n   * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n   *\n   * @param client - Client to use\n   * @returns Status of the calls. {@link GetCallsStatusReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const { receipts, status } = await client.getCallsStatus({ id: '0xdeadbeef' })\n   */\n  getCallsStatus: (\n    parameters: GetCallsStatusParameters,\n  ) => Promise<GetCallsStatusReturnType>\n  /**\n   * Extract capabilities that a connected wallet supports (e.g. paymasters, session keys, etc).\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/getCapabilities\n   * - JSON-RPC Methods: [`wallet_getCapabilities`](https://eips.ethereum.org/EIPS/eip-5792)\n   *\n   * @param client - Client to use\n   * @returns The wallet's capabilities. {@link GetCapabilitiesReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const capabilities = await client.getCapabilities({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   */\n  getCapabilities: <chainId extends number | undefined>(\n    parameters?: GetCapabilitiesParameters<chainId>,\n  ) => Promise<GetCapabilitiesReturnType<chainId>>\n  /**\n   * Returns the chain ID associated with the current network.\n   *\n   * - Docs: https://viem.sh/docs/actions/public/getChainId\n   * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n   *\n   * @returns The current chain ID. {@link GetChainIdReturnType}\n   *\n   * @example\n   * import { createWalletClient, http } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const chainId = await client.getChainId()\n   * // 1\n   */\n  getChainId: () => Promise<GetChainIdReturnType>\n  /**\n   * Gets the wallets current permissions.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/getPermissions\n   * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n   *\n   * @returns The wallet permissions. {@link GetPermissionsReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const permissions = await client.getPermissions()\n   */\n  getPermissions: () => Promise<GetPermissionsReturnType>\n  /**\n   * Prepares an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object for signing.\n   * This Action will fill the required fields of the Authorization object if they are not provided (e.g. `nonce` and `chainId`).\n   *\n   * With the prepared Authorization object, you can use [`signAuthorization`](https://viem.sh/docs/eip7702/signAuthorization) to sign over the Authorization object.\n   *\n   * @param client - Client to use\n   * @param parameters - {@link PrepareAuthorizationParameters}\n   * @returns The prepared Authorization object. {@link PrepareAuthorizationReturnType}\n   *\n   * @example\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const authorization = await client.prepareAuthorization({\n   *   account: privateKeyToAccount('0x..'),\n   *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const authorization = await client.prepareAuthorization({\n   *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   */\n  prepareAuthorization: (\n    parameters: PrepareAuthorizationParameters<account>,\n  ) => Promise<PrepareAuthorizationReturnType>\n  /**\n   * Prepares a transaction request for signing.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest\n   *\n   * @param args - {@link PrepareTransactionRequestParameters}\n   * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   */\n  prepareTransactionRequest: <\n    const request extends PrepareTransactionRequestRequest<\n      chain,\n      chainOverride\n    >,\n    chainOverride extends Chain | undefined = undefined,\n    accountOverride extends Account | Address | undefined = undefined,\n  >(\n    args: PrepareTransactionRequestParameters<\n      chain,\n      account,\n      chainOverride,\n      accountOverride,\n      request\n    >,\n  ) => Promise<\n    PrepareTransactionRequestReturnType<\n      chain,\n      account,\n      chainOverride,\n      accountOverride,\n      request\n    >\n  >\n  /**\n   * Requests a list of accounts managed by a wallet.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses\n   * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n   *\n   * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n   *\n   * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n   *\n   * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const accounts = await client.requestAddresses()\n   */\n  requestAddresses: () => Promise<RequestAddressesReturnType>\n  /**\n   * Requests permissions for a wallet.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions\n   * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n   *\n   * @param args - {@link RequestPermissionsParameters}\n   * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const permissions = await client.requestPermissions({\n   *   eth_accounts: {}\n   * })\n   */\n  requestPermissions: (\n    args: RequestPermissionsParameters,\n  ) => Promise<RequestPermissionsReturnType>\n  /**\n   * Requests the connected wallet to send a batch of calls.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/sendCalls\n   * - JSON-RPC Methods: [`wallet_sendCalls`](https://eips.ethereum.org/EIPS/eip-5792)\n   *\n   * @param client - Client to use\n   * @returns Transaction identifier. {@link SendCallsReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const id = await client.sendCalls({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   calls: [\n   *     {\n   *       data: '0xdeadbeef',\n   *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *     },\n   *     {\n   *       to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *       value: 69420n,\n   *     },\n   *   ],\n   * })\n   */\n  sendCalls: <\n    const calls extends readonly unknown[],\n    chainOverride extends Chain | undefined = undefined,\n  >(\n    parameters: SendCallsParameters<chain, account, chainOverride, calls>,\n  ) => Promise<SendCallsReturnType>\n  /**\n   * Sends a **signed** transaction to the network\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction\n   * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n   *\n   * @param client - Client to use\n   * @param parameters - {@link SendRawTransactionParameters}\n   * @returns The transaction hash. {@link SendRawTransactionReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   * import { sendRawTransaction } from 'viem/wallet'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const hash = await client.sendRawTransaction({\n   *   serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n   * })\n   */\n  sendRawTransaction: (\n    args: SendRawTransactionParameters,\n  ) => Promise<SendRawTransactionReturnType>\n  /**\n   * Creates, signs, and sends a new transaction to the network.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions\n   * - JSON-RPC Methods:\n   *   - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n   *   - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n   *\n   * @param args - {@link SendTransactionParameters}\n   * @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link SendTransactionReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const hash = await client.sendTransaction({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *   value: 1000000000000000000n,\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const hash = await client.sendTransaction({\n   *   to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n   *   value: 1000000000000000000n,\n   * })\n   */\n  sendTransaction: <\n    const request extends SendTransactionRequest<chain, chainOverride>,\n    chainOverride extends Chain | undefined = undefined,\n  >(\n    args: SendTransactionParameters<chain, account, chainOverride, request>,\n  ) => Promise<SendTransactionReturnType>\n  /**\n   * Requests for the wallet to show information about a call batch\n   * that was sent via `sendCalls`.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/showCallsStatus\n   * - JSON-RPC Methods: [`wallet_showCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n   *\n   * @param client - Client to use\n   * @returns Displays status of the calls in wallet. {@link ShowCallsStatusReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * await client.showCallsStatus({ id: '0xdeadbeef' })\n   */\n  showCallsStatus: (\n    parameters: ShowCallsStatusParameters,\n  ) => Promise<ShowCallsStatusReturnType>\n  /**\n   * Signs an [EIP-7702 Authorization](https://eips.ethereum.org/EIPS/eip-7702) object.\n   *\n   * With the calculated signature, you can:\n   * - use [`verifyAuthorization`](https://viem.sh/docs/eip7702/verifyAuthorization) to verify the signed Authorization object,\n   * - use [`recoverAuthorizationAddress`](https://viem.sh/docs/eip7702/recoverAuthorizationAddress) to recover the signing address from the signed Authorization object.\n   *\n   * @param client - Client to use\n   * @param parameters - {@link SignAuthorizationParameters}\n   * @returns The signed Authorization object. {@link SignAuthorizationReturnType}\n   *\n   * @example\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const signature = await client.signAuthorization({\n   *   account: privateKeyToAccount('0x..'),\n   *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   *\n   * const signature = await client.signAuthorization({\n   *   contractAddress: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   * })\n   */\n  signAuthorization: (\n    parameters: SignAuthorizationParameters<account>,\n  ) => Promise<SignAuthorizationReturnType>\n  /**\n   * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/signMessage\n   * - JSON-RPC Methods:\n   *   - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data#personal-sign)\n   *   - Local Accounts: Signs locally. No JSON-RPC request.\n   *\n   * With the calculated signature, you can:\n   * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage) to verify the signature,\n   * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress) to recover the signing address from a signature.\n   *\n   * @param args - {@link SignMessageParameters}\n   * @returns The signed message. {@link SignMessageReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const signature = await client.signMessage({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   message: 'hello world',\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const signature = await client.signMessage({\n   *   message: 'hello world',\n   * })\n   */\n  signMessage: (\n    args: SignMessageParameters<account>,\n  ) => Promise<SignMessageReturnType>\n  /**\n   * Signs a transaction.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/signTransaction\n   * - JSON-RPC Methods:\n   *   - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n   *   - Local Accounts: Signs locally. No JSON-RPC request.\n   *\n   * @param args - {@link SignTransactionParameters}\n   * @returns The signed message. {@link SignTransactionReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   * const signature = await client.signTransaction(request)\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const request = await client.prepareTransactionRequest({\n   *   to: '0x0000000000000000000000000000000000000000',\n   *   value: 1n,\n   * })\n   * const signature = await client.signTransaction(request)\n   */\n  signTransaction: <\n    chainOverride extends Chain | undefined,\n    const request extends SignTransactionRequest<\n      chain,\n      chainOverride\n    > = SignTransactionRequest<chain, chainOverride>,\n  >(\n    args: SignTransactionParameters<chain, account, chainOverride, request>,\n  ) => Promise<SignTransactionReturnType<request>>\n  /**\n   * Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/signTypedData\n   * - JSON-RPC Methods:\n   *   - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data#signtypeddata-v4)\n   *   - Local Accounts: Signs locally. No JSON-RPC request.\n   *\n   * @param client - Client to use\n   * @param args - {@link SignTypedDataParameters}\n   * @returns The signed data. {@link SignTypedDataReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const signature = await client.signTypedData({\n   *   account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n   *   domain: {\n   *     name: 'Ether Mail',\n   *     version: '1',\n   *     chainId: 1,\n   *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n   *   },\n   *   types: {\n   *     Person: [\n   *       { name: 'name', type: 'string' },\n   *       { name: 'wallet', type: 'address' },\n   *     ],\n   *     Mail: [\n   *       { name: 'from', type: 'Person' },\n   *       { name: 'to', type: 'Person' },\n   *       { name: 'contents', type: 'string' },\n   *     ],\n   *   },\n   *   primaryType: 'Mail',\n   *   message: {\n   *     from: {\n   *       name: 'Cow',\n   *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n   *     },\n   *     to: {\n   *       name: 'Bob',\n   *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n   *     },\n   *     contents: 'Hello, Bob!',\n   *   },\n   * })\n   *\n   * @example\n   * // Account Hoisting\n   * import { createWalletClient, http } from 'viem'\n   * import { privateKeyToAccount } from 'viem/accounts'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   account: privateKeyToAccount('0x…'),\n   *   chain: mainnet,\n   *   transport: http(),\n   * })\n   * const signature = await client.signTypedData({\n   *   domain: {\n   *     name: 'Ether Mail',\n   *     version: '1',\n   *     chainId: 1,\n   *     verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n   *   },\n   *   types: {\n   *     Person: [\n   *       { name: 'name', type: 'string' },\n   *       { name: 'wallet', type: 'address' },\n   *     ],\n   *     Mail: [\n   *       { name: 'from', type: 'Person' },\n   *       { name: 'to', type: 'Person' },\n   *       { name: 'contents', type: 'string' },\n   *     ],\n   *   },\n   *   primaryType: 'Mail',\n   *   message: {\n   *     from: {\n   *       name: 'Cow',\n   *       wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n   *     },\n   *     to: {\n   *       name: 'Bob',\n   *       wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n   *     },\n   *     contents: 'Hello, Bob!',\n   *   },\n   * })\n   */\n  signTypedData: <\n    const typedData extends TypedData | { [key: string]: unknown },\n    primaryType extends string,\n  >(\n    args: SignTypedDataParameters<typedData, primaryType, account>,\n  ) => Promise<SignTypedDataReturnType>\n  /**\n   * Switch the target chain in a wallet.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/switchChain\n   * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n   *\n   * @param args - {@link SwitchChainParameters}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet, optimism } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * await client.switchChain({ id: optimism.id })\n   */\n  switchChain: (args: SwitchChainParameters) => Promise<void>\n  /**\n   * Waits for the status & receipts of a call bundle that was sent via `sendCalls`.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/waitForCallsStatus\n   * - JSON-RPC Methods: [`wallet_getCallsStatus`](https://eips.ethereum.org/EIPS/eip-5792)\n   *\n   * @param client - Client to use\n   * @param parameters - {@link WaitForCallsStatusParameters}\n   * @returns Status & receipts of the call bundle. {@link WaitForCallsStatusReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   *\n   * const { receipts, status } = await waitForCallsStatus(client, { id: '0xdeadbeef' })\n   */\n  waitForCallsStatus: (\n    parameters: WaitForCallsStatusParameters,\n  ) => Promise<WaitForCallsStatusReturnType>\n  /**\n   * Adds an EVM chain to the wallet.\n   *\n   * - Docs: https://viem.sh/docs/actions/wallet/watchAsset\n   * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n   *\n   * @param args - {@link WatchAssetParameters}\n   * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const success = await client.watchAsset({\n   *   type: 'ERC20',\n   *   options: {\n   *     address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n   *     decimals: 18,\n   *     symbol: 'WETH',\n   *   },\n   * })\n   */\n  watchAsset: (args: WatchAssetParameters) => Promise<WatchAssetReturnType>\n  /**\n   * Executes a write function on a contract.\n   *\n   * - Docs: https://viem.sh/docs/contract/writeContract\n   * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts\n   *\n   * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms) is needed to be broadcast in order to change the state.\n   *\n   * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData).\n   *\n   * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract#usage) before you execute it.__\n   *\n   * @param args - {@link WriteContractParameters}\n   * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms#hash). {@link WriteContractReturnType}\n   *\n   * @example\n   * import { createWalletClient, custom, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const hash = await client.writeContract({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n   *   functionName: 'mint',\n   *   args: [69420],\n   * })\n   *\n   * @example\n   * // With Validation\n   * import { createWalletClient, custom, parseAbi } from 'viem'\n   * import { mainnet } from 'viem/chains'\n   *\n   * const client = createWalletClient({\n   *   chain: mainnet,\n   *   transport: custom(window.ethereum),\n   * })\n   * const { request } = await client.simulateContract({\n   *   address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n   *   abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n   *   functionName: 'mint',\n   *   args: [69420],\n   * }\n   * const hash = await client.writeContract(request)\n   */\n  writeContract: <\n    const abi extends Abi | readonly unknown[],\n    functionName extends ContractFunctionName<abi, 'payable' | 'nonpayable'>,\n    args extends ContractFunctionArgs<\n      abi,\n      'payable' | 'nonpayable',\n      functionName\n    >,\n    chainOverride extends Chain | undefined = undefined,\n  >(\n    args: WriteContractParameters<\n      abi,\n      functionName,\n      args,\n      chain,\n      account,\n      chainOverride\n    >,\n  ) => Promise<WriteContractReturnType>\n}\n\nexport function walletActions<\n  transport extends Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n>(client: Client<transport, chain, account>): WalletActions<chain, account> {\n  return {\n    addChain: (args) => addChain(client, args),\n    deployContract: (args) => deployContract(client, args),\n    getAddresses: () => getAddresses(client),\n    getCallsStatus: (args) => getCallsStatus(client, args),\n    getCapabilities: (args) => getCapabilities(client, args),\n    getChainId: () => getChainId(client),\n    getPermissions: () => getPermissions(client),\n    prepareAuthorization: (args) => prepareAuthorization(client, args),\n    prepareTransactionRequest: (args) =>\n      prepareTransactionRequest(client as any, args as any) as any,\n    requestAddresses: () => requestAddresses(client),\n    requestPermissions: (args) => requestPermissions(client, args),\n    sendCalls: (args) => sendCalls(client, args),\n    sendRawTransaction: (args) => sendRawTransaction(client, args),\n    sendTransaction: (args) => sendTransaction(client, args),\n    showCallsStatus: (args) => showCallsStatus(client, args),\n    signAuthorization: (args) => signAuthorization(client, args),\n    signMessage: (args) => signMessage(client, args),\n    signTransaction: (args) => signTransaction(client, args),\n    signTypedData: (args) => signTypedData(client, args),\n    switchChain: (args) => switchChain(client, args),\n    waitForCallsStatus: (args) => waitForCallsStatus(client, args),\n    watchAsset: (args) => watchAsset(client, args),\n    writeContract: (args) => writeContract(client, args as any),\n  }\n}\n","import type { Address } from 'abitype'\n\nimport type { Account } from '../accounts/types.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { ParseAccount } from '../types/account.js'\nimport type { Chain } from '../types/chain.js'\nimport type { RpcSchema, WalletRpcSchema } from '../types/eip1193.js'\nimport type { Prettify } from '../types/utils.js'\nimport {\n  type Client,\n  type ClientConfig,\n  type CreateClientErrorType,\n  createClient,\n} from './createClient.js'\nimport { type WalletActions, walletActions } from './decorators/wallet.js'\nimport type { Transport } from './transports/createTransport.js'\n\nexport type WalletClientConfig<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  accountOrAddress extends Account | Address | undefined =\n    | Account\n    | Address\n    | undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = Prettify<\n  Pick<\n    ClientConfig<transport, chain, accountOrAddress, rpcSchema>,\n    | 'account'\n    | 'cacheTime'\n    | 'ccipRead'\n    | 'chain'\n    | 'key'\n    | 'name'\n    | 'pollingInterval'\n    | 'rpcSchema'\n    | 'transport'\n  >\n>\n\nexport type WalletClient<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain | undefined,\n  account extends Account | undefined = Account | undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n> = Prettify<\n  Client<\n    transport,\n    chain,\n    account,\n    rpcSchema extends RpcSchema\n      ? [...WalletRpcSchema, ...rpcSchema]\n      : WalletRpcSchema,\n    WalletActions<chain, account>\n  >\n>\n\nexport type CreateWalletClientErrorType = CreateClientErrorType | ErrorType\n\n/**\n * Creates a Wallet Client with a given [Transport](https://viem.sh/docs/clients/intro) configured for a [Chain](https://viem.sh/docs/clients/chains).\n *\n * - Docs: https://viem.sh/docs/clients/wallet\n *\n * A Wallet Client is an interface to interact with [Ethereum Account(s)](https://ethereum.org/en/glossary/#account) and provides the ability to retrieve accounts, execute transactions, sign messages, etc. through [Wallet Actions](https://viem.sh/docs/actions/wallet/introduction).\n *\n * The Wallet Client supports signing over:\n * - [JSON-RPC Accounts](https://viem.sh/docs/clients/wallet#json-rpc-accounts) (e.g. Browser Extension Wallets, WalletConnect, etc).\n * - [Local Accounts](https://viem.sh/docs/clients/wallet#local-accounts-private-key-mnemonic-etc) (e.g. private key/mnemonic wallets).\n *\n * @param config - {@link WalletClientConfig}\n * @returns A Wallet Client. {@link WalletClient}\n *\n * @example\n * // JSON-RPC Account\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n *   chain: mainnet,\n *   transport: custom(window.ethereum),\n * })\n *\n * @example\n * // Local Account\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n *\n * const client = createWalletClient({\n *   account: privateKeyToAccount('0x…')\n *   chain: mainnet,\n *   transport: http(),\n * })\n */\nexport function createWalletClient<\n  transport extends Transport,\n  chain extends Chain | undefined = undefined,\n  accountOrAddress extends Account | Address | undefined = undefined,\n  rpcSchema extends RpcSchema | undefined = undefined,\n>(\n  parameters: WalletClientConfig<transport, chain, accountOrAddress, rpcSchema>,\n): WalletClient<transport, chain, ParseAccount<accountOrAddress>, rpcSchema>\n\nexport function createWalletClient(\n  parameters: WalletClientConfig,\n): WalletClient {\n  const { key = 'wallet', name = 'Wallet Client', transport } = parameters\n  const client = createClient({\n    ...parameters,\n    key,\n    name,\n    transport,\n    type: 'walletClient',\n  })\n  return client.extend(walletActions)\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Chain } from '../../types/chain.js'\nimport type { EIP1193RequestFn } from '../../types/eip1193.js'\nimport type { OneOf } from '../../types/utils.js'\nimport { buildRequest } from '../../utils/buildRequest.js'\nimport { uid as uid_ } from '../../utils/uid.js'\nimport type { ClientConfig } from '../createClient.js'\n\nexport type TransportConfig<\n  type extends string = string,\n  eip1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = {\n  /** The name of the transport. */\n  name: string\n  /** The key of the transport. */\n  key: string\n  /** Methods to include or exclude from executing RPC requests. */\n  methods?:\n    | OneOf<\n        | {\n            include?: string[] | undefined\n          }\n        | {\n            exclude?: string[] | undefined\n          }\n      >\n    | undefined\n  /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n  request: eip1193RequestFn\n  /** The base delay (in ms) between retries. */\n  retryDelay?: number | undefined\n  /** The max number of times to retry. */\n  retryCount?: number | undefined\n  /** The timeout (in ms) for requests. */\n  timeout?: number | undefined\n  /** The type of the transport. */\n  type: type\n}\n\nexport type Transport<\n  type extends string = string,\n  rpcAttributes = Record<string, any>,\n  eip1193RequestFn extends EIP1193RequestFn = EIP1193RequestFn,\n> = <chain extends Chain | undefined = Chain>({\n  chain,\n}: {\n  chain?: chain | undefined\n  pollingInterval?: ClientConfig['pollingInterval'] | undefined\n  retryCount?: TransportConfig['retryCount'] | undefined\n  timeout?: TransportConfig['timeout'] | undefined\n}) => {\n  config: TransportConfig<type>\n  request: eip1193RequestFn\n  value?: rpcAttributes | undefined\n}\n\nexport type CreateTransportErrorType = ErrorType\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n  type extends string,\n  rpcAttributes extends Record<string, any>,\n>(\n  {\n    key,\n    methods,\n    name,\n    request,\n    retryCount = 3,\n    retryDelay = 150,\n    timeout,\n    type,\n  }: TransportConfig<type>,\n  value?: rpcAttributes | undefined,\n): ReturnType<Transport<type, rpcAttributes>> {\n  const uid = uid_()\n  return {\n    config: {\n      key,\n      methods,\n      name,\n      request,\n      retryCount,\n      retryDelay,\n      timeout,\n      type,\n    },\n    request: buildRequest(request, { methods, retryCount, retryDelay, uid }),\n    value,\n  }\n}\n","import { BaseError } from './base.js'\n\nexport type UrlRequiredErrorType = UrlRequiredError & {\n  name: 'UrlRequiredError'\n}\nexport class UrlRequiredError extends BaseError {\n  constructor() {\n    super(\n      'No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.',\n      {\n        docsPath: '/docs/clients/intro',\n        name: 'UrlRequiredError',\n      },\n    )\n  }\n}\n","import { RpcRequestError } from '../../errors/request.js'\nimport {\n  UrlRequiredError,\n  type UrlRequiredErrorType,\n} from '../../errors/transport.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { EIP1193RequestFn, RpcSchema } from '../../types/eip1193.js'\nimport type { RpcRequest } from '../../types/rpc.js'\nimport { createBatchScheduler } from '../../utils/promise/createBatchScheduler.js'\nimport {\n  getHttpRpcClient,\n  type HttpRpcClientOptions,\n} from '../../utils/rpc/http.js'\n\nimport {\n  type CreateTransportErrorType,\n  createTransport,\n  type Transport,\n  type TransportConfig,\n} from './createTransport.js'\n\nexport type HttpTransportConfig<\n  rpcSchema extends RpcSchema | undefined = undefined,\n  raw extends boolean = false,\n> = {\n  /**\n   * Whether to enable Batch JSON-RPC.\n   * @link https://www.jsonrpc.org/specification#batch\n   */\n  batch?:\n    | boolean\n    | {\n        /** The maximum number of JSON-RPC requests to send in a batch. @default 1_000 */\n        batchSize?: number | undefined\n        /** The maximum number of milliseconds to wait before sending a batch. @default 0 */\n        wait?: number | undefined\n      }\n    | undefined\n  /**\n   * Request configuration to pass to `fetch`.\n   * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n   */\n  fetchOptions?: HttpRpcClientOptions['fetchOptions'] | undefined\n  /** A callback to handle the response from `fetch`. */\n  onFetchRequest?: HttpRpcClientOptions['onRequest'] | undefined\n  /** A callback to handle the response from `fetch`. */\n  onFetchResponse?: HttpRpcClientOptions['onResponse'] | undefined\n  /** The key of the HTTP transport. */\n  key?: TransportConfig['key'] | undefined\n  /** Methods to include or exclude from executing RPC requests. */\n  methods?: TransportConfig['methods'] | undefined\n  /** The name of the HTTP transport. */\n  name?: TransportConfig['name'] | undefined\n  /** Whether to return JSON RPC errors as responses instead of throwing. */\n  raw?: raw | boolean | undefined\n  /** The max number of times to retry. */\n  retryCount?: TransportConfig['retryCount'] | undefined\n  /** The base delay (in ms) between retries. */\n  retryDelay?: TransportConfig['retryDelay'] | undefined\n  /** Typed JSON-RPC schema for the transport. */\n  rpcSchema?: rpcSchema | RpcSchema | undefined\n  /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n  timeout?: TransportConfig['timeout'] | undefined\n}\n\nexport type HttpTransport<\n  rpcSchema extends RpcSchema | undefined = undefined,\n  raw extends boolean = false,\n> = Transport<\n  'http',\n  {\n    fetchOptions?: HttpTransportConfig['fetchOptions'] | undefined\n    url?: string | undefined\n  },\n  EIP1193RequestFn<rpcSchema, raw>\n>\n\nexport type HttpTransportErrorType =\n  | CreateTransportErrorType\n  | UrlRequiredErrorType\n  | ErrorType\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http<\n  rpcSchema extends RpcSchema | undefined = undefined,\n  raw extends boolean = false,\n>(\n  /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n  url?: string | undefined,\n  config: HttpTransportConfig<rpcSchema, raw> = {},\n): HttpTransport<rpcSchema, raw> {\n  const {\n    batch,\n    fetchOptions,\n    key = 'http',\n    methods,\n    name = 'HTTP JSON-RPC',\n    onFetchRequest,\n    onFetchResponse,\n    retryDelay,\n    raw,\n  } = config\n  return ({ chain, retryCount: retryCount_, timeout: timeout_ }) => {\n    const { batchSize = 1000, wait = 0 } =\n      typeof batch === 'object' ? batch : {}\n    const retryCount = config.retryCount ?? retryCount_\n    const timeout = timeout_ ?? config.timeout ?? 10_000\n    const url_ = url || chain?.rpcUrls.default.http[0]\n    if (!url_) throw new UrlRequiredError()\n\n    const rpcClient = getHttpRpcClient(url_, {\n      fetchOptions,\n      onRequest: onFetchRequest,\n      onResponse: onFetchResponse,\n      timeout,\n    })\n\n    return createTransport(\n      {\n        key,\n        methods,\n        name,\n        async request({ method, params }) {\n          const body = { method, params }\n\n          const { schedule } = createBatchScheduler({\n            id: url_,\n            wait,\n            shouldSplitBatch(requests) {\n              return requests.length > batchSize\n            },\n            fn: (body: RpcRequest[]) =>\n              rpcClient.request({\n                body,\n              }),\n            sort: (a, b) => a.id - b.id,\n          })\n\n          const fn = async (body: RpcRequest) =>\n            batch\n              ? schedule(body)\n              : [\n                  await rpcClient.request({\n                    body,\n                  }),\n                ]\n\n          const [{ error, result }] = await fn(body)\n\n          if (raw) return { error, result }\n          if (error)\n            throw new RpcRequestError({\n              body,\n              error,\n              url: url_,\n            })\n          return result\n        },\n        retryCount,\n        retryDelay,\n        timeout,\n        type: 'http',\n      },\n      {\n        fetchOptions,\n        url: url_,\n      },\n    )\n  }\n}\n","import type { Chain } from '../types/chain.js'\n\n/**\n * Predeploy contracts for OP Stack.\n * @see https://github.com/ethereum-optimism/optimism/blob/develop/specs/predeploys.md\n */\nexport const contracts = {\n  gasPriceOracle: { address: '0x420000000000000000000000000000000000000F' },\n  l1Block: { address: '0x4200000000000000000000000000000000000015' },\n  l2CrossDomainMessenger: {\n    address: '0x4200000000000000000000000000000000000007',\n  },\n  l2Erc721Bridge: { address: '0x4200000000000000000000000000000000000014' },\n  l2StandardBridge: { address: '0x4200000000000000000000000000000000000010' },\n  l2ToL1MessagePasser: {\n    address: '0x4200000000000000000000000000000000000016',\n  },\n} as const satisfies Chain['contracts']\n","import type { ChainFormatters } from '../types/chain.js'\nimport type { RpcTransaction } from '../types/rpc.js'\nimport { hexToBigInt } from '../utils/encoding/fromHex.js'\nimport { defineBlock } from '../utils/formatters/block.js'\nimport {\n  defineTransaction,\n  formatTransaction,\n} from '../utils/formatters/transaction.js'\nimport { defineTransactionReceipt } from '../utils/formatters/transactionReceipt.js'\nimport type { OpStackBlock, OpStackRpcBlock } from './types/block.js'\nimport type {\n  OpStackRpcTransaction,\n  OpStackRpcTransactionReceipt,\n  OpStackTransaction,\n  OpStackTransactionReceipt,\n} from './types/transaction.js'\n\nexport const formatters = {\n  block: /*#__PURE__*/ defineBlock({\n    format(args: OpStackRpcBlock): OpStackBlock {\n      const transactions = args.transactions?.map((transaction) => {\n        if (typeof transaction === 'string') return transaction\n        const formatted = formatTransaction(\n          transaction as RpcTransaction,\n        ) as OpStackTransaction\n        if (formatted.typeHex === '0x7e') {\n          formatted.isSystemTx = transaction.isSystemTx\n          formatted.mint = transaction.mint\n            ? hexToBigInt(transaction.mint)\n            : undefined\n          formatted.sourceHash = transaction.sourceHash\n          formatted.type = 'deposit'\n        }\n        return formatted\n      })\n      return {\n        transactions,\n        stateRoot: args.stateRoot,\n      } as OpStackBlock\n    },\n  }),\n  transaction: /*#__PURE__*/ defineTransaction({\n    format(args: OpStackRpcTransaction): OpStackTransaction {\n      const transaction = {} as OpStackTransaction\n      if (args.type === '0x7e') {\n        transaction.isSystemTx = args.isSystemTx\n        transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined\n        transaction.sourceHash = args.sourceHash\n        transaction.type = 'deposit'\n      }\n      return transaction\n    },\n  }),\n  transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({\n    format(args: OpStackRpcTransactionReceipt): OpStackTransactionReceipt {\n      return {\n        l1GasPrice: args.l1GasPrice ? hexToBigInt(args.l1GasPrice) : null,\n        l1GasUsed: args.l1GasUsed ? hexToBigInt(args.l1GasUsed) : null,\n        l1Fee: args.l1Fee ? hexToBigInt(args.l1Fee) : null,\n        l1FeeScalar: args.l1FeeScalar ? Number(args.l1FeeScalar) : null,\n      } as OpStackTransactionReceipt\n    },\n  }),\n} as const satisfies ChainFormatters\n","import { InvalidAddressError } from '../errors/address.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { ChainSerializers } from '../types/chain.js'\nimport type { Hex, Signature } from '../types/misc.js'\nimport type { TransactionSerializable } from '../types/transaction.js'\nimport type { RequiredBy } from '../types/utils.js'\nimport { isAddress } from '../utils/address/isAddress.js'\nimport { concatHex } from '../utils/data/concat.js'\nimport { toHex } from '../utils/encoding/toHex.js'\nimport { toRlp } from '../utils/encoding/toRlp.js'\nimport {\n  type SerializeTransactionErrorType as SerializeTransactionErrorType_,\n  serializeTransaction as serializeTransaction_,\n} from '../utils/transaction/serializeTransaction.js'\nimport type {\n  OpStackTransactionSerializable,\n  TransactionSerializableDeposit,\n  TransactionSerializedDeposit,\n} from './types/transaction.js'\n\nexport type SerializeTransactionReturnType = ReturnType<\n  typeof serializeTransaction\n>\n\nexport type SerializeTransactionErrorType =\n  | SerializeTransactionErrorType_\n  | ErrorType\n\nexport function serializeTransaction(\n  transaction: OpStackTransactionSerializable,\n  signature?: Signature,\n) {\n  if (isDeposit(transaction)) return serializeTransactionDeposit(transaction)\n  return serializeTransaction_(\n    transaction as TransactionSerializable,\n    signature,\n  )\n}\n\nexport const serializers = {\n  transaction: serializeTransaction,\n} as const satisfies ChainSerializers\n\n//////////////////////////////////////////////////////////////////////////////\n// Serializers\n\nexport type SerializeTransactionDepositReturnType = TransactionSerializedDeposit\n\nfunction serializeTransactionDeposit(\n  transaction: TransactionSerializableDeposit,\n): SerializeTransactionDepositReturnType {\n  assertTransactionDeposit(transaction)\n\n  const { sourceHash, data, from, gas, isSystemTx, mint, to, value } =\n    transaction\n\n  const serializedTransaction: Hex[] = [\n    sourceHash,\n    from,\n    to ?? '0x',\n    mint ? toHex(mint) : '0x',\n    value ? toHex(value) : '0x',\n    gas ? toHex(gas) : '0x',\n    isSystemTx ? '0x1' : '0x',\n    data ?? '0x',\n  ]\n\n  return concatHex([\n    '0x7e',\n    toRlp(serializedTransaction),\n  ]) as SerializeTransactionDepositReturnType\n}\n\nfunction isDeposit(\n  transaction: OpStackTransactionSerializable,\n): transaction is RequiredBy<TransactionSerializableDeposit, 'type'> {\n  if (transaction.type === 'deposit') return true\n  if (typeof transaction.sourceHash !== 'undefined') return true\n  return false\n}\n\nexport function assertTransactionDeposit(\n  transaction: TransactionSerializableDeposit,\n) {\n  const { from, to } = transaction\n  if (from && !isAddress(from)) throw new InvalidAddressError({ address: from })\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n}\n","import { contracts } from './contracts.js'\nimport { formatters } from './formatters.js'\nimport { serializers } from './serializers.js'\n\nexport const chainConfig = {\n  blockTime: 2_000,\n  contracts,\n  formatters,\n  serializers,\n} as const\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const avalancheFuji = /*#__PURE__*/ defineChain({\n  id: 43_113,\n  name: 'Avalanche Fuji',\n  nativeCurrency: {\n    decimals: 18,\n    name: 'Avalanche Fuji',\n    symbol: 'AVAX',\n  },\n  rpcUrls: {\n    default: { http: ['https://api.avax-test.network/ext/bc/C/rpc'] },\n  },\n  blockExplorers: {\n    default: {\n      name: 'SnowTrace',\n      url: 'https://testnet.snowtrace.io',\n      apiUrl: 'https://api-testnet.snowtrace.io',\n    },\n  },\n  contracts: {\n    multicall3: {\n      address: '0xca11bde05977b3631167028862be2a173976ca11',\n      blockCreated: 7096959,\n    },\n  },\n  testnet: true,\n})\n","import { chainConfig } from '../../op-stack/chainConfig.js'\nimport { defineChain } from '../../utils/chain/defineChain.js'\n\nconst sourceId = 1 // mainnet\n\nexport const base = /*#__PURE__*/ defineChain({\n  ...chainConfig,\n  id: 8453,\n  name: 'Base',\n  nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n  rpcUrls: {\n    default: {\n      http: ['https://mainnet.base.org'],\n    },\n  },\n  blockExplorers: {\n    default: {\n      name: 'Basescan',\n      url: 'https://basescan.org',\n      apiUrl: 'https://api.basescan.org/api',\n    },\n  },\n  contracts: {\n    ...chainConfig.contracts,\n    disputeGameFactory: {\n      [sourceId]: {\n        address: '0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e',\n      },\n    },\n    l2OutputOracle: {\n      [sourceId]: {\n        address: '0x56315b90c40730925ec5485cf004d835058518A0',\n      },\n    },\n    multicall3: {\n      address: '0xca11bde05977b3631167028862be2a173976ca11',\n      blockCreated: 5022,\n    },\n    portal: {\n      [sourceId]: {\n        address: '0x49048044D57e1C92A77f79988d21Fa8fAF74E97e',\n        blockCreated: 17482143,\n      },\n    },\n    l1StandardBridge: {\n      [sourceId]: {\n        address: '0x3154Cf16ccdb4C6d922629664174b904d80F2C35',\n        blockCreated: 17482143,\n      },\n    },\n  },\n  sourceId,\n})\n\nexport const basePreconf = /*#__PURE__*/ defineChain({\n  ...base,\n  experimental_preconfirmationTime: 200,\n  rpcUrls: {\n    default: {\n      http: ['https://mainnet-preconf.base.org'],\n    },\n  },\n})\n","import { chainConfig } from '../../op-stack/chainConfig.js'\nimport { defineChain } from '../../utils/chain/defineChain.js'\n\nconst sourceId = 11_155_111 // sepolia\n\nexport const baseSepolia = /*#__PURE__*/ defineChain({\n  ...chainConfig,\n  id: 84532,\n  network: 'base-sepolia',\n  name: 'Base Sepolia',\n  nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n  rpcUrls: {\n    default: {\n      http: ['https://sepolia.base.org'],\n    },\n  },\n  blockExplorers: {\n    default: {\n      name: 'Basescan',\n      url: 'https://sepolia.basescan.org',\n      apiUrl: 'https://api-sepolia.basescan.org/api',\n    },\n  },\n  contracts: {\n    ...chainConfig.contracts,\n    disputeGameFactory: {\n      [sourceId]: {\n        address: '0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1',\n      },\n    },\n    l2OutputOracle: {\n      [sourceId]: {\n        address: '0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254',\n      },\n    },\n    portal: {\n      [sourceId]: {\n        address: '0x49f53e41452c74589e85ca1677426ba426459e85',\n        blockCreated: 4446677,\n      },\n    },\n    l1StandardBridge: {\n      [sourceId]: {\n        address: '0xfd0Bf71F60660E2f608ed56e1659C450eB113120',\n        blockCreated: 4446677,\n      },\n    },\n    multicall3: {\n      address: '0xca11bde05977b3631167028862be2a173976ca11',\n      blockCreated: 1059647,\n    },\n  },\n  testnet: true,\n  sourceId,\n})\n\nexport const baseSepoliaPreconf = /*#__PURE__*/ defineChain({\n  ...baseSepolia,\n  experimental_preconfirmationTime: 200,\n  rpcUrls: {\n    default: {\n      http: ['https://sepolia-preconf.base.org'],\n    },\n  },\n})\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const sei = /*#__PURE__*/ defineChain({\n  id: 1329,\n  name: 'Sei Network',\n  nativeCurrency: { name: 'Sei', symbol: 'SEI', decimals: 18 },\n  rpcUrls: {\n    default: {\n      http: ['https://evm-rpc.sei-apis.com/'],\n      webSocket: ['wss://evm-ws.sei-apis.com/'],\n    },\n  },\n  blockExplorers: {\n    default: {\n      name: 'Seitrace',\n      url: 'https://seitrace.com',\n      apiUrl: 'https://seitrace.com/pacific-1/api',\n    },\n  },\n  contracts: {\n    multicall3: {\n      address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n    },\n  },\n})\n","import { defineChain } from '../../utils/chain/defineChain.js'\n\nexport const seiTestnet = /*#__PURE__*/ defineChain({\n  id: 1328,\n  name: 'Sei Testnet',\n  nativeCurrency: { name: 'Sei', symbol: 'SEI', decimals: 18 },\n  rpcUrls: {\n    default: {\n      http: ['https://evm-rpc-testnet.sei-apis.com'],\n      webSocket: ['wss://evm-ws-testnet.sei-apis.com'],\n    },\n  },\n  blockExplorers: {\n    default: {\n      name: 'Seitrace',\n      url: 'https://seitrace.com',\n    },\n  },\n  contracts: {\n    multicall3: {\n      address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n      blockCreated: 98697651,\n    },\n  },\n  testnet: true,\n})\n","// TODO(v3): Rename to `toLocalAccount` + add `source` property to define source (privateKey, mnemonic, hdKey, etc).\n\nimport type { Address } from 'abitype'\n\nimport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../errors/address.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport {\n  type IsAddressErrorType,\n  isAddress,\n} from '../utils/address/isAddress.js'\nimport type {\n  AccountSource,\n  CustomSource,\n  JsonRpcAccount,\n  LocalAccount,\n} from './types.js'\n\ntype GetAccountReturnType<accountSource extends AccountSource> =\n  | (accountSource extends Address ? JsonRpcAccount : never)\n  | (accountSource extends CustomSource ? LocalAccount : never)\n\nexport type ToAccountErrorType =\n  | InvalidAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\n/**\n * @description Creates an Account from a custom signing implementation.\n *\n * @returns A Local Account.\n */\nexport function toAccount<accountSource extends AccountSource>(\n  source: accountSource,\n): GetAccountReturnType<accountSource> {\n  if (typeof source === 'string') {\n    if (!isAddress(source, { strict: false }))\n      throw new InvalidAddressError({ address: source })\n    return {\n      address: source,\n      type: 'json-rpc',\n    } as GetAccountReturnType<accountSource>\n  }\n\n  if (!isAddress(source.address, { strict: false }))\n    throw new InvalidAddressError({ address: source.address })\n  return {\n    address: source.address,\n    nonceManager: source.nonceManager,\n    sign: source.sign,\n    signAuthorization: source.signAuthorization,\n    signMessage: source.signMessage,\n    signTransaction: source.signTransaction,\n    signTypedData: source.signTypedData,\n    source: 'custom',\n    type: 'local',\n  } as GetAccountReturnType<accountSource>\n}\n","// TODO(v3): Convert to sync.\n\nimport { secp256k1 } from '@noble/curves/secp256k1'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'\nimport {\n  type HexToBytesErrorType,\n  hexToBytes,\n} from '../../utils/encoding/toBytes.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js'\n\ntype To = 'object' | 'bytes' | 'hex'\n\nexport type SignParameters<to extends To = 'object'> = {\n  hash: Hex\n  privateKey: Hex\n  to?: to | To | undefined\n}\n\nexport type SignReturnType<to extends To = 'object'> =\n  | (to extends 'object' ? Signature : never)\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type SignErrorType =\n  | HexToBytesErrorType\n  | IsHexErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\nlet extraEntropy: Hex | boolean = false\n\n/**\n * Sets extra entropy for signing functions.\n */\nexport function setSignEntropy(entropy: true | Hex) {\n  if (!entropy) throw new Error('must be a `true` or a hex value.')\n  extraEntropy = entropy\n}\n\n/**\n * @description Signs a hash with a given private key.\n *\n * @param hash The hash to sign.\n * @param privateKey The private key to sign with.\n *\n * @returns The signature.\n */\nexport async function sign<to extends To = 'object'>({\n  hash,\n  privateKey,\n  to = 'object',\n}: SignParameters<to>): Promise<SignReturnType<to>> {\n  const { r, s, recovery } = secp256k1.sign(\n    hash.slice(2),\n    privateKey.slice(2),\n    {\n      lowS: true,\n      extraEntropy: isHex(extraEntropy, { strict: false })\n        ? hexToBytes(extraEntropy)\n        : extraEntropy,\n    },\n  )\n  const signature = {\n    r: numberToHex(r, { size: 32 }),\n    s: numberToHex(s, { size: 32 }),\n    v: recovery ? 28n : 27n,\n    yParity: recovery,\n  }\n  return (() => {\n    if (to === 'bytes' || to === 'hex')\n      return serializeSignature({ ...signature, to })\n    return signature\n  })() as SignReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type {\n  AuthorizationRequest,\n  SignedAuthorization,\n} from '../../types/authorization.js'\nimport type { Hex, Signature } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type HashAuthorizationErrorType,\n  hashAuthorization,\n} from '../../utils/authorization/hashAuthorization.js'\nimport {\n  type SignErrorType,\n  type SignParameters,\n  type SignReturnType,\n  sign,\n} from './sign.js'\n\ntype To = 'object' | 'bytes' | 'hex'\n\nexport type SignAuthorizationParameters<to extends To = 'object'> =\n  AuthorizationRequest & {\n    /** The private key to sign with. */\n    privateKey: Hex\n    to?: SignParameters<to>['to'] | undefined\n  }\n\nexport type SignAuthorizationReturnType<to extends To = 'object'> = Prettify<\n  to extends 'object' ? SignedAuthorization : SignReturnType<to>\n>\n\nexport type SignAuthorizationErrorType =\n  | SignErrorType\n  | HashAuthorizationErrorType\n  | ErrorType\n\n/**\n * Signs an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport async function signAuthorization<to extends To = 'object'>(\n  parameters: SignAuthorizationParameters<to>,\n): Promise<SignAuthorizationReturnType<to>> {\n  const { chainId, nonce, privateKey, to = 'object' } = parameters\n  const address = parameters.contractAddress ?? parameters.address\n  const signature = await sign({\n    hash: hashAuthorization({ address, chainId, nonce }),\n    privateKey,\n    to,\n  })\n  if (to === 'object')\n    return {\n      address,\n      chainId,\n      nonce,\n      ...(signature as Signature),\n    } as any\n  return signature as any\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport {\n  type HashMessageErrorType,\n  hashMessage,\n} from '../../utils/signature/hashMessage.js'\n\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignMessageParameters = {\n  /** The message to sign. */\n  message: SignableMessage\n  /** The private key to sign with. */\n  privateKey: Hex\n}\n\nexport type SignMessageReturnType = Hex\n\nexport type SignMessageErrorType =\n  | SignErrorType\n  | HashMessageErrorType\n  | ErrorType\n\n/**\n * @description Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signMessage({\n  message,\n  privateKey,\n}: SignMessageParameters): Promise<SignMessageReturnType> {\n  return await sign({ hash: hashMessage(message), privateKey, to: 'hex' })\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type {\n  TransactionSerializable,\n  TransactionSerialized,\n} from '../../types/transaction.js'\nimport {\n  type Keccak256ErrorType,\n  keccak256,\n} from '../../utils/hash/keccak256.js'\nimport type { GetTransactionType } from '../../utils/transaction/getTransactionType.js'\nimport {\n  type SerializeTransactionFn,\n  serializeTransaction,\n} from '../../utils/transaction/serializeTransaction.js'\n\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignTransactionParameters<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n> = {\n  privateKey: Hex\n  transaction: transaction\n  serializer?: serializer | undefined\n}\n\nexport type SignTransactionReturnType<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n> = TransactionSerialized<GetTransactionType<transaction>>\n\nexport type SignTransactionErrorType =\n  | Keccak256ErrorType\n  | SignErrorType\n  | ErrorType\n\nexport async function signTransaction<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n>(\n  parameters: SignTransactionParameters<serializer, transaction>,\n): Promise<SignTransactionReturnType<serializer, transaction>> {\n  const {\n    privateKey,\n    transaction,\n    serializer = serializeTransaction,\n  } = parameters\n\n  const signableTransaction = (() => {\n    // For EIP-4844 Transactions, we want to sign the transaction payload body (tx_payload_body) without the sidecars (ie. without the network wrapper).\n    // See: https://github.com/ethereum/EIPs/blob/e00f4daa66bd56e2dbd5f1d36d09fd613811a48b/EIPS/eip-4844.md#networking\n    if (transaction.type === 'eip4844')\n      return {\n        ...transaction,\n        sidecars: false,\n      }\n    return transaction\n  })()\n\n  const signature = await sign({\n    hash: keccak256(serializer(signableTransaction)),\n    privateKey,\n  })\n  return serializer(transaction, signature) as SignTransactionReturnType<\n    serializer,\n    transaction\n  >\n}\n","import type { TypedData } from 'abitype'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport {\n  type HashTypedDataErrorType,\n  hashTypedData,\n} from '../../utils/signature/hashTypedData.js'\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n> = TypedDataDefinition<typedData, primaryType> & {\n  /** The private key to sign with. */\n  privateKey: Hex\n}\n\nexport type SignTypedDataReturnType = Hex\n\nexport type SignTypedDataErrorType =\n  | HashTypedDataErrorType\n  | SignErrorType\n  | ErrorType\n\n/**\n * @description Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(\n  parameters: SignTypedDataParameters<typedData, primaryType>,\n): Promise<SignTypedDataReturnType> {\n  const { privateKey, ...typedData } =\n    parameters as unknown as SignTypedDataParameters\n  return await sign({\n    hash: hashTypedData(typedData),\n    privateKey,\n    to: 'hex',\n  })\n}\n","import { secp256k1 } from '@noble/curves/secp256k1'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Hex } from '../types/misc.js'\nimport { type ToHexErrorType, toHex } from '../utils/encoding/toHex.js'\nimport type { NonceManager } from '../utils/nonceManager.js'\nimport { type ToAccountErrorType, toAccount } from './toAccount.js'\nimport type { PrivateKeyAccount } from './types.js'\nimport {\n  type PublicKeyToAddressErrorType,\n  publicKeyToAddress,\n} from './utils/publicKeyToAddress.js'\nimport { type SignErrorType, sign } from './utils/sign.js'\nimport { signAuthorization } from './utils/signAuthorization.js'\nimport { type SignMessageErrorType, signMessage } from './utils/signMessage.js'\nimport {\n  type SignTransactionErrorType,\n  signTransaction,\n} from './utils/signTransaction.js'\nimport {\n  type SignTypedDataErrorType,\n  signTypedData,\n} from './utils/signTypedData.js'\n\nexport type PrivateKeyToAccountOptions = {\n  nonceManager?: NonceManager | undefined\n}\n\nexport type PrivateKeyToAccountErrorType =\n  | ToAccountErrorType\n  | ToHexErrorType\n  | PublicKeyToAddressErrorType\n  | SignErrorType\n  | SignMessageErrorType\n  | SignTransactionErrorType\n  | SignTypedDataErrorType\n  | ErrorType\n\n/**\n * @description Creates an Account from a private key.\n *\n * @returns A Private Key Account.\n */\nexport function privateKeyToAccount(\n  privateKey: Hex,\n  options: PrivateKeyToAccountOptions = {},\n): PrivateKeyAccount {\n  const { nonceManager } = options\n  const publicKey = toHex(secp256k1.getPublicKey(privateKey.slice(2), false))\n  const address = publicKeyToAddress(publicKey)\n\n  const account = toAccount({\n    address,\n    nonceManager,\n    async sign({ hash }) {\n      return sign({ hash, privateKey, to: 'hex' })\n    },\n    async signAuthorization(authorization) {\n      return signAuthorization({ ...authorization, privateKey })\n    },\n    async signMessage({ message }) {\n      return signMessage({ message, privateKey })\n    },\n    async signTransaction(transaction, { serializer } = {}) {\n      return signTransaction({ privateKey, transaction, serializer })\n    },\n    async signTypedData(typedData) {\n      return signTypedData({ ...typedData, privateKey } as any)\n    },\n  })\n\n  return {\n    ...account,\n    publicKey,\n    source: 'privateKey',\n  } as PrivateKeyAccount\n}\n","import { z } from \"zod\";\n\nexport const moneySchema = z\n  .union([z.string().transform(x => x.replace(/[^0-9.-]+/g, \"\")), z.number()])\n  .pipe(z.coerce.number().min(0.0001).max(999999999));\n\nexport type Money = z.input<typeof moneySchema>;\n","import { z } from \"zod\";\n\nexport const NetworkSchema = z.enum([\n  \"base-sepolia\",\n  \"base\",\n  \"avalanche-fuji\",\n  \"avalanche\",\n  \"iotex\",\n  \"sei\",\n  \"sei-testnet\",\n]);\nexport type Network = z.infer<typeof NetworkSchema>;\n\nexport const SupportedEVMNetworks: Network[] = [\n  \"base-sepolia\",\n  \"base\",\n  \"avalanche-fuji\",\n  \"avalanche\",\n  \"iotex\",\n  \"sei\",\n  \"sei-testnet\",\n];\nexport const EvmNetworkToChainId = new Map<Network, number>([\n  [\"base-sepolia\", 84532],\n  [\"base\", 8453],\n  [\"avalanche-fuji\", 43113],\n  [\"avalanche\", 43114],\n  [\"iotex\", 4689],\n  [\"sei\", 1329],\n  [\"sei-testnet\", 1328],\n]);\n\nexport const ChainIdToNetwork = Object.fromEntries(\n  SupportedEVMNetworks.map(network => [EvmNetworkToChainId.get(network), network]),\n) as Record<number, Network>;\n","export * from \"./config\";\nexport * from \"./eip3009\";\nexport * from \"./erc20PermitABI\";\nexport * from \"./wallet\";\n","export const authorizationTypes = {\n  TransferWithAuthorization: [\n    { name: \"from\", type: \"address\" },\n    { name: \"to\", type: \"address\" },\n    { name: \"value\", type: \"uint256\" },\n    { name: \"validAfter\", type: \"uint256\" },\n    { name: \"validBefore\", type: \"uint256\" },\n    { name: \"nonce\", type: \"bytes32\" },\n  ],\n};\n\nexport const authorizationPrimaryType = \"TransferWithAuthorization\";\n","import { createPublicClient, createWalletClient, http, publicActions } from \"viem\";\nimport type {\n  Chain,\n  Transport,\n  Client,\n  Account,\n  RpcSchema,\n  PublicActions,\n  WalletActions,\n  PublicClient,\n  LocalAccount,\n} from \"viem\";\nimport { baseSepolia, avalancheFuji, base, sei, seiTestnet } from \"viem/chains\";\nimport { privateKeyToAccount } from \"viem/accounts\";\nimport { Hex } from \"viem\";\n\n// Create a public client for reading data\nexport type SignerWallet<\n  chain extends Chain = Chain,\n  transport extends Transport = Transport,\n  account extends Account = Account,\n> = Client<\n  transport,\n  chain,\n  account,\n  RpcSchema,\n  PublicActions<transport, chain, account> & WalletActions<chain, account>\n>;\n\nexport type ConnectedClient<\n  transport extends Transport = Transport,\n  chain extends Chain | undefined = Chain,\n  account extends Account | undefined = undefined,\n> = PublicClient<transport, chain, account>;\n\n/**\n * Creates a public client configured for the specified network\n *\n * @param network - The network to connect to\n * @returns A public client instance connected to the specified chain\n */\nexport function createConnectedClient(\n  network: string,\n): ConnectedClient<Transport, Chain, undefined> {\n  const chain = getChainFromNetwork(network);\n  return createPublicClient({\n    chain,\n    transport: http(),\n  }).extend(publicActions);\n}\n\n/**\n * Creates a public client configured for the Base Sepolia testnet\n *\n * @deprecated Use `createConnectedClient(\"base-sepolia\")` instead\n * @returns A public client instance connected to Base Sepolia\n */\nexport function createClientSepolia(): ConnectedClient<Transport, typeof baseSepolia, undefined> {\n  return createConnectedClient(\"base-sepolia\") as ConnectedClient<\n    Transport,\n    typeof baseSepolia,\n    undefined\n  >;\n}\n\n/**\n * Creates a public client configured for the Avalanche Fuji testnet\n *\n * @deprecated Use `createConnectedClient(\"avalanche-fuji\")` instead\n * @returns A public client instance connected to Avalanche Fuji\n */\nexport function createClientAvalancheFuji(): ConnectedClient<\n  Transport,\n  typeof avalancheFuji,\n  undefined\n> {\n  return createConnectedClient(\"avalanche-fuji\") as ConnectedClient<\n    Transport,\n    typeof avalancheFuji,\n    undefined\n  >;\n}\n\n/**\n * Creates a wallet client configured for the specified chain with a private key\n *\n * @param network - The network to connect to\n * @param privateKey - The private key to use for signing transactions\n * @returns A wallet client instance connected to the specified chain with the provided private key\n */\nexport function createSigner(network: string, privateKey: Hex): SignerWallet<Chain> {\n  const chain = getChainFromNetwork(network);\n  return createWalletClient({\n    chain,\n    transport: http(),\n    account: privateKeyToAccount(privateKey),\n  }).extend(publicActions);\n}\n\n/**\n * Creates a wallet client configured for the Base Sepolia testnet with a private key\n *\n * @deprecated Use `createSigner(\"base-sepolia\", privateKey)` instead\n * @param privateKey - The private key to use for signing transactions\n * @returns A wallet client instance connected to Base Sepolia with the provided private key\n */\nexport function createSignerSepolia(privateKey: Hex): SignerWallet<typeof baseSepolia> {\n  return createSigner(\"base-sepolia\", privateKey) as SignerWallet<typeof baseSepolia>;\n}\n\n/**\n * Creates a wallet client configured for the Avalanche Fuji testnet with a private key\n *\n * @deprecated Use `createSigner(\"avalanche-fuji\", privateKey)` instead\n * @param privateKey - The private key to use for signing transactions\n * @returns A wallet client instance connected to Avalanche Fuji with the provided private key\n */\nexport function createSignerAvalancheFuji(privateKey: Hex): SignerWallet<typeof avalancheFuji> {\n  return createSigner(\"avalanche-fuji\", privateKey) as SignerWallet<typeof avalancheFuji>;\n}\n\n/**\n * Checks if a wallet is a signer wallet\n *\n * @param wallet - The wallet to check\n * @returns True if the wallet is a signer wallet, false otherwise\n */\nexport function isSignerWallet<\n  TChain extends Chain = Chain,\n  TTransport extends Transport = Transport,\n  TAccount extends Account = Account,\n>(\n  wallet: SignerWallet<TChain, TTransport, TAccount> | LocalAccount,\n): wallet is SignerWallet<TChain, TTransport, TAccount> {\n  return (\n    typeof wallet === \"object\" && wallet !== null && \"chain\" in wallet && \"transport\" in wallet\n  );\n}\n\n/**\n * Checks if a wallet is an account\n *\n * @param wallet - The wallet to check\n * @returns True if the wallet is an account, false otherwise\n */\nexport function isAccount<\n  TChain extends Chain = Chain,\n  TTransport extends Transport = Transport,\n  TAccount extends Account = Account,\n>(wallet: SignerWallet<TChain, TTransport, TAccount> | LocalAccount): wallet is LocalAccount {\n  const w = wallet as LocalAccount;\n  return (\n    typeof wallet === \"object\" &&\n    wallet !== null &&\n    typeof w.address === \"string\" &&\n    typeof w.type === \"string\" &&\n    // Check for essential signing capabilities\n    typeof w.sign === \"function\" &&\n    typeof w.signMessage === \"function\" &&\n    typeof w.signTypedData === \"function\" &&\n    // Check for transaction signing (required by LocalAccount)\n    typeof w.signTransaction === \"function\"\n  );\n}\n\n/**\n * Maps network strings to Chain objects\n *\n * @param network - The network string to convert to a Chain object\n * @returns The corresponding Chain object\n */\nfunction getChainFromNetwork(network: string | undefined): Chain {\n  if (!network) {\n    throw new Error(\"NETWORK environment variable is not set\");\n  }\n\n  switch (network) {\n    case \"base\":\n      return base;\n    case \"base-sepolia\":\n      return baseSepolia;\n    case \"avalanche-fuji\":\n      return avalancheFuji;\n    case \"sei\":\n      return sei;\n    case \"sei-testnet\":\n      return seiTestnet;\n    default:\n      throw new Error(`Unsupported network: ${network}`);\n  }\n}\n","import { z } from \"zod\";\nimport { NetworkSchema } from \"../shared\";\n// Constants\nconst EvmMaxAtomicUnits = 18;\nconst EvmAddressRegex = /^0x[0-9a-fA-F]{40}$/;\nconst MixedAddressRegex = /^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$/;\nconst HexEncoded64ByteRegex = /^0x[0-9a-fA-F]{64}$/;\nconst EvmSignatureRegex = /^0x[0-9a-fA-F]+$/; // Flexible hex signature validation\n// Enums\nexport const schemes = [\"exact\"] as const;\nexport const x402Versions = [1] as const;\nexport const ErrorReasons = [\n  \"insufficient_funds\",\n  \"invalid_exact_evm_payload_authorization_valid_after\",\n  \"invalid_exact_evm_payload_authorization_valid_before\",\n  \"invalid_exact_evm_payload_authorization_value\",\n  \"invalid_exact_evm_payload_signature\",\n  \"invalid_exact_evm_payload_recipient_mismatch\",\n  \"invalid_network\",\n  \"invalid_payload\",\n  \"invalid_payment_requirements\",\n  \"invalid_scheme\",\n  \"invalid_payment\",\n  \"payment_expired\",\n  \"unsupported_scheme\",\n  \"invalid_x402_version\",\n  \"invalid_transaction_state\",\n  \"unexpected_verify_error\",\n  \"unexpected_settle_error\",\n] as const;\n\n// Refiners\nconst isInteger = (value: string) => Number.isInteger(Number(value)) && Number(value) >= 0;\nconst hasMaxLength = (maxLength: number) => (value: string) => value.length <= maxLength;\n\n// x402PaymentRequirements\nexport const PaymentRequirementsSchema = z.object({\n  scheme: z.enum(schemes),\n  network: NetworkSchema,\n  maxAmountRequired: z.string().refine(isInteger),\n  resource: z.string().url(),\n  description: z.string(),\n  mimeType: z.string(),\n  outputSchema: z.record(z.any()).optional(),\n  payTo: z.string().regex(MixedAddressRegex),\n  maxTimeoutSeconds: z.number().int(),\n  asset: z.string().regex(MixedAddressRegex),\n  extra: z.record(z.any()).optional(),\n});\nexport type PaymentRequirements = z.infer<typeof PaymentRequirementsSchema>;\n\n// x402ExactEvmPayload\nexport const ExactEvmPayloadAuthorizationSchema = z.object({\n  from: z.string().regex(EvmAddressRegex),\n  to: z.string().regex(EvmAddressRegex),\n  value: z.string().refine(isInteger).refine(hasMaxLength(EvmMaxAtomicUnits)),\n  validAfter: z.string().refine(isInteger),\n  validBefore: z.string().refine(isInteger),\n  nonce: z.string().regex(HexEncoded64ByteRegex),\n});\nexport type ExactEvmPayloadAuthorization = z.infer<typeof ExactEvmPayloadAuthorizationSchema>;\n\nexport const ExactEvmPayloadSchema = z.object({\n  signature: z.string().regex(EvmSignatureRegex),\n  authorization: ExactEvmPayloadAuthorizationSchema,\n});\nexport type ExactEvmPayload = z.infer<typeof ExactEvmPayloadSchema>;\n\n// x402PaymentPayload\nexport const PaymentPayloadSchema = z.object({\n  x402Version: z.number().refine(val => x402Versions.includes(val as 1)),\n  scheme: z.enum(schemes),\n  network: NetworkSchema,\n  payload: ExactEvmPayloadSchema,\n});\nexport type PaymentPayload = z.infer<typeof PaymentPayloadSchema>;\nexport type UnsignedPaymentPayload = Omit<PaymentPayload, \"payload\"> & {\n  payload: Omit<ExactEvmPayload, \"signature\"> & { signature: undefined };\n};\n\n// x402 Resource Server Response\nexport const x402ResponseSchema = z.object({\n  x402Version: z.number().refine(val => x402Versions.includes(val as 1)),\n  error: z.enum(ErrorReasons).optional(),\n  accepts: z.array(PaymentRequirementsSchema).optional(),\n  payer: z.string().regex(MixedAddressRegex).optional(),\n});\nexport type x402Response = z.infer<typeof x402ResponseSchema>;\n\n// x402RequestStructure\nconst HTTPVerbsSchema = z.enum([\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\", \"HEAD\"]);\nexport type HTTPVerbs = z.infer<typeof HTTPVerbsSchema>;\n\nexport const HTTPRequestStructureSchema = z.object({\n  type: z.literal(\"http\"),\n  method: HTTPVerbsSchema,\n  queryParams: z.record(z.string(), z.string()).optional(),\n  bodyType: z.enum([\"json\", \"form-data\", \"multipart-form-data\", \"text\", \"binary\"]).optional(),\n  bodyFields: z.record(z.string(), z.any()).optional(),\n  headerFields: z.record(z.string(), z.any()).optional(),\n});\n\n// export const MCPRequestStructureSchema = z.object({\n//   type: z.literal(\"mcp\"),\n//   sessionIsPayed: z.boolean(),\n//   payedAction: z.object({\n//     kind: z.enum([\"prompts\", \"resources\", \"tools\"]),\n//     name: z.string(),\n//   }).optional(),\n// });\n\n// export const OpenAPIRequestStructureSchema = z.object({\n//   type: z.literal(\"openapi\"),\n//   openApiUrl: z.string().url(),\n//   path: z.string(),\n// });\n\nexport const RequestStructureSchema = z.discriminatedUnion(\"type\", [\n  HTTPRequestStructureSchema,\n  // MCPRequestStructureSchema,\n  // OpenAPIRequestStructureSchema,\n]);\n\nexport type HTTPRequestStructure = z.infer<typeof HTTPRequestStructureSchema>;\n// export type MCPRequestStructure = z.infer<typeof MCPRequestStructureSchema>;\n// export type OpenAPIRequestStructure = z.infer<typeof OpenAPIRequestStructureSchema>;\nexport type RequestStructure = z.infer<typeof RequestStructureSchema>;\n\n// x402DiscoveryResource\nexport const DiscoveredResourceSchema = z.object({\n  resource: z.string(),\n  type: z.enum([\"http\"]),\n  x402Version: z.number().refine(val => x402Versions.includes(val as 1)),\n  accepts: z.array(PaymentRequirementsSchema),\n  lastUpdated: z.date(),\n  metadata: z.record(z.any()).optional(),\n});\nexport type DiscoveredResource = z.infer<typeof DiscoveredResourceSchema>;\n\n// x402SettleRequest\nexport const SettleRequestSchema = z.object({\n  paymentPayload: PaymentPayloadSchema,\n  paymentRequirements: PaymentRequirementsSchema,\n});\nexport type SettleRequest = z.infer<typeof SettleRequestSchema>;\n\n// x402VerifyRequest\nexport const VerifyRequestSchema = z.object({\n  paymentPayload: PaymentPayloadSchema,\n  paymentRequirements: PaymentRequirementsSchema,\n});\nexport type VerifyRequest = z.infer<typeof VerifyRequestSchema>;\n\n// x402VerifyResponse\nexport const VerifyResponseSchema = z.object({\n  isValid: z.boolean(),\n  invalidReason: z.enum(ErrorReasons).optional(),\n  payer: z.string().regex(MixedAddressRegex).optional(),\n});\nexport type VerifyResponse = z.infer<typeof VerifyResponseSchema>;\n\n// x402SettleResponse\nexport const SettleResponseSchema = z.object({\n  success: z.boolean(),\n  errorReason: z.enum(ErrorReasons).optional(),\n  payer: z.string().regex(MixedAddressRegex).optional(),\n  transaction: z.string().regex(MixedAddressRegex),\n  network: NetworkSchema,\n});\nexport type SettleResponse = z.infer<typeof SettleResponseSchema>;\n\n// x402DiscoverListRequest\nexport const ListDiscoveryResourcesRequestSchema = z.object({\n  type: z.string().optional(),\n  limit: z.number().optional(),\n  offset: z.number().optional(),\n});\nexport type ListDiscoveryResourcesRequest = z.infer<typeof ListDiscoveryResourcesRequestSchema>;\n\n// x402ListDiscoveryResourcesResponse\nexport const ListDiscoveryResourcesResponseSchema = z.object({\n  x402Version: z.number().refine(val => x402Versions.includes(val as 1)),\n  items: z.array(DiscoveredResourceSchema),\n  pagination: z.object({\n    limit: z.number(),\n    offset: z.number(),\n    total: z.number(),\n  }),\n});\nexport type ListDiscoveryResourcesResponse = z.infer<typeof ListDiscoveryResourcesResponseSchema>;\n\n// x402SupportedPaymentKind\nexport const SupportedPaymentKindSchema = z.object({\n  x402Version: z.number().refine(val => x402Versions.includes(val as 1)),\n  scheme: z.enum(schemes),\n  network: NetworkSchema,\n});\nexport type SupportedPaymentKind = z.infer<typeof SupportedPaymentKindSchema>;\n\n// x402SupportedPaymentKindsResponse\nexport const SupportedPaymentKindsResponseSchema = z.object({\n  kinds: z.array(SupportedPaymentKindSchema),\n});\nexport type SupportedPaymentKindsResponse = z.infer<typeof SupportedPaymentKindsResponseSchema>;\n","import { z } from \"zod\";\nimport { safeBase64Decode, safeBase64Encode } from \"../../shared\";\nimport { PaymentRequirementsSchema, SettleResponse } from \"./x402Specs\";\n\nexport const facilitatorRequestSchema = z.object({\n  paymentHeader: z.string(),\n  paymentRequirements: PaymentRequirementsSchema,\n});\n\nexport type FacilitatorRequest = z.infer<typeof facilitatorRequestSchema>;\n\n/**\n * Encodes a settlement response into a base64 header string\n *\n * @param response - The settlement response to encode\n * @returns A base64 encoded string containing the settlement response\n */\nexport function settleResponseHeader(response: SettleResponse): string {\n  return safeBase64Encode(JSON.stringify(response));\n}\n\n/**\n * Decodes a base64 header string back into a settlement response\n *\n * @param header - The base64 encoded settlement response header\n * @returns The decoded settlement response object\n */\nexport function settleResponseFromHeader(header: string): SettleResponse {\n  const decoded = safeBase64Decode(header);\n  return JSON.parse(decoded) as SettleResponse;\n}\n","/**\n * Converts an object to a JSON-safe format by converting bigint values to strings\n * and recursively processing nested objects and arrays\n *\n * @param data - The object to convert to JSON-safe format\n * @returns A new object with all bigint values converted to strings\n */\nexport function toJsonSafe<T extends object>(data: T): object {\n  if (typeof data !== \"object\") {\n    throw new Error(\"Data is not an object\");\n  }\n\n  /**\n   * Recursively converts values to JSON-safe format\n   *\n   * @param value - The value to convert\n   * @returns The converted value with bigints as strings\n   */\n  function convert(value: unknown): unknown {\n    if (value !== null && typeof value === \"object\" && !Array.isArray(value)) {\n      return Object.fromEntries(Object.entries(value).map(([key, val]) => [key, convert(val)]));\n    }\n\n    if (Array.isArray(value)) {\n      return value.map(convert);\n    }\n\n    if (typeof value === \"bigint\") {\n      return value.toString();\n    }\n    return value;\n  }\n\n  return convert(data) as object;\n}\n","// THIS FILE IS AUTO-GENERATED - DO NOT EDIT\n/**\n * The pre-built, self-contained paywall template with inlined CSS and JS\n */\nexport const PAYWALL_TEMPLATE =\n  '<!DOCTYPE html><html lang=\"en\"><head>\\n        <meta charset=\"UTF-8\">\\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\\n    <title>Payment Required</title><style>@import\"https://fonts.googleapis.com/css2?family=Inter&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz@0,9..40;1,9..40&display=swap\";@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,700;1,9..40,700&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Oxanium:wght@200..800&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&display=swap\";.ock-font-family{font-family:var(--ock-font-family)}.ock-border-default{border-color:var(--ock-bg-default)}.ock-border-default-active{border-color:var(--ock-bg-default-active)}.ock-border-line-primary{border-color:var(--ock-line-primary)}.ock-border-line-default{border-color:var(--ock-line-default)}.ock-border-line-heavy{border-color:var(--ock-line-heavy)}.ock-border-line-inverse{border-color:var(--ock-line-inverse)}.ock-border-radius{border-radius:var(--ock-border-radius)}.ock-border-radius-inner{border-radius:var(--ock-border-radius-inner)}.ock-fill-default{fill:var(--ock-bg-default)}.ock-fill-default-reverse{fill:var(--ock-bg-default-reverse)}.ock-fill-alternate{fill:var(--ock-bg-alternate)}.ock-icon-color-primary{fill:var(--ock-icon-color-primary)}.ock-icon-color-foreground{fill:var(--ock-icon-color-foreground)}.ock-icon-color-foreground-muted{fill:var(--ock-icon-color-foreground-muted)}.ock-icon-color-inverse{fill:var(--ock-icon-color-inverse)}.ock-icon-color-error{fill:var(--ock-icon-color-error)}.ock-icon-color-success{fill:var(--ock-icon-color-success)}.ock-icon-color-warning{fill:var(--ock-icon-color-warning)}.placeholder-ock-default::-moz-placeholder{color:var(--ock-text-foreground-muted)}.placeholder-ock-default::placeholder{color:var(--ock-text-foreground-muted)}.ock-scrollbar{scrollbar-width:thin;scrollbar-color:#d1d5db #ffffff}.ock-shadow-default,.dark .ock-shadow-default{box-shadow:0 8px 12px #5b616e1f}.ock-text-inverse{color:var(--ock-text-inverse)}.ock-text-foreground{color:var(--ock-text-foreground)}.ock-text-foreground-muted{color:var(--ock-text-foreground-muted)}.ock-text-error{color:var(--ock-text-error)}.ock-text-primary{color:var(--ock-text-primary)}.ock-text-success{color:var(--ock-text-success)}.ock-text-warning{color:var(--ock-text-warning)}.ock-text-disabled{color:var(--ock-text-disabled)}.ock-bg-default{background-color:var(--ock-bg-default)}.ock-bg-default-hover{background-color:var(--ock-bg-default-hover)}.ock-bg-default-active{background-color:var(--ock-bg-default-active)}.ock-bg-alternate{background-color:var(--ock-bg-alternate)}.ock-bg-alternate-hover{background-color:var(--ock-bg-alternate-hover)}.ock-bg-alternate-active{background-color:var(--ock-bg-alternate-active)}.ock-bg-inverse{background-color:var(--ock-bg-inverse)}.ock-bg-inverse-hover{background-color:var(--ock-bg-inverse-hover)}.ock-bg-inverse-active{background-color:var(--ock-bg-inverse-active)}.ock-bg-primary{background-color:var(--ock-bg-primary)}.ock-bg-primary-hover{background-color:var(--ock-bg-primary-hover)}.ock-bg-primary-active{background-color:var(--ock-bg-primary-active)}.ock-bg-secondary{background-color:var(--ock-bg-secondary)}.ock-bg-secondary-hover{background-color:var(--ock-bg-secondary-hover)}.ock-bg-secondary-active{background-color:var(--ock-bg-secondary-active)}.ock-bg-error{background-color:var(--ock-bg-error)}.ock-bg-warning{background-color:var(--ock-bg-warning)}.ock-bg-success{background-color:var(--ock-bg-success)}.ock-bg-default-reverse{background-color:var(--ock-bg-default-reverse)}.ock-bg-primary-washed{background-color:var(--ock-bg-primary-washed)}.ock-bg-primary-disabled{background-color:var(--ock-bg-primary-disabled)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: \"\"}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root,.light,.default-light{--ock-font-family: \"DM Sans\", sans-serif;--ock-border-radius: .5rem;--ock-border-radius-inner: .25rem;--ock-text-inverse: #f9fafb;--ock-text-foreground: #030712;--ock-text-foreground-muted: #4b5563;--ock-text-error: #e11d48;--ock-text-primary: #4f46e5;--ock-text-success: #65a30d;--ock-text-warning: #ea580c;--ock-text-disabled: #9ca3af;--ock-bg-default: #f9fafb;--ock-bg-default-hover: #e5e7eb;--ock-bg-default-active: #d1d5db;--ock-bg-alternate: #e5e7eb;--ock-bg-alternate-hover: #d1d5db;--ock-bg-alternate-active: #9ca3af;--ock-bg-inverse: #f3f4f6;--ock-bg-inverse-hover: #e5e7eb;--ock-bg-inverse-active: #d1d5db;--ock-bg-primary: #4f46e5;--ock-bg-primary-hover: #4338ca;--ock-bg-primary-active: #3730a3;--ock-bg-primary-washed: #e0e7ff;--ock-bg-primary-disabled: #a5b4fc;--ock-bg-secondary: #e2e8f0;--ock-bg-secondary-hover: #cbd5e1;--ock-bg-secondary-active: #94a3b8;--ock-bg-error: #e11d48;--ock-bg-warning: #ea580c;--ock-bg-success: #bef264;--ock-bg-default-reverse: #030712;--ock-icon-color-primary: #4f46e5;--ock-icon-color-foreground: #030712;--ock-icon-color-foreground-muted: #4b5563;--ock-icon-color-inverse: #f9fafb;--ock-icon-color-error: #e11d48;--ock-icon-color-success: #65a30d;--ock-icon-color-warning: #ea580c;--ock-line-primary: #4f46e5;--ock-line-default: #d1d5db;--ock-line-heavy: #6b7280;--ock-line-inverse: #374151}.dark,.default-dark{--ock-font-family: \"DM Sans\", sans-serif;--ock-border-radius: .5rem;--ock-border-radius-inner: .25rem;--ock-text-inverse: #030712;--ock-text-foreground: #f9fafb;--ock-text-foreground-muted: #9ca3af;--ock-text-error: #fb7185;--ock-text-primary: #818cf8;--ock-text-success: #a3e635;--ock-text-warning: #fb923c;--ock-text-disabled: #4b5563;--ock-bg-default: #030712;--ock-bg-default-hover: #1f2937;--ock-bg-default-active: #374151;--ock-bg-alternate: #1f2937;--ock-bg-alternate-hover: #374151;--ock-bg-alternate-active: #4b5563;--ock-bg-inverse: #111827;--ock-bg-inverse-hover: #1f2937;--ock-bg-inverse-active: #374151;--ock-bg-primary: #818cf8;--ock-bg-primary-hover: #a5b4fc;--ock-bg-primary-active: #c7d2fe;--ock-bg-primary-washed: #312e81;--ock-bg-primary-disabled: #1e1b4b;--ock-bg-secondary: #1e293b;--ock-bg-secondary-hover: #334155;--ock-bg-secondary-active: #475569;--ock-bg-error: #fb7185;--ock-bg-warning: #fb923c;--ock-bg-success: #4d7c0f;--ock-bg-default-reverse: #f9fafb;--ock-icon-color-primary: #818cf8;--ock-icon-color-foreground: #f9fafb;--ock-icon-color-foreground-muted: #9ca3af;--ock-icon-color-inverse: #030712;--ock-icon-color-error: #fb7185;--ock-icon-color-success: #a3e635;--ock-icon-color-warning: #fb923c;--ock-line-primary: #818cf8;--ock-line-default: #374151;--ock-line-heavy: #6b7280;--ock-line-inverse: #d1d5db}.base-light{--ock-font-family: \"DM Sans\", sans-serif;--ock-border-radius: .5rem;--ock-border-radius-inner: .25rem;--ock-text-inverse: #f9fafb;--ock-text-foreground: #030712;--ock-text-foreground-muted: #4b5563;--ock-text-error: #e11d48;--ock-text-primary: #0052ff;--ock-text-success: #65a30d;--ock-text-warning: #ea580c;--ock-text-disabled: #9ca3af;--ock-bg-default: #f9fafb;--ock-bg-default-hover: #e5e7eb;--ock-bg-default-active: #d1d5db;--ock-bg-alternate: #e5e7eb;--ock-bg-alternate-hover: #d1d5db;--ock-bg-alternate-active: #9ca3af;--ock-bg-inverse: #f3f4f6;--ock-bg-inverse-hover: #e5e7eb;--ock-bg-inverse-active: #d1d5db;--ock-bg-primary: #0052ff;--ock-bg-primary-hover: #014ceb;--ock-bg-primary-active: #0148dc;--ock-bg-primary-washed: #b2cbff;--ock-bg-primary-disabled: #9dbcfe;--ock-bg-secondary: #e2e8f0;--ock-bg-secondary-hover: #cbd5e1;--ock-bg-secondary-active: #94a3b8;--ock-bg-error: #e11d48;--ock-bg-warning: #ea580c;--ock-bg-success: #bef264;--ock-bg-default-reverse: #030712;--ock-icon-color-primary: #0052ff;--ock-icon-color-foreground: #030712;--ock-icon-color-foreground-muted: #4b5563;--ock-icon-color-inverse: #f9fafb;--ock-icon-color-error: #e11d48;--ock-icon-color-success: #65a30d;--ock-icon-color-warning: #ea580c;--ock-line-primary: #0052ff;--ock-line-default: #d1d5db;--ock-line-heavy: #6b7280;--ock-line-inverse: #374151}.base-dark{--ock-font-family: \"DM Sans\", sans-serif;--ock-border-radius: .5rem;--ock-border-radius-inner: .25rem;--ock-text-inverse: #f9fafb;--ock-text-foreground: #f9fafb;--ock-text-foreground-muted: #9ca3af;--ock-text-error: #fb7185;--ock-text-primary: #578bfa;--ock-text-success: #a3e635;--ock-text-warning: #fb923c;--ock-text-disabled: #4b5563;--ock-bg-default: #030712;--ock-bg-default-hover: #1f2937;--ock-bg-default-active: #374151;--ock-bg-alternate: #1f2937;--ock-bg-alternate-hover: #374151;--ock-bg-alternate-active: #4b5563;--ock-bg-inverse: #111827;--ock-bg-inverse-hover: #1f2937;--ock-bg-inverse-active: #374151;--ock-bg-primary: #578bfa;--ock-bg-primary-hover: #477ef5;--ock-bg-primary-active: #5386f5;--ock-bg-primary-washed: #051537;--ock-bg-primary-disabled: #1b3365;--ock-bg-secondary: #1e293b;--ock-bg-secondary-hover: #334155;--ock-bg-secondary-active: #475569;--ock-bg-error: #fb7185;--ock-bg-warning: #fb923c;--ock-bg-success: #4d7c0f;--ock-bg-default-reverse: #f9fafb;--ock-icon-color-primary: #578bfa;--ock-icon-color-foreground: #f9fafb;--ock-icon-color-foreground-muted: #9ca3af;--ock-icon-color-inverse: #030712;--ock-icon-color-error: #fb7185;--ock-icon-color-success: #a3e635;--ock-icon-color-warning: #fb923c;--ock-line-primary: #578bfa;--ock-line-default: #374151;--ock-line-heavy: #6b7280;--ock-line-inverse: #d1d5db}.cyberpunk{--ock-font-family: \"Oxanium\", sans-serif;--ock-border-radius: .125rem;--ock-border-radius-inner: 0rem;--ock-text-inverse: #030712;--ock-text-foreground: #f9fafb;--ock-text-foreground-muted: #9ca3af;--ock-text-error: #fb7185;--ock-text-primary: #e879f9;--ock-text-success: #a3e635;--ock-text-warning: #fb923c;--ock-text-disabled: #4b5563;--ock-bg-default: #030712;--ock-bg-default-hover: #1f2937;--ock-bg-default-active: #374151;--ock-bg-alternate: #1f2937;--ock-bg-alternate-hover: #374151;--ock-bg-alternate-active: #4b5563;--ock-bg-inverse: #111827;--ock-bg-inverse-hover: #1f2937;--ock-bg-inverse-active: #374151;--ock-bg-primary: #e879f9;--ock-bg-primary-hover: #f0abfc;--ock-bg-primary-active: #f5d0fe;--ock-bg-primary-washed: #701a75;--ock-bg-primary-disabled: #4a044e;--ock-bg-secondary: #1e293b;--ock-bg-secondary-hover: #334155;--ock-bg-secondary-active: #475569;--ock-bg-error: #fb7185;--ock-bg-warning: #fb923c;--ock-bg-success: #a3e635;--ock-bg-default-reverse: #f9fafb;--ock-icon-color-primary: #e879f9;--ock-icon-color-foreground: #f9fafb;--ock-icon-color-foreground-muted: #4b5563;--ock-icon-color-inverse: #030712;--ock-icon-color-error: #e11d48;--ock-icon-color-success: #65a30d;--ock-icon-color-warning: #ea580c;--ock-line-primary: #e879f9;--ock-line-default: #374151;--ock-line-heavy: #6b7280;--ock-line-inverse: #d1d5db}.hacker{--ock-font-family: \"Noto Sans Mono\", sans-serif;--ock-border-radius: .375rem;--ock-border-radius-inner: .125rem;--ock-text-inverse: #fafafa;--ock-text-foreground: #09090b;--ock-text-foreground-muted: #52525b;--ock-text-error: #e11d48;--ock-text-primary: #09090b;--ock-text-success: #65a30d;--ock-text-warning: #ea580c;--ock-text-disabled: #a1a1aa;--ock-bg-default: #fafafa;--ock-bg-default-hover: #e4e4e7;--ock-bg-default-active: #d4d4d8;--ock-bg-alternate: #e4e4e7;--ock-bg-alternate-hover: #d4d4d8;--ock-bg-alternate-active: #a1a1aa;--ock-bg-inverse: #f4f4f5;--ock-bg-inverse-hover: #e4e4e7;--ock-bg-inverse-active: #d4d4d8;--ock-bg-primary: #09090b;--ock-bg-primary-hover: #27272a;--ock-bg-primary-active: #3f3f46;--ock-bg-primary-washed: #f4f4f5;--ock-bg-primary-disabled: #d4d4d8;--ock-bg-secondary: #e5e5e5;--ock-bg-secondary-hover: #d4d4d4;--ock-bg-secondary-active: #a3a3a3;--ock-bg-error: #e11d48;--ock-bg-warning: #ea580c;--ock-bg-success: #65a30d;--ock-bg-default-reverse: #fafafa;--ock-icon-color-primary: #09090b;--ock-icon-color-foreground: #09090b;--ock-icon-color-foreground-muted: #52525b;--ock-icon-color-inverse: #fafafa;--ock-icon-color-error: #e11d48;--ock-icon-color-success: #65a30d;--ock-icon-color-warning: #ea580c;--ock-line-primary: #09090b;--ock-line-default: #d4d4d8;--ock-line-heavy: #71717a;--ock-line-inverse: #3f3f46}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-bottom-0\\\\.5{bottom:-.125rem}.-bottom-\\\\[12\\\\.875rem\\\\]{bottom:-12.875rem}.-right-0\\\\.5{right:-.125rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1\\\\/2,.left-2\\\\/4{left:50%}.left-3\\\\/4{left:75%}.left-4{left:1rem}.left-\\\\[-99999px\\\\]{left:-99999px}.left-\\\\[0\\\\%\\\\]{left:0%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\\\\/2{top:50%}.top-4{top:1rem}.top-6{top:1.5rem}.top-\\\\[100px\\\\]{top:100px}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.-my-6{margin-top:-1.5rem;margin-bottom:-1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\\\\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1\\\\.5{margin-top:.375rem;margin-bottom:.375rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.-mr-0\\\\.5{margin-right:-.125rem}.-mr-px{margin-right:-1px}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-px{margin-left:1px}.mr-1{margin-right:.25rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mt-0\\\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-\\\\[60\\\\%\\\\]{margin-top:60%}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.aspect-square{aspect-ratio:1 / 1}.size-3{width:.75rem;height:.75rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-120{height:30rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\\\\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-4{height:1rem}.h-44{height:11rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\\\\[1\\\\.125rem\\\\]{height:1.125rem}.h-\\\\[1\\\\.625rem\\\\]{height:1.625rem}.h-\\\\[12\\\\.875rem\\\\]{height:12.875rem}.h-\\\\[148px\\\\]{height:148px}.h-\\\\[15px\\\\]{height:15px}.h-\\\\[18px\\\\]{height:18px}.h-\\\\[34px\\\\]{height:34px}.h-\\\\[42px\\\\]{height:42px}.h-\\\\[80px\\\\]{height:80px}.h-auto{height:auto}.h-full{height:100%}.max-h-120{max-height:30rem}.max-h-44{max-height:11rem}.max-h-80{max-height:20rem}.min-h-60{min-height:15rem}.min-h-full{min-height:100%}.w-1\\\\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\\\\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-88{width:22rem}.w-9{width:2.25rem}.w-\\\\[1\\\\.125rem\\\\]{width:1.125rem}.w-\\\\[15px\\\\]{width:15px}.w-\\\\[200px\\\\]{width:200px}.w-\\\\[21\\\\.75rem\\\\]{width:21.75rem}.w-\\\\[22rem\\\\]{width:22rem}.w-\\\\[375px\\\\]{width:375px}.w-\\\\[42px\\\\]{width:42px}.w-\\\\[475px\\\\]{width:475px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-14{min-width:3.5rem}.min-w-24{min-width:6rem}.min-w-28{min-width:7rem}.min-w-40{min-width:10rem}.min-w-52{min-width:13rem}.min-w-80{min-width:20rem}.min-w-\\\\[153px\\\\]{min-width:153px}.min-w-\\\\[300px\\\\]{min-width:300px}.min-w-\\\\[70px\\\\]{min-width:70px}.min-w-full{min-width:100%}.max-w-24{max-width:6rem}.max-w-52{max-width:13rem}.max-w-\\\\[180px\\\\]{max-width:180px}.max-w-\\\\[500px\\\\]{max-width:500px}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.-translate-x-1\\\\/2,.-translate-x-2\\\\/4{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\\\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\\\\[100\\\\%\\\\]{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\\\[-100\\\\%\\\\]{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\\\\[102\\\\%\\\\]{--tw-translate-y: 102%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\\\\[2\\\\.5rem_1fr_auto\\\\]{grid-template-columns:2.5rem 1fr auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\\\\.5{gap:.375rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-\\\\[-\\\\.8rem\\\\]>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-.8rem * var(--tw-space-x-reverse));margin-left:calc(-.8rem * calc(1 - var(--tw-space-x-reverse)))}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-nowrap{text-wrap:nowrap}.\\\\!rounded-full{border-radius:9999px!important}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-\\\\[0\\\\.43931rem\\\\]{border-radius:.43931rem}.rounded-\\\\[20px_20px_0_0\\\\]{border-radius:20px 20px 0 0}.rounded-\\\\[50\\\\%\\\\]{border-radius:50%}.rounded-\\\\[6\\\\.25rem\\\\]{border-radius:6.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-tl-\\\\[calc\\\\(var\\\\(--ock-border-radius\\\\)_-_1px\\\\)\\\\]{border-top-left-radius:calc(var(--ock-border-radius) - 1px)}.rounded-tr-\\\\[calc\\\\(var\\\\(--ock-border-radius\\\\)_-_1px\\\\)\\\\]{border-top-right-radius:calc(var(--ock-border-radius) - 1px)}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\\\\[0\\\\.5px\\\\]{border-width:.5px}.border-\\\\[length\\\\:0_0_0_16px\\\\]{border-width:0 0 0 16px}.border-\\\\[length\\\\:9px_0_9px_16px\\\\]{border-width:9px 0 9px 16px}.\\\\!border-b-0{border-bottom-width:0px!important}.\\\\!border-l-0{border-left-width:0px!important}.\\\\!border-r-0{border-right-width:0px!important}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-double{border-style:double}.border-none{border-style:none}.border-\\\\[none\\\\]{border-color:none}.border-\\\\[var\\\\(--ock-bg-default-reverse\\\\)\\\\]{border-color:var(--ock-bg-default-reverse)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\\\\!border-t-\\\\[var\\\\(--ock-bg-primary\\\\)\\\\]{border-top-color:var(--ock-bg-primary)!important}.border-l-\\\\[var\\\\(--ock-bg-default\\\\)\\\\]{border-left-color:var(--ock-bg-default)}.border-t-gray-400{--tw-border-opacity: 1;border-top-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.\\\\!bg-\\\\[var\\\\(--ock-bg-alternate-active\\\\)\\\\]{background-color:var(--ock-bg-alternate-active)!important}.\\\\!bg-inherit{background-color:inherit!important}.bg-\\\\[\\\\#0052FF\\\\]{--tw-bg-opacity: 1;background-color:rgb(0 82 255 / var(--tw-bg-opacity, 1))}.bg-\\\\[\\\\#E0E7FF\\\\]{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\\\\/50{background-color:#00000080}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-50{--tw-bg-opacity: .5}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\\\\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\\\\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\\\\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\\\\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-12{padding-left:3rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pr-3{padding-right:.75rem}.pr-5{padding-right:1.25rem}.pt-2{padding-top:.5rem}.pt-2\\\\.5{padding-top:.625rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-display{font-family:DM Sans,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\\\\[0\\\\.6875rem\\\\]{font-size:.6875rem}.text-\\\\[10px\\\\]{font-size:10px}.text-\\\\[2\\\\.5rem\\\\]{font-size:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.leading-\\\\[13px\\\\]{line-height:13px}.leading-none{line-height:1}.\\\\!text-\\\\[var\\\\(--ock-text-foreground\\\\)\\\\]{color:var(--ock-text-foreground)!important}.\\\\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-\\\\[\\\\#4F46E5\\\\]{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-\\\\[\\\\#8A919E\\\\]{--tw-text-opacity: 1;color:rgb(138 145 158 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-gray-50{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-\\\\[0\\\\.38\\\\]{opacity:.38}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\\\\[0px_8px_24px_0px_rgba\\\\(0\\\\,0\\\\,0\\\\,0\\\\.12\\\\)\\\\]{--tw-shadow: 0px 8px 24px 0px rgba(0,0,0,.12);--tw-shadow-colored: 0px 8px 24px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-\\\\[bottom\\\\]{transition-property:bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\\\\[border-width\\\\]{will-change:border-width}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.animate-out{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.fade-in{--tw-enter-opacity: 0}.fade-out{--tw-exit-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-bottom-1\\\\.5{--tw-enter-translate-y: .375rem}.slide-in-from-bottom-1\\\\/2{--tw-enter-translate-y: 50%}.slide-in-from-bottom-2\\\\.5{--tw-enter-translate-y: .625rem}.slide-in-from-left-5{--tw-enter-translate-x: -1.25rem}.slide-in-from-right-5{--tw-enter-translate-x: 1.25rem}.slide-in-from-top-1\\\\.5{--tw-enter-translate-y: -.375rem}.slide-in-from-top-2\\\\.5{--tw-enter-translate-y: -.625rem}.slide-out-to-bottom-1\\\\.5{--tw-exit-translate-y: .375rem}.slide-out-to-left-5{--tw-exit-translate-x: -1.25rem}.slide-out-to-right-5{--tw-exit-translate-x: 1.25rem}.slide-out-to-top-1\\\\.5{--tw-exit-translate-y: -.375rem}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.fill-mode-forwards{animation-fill-mode:forwards}.scrollbar-hidden::-webkit-scrollbar{display:none}.scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}.\\\\[appearance\\\\:textfield\\\\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.\\\\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\\\\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\\\\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\\\\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\\\\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\\\\!container{max-width:1536px!important}.container{max-width:1536px}}.animate-enterRight{transition-duration:.5s;animation-name:enter;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial;--tw-enter-opacity: 0;--tw-enter-translate-x: 2rem;animation-duration:.5s}.animate-enterUp{transition-duration:.5s;animation-name:enter;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial;--tw-enter-opacity: 0;--tw-enter-translate-y: 2rem;animation-duration:.5s}.animate-enterDown{transition-duration:.5s;animation-name:enter;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial;--tw-enter-opacity: 0;--tw-enter-translate-y: -2rem;animation-duration:.5s}.hover\\\\:border-\\\\[--ock-line-primary\\\\]:hover{border-color:var(--ock-line-primary)}.hover\\\\:bg-\\\\[\\\\#0045D8\\\\]:hover{--tw-bg-opacity: 1;background-color:rgb(0 69 216 / var(--tw-bg-opacity, 1))}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-alternate-hover\\\\)\\\\]:hover{background-color:var(--ock-bg-alternate-hover)}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-default-hover\\\\)\\\\]:hover{background-color:var(--ock-bg-default-hover)}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-inverse\\\\)\\\\]:hover{background-color:var(--ock-bg-inverse)}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-inverse-hover\\\\)\\\\]:hover{background-color:var(--ock-bg-inverse-hover)}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-primary-hover\\\\)\\\\]:hover{background-color:var(--ock-bg-primary-hover)}.hover\\\\:bg-\\\\[var\\\\(--ock-bg-secondary-hover\\\\)\\\\]:hover{background-color:var(--ock-bg-secondary-hover)}.hover\\\\:text-\\\\[var\\\\(--ock-text-foreground-muted\\\\)\\\\]:hover{color:var(--ock-text-foreground-muted)}.hover\\\\:underline:hover{text-decoration-line:underline}.hover\\\\:opacity-100:hover{opacity:1}.hover\\\\:opacity-80:hover{opacity:.8}.focus\\\\:border-none:focus{border-style:none}.focus\\\\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\\\\:bg-transparent:focus{background-color:transparent}.focus\\\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\\\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\\\\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\\\\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\\\\:ring-inset:focus-visible{--tw-ring-inset: inset}.focus-visible\\\\:ring-\\\\[var\\\\(--ock-text-foreground\\\\)\\\\]:focus-visible{--tw-ring-color: var(--ock-text-foreground)}.active\\\\:cursor-grabbing:active{cursor:grabbing}.active\\\\:bg-\\\\[var\\\\(--ock-bg-alternate-active\\\\)\\\\]:active{background-color:var(--ock-bg-alternate-active)}.active\\\\:bg-\\\\[var\\\\(--ock-bg-default-active\\\\)\\\\]:active{background-color:var(--ock-bg-default-active)}.active\\\\:bg-\\\\[var\\\\(--ock-bg-inverse-active\\\\)\\\\]:active{background-color:var(--ock-bg-inverse-active)}.active\\\\:bg-\\\\[var\\\\(--ock-bg-primary-active\\\\)\\\\]:active{background-color:var(--ock-bg-primary-active)}.active\\\\:bg-\\\\[var\\\\(--ock-bg-secondary-active\\\\)\\\\]:active{background-color:var(--ock-bg-secondary-active)}.active\\\\:text-\\\\[var\\\\(--ock-text-primary\\\\)\\\\]:active{color:var(--ock-text-primary)}.disabled\\\\:cursor-not-allowed:disabled{cursor:not-allowed}.group:hover .group-hover\\\\:opacity-100{opacity:1}.dark\\\\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}@media not all and (min-width: 640px){.max-sm\\\\:pt-4{padding-top:1rem}}.\\\\[\\\\&\\\\:\\\\:-webkit-inner-spin-button\\\\]\\\\:m-0::-webkit-inner-spin-button{margin:0}.\\\\[\\\\&\\\\:\\\\:-webkit-inner-spin-button\\\\]\\\\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.\\\\[\\\\&\\\\:\\\\:-webkit-outer-spin-button\\\\]\\\\:m-0::-webkit-outer-spin-button{margin:0}.\\\\[\\\\&\\\\:\\\\:-webkit-outer-spin-button\\\\]\\\\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:col-start-1>*{grid-column-start:1}.\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:col-end-1>*{grid-column-end:1}.\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:row-start-1>*{grid-row-start:1}.\\\\[\\\\&\\\\>\\\\*\\\\]\\\\:row-end-1>*{grid-row-end:1}.\\\\[\\\\&\\\\>div\\\\]\\\\:space-x-0>div>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.\\\\[\\\\&\\\\>div\\\\]\\\\:space-x-2>div>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.\\\\[\\\\&_path\\\\]\\\\:fill-\\\\[var\\\\(--ock-icon-color-foreground\\\\)\\\\] path{fill:var(--ock-icon-color-foreground)}.\\\\[\\\\&_path\\\\]\\\\:fill-\\\\[var\\\\(--ock-icon-color-foreground-muted\\\\)\\\\] path{fill:var(--ock-icon-color-foreground-muted)}.\\\\[\\\\&_path\\\\]\\\\:transition-colors path{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\\\\[\\\\&_path\\\\]\\\\:ease-in-out path{transition-timing-function:cubic-bezier(.4,0,.2,1);animation-timing-function:cubic-bezier(.4,0,.2,1)}.\\\\[\\\\&_path\\\\]\\\\:hover\\\\:fill-\\\\[var\\\\(--ock-icon-color-foreground\\\\)\\\\]:hover path{fill:var(--ock-icon-color-foreground)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:root{--background-color: #f9fafb;--container-background-color: white;--text-color: #111827;--secondary-text-color: #4b5563;--details-background-color: #f9fafb;--details-background-color-hover: #f3f4f6;--button-primary-color: #2563eb;--button-primary-hover-color: #1d4ed8;--button-secondary-color: #eef0f3;--button-secondary-hover-color: #e9ebee;--button-positive-color: #059669;--button-positive-hover-color: #047857;--button-error-color: #ef4444;--button-error-hover-color: #dc2626}.ock-font-family{font-family:Inter,system-ui,-apple-system,sans-serif}.ock-bg-secondary,.ock-bg-default{background-color:var(--details-background-color);transition:background-color .15s}.ock-bg-secondary:hover{background-color:var(--details-background-color-hover)}.opacity-80{opacity:.8}[data-testid=ockWalletDropdown]{z-index:10}body{min-height:100vh;background-color:var(--background-color);font-family:Inter,system-ui,-apple-system,sans-serif}.container{max-width:32rem;margin:4rem auto;padding:1.5rem;background-color:var(--container-background-color);border-radius:.75rem;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.header{display:flex;flex-direction:column;gap:1rem}.title{font-size:1.5rem;font-weight:700;color:var(--text-color);margin-bottom:.5rem}.subtitle{color:var(--secondary-text-color)}.instructions{font-size:.9rem;color:var(--secondary-text-color);font-style:italic}.content{display:flex;flex-direction:column;gap:1rem}.button{width:100%;padding:.75rem 1rem;border-radius:.5rem;font-weight:600;border:none;cursor:pointer;transition:background-color .15s}.button-primary{background-color:var(--button-primary-color);color:#fff}.button-primary:hover{background-color:var(--button-primary-hover-color)}.button-secondary{background-color:var(--button-secondary-color);color:var(--text-color)}.button-secondary:hover{background-color:var(--button-secondary-hover-color)}.button-positive{background-color:var(--button-positive-color);color:#fff}.button-positive:hover{background-color:var(--button-positive-hover-color)}.button-error{background-color:var(--button-error-color);color:#fff}.button-error:hover{background-color:var(--button-error-hover-color)}.payment-details{padding:1rem;margin-bottom:1rem;background-color:var(--details-background-color);border-radius:.5rem}.payment-row{display:flex;justify-content:space-between;font-size:.875rem;margin-bottom:.5rem}.payment-row:last-child{margin-bottom:0}.payment-label{color:var(--text-color)}.payment-value{font-weight:500}.hidden{display:none}.status{text-align:center;font-size:.875rem}.cta-container{display:flex;flex-basis:50%;flex-direction:row;gap:.5rem}.balance-button{background-color:transparent;border:none;cursor:pointer;min-height:1rem;min-width:150px;display:flex;justify-content:flex-end;align-items:center}\\n</style></head>\\n    <body>\\n        <div id=\"root\"></div>\\n    \\n    \\n  <script type=\"module\">\"use strict\";(()=>{var YFe=Object.create;var $7=Object.defineProperty;var QFe=Object.getOwnPropertyDescriptor;var JFe=Object.getOwnPropertyNames;var XFe=Object.getPrototypeOf,eUe=Object.prototype.hasOwnProperty;var Cue=t=>{throw TypeError(t)};var tUe=(t,e,n)=>e in t?$7(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var nUe=(t=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(t,{get:(e,n)=>(typeof require<\"u\"?require:e)[n]}):t)(function(t){if(typeof require<\"u\")return require.apply(this,arguments);throw Error(\\'Dynamic require of \"\\'+t+\\'\" is not supported\\')}),Aue=t=>e=>{var n=t[e];if(n)return n();throw new Error(\"Module not found in bundle: \"+e)};var ce=(t,e)=>()=>(t&&(e=t(t=0)),e);var be=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ld=(t,e)=>{for(var n in e)$7(t,n,{get:e[n],enumerable:!0})},Tue=(t,e,n,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of JFe(e))!eUe.call(t,o)&&o!==n&&$7(t,o,{get:()=>e[o],enumerable:!(r=QFe(e,o))||r.enumerable});return t};var he=(t,e,n)=>(n=t!=null?YFe(XFe(t)):{},Tue(e||!t||!t.__esModule?$7(n,\"default\",{value:t,enumerable:!0}):n,t)),go=t=>Tue($7({},\"__esModule\",{value:!0}),t);var Op=(t,e,n)=>tUe(t,typeof e!=\"symbol\"?e+\"\":e,n),uG=(t,e,n)=>e.has(t)||Cue(\"Cannot \"+n);var Ce=(t,e,n)=>(uG(t,e,\"read from private field\"),n?n.call(t):e.get(t)),an=(t,e,n)=>e.has(t)?Cue(\"Cannot add the same private member more than once\"):e instanceof WeakSet?e.add(t):e.set(t,n),Nt=(t,e,n,r)=>(uG(t,e,\"write to private field\"),r?r.call(t,n):e.set(t,n),n),Zn=(t,e,n)=>(uG(t,e,\"access private method\"),n);var K7=(t,e,n,r)=>({set _(o){Nt(t,e,o,n)},get _(){return Ce(t,e,r)}});var Oue=be($N=>{\"use strict\";p();$N.byteLength=oUe;$N.toByteArray=sUe;$N.fromByteArray=lUe;var Sy=[],Pp=[],rUe=typeof Uint8Array<\"u\"?Uint8Array:Array,dG=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(p5=0,Rue=dG.length;p5<Rue;++p5)Sy[p5]=dG[p5],Pp[dG.charCodeAt(p5)]=p5;var p5,Rue;Pp[45]=62;Pp[95]=63;function Iue(t){var e=t.length;if(e%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var n=t.indexOf(\"=\");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function oUe(t){var e=Iue(t),n=e[0],r=e[1];return(n+r)*3/4-r}function iUe(t,e,n){return(e+n)*3/4-n}function sUe(t){var e,n=Iue(t),r=n[0],o=n[1],i=new rUe(iUe(t,r,o)),a=0,c=o>0?r-4:r,u;for(u=0;u<c;u+=4)e=Pp[t.charCodeAt(u)]<<18|Pp[t.charCodeAt(u+1)]<<12|Pp[t.charCodeAt(u+2)]<<6|Pp[t.charCodeAt(u+3)],i[a++]=e>>16&255,i[a++]=e>>8&255,i[a++]=e&255;return o===2&&(e=Pp[t.charCodeAt(u)]<<2|Pp[t.charCodeAt(u+1)]>>4,i[a++]=e&255),o===1&&(e=Pp[t.charCodeAt(u)]<<10|Pp[t.charCodeAt(u+1)]<<4|Pp[t.charCodeAt(u+2)]>>2,i[a++]=e>>8&255,i[a++]=e&255),i}function aUe(t){return Sy[t>>18&63]+Sy[t>>12&63]+Sy[t>>6&63]+Sy[t&63]}function cUe(t,e,n){for(var r,o=[],i=e;i<n;i+=3)r=(t[i]<<16&16711680)+(t[i+1]<<8&65280)+(t[i+2]&255),o.push(aUe(r));return o.join(\"\")}function lUe(t){for(var e,n=t.length,r=n%3,o=[],i=16383,a=0,c=n-r;a<c;a+=i)o.push(cUe(t,a,a+i>c?c:a+i));return r===1?(e=t[n-1],o.push(Sy[e>>2]+Sy[e<<4&63]+\"==\")):r===2&&(e=(t[n-2]<<8)+t[n-1],o.push(Sy[e>>10]+Sy[e>>4&63]+Sy[e<<2&63]+\"=\")),o.join(\"\")}});var Pue=be(fG=>{p();fG.read=function(t,e,n,r,o){var i,a,c=o*8-r-1,u=(1<<c)-1,d=u>>1,h=-7,m=n?o-1:0,g=n?-1:1,b=t[e+m];for(m+=g,i=b&(1<<-h)-1,b>>=-h,h+=c;h>0;i=i*256+t[e+m],m+=g,h-=8);for(a=i&(1<<-h)-1,i>>=-h,h+=r;h>0;a=a*256+t[e+m],m+=g,h-=8);if(i===0)i=1-d;else{if(i===u)return a?NaN:(b?-1:1)*(1/0);a=a+Math.pow(2,r),i=i-d}return(b?-1:1)*a*Math.pow(2,i-r)};fG.write=function(t,e,n,r,o,i){var a,c,u,d=i*8-o-1,h=(1<<d)-1,m=h>>1,g=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=r?0:i-1,E=r?1:-1,C=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(c=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),a+m>=1?e+=g/u:e+=g*Math.pow(2,1-m),e*u>=2&&(a++,u/=2),a+m>=h?(c=0,a=h):a+m>=1?(c=(e*u-1)*Math.pow(2,o),a=a+m):(c=e*Math.pow(2,m-1)*Math.pow(2,o),a=0));o>=8;t[n+b]=c&255,b+=E,c/=256,o-=8);for(a=a<<o|c,d+=o;d>0;t[n+b]=a&255,b+=E,a/=256,d-=8);t[n+b-E]|=C*128}});var Kb=be(Z_=>{\"use strict\";p();var hG=Oue(),K_=Pue(),Mue=typeof Symbol==\"function\"&&typeof Symbol.for==\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;Z_.Buffer=ot;Z_.SlowBuffer=mUe;Z_.INSPECT_MAX_BYTES=50;var KN=2147483647;Z_.kMaxLength=KN;ot.TYPED_ARRAY_SUPPORT=uUe();!ot.TYPED_ARRAY_SUPPORT&&typeof console<\"u\"&&typeof console.error==\"function\"&&console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");function uUe(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch{return!1}}Object.defineProperty(ot.prototype,\"parent\",{enumerable:!0,get:function(){if(ot.isBuffer(this))return this.buffer}});Object.defineProperty(ot.prototype,\"offset\",{enumerable:!0,get:function(){if(ot.isBuffer(this))return this.byteOffset}});function $b(t){if(t>KN)throw new RangeError(\\'The value \"\\'+t+\\'\" is invalid for option \"size\"\\');let e=new Uint8Array(t);return Object.setPrototypeOf(e,ot.prototype),e}function ot(t,e,n){if(typeof t==\"number\"){if(typeof e==\"string\")throw new TypeError(\\'The \"string\" argument must be of type string. Received type number\\');return yG(t)}return Due(t,e,n)}ot.poolSize=8192;function Due(t,e,n){if(typeof t==\"string\")return fUe(t,e);if(ArrayBuffer.isView(t))return hUe(t);if(t==null)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(ky(t,ArrayBuffer)||t&&ky(t.buffer,ArrayBuffer)||typeof SharedArrayBuffer<\"u\"&&(ky(t,SharedArrayBuffer)||t&&ky(t.buffer,SharedArrayBuffer)))return mG(t,e,n);if(typeof t==\"number\")throw new TypeError(\\'The \"value\" argument must not be of type number. Received type number\\');let r=t.valueOf&&t.valueOf();if(r!=null&&r!==t)return ot.from(r,e,n);let o=pUe(t);if(o)return o;if(typeof Symbol<\"u\"&&Symbol.toPrimitive!=null&&typeof t[Symbol.toPrimitive]==\"function\")return ot.from(t[Symbol.toPrimitive](\"string\"),e,n);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}ot.from=function(t,e,n){return Due(t,e,n)};Object.setPrototypeOf(ot.prototype,Uint8Array.prototype);Object.setPrototypeOf(ot,Uint8Array);function Fue(t){if(typeof t!=\"number\")throw new TypeError(\\'\"size\" argument must be of type number\\');if(t<0)throw new RangeError(\\'The value \"\\'+t+\\'\" is invalid for option \"size\"\\')}function dUe(t,e,n){return Fue(t),t<=0?$b(t):e!==void 0?typeof n==\"string\"?$b(t).fill(e,n):$b(t).fill(e):$b(t)}ot.alloc=function(t,e,n){return dUe(t,e,n)};function yG(t){return Fue(t),$b(t<0?0:bG(t)|0)}ot.allocUnsafe=function(t){return yG(t)};ot.allocUnsafeSlow=function(t){return yG(t)};function fUe(t,e){if((typeof e!=\"string\"||e===\"\")&&(e=\"utf8\"),!ot.isEncoding(e))throw new TypeError(\"Unknown encoding: \"+e);let n=Uue(t,e)|0,r=$b(n),o=r.write(t,e);return o!==n&&(r=r.slice(0,o)),r}function pG(t){let e=t.length<0?0:bG(t.length)|0,n=$b(e);for(let r=0;r<e;r+=1)n[r]=t[r]&255;return n}function hUe(t){if(ky(t,Uint8Array)){let e=new Uint8Array(t);return mG(e.buffer,e.byteOffset,e.byteLength)}return pG(t)}function mG(t,e,n){if(e<0||t.byteLength<e)throw new RangeError(\\'\"offset\" is outside of buffer bounds\\');if(t.byteLength<e+(n||0))throw new RangeError(\\'\"length\" is outside of buffer bounds\\');let r;return e===void 0&&n===void 0?r=new Uint8Array(t):n===void 0?r=new Uint8Array(t,e):r=new Uint8Array(t,e,n),Object.setPrototypeOf(r,ot.prototype),r}function pUe(t){if(ot.isBuffer(t)){let e=bG(t.length)|0,n=$b(e);return n.length===0||t.copy(n,0,0,e),n}if(t.length!==void 0)return typeof t.length!=\"number\"||wG(t.length)?$b(0):pG(t);if(t.type===\"Buffer\"&&Array.isArray(t.data))return pG(t.data)}function bG(t){if(t>=KN)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+KN.toString(16)+\" bytes\");return t|0}function mUe(t){return+t!=t&&(t=0),ot.alloc(+t)}ot.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==ot.prototype};ot.compare=function(e,n){if(ky(e,Uint8Array)&&(e=ot.from(e,e.offset,e.byteLength)),ky(n,Uint8Array)&&(n=ot.from(n,n.offset,n.byteLength)),!ot.isBuffer(e)||!ot.isBuffer(n))throw new TypeError(\\'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array\\');if(e===n)return 0;let r=e.length,o=n.length;for(let i=0,a=Math.min(r,o);i<a;++i)if(e[i]!==n[i]){r=e[i],o=n[i];break}return r<o?-1:o<r?1:0};ot.isEncoding=function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}};ot.concat=function(e,n){if(!Array.isArray(e))throw new TypeError(\\'\"list\" argument must be an Array of Buffers\\');if(e.length===0)return ot.alloc(0);let r;if(n===void 0)for(n=0,r=0;r<e.length;++r)n+=e[r].length;let o=ot.allocUnsafe(n),i=0;for(r=0;r<e.length;++r){let a=e[r];if(ky(a,Uint8Array))i+a.length>o.length?(ot.isBuffer(a)||(a=ot.from(a)),a.copy(o,i)):Uint8Array.prototype.set.call(o,a,i);else if(ot.isBuffer(a))a.copy(o,i);else throw new TypeError(\\'\"list\" argument must be an Array of Buffers\\');i+=a.length}return o};function Uue(t,e){if(ot.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||ky(t,ArrayBuffer))return t.byteLength;if(typeof t!=\"string\")throw new TypeError(\\'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type \\'+typeof t);let n=t.length,r=arguments.length>2&&arguments[2]===!0;if(!r&&n===0)return 0;let o=!1;for(;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":return gG(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return n*2;case\"hex\":return n>>>1;case\"base64\":return Gue(t).length;default:if(o)return r?-1:gG(t).length;e=(\"\"+e).toLowerCase(),o=!0}}ot.byteLength=Uue;function gUe(t,e,n){let r=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((n===void 0||n>this.length)&&(n=this.length),n<=0)||(n>>>=0,e>>>=0,n<=e))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return CUe(this,e,n);case\"utf8\":case\"utf-8\":return zue(this,e,n);case\"ascii\":return kUe(this,e,n);case\"latin1\":case\"binary\":return _Ue(this,e,n);case\"base64\":return EUe(this,e,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return AUe(this,e,n);default:if(r)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),r=!0}}ot.prototype._isBuffer=!0;function m5(t,e,n){let r=t[e];t[e]=t[n],t[n]=r}ot.prototype.swap16=function(){let e=this.length;if(e%2!==0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(let n=0;n<e;n+=2)m5(this,n,n+1);return this};ot.prototype.swap32=function(){let e=this.length;if(e%4!==0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(let n=0;n<e;n+=4)m5(this,n,n+3),m5(this,n+1,n+2);return this};ot.prototype.swap64=function(){let e=this.length;if(e%8!==0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(let n=0;n<e;n+=8)m5(this,n,n+7),m5(this,n+1,n+6),m5(this,n+2,n+5),m5(this,n+3,n+4);return this};ot.prototype.toString=function(){let e=this.length;return e===0?\"\":arguments.length===0?zue(this,0,e):gUe.apply(this,arguments)};ot.prototype.toLocaleString=ot.prototype.toString;ot.prototype.equals=function(e){if(!ot.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e?!0:ot.compare(this,e)===0};ot.prototype.inspect=function(){let e=\"\",n=Z_.INSPECT_MAX_BYTES;return e=this.toString(\"hex\",0,n).replace(/(.{2})/g,\"$1 \").trim(),this.length>n&&(e+=\" ... \"),\"<Buffer \"+e+\">\"};Mue&&(ot.prototype[Mue]=ot.prototype.inspect);ot.prototype.compare=function(e,n,r,o,i){if(ky(e,Uint8Array)&&(e=ot.from(e,e.offset,e.byteLength)),!ot.isBuffer(e))throw new TypeError(\\'The \"target\" argument must be one of type Buffer or Uint8Array. Received type \\'+typeof e);if(n===void 0&&(n=0),r===void 0&&(r=e?e.length:0),o===void 0&&(o=0),i===void 0&&(i=this.length),n<0||r>e.length||o<0||i>this.length)throw new RangeError(\"out of range index\");if(o>=i&&n>=r)return 0;if(o>=i)return-1;if(n>=r)return 1;if(n>>>=0,r>>>=0,o>>>=0,i>>>=0,this===e)return 0;let a=i-o,c=r-n,u=Math.min(a,c),d=this.slice(o,i),h=e.slice(n,r);for(let m=0;m<u;++m)if(d[m]!==h[m]){a=d[m],c=h[m];break}return a<c?-1:c<a?1:0};function jue(t,e,n,r,o){if(t.length===0)return-1;if(typeof n==\"string\"?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,wG(n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0)if(o)n=0;else return-1;if(typeof e==\"string\"&&(e=ot.from(e,r)),ot.isBuffer(e))return e.length===0?-1:Nue(t,e,n,r,o);if(typeof e==\"number\")return e=e&255,typeof Uint8Array.prototype.indexOf==\"function\"?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):Nue(t,[e],n,r,o);throw new TypeError(\"val must be string, number or Buffer\")}function Nue(t,e,n,r,o){let i=1,a=t.length,c=e.length;if(r!==void 0&&(r=String(r).toLowerCase(),r===\"ucs2\"||r===\"ucs-2\"||r===\"utf16le\"||r===\"utf-16le\")){if(t.length<2||e.length<2)return-1;i=2,a/=2,c/=2,n/=2}function u(h,m){return i===1?h[m]:h.readUInt16BE(m*i)}let d;if(o){let h=-1;for(d=n;d<a;d++)if(u(t,d)===u(e,h===-1?0:d-h)){if(h===-1&&(h=d),d-h+1===c)return h*i}else h!==-1&&(d-=d-h),h=-1}else for(n+c>a&&(n=a-c),d=n;d>=0;d--){let h=!0;for(let m=0;m<c;m++)if(u(t,d+m)!==u(e,m)){h=!1;break}if(h)return d}return-1}ot.prototype.includes=function(e,n,r){return this.indexOf(e,n,r)!==-1};ot.prototype.indexOf=function(e,n,r){return jue(this,e,n,r,!0)};ot.prototype.lastIndexOf=function(e,n,r){return jue(this,e,n,r,!1)};function yUe(t,e,n,r){n=Number(n)||0;let o=t.length-n;r?(r=Number(r),r>o&&(r=o)):r=o;let i=e.length;r>i/2&&(r=i/2);let a;for(a=0;a<r;++a){let c=parseInt(e.substr(a*2,2),16);if(wG(c))return a;t[n+a]=c}return a}function bUe(t,e,n,r){return GN(gG(e,t.length-n),t,n,r)}function vUe(t,e,n,r){return GN(OUe(e),t,n,r)}function wUe(t,e,n,r){return GN(Gue(e),t,n,r)}function xUe(t,e,n,r){return GN(PUe(e,t.length-n),t,n,r)}ot.prototype.write=function(e,n,r,o){if(n===void 0)o=\"utf8\",r=this.length,n=0;else if(r===void 0&&typeof n==\"string\")o=n,r=this.length,n=0;else if(isFinite(n))n=n>>>0,isFinite(r)?(r=r>>>0,o===void 0&&(o=\"utf8\")):(o=r,r=void 0);else throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");let i=this.length-n;if((r===void 0||r>i)&&(r=i),e.length>0&&(r<0||n<0)||n>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");o||(o=\"utf8\");let a=!1;for(;;)switch(o){case\"hex\":return yUe(this,e,n,r);case\"utf8\":case\"utf-8\":return bUe(this,e,n,r);case\"ascii\":case\"latin1\":case\"binary\":return vUe(this,e,n,r);case\"base64\":return wUe(this,e,n,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return xUe(this,e,n,r);default:if(a)throw new TypeError(\"Unknown encoding: \"+o);o=(\"\"+o).toLowerCase(),a=!0}};ot.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function EUe(t,e,n){return e===0&&n===t.length?hG.fromByteArray(t):hG.fromByteArray(t.slice(e,n))}function zue(t,e,n){n=Math.min(t.length,n);let r=[],o=e;for(;o<n;){let i=t[o],a=null,c=i>239?4:i>223?3:i>191?2:1;if(o+c<=n){let u,d,h,m;switch(c){case 1:i<128&&(a=i);break;case 2:u=t[o+1],(u&192)===128&&(m=(i&31)<<6|u&63,m>127&&(a=m));break;case 3:u=t[o+1],d=t[o+2],(u&192)===128&&(d&192)===128&&(m=(i&15)<<12|(u&63)<<6|d&63,m>2047&&(m<55296||m>57343)&&(a=m));break;case 4:u=t[o+1],d=t[o+2],h=t[o+3],(u&192)===128&&(d&192)===128&&(h&192)===128&&(m=(i&15)<<18|(u&63)<<12|(d&63)<<6|h&63,m>65535&&m<1114112&&(a=m))}}a===null?(a=65533,c=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|a&1023),r.push(a),o+=c}return SUe(r)}var Lue=4096;function SUe(t){let e=t.length;if(e<=Lue)return String.fromCharCode.apply(String,t);let n=\"\",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=Lue));return n}function kUe(t,e,n){let r=\"\";n=Math.min(t.length,n);for(let o=e;o<n;++o)r+=String.fromCharCode(t[o]&127);return r}function _Ue(t,e,n){let r=\"\";n=Math.min(t.length,n);for(let o=e;o<n;++o)r+=String.fromCharCode(t[o]);return r}function CUe(t,e,n){let r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);let o=\"\";for(let i=e;i<n;++i)o+=MUe[t[i]];return o}function AUe(t,e,n){let r=t.slice(e,n),o=\"\";for(let i=0;i<r.length-1;i+=2)o+=String.fromCharCode(r[i]+r[i+1]*256);return o}ot.prototype.slice=function(e,n){let r=this.length;e=~~e,n=n===void 0?r:~~n,e<0?(e+=r,e<0&&(e=0)):e>r&&(e=r),n<0?(n+=r,n<0&&(n=0)):n>r&&(n=r),n<e&&(n=e);let o=this.subarray(e,n);return Object.setPrototypeOf(o,ot.prototype),o};function Pc(t,e,n){if(t%1!==0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>n)throw new RangeError(\"Trying to access beyond buffer length\")}ot.prototype.readUintLE=ot.prototype.readUIntLE=function(e,n,r){e=e>>>0,n=n>>>0,r||Pc(e,n,this.length);let o=this[e],i=1,a=0;for(;++a<n&&(i*=256);)o+=this[e+a]*i;return o};ot.prototype.readUintBE=ot.prototype.readUIntBE=function(e,n,r){e=e>>>0,n=n>>>0,r||Pc(e,n,this.length);let o=this[e+--n],i=1;for(;n>0&&(i*=256);)o+=this[e+--n]*i;return o};ot.prototype.readUint8=ot.prototype.readUInt8=function(e,n){return e=e>>>0,n||Pc(e,1,this.length),this[e]};ot.prototype.readUint16LE=ot.prototype.readUInt16LE=function(e,n){return e=e>>>0,n||Pc(e,2,this.length),this[e]|this[e+1]<<8};ot.prototype.readUint16BE=ot.prototype.readUInt16BE=function(e,n){return e=e>>>0,n||Pc(e,2,this.length),this[e]<<8|this[e+1]};ot.prototype.readUint32LE=ot.prototype.readUInt32LE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};ot.prototype.readUint32BE=ot.prototype.readUInt32BE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};ot.prototype.readBigUInt64LE=Ow(function(e){e=e>>>0,G_(e,\"offset\");let n=this[e],r=this[e+7];(n===void 0||r===void 0)&&G7(e,this.length-8);let o=n+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,i=this[++e]+this[++e]*2**8+this[++e]*2**16+r*2**24;return BigInt(o)+(BigInt(i)<<BigInt(32))});ot.prototype.readBigUInt64BE=Ow(function(e){e=e>>>0,G_(e,\"offset\");let n=this[e],r=this[e+7];(n===void 0||r===void 0)&&G7(e,this.length-8);let o=n*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],i=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r;return(BigInt(o)<<BigInt(32))+BigInt(i)});ot.prototype.readIntLE=function(e,n,r){e=e>>>0,n=n>>>0,r||Pc(e,n,this.length);let o=this[e],i=1,a=0;for(;++a<n&&(i*=256);)o+=this[e+a]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*n)),o};ot.prototype.readIntBE=function(e,n,r){e=e>>>0,n=n>>>0,r||Pc(e,n,this.length);let o=n,i=1,a=this[e+--o];for(;o>0&&(i*=256);)a+=this[e+--o]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*n)),a};ot.prototype.readInt8=function(e,n){return e=e>>>0,n||Pc(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};ot.prototype.readInt16LE=function(e,n){e=e>>>0,n||Pc(e,2,this.length);let r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};ot.prototype.readInt16BE=function(e,n){e=e>>>0,n||Pc(e,2,this.length);let r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};ot.prototype.readInt32LE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};ot.prototype.readInt32BE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};ot.prototype.readBigInt64LE=Ow(function(e){e=e>>>0,G_(e,\"offset\");let n=this[e],r=this[e+7];(n===void 0||r===void 0)&&G7(e,this.length-8);let o=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(r<<24);return(BigInt(o)<<BigInt(32))+BigInt(n+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)});ot.prototype.readBigInt64BE=Ow(function(e){e=e>>>0,G_(e,\"offset\");let n=this[e],r=this[e+7];(n===void 0||r===void 0)&&G7(e,this.length-8);let o=(n<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(o)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+r)});ot.prototype.readFloatLE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),K_.read(this,e,!0,23,4)};ot.prototype.readFloatBE=function(e,n){return e=e>>>0,n||Pc(e,4,this.length),K_.read(this,e,!1,23,4)};ot.prototype.readDoubleLE=function(e,n){return e=e>>>0,n||Pc(e,8,this.length),K_.read(this,e,!0,52,8)};ot.prototype.readDoubleBE=function(e,n){return e=e>>>0,n||Pc(e,8,this.length),K_.read(this,e,!1,52,8)};function ff(t,e,n,r,o,i){if(!ot.isBuffer(t))throw new TypeError(\\'\"buffer\" argument must be a Buffer instance\\');if(e>o||e<i)throw new RangeError(\\'\"value\" argument is out of bounds\\');if(n+r>t.length)throw new RangeError(\"Index out of range\")}ot.prototype.writeUintLE=ot.prototype.writeUIntLE=function(e,n,r,o){if(e=+e,n=n>>>0,r=r>>>0,!o){let c=Math.pow(2,8*r)-1;ff(this,e,n,r,c,0)}let i=1,a=0;for(this[n]=e&255;++a<r&&(i*=256);)this[n+a]=e/i&255;return n+r};ot.prototype.writeUintBE=ot.prototype.writeUIntBE=function(e,n,r,o){if(e=+e,n=n>>>0,r=r>>>0,!o){let c=Math.pow(2,8*r)-1;ff(this,e,n,r,c,0)}let i=r-1,a=1;for(this[n+i]=e&255;--i>=0&&(a*=256);)this[n+i]=e/a&255;return n+r};ot.prototype.writeUint8=ot.prototype.writeUInt8=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,1,255,0),this[n]=e&255,n+1};ot.prototype.writeUint16LE=ot.prototype.writeUInt16LE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,2,65535,0),this[n]=e&255,this[n+1]=e>>>8,n+2};ot.prototype.writeUint16BE=ot.prototype.writeUInt16BE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,2,65535,0),this[n]=e>>>8,this[n+1]=e&255,n+2};ot.prototype.writeUint32LE=ot.prototype.writeUInt32LE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,4,4294967295,0),this[n+3]=e>>>24,this[n+2]=e>>>16,this[n+1]=e>>>8,this[n]=e&255,n+4};ot.prototype.writeUint32BE=ot.prototype.writeUInt32BE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,4,4294967295,0),this[n]=e>>>24,this[n+1]=e>>>16,this[n+2]=e>>>8,this[n+3]=e&255,n+4};function Hue(t,e,n,r,o){Kue(e,r,o,t,n,7);let i=Number(e&BigInt(4294967295));t[n++]=i,i=i>>8,t[n++]=i,i=i>>8,t[n++]=i,i=i>>8,t[n++]=i;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[n++]=a,a=a>>8,t[n++]=a,a=a>>8,t[n++]=a,a=a>>8,t[n++]=a,n}function que(t,e,n,r,o){Kue(e,r,o,t,n,7);let i=Number(e&BigInt(4294967295));t[n+7]=i,i=i>>8,t[n+6]=i,i=i>>8,t[n+5]=i,i=i>>8,t[n+4]=i;let a=Number(e>>BigInt(32)&BigInt(4294967295));return t[n+3]=a,a=a>>8,t[n+2]=a,a=a>>8,t[n+1]=a,a=a>>8,t[n]=a,n+8}ot.prototype.writeBigUInt64LE=Ow(function(e,n=0){return Hue(this,e,n,BigInt(0),BigInt(\"0xffffffffffffffff\"))});ot.prototype.writeBigUInt64BE=Ow(function(e,n=0){return que(this,e,n,BigInt(0),BigInt(\"0xffffffffffffffff\"))});ot.prototype.writeIntLE=function(e,n,r,o){if(e=+e,n=n>>>0,!o){let u=Math.pow(2,8*r-1);ff(this,e,n,r,u-1,-u)}let i=0,a=1,c=0;for(this[n]=e&255;++i<r&&(a*=256);)e<0&&c===0&&this[n+i-1]!==0&&(c=1),this[n+i]=(e/a>>0)-c&255;return n+r};ot.prototype.writeIntBE=function(e,n,r,o){if(e=+e,n=n>>>0,!o){let u=Math.pow(2,8*r-1);ff(this,e,n,r,u-1,-u)}let i=r-1,a=1,c=0;for(this[n+i]=e&255;--i>=0&&(a*=256);)e<0&&c===0&&this[n+i+1]!==0&&(c=1),this[n+i]=(e/a>>0)-c&255;return n+r};ot.prototype.writeInt8=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,1,127,-128),e<0&&(e=255+e+1),this[n]=e&255,n+1};ot.prototype.writeInt16LE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,2,32767,-32768),this[n]=e&255,this[n+1]=e>>>8,n+2};ot.prototype.writeInt16BE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,2,32767,-32768),this[n]=e>>>8,this[n+1]=e&255,n+2};ot.prototype.writeInt32LE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,4,2147483647,-2147483648),this[n]=e&255,this[n+1]=e>>>8,this[n+2]=e>>>16,this[n+3]=e>>>24,n+4};ot.prototype.writeInt32BE=function(e,n,r){return e=+e,n=n>>>0,r||ff(this,e,n,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[n]=e>>>24,this[n+1]=e>>>16,this[n+2]=e>>>8,this[n+3]=e&255,n+4};ot.prototype.writeBigInt64LE=Ow(function(e,n=0){return Hue(this,e,n,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});ot.prototype.writeBigInt64BE=Ow(function(e,n=0){return que(this,e,n,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});function Wue(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"Index out of range\")}function Vue(t,e,n,r,o){return e=+e,n=n>>>0,o||Wue(t,e,n,4,34028234663852886e22,-34028234663852886e22),K_.write(t,e,n,r,23,4),n+4}ot.prototype.writeFloatLE=function(e,n,r){return Vue(this,e,n,!0,r)};ot.prototype.writeFloatBE=function(e,n,r){return Vue(this,e,n,!1,r)};function $ue(t,e,n,r,o){return e=+e,n=n>>>0,o||Wue(t,e,n,8,17976931348623157e292,-17976931348623157e292),K_.write(t,e,n,r,52,8),n+8}ot.prototype.writeDoubleLE=function(e,n,r){return $ue(this,e,n,!0,r)};ot.prototype.writeDoubleBE=function(e,n,r){return $ue(this,e,n,!1,r)};ot.prototype.copy=function(e,n,r,o){if(!ot.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(r||(r=0),!o&&o!==0&&(o=this.length),n>=e.length&&(n=e.length),n||(n=0),o>0&&o<r&&(o=r),o===r||e.length===0||this.length===0)return 0;if(n<0)throw new RangeError(\"targetStart out of bounds\");if(r<0||r>=this.length)throw new RangeError(\"Index out of range\");if(o<0)throw new RangeError(\"sourceEnd out of bounds\");o>this.length&&(o=this.length),e.length-n<o-r&&(o=e.length-n+r);let i=o-r;return this===e&&typeof Uint8Array.prototype.copyWithin==\"function\"?this.copyWithin(n,r,o):Uint8Array.prototype.set.call(e,this.subarray(r,o),n),i};ot.prototype.fill=function(e,n,r,o){if(typeof e==\"string\"){if(typeof n==\"string\"?(o=n,n=0,r=this.length):typeof r==\"string\"&&(o=r,r=this.length),o!==void 0&&typeof o!=\"string\")throw new TypeError(\"encoding must be a string\");if(typeof o==\"string\"&&!ot.isEncoding(o))throw new TypeError(\"Unknown encoding: \"+o);if(e.length===1){let a=e.charCodeAt(0);(o===\"utf8\"&&a<128||o===\"latin1\")&&(e=a)}}else typeof e==\"number\"?e=e&255:typeof e==\"boolean\"&&(e=Number(e));if(n<0||this.length<n||this.length<r)throw new RangeError(\"Out of range index\");if(r<=n)return this;n=n>>>0,r=r===void 0?this.length:r>>>0,e||(e=0);let i;if(typeof e==\"number\")for(i=n;i<r;++i)this[i]=e;else{let a=ot.isBuffer(e)?e:ot.from(e,o),c=a.length;if(c===0)throw new TypeError(\\'The value \"\\'+e+\\'\" is invalid for argument \"value\"\\');for(i=0;i<r-n;++i)this[i+n]=a[i%c]}return this};var $_={};function vG(t,e,n){$_[t]=class extends n{constructor(){super(),Object.defineProperty(this,\"message\",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(o){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value:o,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}vG(\"ERR_BUFFER_OUT_OF_BOUNDS\",function(t){return t?`${t} is outside of buffer bounds`:\"Attempt to access memory outside buffer bounds\"},RangeError);vG(\"ERR_INVALID_ARG_TYPE\",function(t,e){return`The \"${t}\" argument must be of type number. Received type ${typeof e}`},TypeError);vG(\"ERR_OUT_OF_RANGE\",function(t,e,n){let r=`The value of \"${t}\" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=Bue(String(n)):typeof n==\"bigint\"&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=Bue(o)),o+=\"n\"),r+=` It must be ${e}. Received ${o}`,r},RangeError);function Bue(t){let e=\"\",n=t.length,r=t[0]===\"-\"?1:0;for(;n>=r+4;n-=3)e=`_${t.slice(n-3,n)}${e}`;return`${t.slice(0,n)}${e}`}function TUe(t,e,n){G_(e,\"offset\"),(t[e]===void 0||t[e+n]===void 0)&&G7(e,t.length-(n+1))}function Kue(t,e,n,r,o,i){if(t>n||t<e){let a=typeof e==\"bigint\"?\"n\":\"\",c;throw i>3?e===0||e===BigInt(0)?c=`>= 0${a} and < 2${a} ** ${(i+1)*8}${a}`:c=`>= -(2${a} ** ${(i+1)*8-1}${a}) and < 2 ** ${(i+1)*8-1}${a}`:c=`>= ${e}${a} and <= ${n}${a}`,new $_.ERR_OUT_OF_RANGE(\"value\",c,t)}TUe(r,o,i)}function G_(t,e){if(typeof t!=\"number\")throw new $_.ERR_INVALID_ARG_TYPE(e,\"number\",t)}function G7(t,e,n){throw Math.floor(t)!==t?(G_(t,n),new $_.ERR_OUT_OF_RANGE(n||\"offset\",\"an integer\",t)):e<0?new $_.ERR_BUFFER_OUT_OF_BOUNDS:new $_.ERR_OUT_OF_RANGE(n||\"offset\",`>= ${n?1:0} and <= ${e}`,t)}var RUe=/[^+/0-9A-Za-z-_]/g;function IUe(t){if(t=t.split(\"=\")[0],t=t.trim().replace(RUe,\"\"),t.length<2)return\"\";for(;t.length%4!==0;)t=t+\"=\";return t}function gG(t,e){e=e||1/0;let n,r=t.length,o=null,i=[];for(let a=0;a<r;++a){if(n=t.charCodeAt(a),n>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}else if(a+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=(o-55296<<10|n-56320)+65536}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,n&63|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,n&63|128)}else if(n<1114112){if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128)}else throw new Error(\"Invalid code point\")}return i}function OUe(t){let e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n)&255);return e}function PUe(t,e){let n,r,o,i=[];for(let a=0;a<t.length&&!((e-=2)<0);++a)n=t.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}function Gue(t){return hG.toByteArray(IUe(t))}function GN(t,e,n,r){let o;for(o=0;o<r&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function ky(t,e){return t instanceof e||t!=null&&t.constructor!=null&&t.constructor.name!=null&&t.constructor.name===e.name}function wG(t){return t!==t}var MUe=function(){let t=\"0123456789abcdef\",e=new Array(256);for(let n=0;n<16;++n){let r=n*16;for(let o=0;o<16;++o)e[r+o]=t[n]+t[o]}return e}();function Ow(t){return typeof BigInt>\"u\"?NUe:t}function NUe(){throw new Error(\"BigInt not supported\")}});var Zue,p=ce(()=>{\"use strict\";Zue=he(Kb());globalThis.Buffer=Zue.Buffer});var Yue=be(ls=>{\"use strict\";p();(function(){function t(){if(G=!1,ie){var O=ls.unstable_now();V=O;var z=!0;try{e:{L=!1,D&&(D=!1,J(Z),Z=-1),R=!0;var N=T;try{t:{for(i(O),C=n(g);C!==null&&!(C.expirationTime>O&&c());){var B=C.callback;if(typeof B==\"function\"){C.callback=null,T=C.priorityLevel;var j=B(C.expirationTime<=O);if(O=ls.unstable_now(),typeof j==\"function\"){C.callback=j,i(O),z=!0;break t}C===n(g)&&r(g),i(O)}else r(g);C=n(g)}if(C!==null)z=!0;else{var q=n(b);q!==null&&u(a,q.startTime-O),z=!1}}break e}finally{C=null,T=N,R=!1}z=void 0}}finally{z?$():ie=!1}}}function e(O,z){var N=O.length;O.push(z);e:for(;0<N;){var B=N-1>>>1,j=O[B];if(0<o(j,z))O[B]=z,O[N]=j,N=B;else break e}}function n(O){return O.length===0?null:O[0]}function r(O){if(O.length===0)return null;var z=O[0],N=O.pop();if(N!==z){O[0]=N;e:for(var B=0,j=O.length,q=j>>>1;B<q;){var H=2*(B+1)-1,I=O[H],U=H+1,X=O[U];if(0>o(I,N))U<j&&0>o(X,I)?(O[B]=X,O[U]=N,B=U):(O[B]=I,O[H]=N,B=H);else if(U<j&&0>o(X,N))O[B]=X,O[U]=N,B=U;else break e}}return z}function o(O,z){var N=O.sortIndex-z.sortIndex;return N!==0?N:O.id-z.id}function i(O){for(var z=n(b);z!==null;){if(z.callback===null)r(b);else if(z.startTime<=O)r(b),z.sortIndex=z.expirationTime,e(g,z);else break;z=n(b)}}function a(O){if(D=!1,i(O),!L)if(n(g)!==null)L=!0,ie||(ie=!0,$());else{var z=n(b);z!==null&&u(a,z.startTime-O)}}function c(){return G?!0:!(ls.unstable_now()-V<ae)}function u(O,z){Z=W(function(){O(ls.unstable_now())},z)}if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()),ls.unstable_now=void 0,typeof performance==\"object\"&&typeof performance.now==\"function\"){var d=performance;ls.unstable_now=function(){return d.now()}}else{var h=Date,m=h.now();ls.unstable_now=function(){return h.now()-m}}var g=[],b=[],E=1,C=null,T=3,R=!1,L=!1,D=!1,G=!1,W=typeof setTimeout==\"function\"?setTimeout:null,J=typeof clearTimeout==\"function\"?clearTimeout:null,ne=typeof setImmediate<\"u\"?setImmediate:null,ie=!1,Z=-1,ae=5,V=-1;if(typeof ne==\"function\")var $=function(){ne(t)};else if(typeof MessageChannel<\"u\"){var F=new MessageChannel,_=F.port2;F.port1.onmessage=t,$=function(){_.postMessage(null)}}else $=function(){W(t,0)};ls.unstable_IdlePriority=5,ls.unstable_ImmediatePriority=1,ls.unstable_LowPriority=4,ls.unstable_NormalPriority=3,ls.unstable_Profiling=null,ls.unstable_UserBlockingPriority=2,ls.unstable_cancelCallback=function(O){O.callback=null},ls.unstable_forceFrameRate=function(O){0>O||125<O?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):ae=0<O?Math.floor(1e3/O):5},ls.unstable_getCurrentPriorityLevel=function(){return T},ls.unstable_next=function(O){switch(T){case 1:case 2:case 3:var z=3;break;default:z=T}var N=T;T=z;try{return O()}finally{T=N}},ls.unstable_requestPaint=function(){G=!0},ls.unstable_runWithPriority=function(O,z){switch(O){case 1:case 2:case 3:case 4:case 5:break;default:O=3}var N=T;T=O;try{return z()}finally{T=N}},ls.unstable_scheduleCallback=function(O,z,N){var B=ls.unstable_now();switch(typeof N==\"object\"&&N!==null?(N=N.delay,N=typeof N==\"number\"&&0<N?B+N:B):N=B,O){case 1:var j=-1;break;case 2:j=250;break;case 5:j=1073741823;break;case 4:j=1e4;break;default:j=5e3}return j=N+j,O={id:E++,callback:z,priorityLevel:O,startTime:N,expirationTime:j,sortIndex:-1},N>B?(O.sortIndex=N,e(b,O),n(g)===null&&O===n(b)&&(D?(J(Z),Z=-1):D=!0,u(a,N-B))):(O.sortIndex=j,e(g,O),L||R||(L=!0,ie||(ie=!0,$()))),O},ls.unstable_shouldYield=c,ls.unstable_wrapCallback=function(O){var z=T;return function(){var N=T;T=z;try{return O.apply(this,arguments)}finally{T=N}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var Jue=be((dbt,Que)=>{\"use strict\";p();Que.exports=Yue()});var Xue=be((nr,ZN)=>{\"use strict\";p();(function(){function t(le,Te){Object.defineProperty(r.prototype,le,{get:function(){console.warn(\"%s(...) is deprecated in plain JavaScript React classes. %s\",Te[0],Te[1])}})}function e(le){return le===null||typeof le!=\"object\"?null:(le=xe&&le[xe]||le[\"@@iterator\"],typeof le==\"function\"?le:null)}function n(le,Te){le=(le=le.constructor)&&(le.displayName||le.name)||\"ReactClass\";var xt=le+\".\"+Te;_e[xt]||(console.error(\"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.\",Te,le),_e[xt]=!0)}function r(le,Te,xt){this.props=le,this.context=Te,this.refs=wt,this.updater=xt||Me}function o(){}function i(le,Te,xt){this.props=le,this.context=Te,this.refs=wt,this.updater=xt||Me}function a(le){return\"\"+le}function c(le){try{a(le);var Te=!1}catch{Te=!0}if(Te){Te=console;var xt=Te.error,tt=typeof Symbol==\"function\"&&Symbol.toStringTag&&le[Symbol.toStringTag]||le.constructor.name||\"Object\";return xt.call(Te,\"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",tt),a(le)}}function u(le){if(le==null)return null;if(typeof le==\"function\")return le.$$typeof===dt?null:le.displayName||le.name||null;if(typeof le==\"string\")return le;switch(le){case B:return\"Fragment\";case q:return\"Profiler\";case j:return\"StrictMode\";case X:return\"Suspense\";case ee:return\"SuspenseList\";case ye:return\"Activity\"}if(typeof le==\"object\")switch(typeof le.tag==\"number\"&&console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),le.$$typeof){case N:return\"Portal\";case I:return(le.displayName||\"Context\")+\".Provider\";case H:return(le._context.displayName||\"Context\")+\".Consumer\";case U:var Te=le.render;return le=le.displayName,le||(le=Te.displayName||Te.name||\"\",le=le!==\"\"?\"ForwardRef(\"+le+\")\":\"ForwardRef\"),le;case se:return Te=le.displayName||null,Te!==null?Te:u(le.type)||\"Memo\";case pe:Te=le._payload,le=le._init;try{return u(le(Te))}catch{}}return null}function d(le){if(le===B)return\"<>\";if(typeof le==\"object\"&&le!==null&&le.$$typeof===pe)return\"<...>\";try{var Te=u(le);return Te?\"<\"+Te+\">\":\"<...>\"}catch{return\"<...>\"}}function h(){var le=Ze.A;return le===null?null:le.getOwner()}function m(){return Error(\"react-stack-top-frame\")}function g(le){if(rn.call(le,\"key\")){var Te=Object.getOwnPropertyDescriptor(le,\"key\").get;if(Te&&Te.isReactWarning)return!1}return le.key!==void 0}function b(le,Te){function xt(){Bt||(Bt=!0,console.error(\"%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)\",Te))}xt.isReactWarning=!0,Object.defineProperty(le,\"key\",{get:xt,configurable:!0})}function E(){var le=u(this.type);return qt[le]||(qt[le]=!0,console.error(\"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.\")),le=this.props.ref,le!==void 0?le:null}function C(le,Te,xt,tt,It,hn,Dt,sn){return xt=hn.ref,le={$$typeof:z,type:le,key:Te,props:hn,_owner:It},(xt!==void 0?xt:null)!==null?Object.defineProperty(le,\"ref\",{enumerable:!1,get:E}):Object.defineProperty(le,\"ref\",{enumerable:!1,value:null}),le._store={},Object.defineProperty(le._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(le,\"_debugInfo\",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(le,\"_debugStack\",{configurable:!1,enumerable:!1,writable:!0,value:Dt}),Object.defineProperty(le,\"_debugTask\",{configurable:!1,enumerable:!1,writable:!0,value:sn}),Object.freeze&&(Object.freeze(le.props),Object.freeze(le)),le}function T(le,Te){return Te=C(le.type,Te,void 0,void 0,le._owner,le.props,le._debugStack,le._debugTask),le._store&&(Te._store.validated=le._store.validated),Te}function R(le){return typeof le==\"object\"&&le!==null&&le.$$typeof===z}function L(le){var Te={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+le.replace(/[=:]/g,function(xt){return Te[xt]})}function D(le,Te){return typeof le==\"object\"&&le!==null&&le.key!=null?(c(le.key),L(\"\"+le.key)):Te.toString(36)}function G(){}function W(le){switch(le.status){case\"fulfilled\":return le.value;case\"rejected\":throw le.reason;default:switch(typeof le.status==\"string\"?le.then(G,G):(le.status=\"pending\",le.then(function(Te){le.status===\"pending\"&&(le.status=\"fulfilled\",le.value=Te)},function(Te){le.status===\"pending\"&&(le.status=\"rejected\",le.reason=Te)})),le.status){case\"fulfilled\":return le.value;case\"rejected\":throw le.reason}}throw le}function J(le,Te,xt,tt,It){var hn=typeof le;(hn===\"undefined\"||hn===\"boolean\")&&(le=null);var Dt=!1;if(le===null)Dt=!0;else switch(hn){case\"bigint\":case\"string\":case\"number\":Dt=!0;break;case\"object\":switch(le.$$typeof){case z:case N:Dt=!0;break;case pe:return Dt=le._init,J(Dt(le._payload),Te,xt,tt,It)}}if(Dt){Dt=le,It=It(Dt);var sn=tt===\"\"?\".\"+D(Dt,0):tt;return Ct(It)?(xt=\"\",sn!=null&&(xt=sn.replace(br,\"$&/\")+\"/\"),J(It,Te,xt,\"\",function(Fn){return Fn})):It!=null&&(R(It)&&(It.key!=null&&(Dt&&Dt.key===It.key||c(It.key)),xt=T(It,xt+(It.key==null||Dt&&Dt.key===It.key?\"\":(\"\"+It.key).replace(br,\"$&/\")+\"/\")+sn),tt!==\"\"&&Dt!=null&&R(Dt)&&Dt.key==null&&Dt._store&&!Dt._store.validated&&(xt._store.validated=2),It=xt),Te.push(It)),1}if(Dt=0,sn=tt===\"\"?\".\":tt+\":\",Ct(le))for(var bn=0;bn<le.length;bn++)tt=le[bn],hn=sn+D(tt,bn),Dt+=J(tt,Te,xt,hn,It);else if(bn=e(le),typeof bn==\"function\")for(bn===le.entries&&(Mn||console.warn(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),Mn=!0),le=bn.call(le),bn=0;!(tt=le.next()).done;)tt=tt.value,hn=sn+D(tt,bn++),Dt+=J(tt,Te,xt,hn,It);else if(hn===\"object\"){if(typeof le.then==\"function\")return J(W(le),Te,xt,tt,It);throw Te=String(le),Error(\"Objects are not valid as a React child (found: \"+(Te===\"[object Object]\"?\"object with keys {\"+Object.keys(le).join(\", \")+\"}\":Te)+\"). If you meant to render a collection of children, use an array instead.\")}return Dt}function ne(le,Te,xt){if(le==null)return le;var tt=[],It=0;return J(le,tt,\"\",\"\",function(hn){return Te.call(xt,hn,It++)}),tt}function ie(le){if(le._status===-1){var Te=le._result;Te=Te(),Te.then(function(xt){(le._status===0||le._status===-1)&&(le._status=1,le._result=xt)},function(xt){(le._status===0||le._status===-1)&&(le._status=2,le._result=xt)}),le._status===-1&&(le._status=0,le._result=Te)}if(le._status===1)return Te=le._result,Te===void 0&&console.error(`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?`,Te),\"default\"in Te||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n  const MyComponent = lazy(() => import(\\'./MyComponent\\'))`,Te),Te.default;throw le._result}function Z(){var le=Ze.H;return le===null&&console.error(`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.`),le}function ae(){}function V(le){if(vr===null)try{var Te=(\"require\"+Math.random()).slice(0,7);vr=(ZN&&ZN[Te]).call(ZN,\"timers\").setImmediate}catch{vr=function(tt){Pr===!1&&(Pr=!0,typeof MessageChannel>\"u\"&&console.error(\"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.\"));var It=new MessageChannel;It.port1.onmessage=tt,It.port2.postMessage(void 0)}}return vr(le)}function $(le){return 1<le.length&&typeof AggregateError==\"function\"?new AggregateError(le):le[0]}function F(le,Te){Te!==hi-1&&console.error(\"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"),hi=Te}function _(le,Te,xt){var tt=Ze.actQueue;if(tt!==null)if(tt.length!==0)try{O(tt),V(function(){return _(le,Te,xt)});return}catch(It){Ze.thrownErrors.push(It)}else Ze.actQueue=null;0<Ze.thrownErrors.length?(tt=$(Ze.thrownErrors),Ze.thrownErrors.length=0,xt(tt)):Te(le)}function O(le){if(!wr){wr=!0;var Te=0;try{for(;Te<le.length;Te++){var xt=le[Te];do{Ze.didUsePromise=!1;var tt=xt(!1);if(tt!==null){if(Ze.didUsePromise){le[Te]=xt,le.splice(0,Te);return}xt=tt}else break}while(!0)}le.length=0}catch(It){le.splice(0,Te+1),Ze.thrownErrors.push(It)}finally{wr=!1}}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var z=Symbol.for(\"react.transitional.element\"),N=Symbol.for(\"react.portal\"),B=Symbol.for(\"react.fragment\"),j=Symbol.for(\"react.strict_mode\"),q=Symbol.for(\"react.profiler\");Symbol.for(\"react.provider\");var H=Symbol.for(\"react.consumer\"),I=Symbol.for(\"react.context\"),U=Symbol.for(\"react.forward_ref\"),X=Symbol.for(\"react.suspense\"),ee=Symbol.for(\"react.suspense_list\"),se=Symbol.for(\"react.memo\"),pe=Symbol.for(\"react.lazy\"),ye=Symbol.for(\"react.activity\"),xe=Symbol.iterator,_e={},Me={isMounted:function(){return!1},enqueueForceUpdate:function(le){n(le,\"forceUpdate\")},enqueueReplaceState:function(le){n(le,\"replaceState\")},enqueueSetState:function(le){n(le,\"setState\")}},qe=Object.assign,wt={};Object.freeze(wt),r.prototype.isReactComponent={},r.prototype.setState=function(le,Te){if(typeof le!=\"object\"&&typeof le!=\"function\"&&le!=null)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,le,Te,\"setState\")},r.prototype.forceUpdate=function(le){this.updater.enqueueForceUpdate(this,le,\"forceUpdate\")};var Ge={isMounted:[\"isMounted\",\"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"],replaceState:[\"replaceState\",\"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"]},ht;for(ht in Ge)Ge.hasOwnProperty(ht)&&t(ht,Ge[ht]);o.prototype=r.prototype,Ge=i.prototype=new o,Ge.constructor=i,qe(Ge,r.prototype),Ge.isPureReactComponent=!0;var Ct=Array.isArray,dt=Symbol.for(\"react.client.reference\"),Ze={H:null,A:null,T:null,S:null,V:null,actQueue:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1,didUsePromise:!1,thrownErrors:[],getCurrentStack:null,recentlyCreatedOwnerStacks:0},rn=Object.prototype.hasOwnProperty,zt=console.createTask?console.createTask:function(){return null};Ge={\"react-stack-bottom-frame\":function(le){return le()}};var Bt,Mt,qt={},Wt=Ge[\"react-stack-bottom-frame\"].bind(Ge,m)(),zn=zt(d(m)),Mn=!1,br=/\\\\/+/g,Zs=typeof reportError==\"function\"?reportError:function(le){if(typeof window==\"object\"&&typeof window.ErrorEvent==\"function\"){var Te=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:typeof le==\"object\"&&le!==null&&typeof le.message==\"string\"?String(le.message):String(le),error:le});if(!window.dispatchEvent(Te))return}else if(typeof process==\"object\"&&typeof process.emit==\"function\"){process.emit(\"uncaughtException\",le);return}console.error(le)},Pr=!1,vr=null,hi=0,er=!1,wr=!1,Ri=typeof queueMicrotask==\"function\"?function(le){queueMicrotask(function(){return queueMicrotask(le)})}:V;Ge=Object.freeze({__proto__:null,c:function(le){return Z().useMemoCache(le)}}),nr.Children={map:ne,forEach:function(le,Te,xt){ne(le,function(){Te.apply(this,arguments)},xt)},count:function(le){var Te=0;return ne(le,function(){Te++}),Te},toArray:function(le){return ne(le,function(Te){return Te})||[]},only:function(le){if(!R(le))throw Error(\"React.Children.only expected to receive a single React element child.\");return le}},nr.Component=r,nr.Fragment=B,nr.Profiler=q,nr.PureComponent=i,nr.StrictMode=j,nr.Suspense=X,nr.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Ze,nr.__COMPILER_RUNTIME=Ge,nr.act=function(le){var Te=Ze.actQueue,xt=hi;hi++;var tt=Ze.actQueue=Te!==null?Te:[],It=!1;try{var hn=le()}catch(bn){Ze.thrownErrors.push(bn)}if(0<Ze.thrownErrors.length)throw F(Te,xt),le=$(Ze.thrownErrors),Ze.thrownErrors.length=0,le;if(hn!==null&&typeof hn==\"object\"&&typeof hn.then==\"function\"){var Dt=hn;return Ri(function(){It||er||(er=!0,console.error(\"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 () => ...);\"))}),{then:function(bn,Fn){It=!0,Dt.then(function(en){if(F(Te,xt),xt===0){try{O(tt),V(function(){return _(en,bn,Fn)})}catch(jr){Ze.thrownErrors.push(jr)}if(0<Ze.thrownErrors.length){var ni=$(Ze.thrownErrors);Ze.thrownErrors.length=0,Fn(ni)}}else bn(en)},function(en){F(Te,xt),0<Ze.thrownErrors.length&&(en=$(Ze.thrownErrors),Ze.thrownErrors.length=0),Fn(en)})}}}var sn=hn;if(F(Te,xt),xt===0&&(O(tt),tt.length!==0&&Ri(function(){It||er||(er=!0,console.error(\"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(() => ...)\"))}),Ze.actQueue=null),0<Ze.thrownErrors.length)throw le=$(Ze.thrownErrors),Ze.thrownErrors.length=0,le;return{then:function(bn,Fn){It=!0,xt===0?(Ze.actQueue=tt,V(function(){return _(sn,bn,Fn)})):bn(sn)}}},nr.cache=function(le){return function(){return le.apply(null,arguments)}},nr.captureOwnerStack=function(){var le=Ze.getCurrentStack;return le===null?null:le()},nr.cloneElement=function(le,Te,xt){if(le==null)throw Error(\"The argument must be a React element, but you passed \"+le+\".\");var tt=qe({},le.props),It=le.key,hn=le._owner;if(Te!=null){var Dt;e:{if(rn.call(Te,\"ref\")&&(Dt=Object.getOwnPropertyDescriptor(Te,\"ref\").get)&&Dt.isReactWarning){Dt=!1;break e}Dt=Te.ref!==void 0}Dt&&(hn=h()),g(Te)&&(c(Te.key),It=\"\"+Te.key);for(sn in Te)!rn.call(Te,sn)||sn===\"key\"||sn===\"__self\"||sn===\"__source\"||sn===\"ref\"&&Te.ref===void 0||(tt[sn]=Te[sn])}var sn=arguments.length-2;if(sn===1)tt.children=xt;else if(1<sn){Dt=Array(sn);for(var bn=0;bn<sn;bn++)Dt[bn]=arguments[bn+2];tt.children=Dt}for(tt=C(le.type,It,void 0,void 0,hn,tt,le._debugStack,le._debugTask),It=2;It<arguments.length;It++)hn=arguments[It],R(hn)&&hn._store&&(hn._store.validated=1);return tt},nr.createContext=function(le){return le={$$typeof:I,_currentValue:le,_currentValue2:le,_threadCount:0,Provider:null,Consumer:null},le.Provider=le,le.Consumer={$$typeof:H,_context:le},le._currentRenderer=null,le._currentRenderer2=null,le},nr.createElement=function(le,Te,xt){for(var tt=2;tt<arguments.length;tt++){var It=arguments[tt];R(It)&&It._store&&(It._store.validated=1)}if(tt={},It=null,Te!=null)for(bn in Mt||!(\"__self\"in Te)||\"key\"in Te||(Mt=!0,console.warn(\"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\")),g(Te)&&(c(Te.key),It=\"\"+Te.key),Te)rn.call(Te,bn)&&bn!==\"key\"&&bn!==\"__self\"&&bn!==\"__source\"&&(tt[bn]=Te[bn]);var hn=arguments.length-2;if(hn===1)tt.children=xt;else if(1<hn){for(var Dt=Array(hn),sn=0;sn<hn;sn++)Dt[sn]=arguments[sn+2];Object.freeze&&Object.freeze(Dt),tt.children=Dt}if(le&&le.defaultProps)for(bn in hn=le.defaultProps,hn)tt[bn]===void 0&&(tt[bn]=hn[bn]);It&&b(tt,typeof le==\"function\"?le.displayName||le.name||\"Unknown\":le);var bn=1e4>Ze.recentlyCreatedOwnerStacks++;return C(le,It,void 0,void 0,h(),tt,bn?Error(\"react-stack-top-frame\"):Wt,bn?zt(d(le)):zn)},nr.createRef=function(){var le={current:null};return Object.seal(le),le},nr.forwardRef=function(le){le!=null&&le.$$typeof===se?console.error(\"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"):typeof le!=\"function\"?console.error(\"forwardRef requires a render function but was given %s.\",le===null?\"null\":typeof le):le.length!==0&&le.length!==2&&console.error(\"forwardRef render functions accept exactly two parameters: props and ref. %s\",le.length===1?\"Did you forget to use the ref parameter?\":\"Any additional parameter will be undefined.\"),le!=null&&le.defaultProps!=null&&console.error(\"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\");var Te={$$typeof:U,render:le},xt;return Object.defineProperty(Te,\"displayName\",{enumerable:!1,configurable:!0,get:function(){return xt},set:function(tt){xt=tt,le.name||le.displayName||(Object.defineProperty(le,\"name\",{value:tt}),le.displayName=tt)}}),Te},nr.isValidElement=R,nr.lazy=function(le){return{$$typeof:pe,_payload:{_status:-1,_result:le},_init:ie}},nr.memo=function(le,Te){le==null&&console.error(\"memo: The first argument must be a component. Instead received: %s\",le===null?\"null\":typeof le),Te={$$typeof:se,type:le,compare:Te===void 0?null:Te};var xt;return Object.defineProperty(Te,\"displayName\",{enumerable:!1,configurable:!0,get:function(){return xt},set:function(tt){xt=tt,le.name||le.displayName||(Object.defineProperty(le,\"name\",{value:tt}),le.displayName=tt)}}),Te},nr.startTransition=function(le){var Te=Ze.T,xt={};Ze.T=xt,xt._updatedFibers=new Set;try{var tt=le(),It=Ze.S;It!==null&&It(xt,tt),typeof tt==\"object\"&&tt!==null&&typeof tt.then==\"function\"&&tt.then(ae,Zs)}catch(hn){Zs(hn)}finally{Te===null&&xt._updatedFibers&&(le=xt._updatedFibers.size,xt._updatedFibers.clear(),10<le&&console.warn(\"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.\")),Ze.T=Te}},nr.unstable_useCacheRefresh=function(){return Z().useCacheRefresh()},nr.use=function(le){return Z().use(le)},nr.useActionState=function(le,Te,xt){return Z().useActionState(le,Te,xt)},nr.useCallback=function(le,Te){return Z().useCallback(le,Te)},nr.useContext=function(le){var Te=Z();return le.$$typeof===H&&console.error(\"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"),Te.useContext(le)},nr.useDebugValue=function(le,Te){return Z().useDebugValue(le,Te)},nr.useDeferredValue=function(le,Te){return Z().useDeferredValue(le,Te)},nr.useEffect=function(le,Te,xt){le==null&&console.warn(\"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\");var tt=Z();if(typeof xt==\"function\")throw Error(\"useEffect CRUD overload is not enabled in this build of React.\");return tt.useEffect(le,Te)},nr.useId=function(){return Z().useId()},nr.useImperativeHandle=function(le,Te,xt){return Z().useImperativeHandle(le,Te,xt)},nr.useInsertionEffect=function(le,Te){return le==null&&console.warn(\"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"),Z().useInsertionEffect(le,Te)},nr.useLayoutEffect=function(le,Te){return le==null&&console.warn(\"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"),Z().useLayoutEffect(le,Te)},nr.useMemo=function(le,Te){return Z().useMemo(le,Te)},nr.useOptimistic=function(le,Te){return Z().useOptimistic(le,Te)},nr.useReducer=function(le,Te,xt){return Z().useReducer(le,Te,xt)},nr.useRef=function(le){return Z().useRef(le)},nr.useState=function(le){return Z().useState(le)},nr.useSyncExternalStore=function(le,Te,xt){return Z().useSyncExternalStore(le,Te,xt)},nr.useTransition=function(){return Z().useTransition()},nr.version=\"19.1.0\",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var et=be((pbt,ede)=>{\"use strict\";p();ede.exports=Xue()});var tde=be(ud=>{\"use strict\";p();(function(){function t(){}function e(m){return\"\"+m}function n(m,g,b){var E=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;try{e(E);var C=!1}catch{C=!0}return C&&(console.error(\"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",typeof Symbol==\"function\"&&Symbol.toStringTag&&E[Symbol.toStringTag]||E.constructor.name||\"Object\"),e(E)),{$$typeof:d,key:E==null?null:\"\"+E,children:m,containerInfo:g,implementation:b}}function r(m,g){if(m===\"font\")return\"\";if(typeof g==\"string\")return g===\"use-credentials\"?g:\"\"}function o(m){return m===null?\"`null`\":m===void 0?\"`undefined`\":m===\"\"?\"an empty string\":\\'something with type \"\\'+typeof m+\\'\"\\'}function i(m){return m===null?\"`null`\":m===void 0?\"`undefined`\":m===\"\"?\"an empty string\":typeof m==\"string\"?JSON.stringify(m):typeof m==\"number\"?\"`\"+m+\"`\":\\'something with type \"\\'+typeof m+\\'\"\\'}function a(){var m=h.H;return m===null&&console.error(`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.`),m}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var c=et(),u={d:{f:t,r:function(){throw Error(\"Invalid form element. requestFormReset must be passed a form that was rendered by React.\")},D:t,C:t,L:t,m:t,X:t,S:t,M:t},p:0,findDOMNode:null},d=Symbol.for(\"react.portal\"),h=c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;typeof Map==\"function\"&&Map.prototype!=null&&typeof Map.prototype.forEach==\"function\"&&typeof Set==\"function\"&&Set.prototype!=null&&typeof Set.prototype.clear==\"function\"&&typeof Set.prototype.forEach==\"function\"||console.error(\"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\"),ud.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,ud.createPortal=function(m,g){var b=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(\"Target container is not a DOM element.\");return n(m,g,null,b)},ud.flushSync=function(m){var g=h.T,b=u.p;try{if(h.T=null,u.p=2,m)return m()}finally{h.T=g,u.p=b,u.d.f()&&console.error(\"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.\")}},ud.preconnect=function(m,g){typeof m==\"string\"&&m?g!=null&&typeof g!=\"object\"?console.error(\"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.\",i(g)):g!=null&&typeof g.crossOrigin!=\"string\"&&console.error(\"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.\",o(g.crossOrigin)):console.error(\"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",o(m)),typeof m==\"string\"&&(g?(g=g.crossOrigin,g=typeof g==\"string\"?g===\"use-credentials\"?g:\"\":void 0):g=null,u.d.C(m,g))},ud.prefetchDNS=function(m){if(typeof m!=\"string\"||!m)console.error(\"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",o(m));else if(1<arguments.length){var g=arguments[1];typeof g==\"object\"&&g.hasOwnProperty(\"crossOrigin\")?console.error(\"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`.\",i(g)):console.error(\"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`.\",i(g))}typeof m==\"string\"&&u.d.D(m)},ud.preinit=function(m,g){if(typeof m==\"string\"&&m?g==null||typeof g!=\"object\"?console.error(\"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.\",i(g)):g.as!==\"style\"&&g.as!==\"script\"&&console.error(\\'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\".\\',i(g.as)):console.error(\"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",o(m)),typeof m==\"string\"&&g&&typeof g.as==\"string\"){var b=g.as,E=r(b,g.crossOrigin),C=typeof g.integrity==\"string\"?g.integrity:void 0,T=typeof g.fetchPriority==\"string\"?g.fetchPriority:void 0;b===\"style\"?u.d.S(m,typeof g.precedence==\"string\"?g.precedence:void 0,{crossOrigin:E,integrity:C,fetchPriority:T}):b===\"script\"&&u.d.X(m,{crossOrigin:E,integrity:C,fetchPriority:T,nonce:typeof g.nonce==\"string\"?g.nonce:void 0})}},ud.preinitModule=function(m,g){var b=\"\";if(typeof m==\"string\"&&m||(b+=\" The `href` argument encountered was \"+o(m)+\".\"),g!==void 0&&typeof g!=\"object\"?b+=\" The `options` argument encountered was \"+o(g)+\".\":g&&\"as\"in g&&g.as!==\"script\"&&(b+=\" The `as` option encountered was \"+i(g.as)+\".\"),b)console.error(\"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",b);else switch(b=g&&typeof g.as==\"string\"?g.as:\"script\",b){case\"script\":break;default:b=i(b),console.error(\\'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)\\',b,m)}typeof m==\"string\"&&(typeof g==\"object\"&&g!==null?(g.as==null||g.as===\"script\")&&(b=r(g.as,g.crossOrigin),u.d.M(m,{crossOrigin:b,integrity:typeof g.integrity==\"string\"?g.integrity:void 0,nonce:typeof g.nonce==\"string\"?g.nonce:void 0})):g==null&&u.d.M(m))},ud.preload=function(m,g){var b=\"\";if(typeof m==\"string\"&&m||(b+=\" The `href` argument encountered was \"+o(m)+\".\"),g==null||typeof g!=\"object\"?b+=\" The `options` argument encountered was \"+o(g)+\".\":typeof g.as==\"string\"&&g.as||(b+=\" The `as` option encountered was \"+o(g.as)+\".\"),b&&console.error(\\'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s\\',b),typeof m==\"string\"&&typeof g==\"object\"&&g!==null&&typeof g.as==\"string\"){b=g.as;var E=r(b,g.crossOrigin);u.d.L(m,b,{crossOrigin:E,integrity:typeof g.integrity==\"string\"?g.integrity:void 0,nonce:typeof g.nonce==\"string\"?g.nonce:void 0,type:typeof g.type==\"string\"?g.type:void 0,fetchPriority:typeof g.fetchPriority==\"string\"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy==\"string\"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet==\"string\"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes==\"string\"?g.imageSizes:void 0,media:typeof g.media==\"string\"?g.media:void 0})}},ud.preloadModule=function(m,g){var b=\"\";typeof m==\"string\"&&m||(b+=\" The `href` argument encountered was \"+o(m)+\".\"),g!==void 0&&typeof g!=\"object\"?b+=\" The `options` argument encountered was \"+o(g)+\".\":g&&\"as\"in g&&typeof g.as!=\"string\"&&(b+=\" The `as` option encountered was \"+o(g.as)+\".\"),b&&console.error(\\'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s\\',b),typeof m==\"string\"&&(g?(b=r(g.as,g.crossOrigin),u.d.m(m,{as:typeof g.as==\"string\"&&g.as!==\"script\"?g.as:void 0,crossOrigin:b,integrity:typeof g.integrity==\"string\"?g.integrity:void 0})):u.d.m(m))},ud.requestFormReset=function(m){u.d.r(m)},ud.unstable_batchedUpdates=function(m,g){return m(g)},ud.useFormState=function(m,g,b){return a().useFormState(m,g,b)},ud.useFormStatus=function(){return a().useHostTransitionStatus()},ud.version=\"19.1.0\",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var I0=be((bbt,nde)=>{\"use strict\";p();nde.exports=tde()});var rde=be(YN=>{\"use strict\";p();(function(){function t(s,l){for(s=s.memoizedState;s!==null&&0<l;)s=s.next,l--;return s}function e(s,l,f,y){if(f>=l.length)return y;var v=l[f],A=pl(s)?s.slice():pr({},s);return A[v]=e(s[v],l,f+1,y),A}function n(s,l,f){if(l.length!==f.length)console.warn(\"copyWithRename() expects paths of the same length\");else{for(var y=0;y<f.length-1;y++)if(l[y]!==f[y]){console.warn(\"copyWithRename() expects paths to be the same except for the deepest key\");return}return r(s,l,f,0)}}function r(s,l,f,y){var v=l[y],A=pl(s)?s.slice():pr({},s);return y+1===l.length?(A[f[y]]=A[v],pl(A)?A.splice(v,1):delete A[v]):A[v]=r(s[v],l,f,y+1),A}function o(s,l,f){var y=l[f],v=pl(s)?s.slice():pr({},s);return f+1===l.length?(pl(v)?v.splice(y,1):delete v[y],v):(v[y]=o(s[y],l,f+1),v)}function i(){return!1}function a(){return null}function c(){}function u(){console.error(\"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks\")}function d(){console.error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\")}function h(){}function m(s){var l=[];return s.forEach(function(f){l.push(f)}),l.sort().join(\", \")}function g(s,l,f,y){return new XT(s,l,f,y)}function b(s,l){s.context===yw&&(B$(s.current,2,l,s,null,null),bt())}function E(s,l){if(xp!==null){var f=l.staleFamilies;l=l.updatedFamilies,Ki(),Yr(s.current,l,f),bt()}}function C(s){xp=s}function T(s){return!(!s||s.nodeType!==1&&s.nodeType!==9&&s.nodeType!==11)}function R(s){var l=s,f=s;if(s.alternate)for(;l.return;)l=l.return;else{s=l;do l=s,(l.flags&4098)!==0&&(f=l.return),s=l.return;while(s)}return l.tag===3?f:null}function L(s){if(s.tag===13){var l=s.memoizedState;if(l===null&&(s=s.alternate,s!==null&&(l=s.memoizedState)),l!==null)return l.dehydrated}return null}function D(s){if(R(s)!==s)throw Error(\"Unable to find node on an unmounted component.\")}function G(s){var l=s.alternate;if(!l){if(l=R(s),l===null)throw Error(\"Unable to find node on an unmounted component.\");return l!==s?null:s}for(var f=s,y=l;;){var v=f.return;if(v===null)break;var A=v.alternate;if(A===null){if(y=v.return,y!==null){f=y;continue}break}if(v.child===A.child){for(A=v.child;A;){if(A===f)return D(v),s;if(A===y)return D(v),l;A=A.sibling}throw Error(\"Unable to find node on an unmounted component.\")}if(f.return!==y.return)f=v,y=A;else{for(var K=!1,te=v.child;te;){if(te===f){K=!0,f=v,y=A;break}if(te===y){K=!0,y=v,f=A;break}te=te.sibling}if(!K){for(te=A.child;te;){if(te===f){K=!0,f=A,y=v;break}if(te===y){K=!0,y=A,f=v;break}te=te.sibling}if(!K)throw Error(\"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\")}}if(f.alternate!==y)throw Error(\"Return fibers should always be each others\\' alternates. This error is likely caused by a bug in React. Please file an issue.\")}if(f.tag!==3)throw Error(\"Unable to find node on an unmounted component.\");return f.stateNode.current===f?s:l}function W(s){var l=s.tag;if(l===5||l===26||l===27||l===6)return s;for(s=s.child;s!==null;){if(l=W(s),l!==null)return l;s=s.sibling}return null}function J(s){return s===null||typeof s!=\"object\"?null:(s=Gae&&s[Gae]||s[\"@@iterator\"],typeof s==\"function\"?s:null)}function ne(s){if(s==null)return null;if(typeof s==\"function\")return s.$$typeof===uDe?null:s.displayName||s.name||null;if(typeof s==\"string\")return s;switch(s){case l_:return\"Fragment\";case q$:return\"Profiler\";case JM:return\"StrictMode\";case V$:return\"Suspense\";case $$:return\"SuspenseList\";case K$:return\"Activity\"}if(typeof s==\"object\")switch(typeof s.tag==\"number\"&&console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),s.$$typeof){case c_:return\"Portal\";case hy:return(s.displayName||\"Context\")+\".Provider\";case W$:return(s._context.displayName||\"Context\")+\".Consumer\";case o7:var l=s.render;return s=s.displayName,s||(s=l.displayName||l.name||\"\",s=s!==\"\"?\"ForwardRef(\"+s+\")\":\"ForwardRef\"),s;case XM:return l=s.displayName||null,l!==null?l:ne(s.type)||\"Memo\";case uh:l=s._payload,s=s._init;try{return ne(s(l))}catch{}}return null}function ie(s){return typeof s.tag==\"number\"?Z(s):typeof s.name==\"string\"?s.name:null}function Z(s){var l=s.type;switch(s.tag){case 31:return\"Activity\";case 24:return\"Cache\";case 9:return(l._context.displayName||\"Context\")+\".Consumer\";case 10:return(l.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return s=l.render,s=s.displayName||s.name||\"\",l.displayName||(s!==\"\"?\"ForwardRef(\"+s+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 26:case 27:case 5:return l;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return ne(l);case 8:return l===JM?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 14:case 15:if(typeof l==\"function\")return l.displayName||l.name||null;if(typeof l==\"string\")return l;break;case 29:if(l=s._debugInfo,l!=null){for(var f=l.length-1;0<=f;f--)if(typeof l[f].name==\"string\")return l[f].name}if(s.return!==null)return Z(s.return)}return null}function ae(s){return{current:s}}function V(s,l){0>Pb?console.error(\"Unexpected pop.\"):(l!==Z$[Pb]&&console.error(\"Unexpected Fiber popped.\"),s.current=G$[Pb],G$[Pb]=null,Z$[Pb]=null,Pb--)}function $(s,l,f){Pb++,G$[Pb]=s.current,Z$[Pb]=f,s.current=l}function F(s){return s===null&&console.error(\"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"),s}function _(s,l){$(hw,l,s),$(i7,s,s),$(fw,null,s);var f=l.nodeType;switch(f){case 9:case 11:f=f===9?\"#document\":\"#fragment\",l=(l=l.documentElement)&&(l=l.namespaceURI)?cy(l):qb;break;default:if(f=l.tagName,l=l.namespaceURI)l=cy(l),l=ef(l,f);else switch(f){case\"svg\":l=W_;break;case\"math\":l=UN;break;default:l=qb}}f=f.toLowerCase(),f=Gh(null,f),f={context:l,ancestorInfo:f},V(fw,s),$(fw,f,s)}function O(s){V(fw,s),V(i7,s),V(hw,s)}function z(){return F(fw.current)}function N(s){s.memoizedState!==null&&$(eN,s,s);var l=F(fw.current),f=s.type,y=ef(l.context,f);f=Gh(l.ancestorInfo,f),y={context:y,ancestorInfo:f},l!==y&&($(i7,s,s),$(fw,y,s))}function B(s){i7.current===s&&(V(fw,s),V(i7,s)),eN.current===s&&(V(eN,s),q7._currentValue=h5)}function j(s){return typeof Symbol==\"function\"&&Symbol.toStringTag&&s[Symbol.toStringTag]||s.constructor.name||\"Object\"}function q(s){try{return H(s),!1}catch{return!0}}function H(s){return\"\"+s}function I(s,l){if(q(s))return console.error(\"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",l,j(s)),H(s)}function U(s,l){if(q(s))return console.error(\"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",l,j(s)),H(s)}function X(s){if(q(s))return console.error(\"Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.\",j(s)),H(s)}function ee(s){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\")return!1;var l=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(l.isDisabled)return!0;if(!l.supportsFiber)return console.error(\"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools\"),!0;try{d_=l.inject(s),tu=l}catch(f){console.error(\"React instrumentation encountered an error: %s.\",f)}return!!l.checkDCE}function se(s){if(typeof yDe==\"function\"&&bDe(s),tu&&typeof tu.setStrictMode==\"function\")try{tu.setStrictMode(d_,s)}catch(l){my||(my=!0,console.error(\"React instrumentation encountered an error: %s\",l))}}function pe(s){Vt=s}function ye(){Vt!==null&&typeof Vt.markCommitStopped==\"function\"&&Vt.markCommitStopped()}function xe(s){Vt!==null&&typeof Vt.markComponentRenderStarted==\"function\"&&Vt.markComponentRenderStarted(s)}function _e(){Vt!==null&&typeof Vt.markComponentRenderStopped==\"function\"&&Vt.markComponentRenderStopped()}function Me(s){Vt!==null&&typeof Vt.markRenderStarted==\"function\"&&Vt.markRenderStarted(s)}function qe(){Vt!==null&&typeof Vt.markRenderStopped==\"function\"&&Vt.markRenderStopped()}function wt(s,l){Vt!==null&&typeof Vt.markStateUpdateScheduled==\"function\"&&Vt.markStateUpdateScheduled(s,l)}function Ge(s){return s>>>=0,s===0?32:31-(vDe(s)/wDe|0)|0}function ht(s){if(s&1)return\"SyncHydrationLane\";if(s&2)return\"Sync\";if(s&4)return\"InputContinuousHydration\";if(s&8)return\"InputContinuous\";if(s&16)return\"DefaultHydration\";if(s&32)return\"Default\";if(s&128)return\"TransitionHydration\";if(s&4194048)return\"Transition\";if(s&62914560)return\"Retry\";if(s&67108864)return\"SelectiveHydration\";if(s&134217728)return\"IdleHydration\";if(s&268435456)return\"Idle\";if(s&536870912)return\"Offscreen\";if(s&1073741824)return\"Deferred\"}function Ct(s){var l=s&42;if(l!==0)return l;switch(s&-s){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error(\"Should have found matching lanes. This is a bug in React.\"),s}}function dt(s,l,f){var y=s.pendingLanes;if(y===0)return 0;var v=0,A=s.suspendedLanes,K=s.pingedLanes;s=s.warmLanes;var te=y&134217727;return te!==0?(y=te&~A,y!==0?v=Ct(y):(K&=te,K!==0?v=Ct(K):f||(f=te&~s,f!==0&&(v=Ct(f))))):(te=y&~A,te!==0?v=Ct(te):K!==0?v=Ct(K):f||(f=y&~s,f!==0&&(v=Ct(f)))),v===0?0:l!==0&&l!==v&&(l&A)===0&&(A=v&-v,f=l&-l,A>=f||A===32&&(f&4194048)!==0)?l:v}function Ze(s,l){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&l)===0}function rn(s,l){switch(s){case 1:case 2:case 4:case 8:case 64:return l+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return console.error(\"Should have found matching lanes. This is a bug in React.\"),-1}}function zt(){var s=tN;return tN<<=1,(tN&4194048)===0&&(tN=256),s}function Bt(){var s=nN;return nN<<=1,(nN&62914560)===0&&(nN=4194304),s}function Mt(s){for(var l=[],f=0;31>f;f++)l.push(s);return l}function qt(s,l){s.pendingLanes|=l,l!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function Wt(s,l,f,y,v,A){var K=s.pendingLanes;s.pendingLanes=f,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=f,s.entangledLanes&=f,s.errorRecoveryDisabledLanes&=f,s.shellSuspendCounter=0;var te=s.entanglements,fe=s.expirationTimes,me=s.hiddenUpdates;for(f=K&~f;0<f;){var Ue=31-nd(f),Ke=1<<Ue;te[Ue]=0,fe[Ue]=-1;var Fe=me[Ue];if(Fe!==null)for(me[Ue]=null,Ue=0;Ue<Fe.length;Ue++){var Qe=Fe[Ue];Qe!==null&&(Qe.lane&=-536870913)}f&=~Ke}y!==0&&zn(s,y,0),A!==0&&v===0&&s.tag!==0&&(s.suspendedLanes|=A&~(K&~l))}function zn(s,l,f){s.pendingLanes|=l,s.suspendedLanes&=~l;var y=31-nd(l);s.entangledLanes|=l,s.entanglements[y]=s.entanglements[y]|1073741824|f&4194090}function Mn(s,l){var f=s.entangledLanes|=l;for(s=s.entanglements;f;){var y=31-nd(f),v=1<<y;v&l|s[y]&l&&(s[y]|=l),f&=~v}}function br(s){switch(s){case 2:s=1;break;case 8:s=4;break;case 32:s=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:s=128;break;case 268435456:s=134217728;break;default:s=0}return s}function Zs(s,l,f){if(S0)for(s=s.pendingUpdatersLaneMap;0<f;){var y=31-nd(f),v=1<<y;s[y].add(l),f&=~v}}function Pr(s,l){if(S0)for(var f=s.pendingUpdatersLaneMap,y=s.memoizedUpdaters;0<l;){var v=31-nd(l);s=1<<v,v=f[v],0<v.size&&(v.forEach(function(A){var K=A.alternate;K!==null&&y.has(K)||y.add(A)}),v.clear()),l&=~s}}function vr(s){return s&=-s,dh!==0&&dh<s?k0!==0&&k0<s?(s&134217727)!==0?gy:rN:k0:dh}function hi(){var s=Io.p;return s!==0?s:(s=window.event,s===void 0?gy:Hae(s.type))}function er(s,l){var f=Io.p;try{return Io.p=s,l()}finally{Io.p=f}}function wr(s){delete s[nu],delete s[cf],delete s[eK],delete s[xDe],delete s[EDe]}function Ri(s){var l=s[nu];if(l)return l;for(var f=s.parentNode;f;){if(l=f[mw]||f[nu]){if(f=l.alternate,l.child!==null||f!==null&&f.child!==null)for(s=WE(s);s!==null;){if(f=s[nu])return f;s=WE(s)}return l}s=f,f=s.parentNode}return null}function le(s){if(s=s[nu]||s[mw]){var l=s.tag;if(l===5||l===6||l===13||l===26||l===27||l===3)return s}return null}function Te(s){var l=s.tag;if(l===5||l===26||l===27||l===6)return s.stateNode;throw Error(\"getNodeFromInstance: Invalid argument.\")}function xt(s){var l=s[Zae];return l||(l=s[Zae]={hoistableStyles:new Map,hoistableScripts:new Map}),l}function tt(s){s[s7]=!0}function It(s,l){hn(s,l),hn(s+\"Capture\",l)}function hn(s,l){GE[s]&&console.error(\"EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.\",s),GE[s]=l;var f=s.toLowerCase();for(tK[f]=s,s===\"onDoubleClick\"&&(tK.ondblclick=s),s=0;s<l.length;s++)Yae.add(l[s])}function Dt(s,l){SDe[l.type]||l.onChange||l.onInput||l.readOnly||l.disabled||l.value==null||console.error(s===\"select\"?\"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`.\":\"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`.\"),l.onChange||l.readOnly||l.disabled||l.checked==null||console.error(\"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`.\")}function sn(s){return Mb.call(Jae,s)?!0:Mb.call(Qae,s)?!1:kDe.test(s)?Jae[s]=!0:(Qae[s]=!0,console.error(\"Invalid attribute name: `%s`\",s),!1)}function bn(s,l,f){if(sn(l)){if(!s.hasAttribute(l)){switch(typeof f){case\"symbol\":case\"object\":return f;case\"function\":return f;case\"boolean\":if(f===!1)return f}return f===void 0?void 0:null}return s=s.getAttribute(l),s===\"\"&&f===!0?!0:(I(f,l),s===\"\"+f?f:s)}}function Fn(s,l,f){if(sn(l))if(f===null)s.removeAttribute(l);else{switch(typeof f){case\"undefined\":case\"function\":case\"symbol\":s.removeAttribute(l);return;case\"boolean\":var y=l.toLowerCase().slice(0,5);if(y!==\"data-\"&&y!==\"aria-\"){s.removeAttribute(l);return}}I(f,l),s.setAttribute(l,\"\"+f)}}function en(s,l,f){if(f===null)s.removeAttribute(l);else{switch(typeof f){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":s.removeAttribute(l);return}I(f,l),s.setAttribute(l,\"\"+f)}}function ni(s,l,f,y){if(y===null)s.removeAttribute(f);else{switch(typeof y){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":s.removeAttribute(f);return}I(y,f),s.setAttributeNS(l,f,\"\"+y)}}function jr(){}function Eo(){if(a7===0){Xae=console.log,ece=console.info,tce=console.warn,nce=console.error,rce=console.group,oce=console.groupCollapsed,ice=console.groupEnd;var s={configurable:!0,enumerable:!0,value:jr,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}a7++}function zu(){if(a7--,a7===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:pr({},s,{value:Xae}),info:pr({},s,{value:ece}),warn:pr({},s,{value:tce}),error:pr({},s,{value:nce}),group:pr({},s,{value:rce}),groupCollapsed:pr({},s,{value:oce}),groupEnd:pr({},s,{value:ice})})}0>a7&&console.error(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}function tr(s){if(nK===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\\\\n( *(at )?)/);nK=l&&l[1]||\"\",sce=-1<f.stack.indexOf(`\\n    at`)?\" (<anonymous>)\":-1<f.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return`\\n`+nK+s+sce}function dr(s,l){if(!s||rK)return\"\";var f=oK.get(s);if(f!==void 0)return f;rK=!0,f=Error.prepareStackTrace,Error.prepareStackTrace=void 0;var y=null;y=$e.H,$e.H=null,Eo();try{var v={DetermineComponentFrameRoot:function(){try{if(l){var Fe=function(){throw Error()};if(Object.defineProperty(Fe.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(Fe,[])}catch(tn){var Qe=tn}Reflect.construct(s,[],Fe)}else{try{Fe.call()}catch(tn){Qe=tn}s.call(Fe.prototype)}}else{try{throw Error()}catch(tn){Qe=tn}(Fe=s())&&typeof Fe.catch==\"function\"&&Fe.catch(function(){})}}catch(tn){if(tn&&Qe&&typeof tn.stack==\"string\")return[tn.stack,Qe.stack]}return[null,null]}};v.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var A=Object.getOwnPropertyDescriptor(v.DetermineComponentFrameRoot,\"name\");A&&A.configurable&&Object.defineProperty(v.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var K=v.DetermineComponentFrameRoot(),te=K[0],fe=K[1];if(te&&fe){var me=te.split(`\\n`),Ue=fe.split(`\\n`);for(K=A=0;A<me.length&&!me[A].includes(\"DetermineComponentFrameRoot\");)A++;for(;K<Ue.length&&!Ue[K].includes(\"DetermineComponentFrameRoot\");)K++;if(A===me.length||K===Ue.length)for(A=me.length-1,K=Ue.length-1;1<=A&&0<=K&&me[A]!==Ue[K];)K--;for(;1<=A&&0<=K;A--,K--)if(me[A]!==Ue[K]){if(A!==1||K!==1)do if(A--,K--,0>K||me[A]!==Ue[K]){var Ke=`\\n`+me[A].replace(\" at new \",\" at \");return s.displayName&&Ke.includes(\"<anonymous>\")&&(Ke=Ke.replace(\"<anonymous>\",s.displayName)),typeof s==\"function\"&&oK.set(s,Ke),Ke}while(1<=A&&0<=K);break}}}finally{rK=!1,$e.H=y,zu(),Error.prepareStackTrace=f}return me=(me=s?s.displayName||s.name:\"\")?tr(me):\"\",typeof s==\"function\"&&oK.set(s,me),me}function Bl(s){var l=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,s=s.stack,Error.prepareStackTrace=l,s.startsWith(`Error: react-stack-top-frame\\n`)&&(s=s.slice(29)),l=s.indexOf(`\\n`),l!==-1&&(s=s.slice(l+1)),l=s.indexOf(\"react-stack-bottom-frame\"),l!==-1&&(l=s.lastIndexOf(`\\n`,l)),l!==-1)s=s.slice(0,l);else return\"\";return s}function vn(s){switch(s.tag){case 26:case 27:case 5:return tr(s.type);case 16:return tr(\"Lazy\");case 13:return tr(\"Suspense\");case 19:return tr(\"SuspenseList\");case 0:case 15:return dr(s.type,!1);case 11:return dr(s.type.render,!1);case 1:return dr(s.type,!0);case 31:return tr(\"Activity\");default:return\"\"}}function zr(s){try{var l=\"\";do{l+=vn(s);var f=s._debugInfo;if(f)for(var y=f.length-1;0<=y;y--){var v=f[y];if(typeof v.name==\"string\"){var A=l,K=v.env,te=tr(v.name+(K?\" [\"+K+\"]\":\"\"));l=A+te}}s=s.return}while(s);return l}catch(fe){return`\\nError generating stack: `+fe.message+`\\n`+fe.stack}}function Dd(s){return(s=s?s.displayName||s.name:\"\")?tr(s):\"\"}function Mr(){if(fh===null)return null;var s=fh._debugOwner;return s!=null?ie(s):null}function So(){if(fh===null)return\"\";var s=fh;try{var l=\"\";switch(s.tag===6&&(s=s.return),s.tag){case 26:case 27:case 5:l+=tr(s.type);break;case 13:l+=tr(\"Suspense\");break;case 19:l+=tr(\"SuspenseList\");break;case 31:l+=tr(\"Activity\");break;case 30:case 0:case 15:case 1:s._debugOwner||l!==\"\"||(l+=Dd(s.type));break;case 11:s._debugOwner||l!==\"\"||(l+=Dd(s.type.render))}for(;s;)if(typeof s.tag==\"number\"){var f=s;s=f._debugOwner;var y=f._debugStack;s&&y&&(typeof y!=\"string\"&&(f._debugStack=y=Bl(y)),y!==\"\"&&(l+=`\\n`+y))}else if(s.debugStack!=null){var v=s.debugStack;(s=s.owner)&&v&&(l+=`\\n`+Bl(v))}else break;var A=l}catch(K){A=`\\nError generating stack: `+K.message+`\\n`+K.stack}return A}function jt(s,l,f,y,v,A,K){var te=fh;xr(s);try{return s!==null&&s._debugTask?s._debugTask.run(l.bind(null,f,y,v,A,K)):l(f,y,v,A,K)}finally{xr(te)}throw Error(\"runWithFiberInDEV should never be called in production. This is a bug in React.\")}function xr(s){$e.getCurrentStack=s===null?null:So,yy=!1,fh=s}function En(s){switch(typeof s){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":return s;case\"object\":return X(s),s;default:return\"\"}}function Hu(s){var l=s.type;return(s=s.nodeName)&&s.toLowerCase()===\"input\"&&(l===\"checkbox\"||l===\"radio\")}function Zr(s){var l=Hu(s)?\"checked\":\"value\",f=Object.getOwnPropertyDescriptor(s.constructor.prototype,l);X(s[l]);var y=\"\"+s[l];if(!s.hasOwnProperty(l)&&typeof f<\"u\"&&typeof f.get==\"function\"&&typeof f.set==\"function\"){var v=f.get,A=f.set;return Object.defineProperty(s,l,{configurable:!0,get:function(){return v.call(this)},set:function(K){X(K),y=\"\"+K,A.call(this,K)}}),Object.defineProperty(s,l,{enumerable:f.enumerable}),{getValue:function(){return y},setValue:function(K){X(K),y=\"\"+K},stopTracking:function(){s._valueTracker=null,delete s[l]}}}}function Cr(s){s._valueTracker||(s._valueTracker=Zr(s))}function Ys(s){if(!s)return!1;var l=s._valueTracker;if(!l)return!0;var f=l.getValue(),y=\"\";return s&&(y=Hu(s)?s.checked?\"true\":\"false\":s.value),s=y,s!==f?(l.setValue(s),!0):!1}function Zc(s){if(s=s||(typeof document<\"u\"?document:void 0),typeof s>\"u\")return null;try{return s.activeElement||s.body}catch{return s.body}}function Zo(s){return s.replace(_De,function(l){return\"\\\\\\\\\"+l.charCodeAt(0).toString(16)+\" \"})}function qu(s,l){l.checked===void 0||l.defaultChecked===void 0||cce||(console.error(\"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",Mr()||\"A component\",l.type),cce=!0),l.value===void 0||l.defaultValue===void 0||ace||(console.error(\"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",Mr()||\"A component\",l.type),ace=!0)}function ts(s,l,f,y,v,A,K,te){s.name=\"\",K!=null&&typeof K!=\"function\"&&typeof K!=\"symbol\"&&typeof K!=\"boolean\"?(I(K,\"type\"),s.type=K):s.removeAttribute(\"type\"),l!=null?K===\"number\"?(l===0&&s.value===\"\"||s.value!=l)&&(s.value=\"\"+En(l)):s.value!==\"\"+En(l)&&(s.value=\"\"+En(l)):K!==\"submit\"&&K!==\"reset\"||s.removeAttribute(\"value\"),l!=null?Yc(s,K,En(l)):f!=null?Yc(s,K,En(f)):y!=null&&s.removeAttribute(\"value\"),v==null&&A!=null&&(s.defaultChecked=!!A),v!=null&&(s.checked=v&&typeof v!=\"function\"&&typeof v!=\"symbol\"),te!=null&&typeof te!=\"function\"&&typeof te!=\"symbol\"&&typeof te!=\"boolean\"?(I(te,\"name\"),s.name=\"\"+En(te)):s.removeAttribute(\"name\")}function Wu(s,l,f,y,v,A,K,te){if(A!=null&&typeof A!=\"function\"&&typeof A!=\"symbol\"&&typeof A!=\"boolean\"&&(I(A,\"type\"),s.type=A),l!=null||f!=null){if(!(A!==\"submit\"&&A!==\"reset\"||l!=null))return;f=f!=null?\"\"+En(f):\"\",l=l!=null?\"\"+En(l):f,te||l===s.value||(s.value=l),s.defaultValue=l}y=y??v,y=typeof y!=\"function\"&&typeof y!=\"symbol\"&&!!y,s.checked=te?s.checked:!!y,s.defaultChecked=!!y,K!=null&&typeof K!=\"function\"&&typeof K!=\"symbol\"&&typeof K!=\"boolean\"&&(I(K,\"name\"),s.name=K)}function Yc(s,l,f){l===\"number\"&&Zc(s.ownerDocument)===s||s.defaultValue===\"\"+f||(s.defaultValue=\"\"+f)}function Ya(s,l){l.value==null&&(typeof l.children==\"object\"&&l.children!==null?H$.Children.forEach(l.children,function(f){f==null||typeof f==\"string\"||typeof f==\"number\"||typeof f==\"bigint\"||uce||(uce=!0,console.error(\"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\"))}):l.dangerouslySetInnerHTML==null||dce||(dce=!0,console.error(\"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\"))),l.selected==null||lce||(console.error(\"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"),lce=!0)}function Qa(){var s=Mr();return s?`\\n\\nCheck the render method of \\\\``+s+\"`.\":\"\"}function ya(s,l,f,y){if(s=s.options,l){l={};for(var v=0;v<f.length;v++)l[\"$\"+f[v]]=!0;for(f=0;f<s.length;f++)v=l.hasOwnProperty(\"$\"+s[f].value),s[f].selected!==v&&(s[f].selected=v),v&&y&&(s[f].defaultSelected=!0)}else{for(f=\"\"+En(f),l=null,v=0;v<s.length;v++){if(s[v].value===f){s[v].selected=!0,y&&(s[v].defaultSelected=!0);return}l!==null||s[v].disabled||(l=s[v])}l!==null&&(l.selected=!0)}}function Dl(s,l){for(s=0;s<hce.length;s++){var f=hce[s];if(l[f]!=null){var y=pl(l[f]);l.multiple&&!y?console.error(\"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s\",f,Qa()):!l.multiple&&y&&console.error(\"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s\",f,Qa())}}l.value===void 0||l.defaultValue===void 0||fce||(console.error(\"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components\"),fce=!0)}function Ja(s,l){l.value===void 0||l.defaultValue===void 0||pce||(console.error(\"%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components\",Mr()||\"A component\"),pce=!0),l.children!=null&&l.value==null&&console.error(\"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\")}function Fl(s,l,f){if(l!=null&&(l=\"\"+En(l),l!==s.value&&(s.value=l),f==null)){s.defaultValue!==l&&(s.defaultValue=l);return}s.defaultValue=f!=null?\"\"+En(f):\"\"}function Fd(s,l,f,y){if(l==null){if(y!=null){if(f!=null)throw Error(\"If you supply `defaultValue` on a <textarea>, do not pass children.\");if(pl(y)){if(1<y.length)throw Error(\"<textarea> can only have at most one child.\");y=y[0]}f=y}f==null&&(f=\"\"),l=f}f=En(l),s.defaultValue=f,y=s.textContent,y===f&&y!==\"\"&&y!==null&&(s.value=y)}function Cg(s,l){return s.serverProps===void 0&&s.serverTail.length===0&&s.children.length===1&&3<s.distanceFromLeaf&&s.distanceFromLeaf>15-l?Cg(s.children[0],l):s}function ri(s){return\"  \"+\"  \".repeat(s)}function bc(s){return\"+ \"+\"  \".repeat(s)}function Qc(s){return\"- \"+\"  \".repeat(s)}function Vh(s){switch(s.tag){case 26:case 27:case 5:return s.type;case 16:return\"Lazy\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 0:case 15:return s=s.type,s.displayName||s.name||null;case 11:return s=s.type.render,s.displayName||s.name||null;case 1:return s=s.type,s.displayName||s.name||null;default:return null}}function Wf(s,l){return mce.test(s)?(s=JSON.stringify(s),s.length>l-2?8>l?\\'{\"...\"}\\':\"{\"+s.slice(0,l-7)+\\'...\"}\\':\"{\"+s+\"}\"):s.length>l?5>l?\\'{\"...\"}\\':s.slice(0,l-3)+\"...\":s}function Ud(s,l,f){var y=120-2*f;if(l===null)return bc(f)+Wf(s,y)+`\\n`;if(typeof l==\"string\"){for(var v=0;v<l.length&&v<s.length&&l.charCodeAt(v)===s.charCodeAt(v);v++);return v>y-8&&10<v&&(s=\"...\"+s.slice(v-8),l=\"...\"+l.slice(v-8)),bc(f)+Wf(s,y)+`\\n`+Qc(f)+Wf(l,y)+`\\n`}return ri(f)+Wf(s,y)+`\\n`}function nE(s){return Object.prototype.toString.call(s).replace(/^\\\\[object (.*)\\\\]$/,function(l,f){return f})}function X1(s,l){switch(typeof s){case\"string\":return s=JSON.stringify(s),s.length>l?5>l?\\'\"...\"\\':s.slice(0,l-4)+\\'...\"\\':s;case\"object\":if(s===null)return\"null\";if(pl(s))return\"[...]\";if(s.$$typeof===dw)return(l=ne(s.type))?\"<\"+l+\">\":\"<...>\";var f=nE(s);if(f===\"Object\"){f=\"\",l-=2;for(var y in s)if(s.hasOwnProperty(y)){var v=JSON.stringify(y);if(v!==\\'\"\\'+y+\\'\"\\'&&(y=v),l-=y.length-2,v=X1(s[y],15>l?l:15),l-=v.length,0>l){f+=f===\"\"?\"...\":\", ...\";break}f+=(f===\"\"?\"\":\",\")+y+\":\"+v}return\"{\"+f+\"}\"}return f;case\"function\":return(l=s.displayName||s.name)?\"function \"+l:\"function\";default:return String(s)}}function vc(s,l){return typeof s!=\"string\"||mce.test(s)?\"{\"+X1(s,l-2)+\"}\":s.length>l-2?5>l?\\'\"...\"\\':\\'\"\\'+s.slice(0,l-5)+\\'...\"\\':\\'\"\\'+s+\\'\"\\'}function jd(s,l,f){var y=120-f.length-s.length,v=[],A;for(A in l)if(l.hasOwnProperty(A)&&A!==\"children\"){var K=vc(l[A],120-f.length-A.length-1);y-=A.length+K.length+2,v.push(A+\"=\"+K)}return v.length===0?f+\"<\"+s+`>\\n`:0<y?f+\"<\"+s+\" \"+v.join(\" \")+`>\\n`:f+\"<\"+s+`\\n`+f+\"  \"+v.join(`\\n`+f+\"  \")+`\\n`+f+`>\\n`}function Ag(s,l,f){var y=\"\",v=pr({},l),A;for(A in s)if(s.hasOwnProperty(A)){delete v[A];var K=120-2*f-A.length-2,te=X1(s[A],K);l.hasOwnProperty(A)?(K=X1(l[A],K),y+=bc(f)+A+\": \"+te+`\\n`,y+=Qc(f)+A+\": \"+K+`\\n`):y+=bc(f)+A+\": \"+te+`\\n`}for(var fe in v)v.hasOwnProperty(fe)&&(s=X1(v[fe],120-2*f-fe.length-2),y+=Qc(f)+fe+\": \"+s+`\\n`);return y}function C2(s,l,f,y){var v=\"\",A=new Map;for(me in f)f.hasOwnProperty(me)&&A.set(me.toLowerCase(),me);if(A.size===1&&A.has(\"children\"))v+=jd(s,l,ri(y));else{for(var K in l)if(l.hasOwnProperty(K)&&K!==\"children\"){var te=120-2*(y+1)-K.length-1,fe=A.get(K.toLowerCase());if(fe!==void 0){A.delete(K.toLowerCase());var me=l[K];fe=f[fe];var Ue=vc(me,te);te=vc(fe,te),typeof me==\"object\"&&me!==null&&typeof fe==\"object\"&&fe!==null&&nE(me)===\"Object\"&&nE(fe)===\"Object\"&&(2<Object.keys(me).length||2<Object.keys(fe).length||-1<Ue.indexOf(\"...\")||-1<te.indexOf(\"...\"))?v+=ri(y+1)+K+`={{\\n`+Ag(me,fe,y+2)+ri(y+1)+`}}\\n`:(v+=bc(y+1)+K+\"=\"+Ue+`\\n`,v+=Qc(y+1)+K+\"=\"+te+`\\n`)}else v+=ri(y+1)+K+\"=\"+vc(l[K],te)+`\\n`}A.forEach(function(Ke){if(Ke!==\"children\"){var Fe=120-2*(y+1)-Ke.length-1;v+=Qc(y+1)+Ke+\"=\"+vc(f[Ke],Fe)+`\\n`}}),v=v===\"\"?ri(y)+\"<\"+s+`>\\n`:ri(y)+\"<\"+s+`\\n`+v+ri(y)+`>\\n`}return s=f.children,l=l.children,typeof s==\"string\"||typeof s==\"number\"||typeof s==\"bigint\"?(A=\"\",(typeof l==\"string\"||typeof l==\"number\"||typeof l==\"bigint\")&&(A=\"\"+l),v+=Ud(A,\"\"+s,y+1)):(typeof l==\"string\"||typeof l==\"number\"||typeof l==\"bigint\")&&(v=s==null?v+Ud(\"\"+l,null,y+1):v+Ud(\"\"+l,void 0,y+1)),v}function Um(s,l){var f=Vh(s);if(f===null){for(f=\"\",s=s.child;s;)f+=Um(s,l),s=s.sibling;return f}return ri(l)+\"<\"+f+`>\\n`}function $h(s,l){var f=Cg(s,l);if(f!==s&&(s.children.length!==1||s.children[0]!==f))return ri(l)+`...\\n`+$h(f,l+1);f=\"\";var y=s.fiber._debugInfo;if(y)for(var v=0;v<y.length;v++){var A=y[v].name;typeof A==\"string\"&&(f+=ri(l)+\"<\"+A+`>\\n`,l++)}if(y=\"\",v=s.fiber.pendingProps,s.fiber.tag===6)y=Ud(v,s.serverProps,l),l++;else if(A=Vh(s.fiber),A!==null)if(s.serverProps===void 0){y=l;var K=120-2*y-A.length-2,te=\"\";for(me in v)if(v.hasOwnProperty(me)&&me!==\"children\"){var fe=vc(v[me],15);if(K-=me.length+fe.length+2,0>K){te+=\" ...\";break}te+=\" \"+me+\"=\"+fe}y=ri(y)+\"<\"+A+te+`>\\n`,l++}else s.serverProps===null?(y=jd(A,v,bc(l)),l++):typeof s.serverProps==\"string\"?console.error(\"Should not have matched a non HostText fiber to a Text node. This is a bug in React.\"):(y=C2(A,v,s.serverProps,l),l++);var me=\"\";for(v=s.fiber.child,A=0;v&&A<s.children.length;)K=s.children[A],K.fiber===v?(me+=$h(K,l),A++):me+=Um(v,l),v=v.sibling;for(v&&0<s.children.length&&(me+=ri(l)+`...\\n`),v=s.serverTail,s.serverProps===null&&l--,s=0;s<v.length;s++)A=v[s],me=typeof A==\"string\"?me+(Qc(l)+Wf(A,120-2*l)+`\\n`):me+jd(A.type,A.props,Qc(l));return f+y+me}function Tg(s){try{return`\\n\\n`+$h(s,0)}catch{return\"\"}}function Kh(s,l,f){for(var y=l,v=null,A=0;y;)y===s&&(A=0),v={fiber:y,children:v!==null?[v]:[],serverProps:y===l?f:y===s?null:void 0,serverTail:[],distanceFromLeaf:A},A++,y=y.return;return v!==null?Tg(v).replaceAll(/^[+-]/gm,\">\"):\"\"}function Gh(s,l){var f=pr({},s||yce),y={tag:l};return gce.indexOf(l)!==-1&&(f.aTagInScope=null,f.buttonTagInScope=null,f.nobrTagInScope=null),ADe.indexOf(l)!==-1&&(f.pTagInButtonScope=null),CDe.indexOf(l)!==-1&&l!==\"address\"&&l!==\"div\"&&l!==\"p\"&&(f.listItemTagAutoclosing=null,f.dlItemTagAutoclosing=null),f.current=y,l===\"form\"&&(f.formTag=y),l===\"a\"&&(f.aTagInScope=y),l===\"button\"&&(f.buttonTagInScope=y),l===\"nobr\"&&(f.nobrTagInScope=y),l===\"p\"&&(f.pTagInButtonScope=y),l===\"li\"&&(f.listItemTagAutoclosing=y),(l===\"dd\"||l===\"dt\")&&(f.dlItemTagAutoclosing=y),l===\"#document\"||l===\"html\"?f.containerTagInScope=null:f.containerTagInScope||(f.containerTagInScope=y),s!==null||l!==\"#document\"&&l!==\"html\"&&l!==\"body\"?f.implicitRootScope===!0&&(f.implicitRootScope=!1):f.implicitRootScope=!0,f}function Zh(s,l,f){switch(l){case\"select\":return s===\"hr\"||s===\"option\"||s===\"optgroup\"||s===\"script\"||s===\"template\"||s===\"#text\";case\"optgroup\":return s===\"option\"||s===\"#text\";case\"option\":return s===\"#text\";case\"tr\":return s===\"th\"||s===\"td\"||s===\"style\"||s===\"script\"||s===\"template\";case\"tbody\":case\"thead\":case\"tfoot\":return s===\"tr\"||s===\"style\"||s===\"script\"||s===\"template\";case\"colgroup\":return s===\"col\"||s===\"template\";case\"table\":return s===\"caption\"||s===\"colgroup\"||s===\"tbody\"||s===\"tfoot\"||s===\"thead\"||s===\"style\"||s===\"script\"||s===\"template\";case\"head\":return s===\"base\"||s===\"basefont\"||s===\"bgsound\"||s===\"link\"||s===\"meta\"||s===\"title\"||s===\"noscript\"||s===\"noframes\"||s===\"style\"||s===\"script\"||s===\"template\";case\"html\":if(f)break;return s===\"head\"||s===\"body\"||s===\"frameset\";case\"frameset\":return s===\"frame\";case\"#document\":if(!f)return s===\"html\"}switch(s){case\"h1\":case\"h2\":case\"h3\":case\"h4\":case\"h5\":case\"h6\":return l!==\"h1\"&&l!==\"h2\"&&l!==\"h3\"&&l!==\"h4\"&&l!==\"h5\"&&l!==\"h6\";case\"rp\":case\"rt\":return TDe.indexOf(l)===-1;case\"caption\":case\"col\":case\"colgroup\":case\"frameset\":case\"frame\":case\"tbody\":case\"td\":case\"tfoot\":case\"th\":case\"thead\":case\"tr\":return l==null;case\"head\":return f||l===null;case\"html\":return f&&l===\"#document\"||l===null;case\"body\":return f&&(l===\"#document\"||l===\"html\")||l===null}return!0}function Qs(s,l){switch(s){case\"address\":case\"article\":case\"aside\":case\"blockquote\":case\"center\":case\"details\":case\"dialog\":case\"dir\":case\"div\":case\"dl\":case\"fieldset\":case\"figcaption\":case\"figure\":case\"footer\":case\"header\":case\"hgroup\":case\"main\":case\"menu\":case\"nav\":case\"ol\":case\"p\":case\"section\":case\"summary\":case\"ul\":case\"pre\":case\"listing\":case\"table\":case\"hr\":case\"xmp\":case\"h1\":case\"h2\":case\"h3\":case\"h4\":case\"h5\":case\"h6\":return l.pTagInButtonScope;case\"form\":return l.formTag||l.pTagInButtonScope;case\"li\":return l.listItemTagAutoclosing;case\"dd\":case\"dt\":return l.dlItemTagAutoclosing;case\"button\":return l.buttonTagInScope;case\"a\":return l.aTagInScope;case\"nobr\":return l.nobrTagInScope}return null}function zd(s,l){for(;s;){switch(s.tag){case 5:case 26:case 27:if(s.type===l)return s}s=s.return}return null}function eb(s,l){l=l||yce;var f=l.current;if(l=(f=Zh(s,f&&f.tag,l.implicitRootScope)?null:f)?null:Qs(s,l),l=f||l,!l)return!0;var y=l.tag;if(l=String(!!f)+\"|\"+s+\"|\"+y,oN[l])return!1;oN[l]=!0;var v=(l=fh)?zd(l.return,y):null,A=l!==null&&v!==null?Kh(v,l,null):\"\",K=\"<\"+s+\">\";return f?(f=\"\",y===\"table\"&&s===\"tr\"&&(f+=\" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser.\"),console.error(`In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s`,K,y,f,A)):console.error(`In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s`,K,y,A),l&&(s=l.return,v===null||s===null||v===s&&s._debugOwner===l._debugOwner||jt(v,function(){console.error(`<%s> cannot contain a nested %s.\\nSee this log for the ancestor stack trace.`,y,K)})),!1}function Hd(s,l,f){if(f||Zh(\"#text\",l,!1))return!0;if(f=\"#text|\"+l,oN[f])return!1;oN[f]=!0;var y=(f=fh)?zd(f,l):null;return f=f!==null&&y!==null?Kh(y,f,f.tag!==6?{children:null}:null):\"\",/\\\\S/.test(s)?console.error(`In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.%s`,l,f):console.error(`In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don\\'t have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.%s`,l,f),!1}function Vf(s,l){if(l){var f=s.firstChild;if(f&&f===s.lastChild&&f.nodeType===3){f.nodeValue=l;return}}s.textContent=l}function Rg(s){return s.replace(ODe,function(l,f){return f.toUpperCase()})}function Yh(s,l,f){var y=l.indexOf(\"--\")===0;y||(-1<l.indexOf(\"-\")?f_.hasOwnProperty(l)&&f_[l]||(f_[l]=!0,console.error(\"Unsupported style property %s. Did you mean %s?\",l,Rg(l.replace(IDe,\"ms-\")))):RDe.test(l)?f_.hasOwnProperty(l)&&f_[l]||(f_[l]=!0,console.error(\"Unsupported vendor-prefixed style property %s. Did you mean %s?\",l,l.charAt(0).toUpperCase()+l.slice(1))):!wce.test(f)||sK.hasOwnProperty(f)&&sK[f]||(sK[f]=!0,console.error(`Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.`,l,f.replace(wce,\"\"))),typeof f==\"number\"&&(isNaN(f)?xce||(xce=!0,console.error(\"`NaN` is an invalid value for the `%s` css style property.\",l)):isFinite(f)||Ece||(Ece=!0,console.error(\"`Infinity` is an invalid value for the `%s` css style property.\",l)))),f==null||typeof f==\"boolean\"||f===\"\"?y?s.setProperty(l,\"\"):l===\"float\"?s.cssFloat=\"\":s[l]=\"\":y?s.setProperty(l,f):typeof f!=\"number\"||f===0||Sce.has(l)?l===\"float\"?s.cssFloat=f:(U(f,l),s[l]=(\"\"+f).trim()):s[l]=f+\"px\"}function ms(s,l,f){if(l!=null&&typeof l!=\"object\")throw Error(\"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.\");if(l&&Object.freeze(l),s=s.style,f!=null){if(l){var y={};if(f){for(var v in f)if(f.hasOwnProperty(v)&&!l.hasOwnProperty(v))for(var A=iK[v]||[v],K=0;K<A.length;K++)y[A[K]]=v}for(var te in l)if(l.hasOwnProperty(te)&&(!f||f[te]!==l[te]))for(v=iK[te]||[te],A=0;A<v.length;A++)y[v[A]]=te;te={};for(var fe in l)for(v=iK[fe]||[fe],A=0;A<v.length;A++)te[v[A]]=fe;fe={};for(var me in y)if(v=y[me],(A=te[me])&&v!==A&&(K=v+\",\"+A,!fe[K])){fe[K]=!0,K=console;var Ue=l[v];K.error.call(K,\"%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don\\'t mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.\",Ue==null||typeof Ue==\"boolean\"||Ue===\"\"?\"Removing\":\"Updating\",v,A)}}for(var Ke in f)!f.hasOwnProperty(Ke)||l!=null&&l.hasOwnProperty(Ke)||(Ke.indexOf(\"--\")===0?s.setProperty(Ke,\"\"):Ke===\"float\"?s.cssFloat=\"\":s[Ke]=\"\");for(var Fe in l)me=l[Fe],l.hasOwnProperty(Fe)&&f[Fe]!==me&&Yh(s,Fe,me)}else for(y in l)l.hasOwnProperty(y)&&Yh(s,y,l[y])}function Ul(s){if(s.indexOf(\"-\")===-1)return!1;switch(s){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}function ba(s){return PDe.get(s)||s}function jm(s,l){if(Mb.call(p_,l)&&p_[l])return!0;if(NDe.test(l)){if(s=\"aria-\"+l.slice(4).toLowerCase(),s=kce.hasOwnProperty(s)?s:null,s==null)return console.error(\"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",l),p_[l]=!0;if(l!==s)return console.error(\"Invalid ARIA attribute `%s`. Did you mean `%s`?\",l,s),p_[l]=!0}if(MDe.test(l)){if(s=l.toLowerCase(),s=kce.hasOwnProperty(s)?s:null,s==null)return p_[l]=!0,!1;l!==s&&(console.error(\"Unknown ARIA attribute `%s`. Did you mean `%s`?\",l,s),p_[l]=!0)}return!0}function rE(s,l){var f=[],y;for(y in l)jm(s,y)||f.push(y);l=f.map(function(v){return\"`\"+v+\"`\"}).join(\", \"),f.length===1?console.error(\"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",l,s):1<f.length&&console.error(\"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",l,s)}function oE(s,l,f,y){if(Mb.call(rd,l)&&rd[l])return!0;var v=l.toLowerCase();if(v===\"onfocusin\"||v===\"onfocusout\")return console.error(\"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.\"),rd[l]=!0;if(typeof f==\"function\"&&(s===\"form\"&&l===\"action\"||s===\"input\"&&l===\"formAction\"||s===\"button\"&&l===\"formAction\"))return!0;if(y!=null){if(s=y.possibleRegistrationNames,y.registrationNameDependencies.hasOwnProperty(l))return!0;if(y=s.hasOwnProperty(v)?s[v]:null,y!=null)return console.error(\"Invalid event handler property `%s`. Did you mean `%s`?\",l,y),rd[l]=!0;if(Cce.test(l))return console.error(\"Unknown event handler property `%s`. It will be ignored.\",l),rd[l]=!0}else if(Cce.test(l))return LDe.test(l)&&console.error(\"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",l),rd[l]=!0;if(BDe.test(l)||DDe.test(l))return!0;if(v===\"innerhtml\")return console.error(\"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"),rd[l]=!0;if(v===\"aria\")return console.error(\"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"),rd[l]=!0;if(v===\"is\"&&f!==null&&f!==void 0&&typeof f!=\"string\")return console.error(\"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",typeof f),rd[l]=!0;if(typeof f==\"number\"&&isNaN(f))return console.error(\"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",l),rd[l]=!0;if(sN.hasOwnProperty(v)){if(v=sN[v],v!==l)return console.error(\"Invalid DOM property `%s`. Did you mean `%s`?\",l,v),rd[l]=!0}else if(l!==v)return console.error(\"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.\",l,v),rd[l]=!0;switch(l){case\"dangerouslySetInnerHTML\":case\"children\":case\"style\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":return!0;case\"innerText\":case\"textContent\":return!0}switch(typeof f){case\"boolean\":switch(l){case\"autoFocus\":case\"checked\":case\"multiple\":case\"muted\":case\"selected\":case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"capture\":case\"download\":case\"inert\":return!0;default:return v=l.toLowerCase().slice(0,5),v===\"data-\"||v===\"aria-\"?!0:(f?console.error(\\'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()}.\\',f,l,l,f,l):console.error(\\'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.\\',f,l,l,f,l,l,l),rd[l]=!0)}case\"function\":case\"symbol\":return rd[l]=!0,!1;case\"string\":if(f===\"false\"||f===\"true\"){switch(l){case\"checked\":case\"selected\":case\"multiple\":case\"muted\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"inert\":break;default:return!0}console.error(\"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",f,l,f===\"false\"?\"The browser will interpret it as a truthy value.\":\\'Although this works, it will not work as expected if you pass the string \"false\".\\',l,f),rd[l]=!0}}return!0}function Xa(s,l,f){var y=[],v;for(v in l)oE(s,v,l[v],f)||y.push(v);l=y.map(function(A){return\"`\"+A+\"`\"}).join(\", \"),y.length===1?console.error(\"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 \",l,s):1<y.length&&console.error(\"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 \",l,s)}function zm(s){return FDe.test(\"\"+s)?\"javascript:throw new Error(\\'React has blocked a javascript: URL as a security precaution.\\')\":s}function Qh(s){return s=s.target||s.srcElement||window,s.correspondingUseElement&&(s=s.correspondingUseElement),s.nodeType===3?s.parentNode:s}function wc(s){var l=le(s);if(l&&(s=l.stateNode)){var f=s[cf]||null;e:switch(s=l.stateNode,l.type){case\"input\":if(ts(s,f.value,f.defaultValue,f.defaultValue,f.checked,f.defaultChecked,f.type,f.name),l=f.name,f.type===\"radio\"&&l!=null){for(f=s;f.parentNode;)f=f.parentNode;for(I(l,\"name\"),f=f.querySelectorAll(\\'input[name=\"\\'+Zo(\"\"+l)+\\'\"][type=\"radio\"]\\'),l=0;l<f.length;l++){var y=f[l];if(y!==s&&y.form===s.form){var v=y[cf]||null;if(!v)throw Error(\"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\");ts(y,v.value,v.defaultValue,v.defaultValue,v.checked,v.defaultChecked,v.type,v.name)}}for(l=0;l<f.length;l++)y=f[l],y.form===s.form&&Ys(y)}break e;case\"textarea\":Fl(s,f.value,f.defaultValue);break e;case\"select\":l=f.value,l!=null&&ya(s,!!f.multiple,l,!1)}}}function Ig(s,l,f){if(aK)return s(l,f);aK=!0;try{var y=s(l);return y}finally{if(aK=!1,(m_!==null||g_!==null)&&(bt(),m_&&(l=m_,s=g_,g_=m_=null,wc(l),s)))for(l=0;l<s.length;l++)wc(s[l])}}function $f(s,l){var f=s.stateNode;if(f===null)return null;var y=f[cf]||null;if(y===null)return null;f=y[l];e:switch(l){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(y=!y.disabled)||(s=s.type,y=!(s===\"button\"||s===\"input\"||s===\"select\"||s===\"textarea\")),s=!y;break e;default:s=!1}if(s)return null;if(f&&typeof f!=\"function\")throw Error(\"Expected `\"+l+\"` listener to be a function, instead got a value of `\"+typeof f+\"` type.\");return f}function Hm(){if(aN)return aN;var s,l=lK,f=l.length,y,v=\"value\"in gw?gw.value:gw.textContent,A=v.length;for(s=0;s<f&&l[s]===v[s];s++);var K=f-s;for(y=1;y<=K&&l[f-y]===v[A-y];y++);return aN=v.slice(s,1<y?1-y:void 0)}function Kf(s){var l=s.keyCode;return\"charCode\"in s?(s=s.charCode,s===0&&l===13&&(s=13)):s=l,s===10&&(s=13),32<=s||s===13?s:0}function qm(){return!0}function Jc(){return!1}function va(s){function l(f,y,v,A,K){this._reactName=f,this._targetInst=v,this.type=y,this.nativeEvent=A,this.target=K,this.currentTarget=null;for(var te in s)s.hasOwnProperty(te)&&(f=s[te],this[te]=f?f(A):A[te]);return this.isDefaultPrevented=(A.defaultPrevented!=null?A.defaultPrevented:A.returnValue===!1)?qm:Jc,this.isPropagationStopped=Jc,this}return pr(l.prototype,{preventDefault:function(){this.defaultPrevented=!0;var f=this.nativeEvent;f&&(f.preventDefault?f.preventDefault():typeof f.returnValue!=\"unknown\"&&(f.returnValue=!1),this.isDefaultPrevented=qm)},stopPropagation:function(){var f=this.nativeEvent;f&&(f.stopPropagation?f.stopPropagation():typeof f.cancelBubble!=\"unknown\"&&(f.cancelBubble=!0),this.isPropagationStopped=qm)},persist:function(){},isPersistent:qm}),l}function Og(s){var l=this.nativeEvent;return l.getModifierState?l.getModifierState(s):(s=QDe[s])?!!l[s]:!1}function Jh(){return Og}function Wm(s,l){switch(s){case\"keyup\":return lFe.indexOf(l.keyCode)!==-1;case\"keydown\":return l.keyCode!==Ice;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function Xh(s){return s=s.detail,typeof s==\"object\"&&\"data\"in s?s.data:null}function Pg(s,l){switch(s){case\"compositionend\":return Xh(l);case\"keypress\":return l.which!==Pce?null:(Nce=!0,Mce);case\"textInput\":return s=l.data,s===Mce&&Nce?null:s;default:return null}}function Mg(s,l){if(y_)return s===\"compositionend\"||!hK&&Wm(s,l)?(s=Hm(),aN=lK=gw=null,y_=!1,s):null;switch(s){case\"paste\":return null;case\"keypress\":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1<l.char.length)return l.char;if(l.which)return String.fromCharCode(l.which)}return null;case\"compositionend\":return Oce&&l.locale!==\"ko\"?null:l.data;default:return null}}function tb(s){var l=s&&s.nodeName&&s.nodeName.toLowerCase();return l===\"input\"?!!dFe[s.type]:l===\"textarea\"}function Ng(s){if(!by)return!1;s=\"on\"+s;var l=s in document;return l||(l=document.createElement(\"div\"),l.setAttribute(s,\"return;\"),l=typeof l[s]==\"function\"),l}function A2(s,l,f,y){m_?g_?g_.push(y):g_=[y]:m_=y,l=cs(l,\"onChange\"),0<l.length&&(f=new cN(\"onChange\",\"change\",null,f,y),s.push({event:f,listeners:l}))}function ep(s){ah(s,0)}function tp(s){var l=Te(s);if(Ys(l))return s}function nb(s,l){if(s===\"change\")return l}function Lg(){h7&&(h7.detachEvent(\"onpropertychange\",rb),p7=h7=null)}function rb(s){if(s.propertyName===\"value\"&&tp(p7)){var l=[];A2(l,p7,s,Qh(s)),Ig(ep,l)}}function iE(s,l,f){s===\"focusin\"?(Lg(),h7=l,p7=f,h7.attachEvent(\"onpropertychange\",rb)):s===\"focusout\"&&Lg()}function Fk(s){if(s===\"selectionchange\"||s===\"keyup\"||s===\"keydown\")return tp(p7)}function Vm(s,l){if(s===\"click\")return tp(l)}function T2(s,l){if(s===\"input\"||s===\"change\")return tp(l)}function np(s,l){return s===l&&(s!==0||1/s===1/l)||s!==s&&l!==l}function $m(s,l){if(od(s,l))return!0;if(typeof s!=\"object\"||s===null||typeof l!=\"object\"||l===null)return!1;var f=Object.keys(s),y=Object.keys(l);if(f.length!==y.length)return!1;for(y=0;y<f.length;y++){var v=f[y];if(!Mb.call(l,v)||!od(s[v],l[v]))return!1}return!0}function rp(s){for(;s&&s.firstChild;)s=s.firstChild;return s}function sE(s,l){var f=rp(s);s=0;for(var y;f;){if(f.nodeType===3){if(y=s+f.textContent.length,s<=l&&y>=l)return{node:f,offset:l-s};s=y}e:{for(;f;){if(f.nextSibling){f=f.nextSibling;break e}f=f.parentNode}f=void 0}f=rp(f)}}function Bg(s,l){return s&&l?s===l?!0:s&&s.nodeType===3?!1:l&&l.nodeType===3?Bg(s,l.parentNode):\"contains\"in s?s.contains(l):s.compareDocumentPosition?!!(s.compareDocumentPosition(l)&16):!1:!1}function Dg(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var l=Zc(s.document);l instanceof s.HTMLIFrameElement;){try{var f=typeof l.contentWindow.location.href==\"string\"}catch{f=!1}if(f)s=l.contentWindow;else break;l=Zc(s.document)}return l}function Gf(s){var l=s&&s.nodeName&&s.nodeName.toLowerCase();return l&&(l===\"input\"&&(s.type===\"text\"||s.type===\"search\"||s.type===\"tel\"||s.type===\"url\"||s.type===\"password\")||l===\"textarea\"||s.contentEditable===\"true\")}function op(s,l,f){var y=f.window===f?f.document:f.nodeType===9?f:f.ownerDocument;mK||b_==null||b_!==Zc(y)||(y=b_,\"selectionStart\"in y&&Gf(y)?y={start:y.selectionStart,end:y.selectionEnd}:(y=(y.ownerDocument&&y.ownerDocument.defaultView||window).getSelection(),y={anchorNode:y.anchorNode,anchorOffset:y.anchorOffset,focusNode:y.focusNode,focusOffset:y.focusOffset}),m7&&$m(m7,y)||(m7=y,y=cs(pK,\"onSelect\"),0<y.length&&(l=new cN(\"onSelect\",\"select\",null,l,f),s.push({event:l,listeners:y}),l.target=b_)))}function Vu(s,l){var f={};return f[s.toLowerCase()]=l.toLowerCase(),f[\"Webkit\"+s]=\"webkit\"+l,f[\"Moz\"+s]=\"moz\"+l,f}function $u(s){if(gK[s])return gK[s];if(!v_[s])return s;var l=v_[s],f;for(f in l)if(l.hasOwnProperty(f)&&f in Bce)return gK[s]=l[f];return s}function Js(s,l){zce.set(s,l),It(l,[s])}function Xc(s,l){if(typeof s==\"object\"&&s!==null){var f=bK.get(s);return f!==void 0?f:(l={value:s,source:l,stack:zr(l)},bK.set(s,l),l)}return{value:s,source:l,stack:zr(l)}}function Km(){for(var s=w_,l=vK=w_=0;l<s;){var f=wp[l];wp[l++]=null;var y=wp[l];wp[l++]=null;var v=wp[l];wp[l++]=null;var A=wp[l];if(wp[l++]=null,y!==null&&v!==null){var K=y.pending;K===null?v.next=v:(v.next=K.next,K.next=v),y.pending=v}A!==0&&Ug(f,v,A)}}function ip(s,l,f,y){wp[w_++]=s,wp[w_++]=l,wp[w_++]=f,wp[w_++]=y,vK|=y,s.lanes|=y,s=s.alternate,s!==null&&(s.lanes|=y)}function Fg(s,l,f,y){return ip(s,l,f,y),el(s)}function Rs(s,l){return ip(s,null,null,l),el(s)}function Ug(s,l,f){s.lanes|=f;var y=s.alternate;y!==null&&(y.lanes|=f);for(var v=!1,A=s.return;A!==null;)A.childLanes|=f,y=A.alternate,y!==null&&(y.childLanes|=f),A.tag===22&&(s=A.stateNode,s===null||s._visibility&uN||(v=!0)),s=A,A=A.return;return s.tag===3?(A=s.stateNode,v&&l!==null&&(v=31-nd(f),s=A.hiddenUpdates,y=s[v],y===null?s[v]=[l]:y.push(l),l.lane=f|536870912),A):null}function el(s){if(D7>NFe)throw c5=D7=0,F7=ZK=null,Error(\"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\");c5>LFe&&(c5=0,F7=null,console.error(\"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn\\'t have a dependency array, or one of the dependencies changes on every render.\")),s.alternate===null&&(s.flags&4098)!==0&&$l(s);for(var l=s,f=l.return;f!==null;)l.alternate===null&&(l.flags&4098)!==0&&$l(s),l=f,f=l.return;return l.tag===3?l.stateNode:null}function tl(s){if(xp===null)return s;var l=xp(s);return l===void 0?s:l.current}function R2(s){if(xp===null)return s;var l=xp(s);return l===void 0?s!=null&&typeof s.render==\"function\"&&(l=tl(s.render),s.render!==l)?(l={$$typeof:o7,render:l},s.displayName!==void 0&&(l.displayName=s.displayName),l):s:l.current}function ob(s,l){if(xp===null)return!1;var f=s.elementType;l=l.type;var y=!1,v=typeof l==\"object\"&&l!==null?l.$$typeof:null;switch(s.tag){case 1:typeof l==\"function\"&&(y=!0);break;case 0:(typeof l==\"function\"||v===uh)&&(y=!0);break;case 11:(v===o7||v===uh)&&(y=!0);break;case 14:case 15:(v===XM||v===uh)&&(y=!0);break;default:return!1}return!!(y&&(s=xp(f),s!==void 0&&s===xp(l)))}function Ii(s){xp!==null&&typeof WeakSet==\"function\"&&(x_===null&&(x_=new WeakSet),x_.add(s))}function Yr(s,l,f){var y=s.alternate,v=s.child,A=s.sibling,K=s.tag,te=s.type,fe=null;switch(K){case 0:case 15:case 1:fe=te;break;case 11:fe=te.render}if(xp===null)throw Error(\"Expected resolveFamily to be set during hot reload.\");var me=!1;te=!1,fe!==null&&(fe=xp(fe),fe!==void 0&&(f.has(fe)?te=!0:l.has(fe)&&(K===1?te=!0:me=!0))),x_!==null&&(x_.has(s)||y!==null&&x_.has(y))&&(te=!0),te&&(s._debugNeedsRemount=!0),(te||me)&&(y=Rs(s,2),y!==null&&Le(y,s,2)),v===null||te||Yr(v,l,f),A!==null&&Yr(A,l,f)}function XT(s,l,f,y){this.tag=s,this.key=f,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=y,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null,this.actualDuration=-0,this.actualStartTime=-1.1,this.treeBaseDuration=this.selfBaseDuration=-0,this._debugTask=this._debugStack=this._debugOwner=this._debugInfo=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,qce||typeof Object.preventExtensions!=\"function\"||Object.preventExtensions(this)}function ib(s){return s=s.prototype,!(!s||!s.isReactComponent)}function wa(s,l){var f=s.alternate;switch(f===null?(f=g(s.tag,l,s.key,s.mode),f.elementType=s.elementType,f.type=s.type,f.stateNode=s.stateNode,f._debugOwner=s._debugOwner,f._debugStack=s._debugStack,f._debugTask=s._debugTask,f._debugHookTypes=s._debugHookTypes,f.alternate=s,s.alternate=f):(f.pendingProps=l,f.type=s.type,f.flags=0,f.subtreeFlags=0,f.deletions=null,f.actualDuration=-0,f.actualStartTime=-1.1),f.flags=s.flags&65011712,f.childLanes=s.childLanes,f.lanes=s.lanes,f.child=s.child,f.memoizedProps=s.memoizedProps,f.memoizedState=s.memoizedState,f.updateQueue=s.updateQueue,l=s.dependencies,f.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext,_debugThenableState:l._debugThenableState},f.sibling=s.sibling,f.index=s.index,f.ref=s.ref,f.refCleanup=s.refCleanup,f.selfBaseDuration=s.selfBaseDuration,f.treeBaseDuration=s.treeBaseDuration,f._debugInfo=s._debugInfo,f._debugNeedsRemount=s._debugNeedsRemount,f.tag){case 0:case 15:f.type=tl(s.type);break;case 1:f.type=tl(s.type);break;case 11:f.type=R2(s.type)}return f}function aE(s,l){s.flags&=65011714;var f=s.alternate;return f===null?(s.childLanes=0,s.lanes=l,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null,s.selfBaseDuration=0,s.treeBaseDuration=0):(s.childLanes=f.childLanes,s.lanes=f.lanes,s.child=f.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=f.memoizedProps,s.memoizedState=f.memoizedState,s.updateQueue=f.updateQueue,s.type=f.type,l=f.dependencies,s.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext,_debugThenableState:l._debugThenableState},s.selfBaseDuration=f.selfBaseDuration,s.treeBaseDuration=f.treeBaseDuration),s}function I2(s,l,f,y,v,A){var K=0,te=s;if(typeof s==\"function\")ib(s)&&(K=1),te=tl(te);else if(typeof s==\"string\")K=z(),K=KM(s,f,K)?26:s===\"html\"||s===\"head\"||s===\"body\"?27:5;else e:switch(s){case K$:return l=g(31,f,l,v),l.elementType=K$,l.lanes=A,l;case l_:return Zf(f.children,v,A,l);case JM:K=8,v|=ru,v|=_0;break;case q$:return s=f,y=v,typeof s.id!=\"string\"&&console.error(\\'Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.\\',typeof s.id),l=g(12,s,l,y|ml),l.elementType=q$,l.lanes=A,l.stateNode={effectDuration:0,passiveEffectDuration:0},l;case V$:return l=g(13,f,l,v),l.elementType=V$,l.lanes=A,l;case $$:return l=g(19,f,l,v),l.elementType=$$,l.lanes=A,l;default:if(typeof s==\"object\"&&s!==null)switch(s.$$typeof){case cDe:case hy:K=10;break e;case W$:K=9;break e;case o7:K=11,te=R2(te);break e;case XM:K=14;break e;case uh:K=16,te=null;break e}te=\"\",(s===void 0||typeof s==\"object\"&&s!==null&&Object.keys(s).length===0)&&(te+=\" You likely forgot to export your component from the file it\\'s defined in, or you might have mixed up default and named imports.\"),s===null?f=\"null\":pl(s)?f=\"array\":s!==void 0&&s.$$typeof===dw?(f=\"<\"+(ne(s.type)||\"Unknown\")+\" />\",te=\" Did you accidentally export a JSX literal instead of a component?\"):f=typeof s,(K=y?ie(y):null)&&(te+=`\\n\\nCheck the render method of \\\\``+K+\"`.\"),K=29,f=Error(\"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \"+(f+\".\"+te)),te=null}return l=g(K,f,l,v),l.elementType=s,l.type=te,l.lanes=A,l._debugOwner=y,l}function jg(s,l,f){return l=I2(s.type,s.key,s.props,s._owner,l,f),l._debugOwner=s._owner,l._debugStack=s._debugStack,l._debugTask=s._debugTask,l}function Zf(s,l,f,y){return s=g(7,s,y,l),s.lanes=f,s}function Yf(s,l,f){return s=g(6,s,null,l),s.lanes=f,s}function cE(s,l,f){return l=g(4,s.children!==null?s.children:[],s.key,l),l.lanes=f,l.stateNode={containerInfo:s.containerInfo,pendingChildren:null,implementation:s.implementation},l}function sp(s,l){uo(),E_[S_++]=fN,E_[S_++]=dN,dN=s,fN=l}function ec(s,l,f){uo(),Ep[Sp++]=Lb,Ep[Sp++]=Bb,Ep[Sp++]=YE,YE=s;var y=Lb;s=Bb;var v=32-nd(y)-1;y&=~(1<<v),f+=1;var A=32-nd(l)+v;if(30<A){var K=v-v%5;A=(y&(1<<K)-1).toString(32),y>>=K,v-=K,Lb=1<<32-nd(l)+v|f<<v|y,Bb=A+s}else Lb=1<<A|f<<v|y,Bb=s}function xa(s){uo(),s.return!==null&&(sp(s,1),ec(s,1,0))}function Is(s){for(;s===dN;)dN=E_[--S_],E_[S_]=null,fN=E_[--S_],E_[S_]=null;for(;s===YE;)YE=Ep[--Sp],Ep[Sp]=null,Bb=Ep[--Sp],Ep[Sp]=null,Lb=Ep[--Sp],Ep[Sp]=null}function uo(){Qr||console.error(\"Expected to be hydrating. This is a bug in React. Please file an issue.\")}function Ar(s,l){if(s.return===null){if(kp===null)kp={fiber:s,children:[],serverProps:void 0,serverTail:[],distanceFromLeaf:l};else{if(kp.fiber!==s)throw Error(\"Saw multiple hydration diff roots in a pass. This is a bug in React.\");kp.distanceFromLeaf>l&&(kp.distanceFromLeaf=l)}return kp}var f=Ar(s.return,l+1).children;return 0<f.length&&f[f.length-1].fiber===s?(f=f[f.length-1],f.distanceFromLeaf>l&&(f.distanceFromLeaf=l),f):(l={fiber:s,children:[],serverProps:void 0,serverTail:[],distanceFromLeaf:l},f.push(l),l)}function lE(s,l){Db||(s=Ar(s,0),s.serverProps=null,l!==null&&(l=sw(l),s.serverTail.push(l)))}function ap(s){var l=\"\",f=kp;throw f!==null&&(kp=null,l=Tg(f)),jl(Xc(Error(`Hydration failed because the server rendered HTML didn\\'t match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch \\\\`if (typeof window !== \\'undefined\\')\\\\`.\\n- Variable input such as \\\\`Date.now()\\\\` or \\\\`Math.random()\\\\` which changes each time it\\'s called.\\n- Date formatting in a user\\'s locale which doesn\\'t match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\nhttps://react.dev/link/hydration-mismatch`+l),s)),wK}function uE(s){var l=s.stateNode,f=s.type,y=s.memoizedProps;switch(l[nu]=s,l[cf]=y,bi(f,y),f){case\"dialog\":pn(\"cancel\",l),pn(\"close\",l);break;case\"iframe\":case\"object\":case\"embed\":pn(\"load\",l);break;case\"video\":case\"audio\":for(f=0;f<U7.length;f++)pn(U7[f],l);break;case\"source\":pn(\"error\",l);break;case\"img\":case\"image\":case\"link\":pn(\"error\",l),pn(\"load\",l);break;case\"details\":pn(\"toggle\",l);break;case\"input\":Dt(\"input\",y),pn(\"invalid\",l),qu(l,y),Wu(l,y.value,y.defaultValue,y.checked,y.defaultChecked,y.type,y.name,!0),Cr(l);break;case\"option\":Ya(l,y);break;case\"select\":Dt(\"select\",y),pn(\"invalid\",l),Dl(l,y);break;case\"textarea\":Dt(\"textarea\",y),pn(\"invalid\",l),Ja(l,y),Fd(l,y.value,y.defaultValue,y.children),Cr(l)}f=y.children,typeof f!=\"string\"&&typeof f!=\"number\"&&typeof f!=\"bigint\"||l.textContent===\"\"+f||y.suppressHydrationWarning===!0||v0(l.textContent,f)?(y.popover!=null&&(pn(\"beforetoggle\",l),pn(\"toggle\",l)),y.onScroll!=null&&pn(\"scroll\",l),y.onScrollEnd!=null&&pn(\"scrollend\",l),y.onClick!=null&&(l.onclick=Xo),l=!0):l=!1,l||ap(s)}function Uk(s){for(id=s.return;id;)switch(id.tag){case 5:case 13:vy=!1;return;case 27:case 3:vy=!0;return;default:id=id.return}}function sb(s){if(s!==id)return!1;if(!Qr)return Uk(s),Qr=!0,!1;var l=s.tag,f;if((f=l!==3&&l!==27)&&((f=l===5)&&(f=s.type,f=!(f!==\"form\"&&f!==\"button\")||w0(s.type,s.memoizedProps)),f=!f),f&&Bs){for(f=Bs;f;){var y=Ar(s,0),v=sw(f);y.serverTail.push(v),f=v.type===\"Suspense\"?cw(f):td(f.nextSibling)}ap(s)}if(Uk(s),l===13){if(s=s.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(\"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\");Bs=cw(s)}else l===27?(l=Bs,of(s.type)?(s=aG,aG=null,Bs=s):Bs=l):Bs=id?td(s.stateNode.nextSibling):null;return!0}function zg(){Bs=id=null,Db=Qr=!1}function cp(){var s=QE;return s!==null&&(cd===null?cd=s:cd.push.apply(cd,s),QE=null),s}function jl(s){QE===null?QE=[s]:QE.push(s)}function dE(){var s=kp;if(s!==null){kp=null;for(var l=Tg(s);0<s.children.length;)s=s.children[0];jt(s.fiber,function(){console.error(`A tree hydrated but some attributes of the server rendered HTML didn\\'t match the client properties. This won\\'t be patched up. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch \\\\`if (typeof window !== \\'undefined\\')\\\\`.\\n- Variable input such as \\\\`Date.now()\\\\` or \\\\`Math.random()\\\\` which changes each time it\\'s called.\\n- Date formatting in a user\\'s locale which doesn\\'t match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\n%s%s`,\"https://react.dev/link/hydration-mismatch\",l)})}}function ab(){k_=hN=null,__=!1}function Qf(s,l,f){$(xK,l._currentValue,s),l._currentValue=f,$(EK,l._currentRenderer,s),l._currentRenderer!==void 0&&l._currentRenderer!==null&&l._currentRenderer!==Kce&&console.error(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),l._currentRenderer=Kce}function qd(s,l){s._currentValue=xK.current;var f=EK.current;V(EK,l),s._currentRenderer=f,V(xK,l)}function Xs(s,l,f){for(;s!==null;){var y=s.alternate;if((s.childLanes&l)!==l?(s.childLanes|=l,y!==null&&(y.childLanes|=l)):y!==null&&(y.childLanes&l)!==l&&(y.childLanes|=l),s===f)break;s=s.return}s!==f&&console.error(\"Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.\")}function O2(s,l,f,y){var v=s.child;for(v!==null&&(v.return=s);v!==null;){var A=v.dependencies;if(A!==null){var K=v.child;A=A.firstContext;e:for(;A!==null;){var te=A;A=v;for(var fe=0;fe<l.length;fe++)if(te.context===l[fe]){A.lanes|=f,te=A.alternate,te!==null&&(te.lanes|=f),Xs(A.return,f,s),y||(K=null);break e}A=te.next}}else if(v.tag===18){if(K=v.return,K===null)throw Error(\"We just came from a parent so we must have had a parent. This is a bug in React.\");K.lanes|=f,A=K.alternate,A!==null&&(A.lanes|=f),Xs(K,f,s),K=null}else K=v.child;if(K!==null)K.return=v;else for(K=v;K!==null;){if(K===s){K=null;break}if(v=K.sibling,v!==null){v.return=K.return,K=v;break}K=K.return}v=K}}function ea(s,l,f,y){s=null;for(var v=l,A=!1;v!==null;){if(!A){if((v.flags&524288)!==0)A=!0;else if((v.flags&262144)!==0)break}if(v.tag===10){var K=v.alternate;if(K===null)throw Error(\"Should have a current fiber. This is a bug in React.\");if(K=K.memoizedProps,K!==null){var te=v.type;od(v.pendingProps.value,K.value)||(s!==null?s.push(te):s=[te])}}else if(v===eN.current){if(K=v.alternate,K===null)throw Error(\"Should have a current fiber. This is a bug in React.\");K.memoizedState.memoizedState!==v.memoizedState.memoizedState&&(s!==null?s.push(q7):s=[q7])}v=v.return}s!==null&&O2(l,s,f,y),l.flags|=262144}function cb(s){for(s=s.firstContext;s!==null;){if(!od(s.context._currentValue,s.memoizedValue))return!0;s=s.next}return!1}function Gm(s){hN=s,k_=null,s=s.dependencies,s!==null&&(s.firstContext=null)}function Hr(s){return __&&console.error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"),fE(hN,s)}function Wd(s,l){return hN===null&&Gm(s),fE(s,l)}function fE(s,l){var f=l._currentValue;if(l={context:l,memoizedValue:f,next:null},k_===null){if(s===null)throw Error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\");k_=l,s.dependencies={lanes:0,firstContext:l,_debugThenableState:null},s.flags|=524288}else k_=k_.next=l;return f}function Zm(){return{controller:new vFe,data:new Map,refCount:0}}function nl(s){s.controller.signal.aborted&&console.warn(\"A cache instance was retained after it was already freed. This likely indicates a bug in React.\"),s.refCount++}function Jf(s){s.refCount--,0>s.refCount&&console.warn(\"A cache instance was released after it was already freed. This likely indicates a bug in React.\"),s.refCount===0&&wFe(xFe,function(){s.controller.abort()})}function ko(){var s=JE;return JE=0,s}function ta(s){var l=JE;return JE=s,l}function lb(s){var l=JE;return JE+=s,l}function P2(s){lf=C_(),0>s.actualStartTime&&(s.actualStartTime=lf)}function M2(s){if(0<=lf){var l=C_()-lf;s.actualDuration+=l,s.selfBaseDuration=l,lf=-1}}function Ym(s){if(0<=lf){var l=C_()-lf;s.actualDuration+=l,lf=-1}}function Lo(){if(0<=lf){var s=C_()-lf;lf=-1,JE+=s}}function pi(){lf=C_()}function Qm(s){for(var l=s.child;l;)s.actualDuration+=l.actualDuration,l=l.sibling}function na(s,l){if(g7===null){var f=g7=[];SK=0,XE=Tc(),A_={status:\"pending\",value:void 0,then:function(y){f.push(y)}}}return SK++,l.then(Ku,Ku),l}function Ku(){if(--SK===0&&g7!==null){A_!==null&&(A_.status=\"fulfilled\");var s=g7;g7=null,XE=0,A_=null;for(var l=0;l<s.length;l++)(0,s[l])()}}function ub(s,l){var f=[],y={status:\"pending\",value:null,reason:null,then:function(v){f.push(v)}};return s.then(function(){y.status=\"fulfilled\",y.value=l;for(var v=0;v<f.length;v++)(0,f[v])(l)},function(v){for(y.status=\"rejected\",y.reason=v,v=0;v<f.length;v++)(0,f[v])(void 0)}),y}function lp(){var s=e5.current;return s!==null?s:wi.pooledCache}function Jm(s,l){l===null?$(e5,e5.current,s):$(e5,l.pool,s)}function Hg(){var s=lp();return s===null?null:{parent:lc._currentValue,pool:s}}function ns(){return{didWarnAboutUncachedPromise:!1,thenables:[]}}function xc(s){return s=s.status,s===\"fulfilled\"||s===\"rejected\"}function db(){}function hE(s,l,f){$e.actQueue!==null&&($e.didUsePromise=!0);var y=s.thenables;switch(f=y[f],f===void 0?y.push(l):f!==l&&(s.didWarnAboutUncachedPromise||(s.didWarnAboutUncachedPromise=!0,console.error(\"A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.\")),l.then(db,db),l=f),l.status){case\"fulfilled\":return l.value;case\"rejected\":throw s=l.reason,rl(s),s;default:if(typeof l.status==\"string\")l.then(db,db);else{if(s=wi,s!==null&&100<s.shellSuspendCounter)throw Error(\"An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `\\'use client\\'` to a module that was originally written for the server.\");s=l,s.status=\"pending\",s.then(function(v){if(l.status===\"pending\"){var A=l;A.status=\"fulfilled\",A.value=v}},function(v){if(l.status===\"pending\"){var A=l;A.status=\"rejected\",A.reason=v}})}switch(l.status){case\"fulfilled\":return l.value;case\"rejected\":throw s=l.reason,rl(s),s}throw k7=l,vN=!0,S7}}function Ea(){if(k7===null)throw Error(\"Expected a suspended thenable. This is a bug in React. Please file an issue.\");var s=k7;return k7=null,vN=!1,s}function rl(s){if(s===S7||s===bN)throw Error(\"Hooks are not supported inside an async component. This error is often caused by accidentally adding `\\'use client\\'` to a module that was originally written for the server.\")}function Sa(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qg(s,l){s=s.updateQueue,l.updateQueue===s&&(l.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function Vd(s){return{lane:s,tag:Jce,payload:null,callback:null,next:null}}function oi(s,l,f){var y=s.updateQueue;if(y===null)return null;if(y=y.shared,CK===y&&!tle){var v=Z(s);console.error(`An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\\n\\nPlease update the following component: %s`,v),tle=!0}return(Oo&ad)!==hh?(v=y.pending,v===null?l.next=l:(l.next=v.next,v.next=l),y.pending=l,l=el(s),Ug(s,null,f),l):(ip(s,y,l,f),el(s))}function Xf(s,l,f){if(l=l.updateQueue,l!==null&&(l=l.shared,(f&4194048)!==0)){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Mn(s,f)}}function fb(s,l){var f=s.updateQueue,y=s.alternate;if(y!==null&&(y=y.updateQueue,f===y)){var v=null,A=null;if(f=f.firstBaseUpdate,f!==null){do{var K={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};A===null?v=A=K:A=A.next=K,f=f.next}while(f!==null);A===null?v=A=l:A=A.next=l}else v=A=l;f={baseState:y.baseState,firstBaseUpdate:v,lastBaseUpdate:A,shared:y.shared,callbacks:y.callbacks},s.updateQueue=f;return}s=f.lastBaseUpdate,s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=l}function Wg(){if(AK){var s=A_;if(s!==null)throw s}}function Xm(s,l,f,y){AK=!1;var v=s.updateQueue;bw=!1,CK=v.shared;var A=v.firstBaseUpdate,K=v.lastBaseUpdate,te=v.shared.pending;if(te!==null){v.shared.pending=null;var fe=te,me=fe.next;fe.next=null,K===null?A=me:K.next=me,K=fe;var Ue=s.alternate;Ue!==null&&(Ue=Ue.updateQueue,te=Ue.lastBaseUpdate,te!==K&&(te===null?Ue.firstBaseUpdate=me:te.next=me,Ue.lastBaseUpdate=fe))}if(A!==null){var Ke=v.baseState;K=0,Ue=me=fe=null,te=A;do{var Fe=te.lane&-536870913,Qe=Fe!==te.lane;if(Qe?(Rr&Fe)===Fe:(y&Fe)===Fe){Fe!==0&&Fe===XE&&(AK=!0),Ue!==null&&(Ue=Ue.next={lane:0,tag:te.tag,payload:te.payload,callback:null,next:null});e:{Fe=s;var tn=te,On=l,xi=f;switch(tn.tag){case Xce:if(tn=tn.payload,typeof tn==\"function\"){__=!0;var Dr=tn.call(xi,Ke,On);if(Fe.mode&ru){se(!0);try{tn.call(xi,Ke,On)}finally{se(!1)}}__=!1,Ke=Dr;break e}Ke=tn;break e;case _K:Fe.flags=Fe.flags&-65537|128;case Jce:if(Dr=tn.payload,typeof Dr==\"function\"){if(__=!0,tn=Dr.call(xi,Ke,On),Fe.mode&ru){se(!0);try{Dr.call(xi,Ke,On)}finally{se(!1)}}__=!1}else tn=Dr;if(tn==null)break e;Ke=pr({},Ke,tn);break e;case ele:bw=!0}}Fe=te.callback,Fe!==null&&(s.flags|=64,Qe&&(s.flags|=8192),Qe=v.callbacks,Qe===null?v.callbacks=[Fe]:Qe.push(Fe))}else Qe={lane:Fe,tag:te.tag,payload:te.payload,callback:te.callback,next:null},Ue===null?(me=Ue=Qe,fe=Ke):Ue=Ue.next=Qe,K|=Fe;if(te=te.next,te===null){if(te=v.shared.pending,te===null)break;Qe=te,te=Qe.next,Qe.next=null,v.lastBaseUpdate=Qe,v.shared.pending=null}}while(!0);Ue===null&&(fe=Ke),v.baseState=fe,v.firstBaseUpdate=me,v.lastBaseUpdate=Ue,A===null&&(v.shared.lanes=0),Ew|=K,s.lanes=K,s.memoizedState=Ke}CK=null}function N2(s,l){if(typeof s!=\"function\")throw Error(\"Invalid argument passed as callback. Expected a function. Instead received: \"+s);s.call(l)}function e0(s,l){var f=s.shared.hiddenCallbacks;if(f!==null)for(s.shared.hiddenCallbacks=null,s=0;s<f.length;s++)N2(f[s],l)}function t0(s,l){var f=s.callbacks;if(f!==null)for(s.callbacks=null,s=0;s<f.length;s++)N2(f[s],l)}function tc(s,l){var f=Ey;$(wN,f,s),$(T_,l,s),Ey=f|l.baseLanes}function eh(s){$(wN,Ey,s),$(T_,T_.current,s)}function ol(s){Ey=wN.current,V(T_,s),V(wN,s)}function In(){var s=We;Ap===null?Ap=[s]:Ap.push(s)}function gt(){var s=We;if(Ap!==null&&(Ub++,Ap[Ub]!==s)){var l=Z(Dn);if(!nle.has(l)&&(nle.add(l),Ap!==null)){for(var f=\"\",y=0;y<=Ub;y++){var v=Ap[y],A=y===Ub?s:v;for(v=y+1+\". \"+v;30>v.length;)v+=\" \";v+=A+`\\n`,f+=v}console.error(`React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\\n\\n   Previous render            Next render\\n   ------------------------------------------------------\\n%s   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n`,l,f)}}}function up(s){s==null||pl(s)||console.error(\"%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.\",We,typeof s)}function Vg(){var s=Z(Dn);ole.has(s)||(ole.add(s),console.error(\"ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.\",s))}function Yo(){throw Error(`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.`)}function Gu(s,l){if(C7)return!1;if(l===null)return console.error(\"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",We),!1;s.length!==l.length&&console.error(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s`,We,\"[\"+l.join(\", \")+\"]\",\"[\"+s.join(\", \")+\"]\");for(var f=0;f<l.length&&f<s.length;f++)if(!od(s[f],l[f]))return!1;return!0}function hb(s,l,f,y,v,A){vw=A,Dn=l,Ap=s!==null?s._debugHookTypes:null,Ub=-1,C7=s!==null&&s.type!==l.type,(Object.prototype.toString.call(f)===\"[object AsyncFunction]\"||Object.prototype.toString.call(f)===\"[object AsyncGeneratorFunction]\")&&(A=Z(Dn),TK.has(A)||(TK.add(A),console.error(\"%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `\\'use client\\'` to a module that was originally written for the server.\",A===null?\"An unknown Component\":\"<\"+A+\">\"))),l.memoizedState=null,l.updateQueue=null,l.lanes=0,$e.H=s!==null&&s.memoizedState!==null?IK:Ap!==null?ile:RK,n5=A=(l.mode&ru)!==Ni;var K=OK(f,y,v);if(n5=!1,I_&&(K=L2(l,f,y,v)),A){se(!0);try{K=L2(l,f,y,v)}finally{se(!1)}}return pE(s,l),K}function pE(s,l){l._debugHookTypes=Ap,l.dependencies===null?Fb!==null&&(l.dependencies={lanes:0,firstContext:null,_debugThenableState:Fb}):l.dependencies._debugThenableState=Fb,$e.H=SN;var f=ai!==null&&ai.next!==null;if(vw=0,Ap=We=Na=ai=Dn=null,Ub=-1,s!==null&&(s.flags&65011712)!==(l.flags&65011712)&&console.error(\"Internal React error: Expected static flag was missing. Please notify the React team.\"),xN=!1,_7=0,Fb=null,f)throw Error(\"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\");s===null||Ic||(s=s.dependencies,s!==null&&cb(s)&&(Ic=!0)),vN?(vN=!1,s=!0):s=!1,s&&(l=Z(l)||\"Unknown\",rle.has(l)||TK.has(l)||(rle.add(l),console.error(\"`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.\")))}function L2(s,l,f,y){Dn=s;var v=0;do{if(I_&&(Fb=null),_7=0,I_=!1,v>=SFe)throw Error(\"Too many re-renders. React limits the number of renders to prevent an infinite loop.\");if(v+=1,C7=!1,Na=ai=null,s.updateQueue!=null){var A=s.updateQueue;A.lastEffect=null,A.events=null,A.stores=null,A.memoCache!=null&&(A.memoCache.index=0)}Ub=-1,$e.H=sle,A=OK(l,f,y)}while(I_);return A}function e7(){var s=$e.H,l=s.useState()[0];return l=typeof l.then==\"function\"?mi(l):l,s=s.useState()[0],(ai!==null?ai.memoizedState:null)!==s&&(Dn.flags|=1024),l}function ra(){var s=EN!==0;return EN=0,s}function Ec(s,l,f){l.updateQueue=s.updateQueue,l.flags=(l.mode&_0)!==Ni?l.flags&-402655237:l.flags&-2053,s.lanes&=~f}function nc(s){if(xN){for(s=s.memoizedState;s!==null;){var l=s.queue;l!==null&&(l.pending=null),s=s.next}xN=!1}vw=0,Ap=Na=ai=Dn=null,Ub=-1,We=null,I_=!1,_7=EN=0,Fb=null}function ka(){var s={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Na===null?Dn.memoizedState=Na=s:Na=Na.next=s,Na}function Nr(){if(ai===null){var s=Dn.alternate;s=s!==null?s.memoizedState:null}else s=ai.next;var l=Na===null?Dn.memoizedState:Na.next;if(l!==null)Na=l,ai=s;else{if(s===null)throw Dn.alternate===null?Error(\"Update hook called on initial render. This is likely a bug in React. Please file an issue.\"):Error(\"Rendered more hooks than during the previous render.\");ai=s,s={memoizedState:ai.memoizedState,baseState:ai.baseState,baseQueue:ai.baseQueue,queue:ai.queue,next:null},Na===null?Dn.memoizedState=Na=s:Na=Na.next=s}return Na}function B2(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function mi(s){var l=_7;return _7+=1,Fb===null&&(Fb=ns()),s=hE(Fb,s,l),l=Dn,(Na===null?l.memoizedState:Na.next)===null&&(l=l.alternate,$e.H=l!==null&&l.memoizedState!==null?IK:RK),s}function zl(s){if(s!==null&&typeof s==\"object\"){if(typeof s.then==\"function\")return mi(s);if(s.$$typeof===hy)return Hr(s)}throw Error(\"An unsupported type was passed to use(): \"+String(s))}function dp(s){var l=null,f=Dn.updateQueue;if(f!==null&&(l=f.memoCache),l==null){var y=Dn.alternate;y!==null&&(y=y.updateQueue,y!==null&&(y=y.memoCache,y!=null&&(l={data:y.data.map(function(v){return v.slice()}),index:0})))}if(l==null&&(l={data:[],index:0}),f===null&&(f=B2(),Dn.updateQueue=f),f.memoCache=l,f=l.data[l.index],f===void 0||C7)for(f=l.data[l.index]=Array(s),y=0;y<s;y++)f[y]=lDe;else f.length!==s&&console.error(\"Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.\",f.length,s);return l.index++,f}function Hl(s,l){return typeof l==\"function\"?l(s):l}function D2(s,l,f){var y=ka();if(f!==void 0){var v=f(l);if(n5){se(!0);try{f(l)}finally{se(!1)}}}else v=l;return y.memoizedState=y.baseState=v,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:v},y.queue=s,s=s.dispatch=OE.bind(null,Dn,s),[y.memoizedState,s]}function n0(s){var l=Nr();return F2(l,ai,s)}function F2(s,l,f){var y=s.queue;if(y===null)throw Error(\"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\");y.lastRenderedReducer=f;var v=s.baseQueue,A=y.pending;if(A!==null){if(v!==null){var K=v.next;v.next=A.next,A.next=K}l.baseQueue!==v&&console.error(\"Internal error: Expected work-in-progress queue to be a clone. This is a bug in React.\"),l.baseQueue=v=A,y.pending=null}if(A=s.baseState,v===null)s.memoizedState=A;else{l=v.next;var te=K=null,fe=null,me=l,Ue=!1;do{var Ke=me.lane&-536870913;if(Ke!==me.lane?(Rr&Ke)===Ke:(vw&Ke)===Ke){var Fe=me.revertLane;if(Fe===0)fe!==null&&(fe=fe.next={lane:0,revertLane:0,action:me.action,hasEagerState:me.hasEagerState,eagerState:me.eagerState,next:null}),Ke===XE&&(Ue=!0);else if((vw&Fe)===Fe){me=me.next,Fe===XE&&(Ue=!0);continue}else Ke={lane:0,revertLane:me.revertLane,action:me.action,hasEagerState:me.hasEagerState,eagerState:me.eagerState,next:null},fe===null?(te=fe=Ke,K=A):fe=fe.next=Ke,Dn.lanes|=Fe,Ew|=Fe;Ke=me.action,n5&&f(A,Ke),A=me.hasEagerState?me.eagerState:f(A,Ke)}else Fe={lane:Ke,revertLane:me.revertLane,action:me.action,hasEagerState:me.hasEagerState,eagerState:me.eagerState,next:null},fe===null?(te=fe=Fe,K=A):fe=fe.next=Fe,Dn.lanes|=Ke,Ew|=Ke;me=me.next}while(me!==null&&me!==l);if(fe===null?K=A:fe.next=te,!od(A,s.memoizedState)&&(Ic=!0,Ue&&(f=A_,f!==null)))throw f;s.memoizedState=A,s.baseState=K,s.baseQueue=fe,y.lastRenderedState=A}return v===null&&(y.lanes=0),[s.memoizedState,y.dispatch]}function $g(s){var l=Nr(),f=l.queue;if(f===null)throw Error(\"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\");f.lastRenderedReducer=s;var y=f.dispatch,v=f.pending,A=l.memoizedState;if(v!==null){f.pending=null;var K=v=v.next;do A=s(A,K.action),K=K.next;while(K!==v);od(A,l.memoizedState)||(Ic=!0),l.memoizedState=A,l.baseQueue===null&&(l.baseState=A),f.lastRenderedState=A}return[A,y]}function U2(s,l,f){var y=Dn,v=ka();if(Qr){if(f===void 0)throw Error(\"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\");var A=f();R_||A===f()||(console.error(\"The result of getServerSnapshot should be cached to avoid an infinite loop\"),R_=!0)}else{if(A=l(),R_||(f=l(),od(A,f)||(console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\"),R_=!0)),wi===null)throw Error(\"Expected a work-in-progress root. This is a bug in React. Please file an issue.\");(Rr&124)!==0||mE(y,l,A)}return v.memoizedState=A,f={value:A,getSnapshot:l},v.queue=f,V2(mb.bind(null,y,f,s),[s]),y.flags|=2048,Gg(Cp|uc,W2(),pb.bind(null,y,f,A,l),null),A}function r0(s,l,f){var y=Dn,v=Nr(),A=Qr;if(A){if(f===void 0)throw Error(\"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\");f=f()}else if(f=l(),!R_){var K=l();od(f,K)||(console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\"),R_=!0)}(K=!od((ai||v).memoizedState,f))&&(v.memoizedState=f,Ic=!0),v=v.queue;var te=mb.bind(null,y,v,s);if(Sc(2048,uc,te,[s]),v.getSnapshot!==l||K||Na!==null&&Na.memoizedState.tag&Cp){if(y.flags|=2048,Gg(Cp|uc,W2(),pb.bind(null,y,v,f,l),null),wi===null)throw Error(\"Expected a work-in-progress root. This is a bug in React. Please file an issue.\");A||(vw&124)!==0||mE(y,l,f)}return f}function mE(s,l,f){s.flags|=16384,s={getSnapshot:l,value:f},l=Dn.updateQueue,l===null?(l=B2(),Dn.updateQueue=l,l.stores=[s]):(f=l.stores,f===null?l.stores=[s]:f.push(s))}function pb(s,l,f,y){l.value=f,l.getSnapshot=y,j2(l)&&jk(s)}function mb(s,l,f){return f(function(){j2(l)&&jk(s)})}function j2(s){var l=s.getSnapshot;s=s.value;try{var f=l();return!od(s,f)}catch{return!0}}function jk(s){var l=Rs(s,2);l!==null&&Le(l,s,2)}function gE(s){var l=ka();if(typeof s==\"function\"){var f=s;if(s=f(),n5){se(!0);try{f()}finally{se(!1)}}}return l.memoizedState=l.baseState=s,l.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Hl,lastRenderedState:s},l}function yE(s){s=gE(s);var l=s.queue,f=Q2.bind(null,Dn,l);return l.dispatch=f,[s.memoizedState,f]}function bE(s){var l=ka();l.memoizedState=l.baseState=s;var f={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return l.queue=f,l=gb.bind(null,Dn,!0,f),f.dispatch=l,[s,l]}function z2(s,l){var f=Nr();return zk(f,ai,s,l)}function zk(s,l,f,y){return s.baseState=f,F2(s,ai,typeof y==\"function\"?y:Hl)}function vE(s,l){var f=Nr();return ai!==null?zk(f,ai,s,l):(f.baseState=s,[s,f.queue.dispatch])}function t7(s,l,f,y,v){if(Qg(s))throw Error(\"Cannot update form state while rendering.\");if(s=l.action,s!==null){var A={payload:v,action:s,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(K){A.listeners.push(K)}};$e.T!==null?f(!0):A.isTransition=!1,y(A),f=l.pending,f===null?(A.next=l.pending=A,wE(l,A)):(A.next=f.next,l.pending=f.next=A)}}function wE(s,l){var f=l.action,y=l.payload,v=s.state;if(l.isTransition){var A=$e.T,K={};$e.T=K,$e.T._updatedFibers=new Set;try{var te=f(v,y),fe=$e.S;fe!==null&&fe(K,te),Hk(s,l,te)}catch(me){xE(s,l,me)}finally{$e.T=A,A===null&&K._updatedFibers&&(s=K._updatedFibers.size,K._updatedFibers.clear(),10<s&&console.warn(\"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.\"))}}else try{K=f(v,y),Hk(s,l,K)}catch(me){xE(s,l,me)}}function Hk(s,l,f){f!==null&&typeof f==\"object\"&&typeof f.then==\"function\"?(f.then(function(y){qk(s,l,y)},function(y){return xE(s,l,y)}),l.isTransition||console.error(\"An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop.\")):qk(s,l,f)}function qk(s,l,f){l.status=\"fulfilled\",l.value=f,Wk(l),s.state=f,l=s.pending,l!==null&&(f=l.next,f===l?s.pending=null:(f=f.next,l.next=f,wE(s,f)))}function xE(s,l,f){var y=s.pending;if(s.pending=null,y!==null){y=y.next;do l.status=\"rejected\",l.reason=f,Wk(l),l=l.next;while(l!==y)}s.action=null}function Wk(s){s=s.listeners;for(var l=0;l<s.length;l++)(0,s[l])()}function Vk(s,l){return l}function Kg(s,l){if(Qr){var f=wi.formState;if(f!==null){e:{var y=Dn;if(Qr){if(Bs){t:{for(var v=Bs,A=vy;v.nodeType!==8;){if(!A){v=null;break t}if(v=td(v.nextSibling),v===null){v=null;break t}}A=v.data,v=A===rG||A===oue?v:null}if(v){Bs=td(v.nextSibling),y=v.data===rG;break e}}ap(y)}y=!1}y&&(l=f[0])}}return f=ka(),f.memoizedState=f.baseState=l,y={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vk,lastRenderedState:l},f.queue=y,f=Q2.bind(null,Dn,y),y.dispatch=f,y=gE(!1),A=gb.bind(null,Dn,!1,y.queue),y=ka(),v={state:l,dispatch:null,action:s,pending:null},y.queue=v,f=t7.bind(null,Dn,v,A,f),v.dispatch=f,y.memoizedState=s,[l,f,!1]}function o0(s){var l=Nr();return $k(l,ai,s)}function $k(s,l,f){if(l=F2(s,l,Vk)[0],s=n0(Hl)[0],typeof l==\"object\"&&l!==null&&typeof l.then==\"function\")try{var y=mi(l)}catch(K){throw K===S7?bN:K}else y=l;l=Nr();var v=l.queue,A=v.dispatch;return f!==l.memoizedState&&(Dn.flags|=2048,Gg(Cp|uc,W2(),H2.bind(null,v,f),null)),[y,A,s]}function H2(s,l){s.action=l}function q2(s){var l=Nr(),f=ai;if(f!==null)return $k(l,f,s);Nr(),l=l.memoizedState,f=Nr();var y=f.queue.dispatch;return f.memoizedState=s,[l,y,!1]}function Gg(s,l,f,y){return s={tag:s,create:f,deps:y,inst:l,next:null},l=Dn.updateQueue,l===null&&(l=B2(),Dn.updateQueue=l),f=l.lastEffect,f===null?l.lastEffect=s.next=s:(y=f.next,f.next=s,s.next=y,l.lastEffect=s),s}function W2(){return{destroy:void 0,resource:void 0}}function EE(s){var l=ka();return s={current:s},l.memoizedState=s}function i0(s,l,f,y){var v=ka();y=y===void 0?null:y,Dn.flags|=s,v.memoizedState=Gg(Cp|l,W2(),f,y)}function Sc(s,l,f,y){var v=Nr();y=y===void 0?null:y;var A=v.memoizedState.inst;ai!==null&&y!==null&&Gu(y,ai.memoizedState.deps)?v.memoizedState=Gg(l,A,f,y):(Dn.flags|=s,v.memoizedState=Gg(Cp|l,A,f,y))}function V2(s,l){(Dn.mode&_0)!==Ni&&(Dn.mode&Hce)===Ni?i0(276826112,uc,s,l):i0(8390656,uc,s,l)}function SE(s,l){var f=4194308;return(Dn.mode&_0)!==Ni&&(f|=134217728),i0(f,gl,s,l)}function Kk(s,l){if(typeof l==\"function\"){s=s();var f=l(s);return function(){typeof f==\"function\"?f():l(null)}}if(l!=null)return l.hasOwnProperty(\"current\")||console.error(\"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.\",\"an object with keys {\"+Object.keys(l).join(\", \")+\"}\"),s=s(),l.current=s,function(){l.current=null}}function kE(s,l,f){typeof l!=\"function\"&&console.error(\"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",l!==null?typeof l:\"null\"),f=f!=null?f.concat([s]):null;var y=4194308;(Dn.mode&_0)!==Ni&&(y|=134217728),i0(y,gl,Kk.bind(null,l,s),f)}function $2(s,l,f){typeof l!=\"function\"&&console.error(\"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",l!==null?typeof l:\"null\"),f=f!=null?f.concat([s]):null,Sc(4,gl,Kk.bind(null,l,s),f)}function _E(s,l){return ka().memoizedState=[s,l===void 0?null:l],s}function K2(s,l){var f=Nr();l=l===void 0?null:l;var y=f.memoizedState;return l!==null&&Gu(l,y[1])?y[0]:(f.memoizedState=[s,l],s)}function Zg(s,l){var f=ka();l=l===void 0?null:l;var y=s();if(n5){se(!0);try{s()}finally{se(!1)}}return f.memoizedState=[y,l],y}function G2(s,l){var f=Nr();l=l===void 0?null:l;var y=f.memoizedState;if(l!==null&&Gu(l,y[1]))return y[0];if(y=s(),n5){se(!0);try{s()}finally{se(!1)}}return f.memoizedState=[y,l],y}function CE(s,l){var f=ka();return AE(f,s,l)}function Gk(s,l){var f=Nr();return Yk(f,ai.memoizedState,s,l)}function Zk(s,l){var f=Nr();return ai===null?AE(f,s,l):Yk(f,ai.memoizedState,s,l)}function AE(s,l,f){return f===void 0||(vw&1073741824)!==0?s.memoizedState=l:(s.memoizedState=f,s=Ae(),Dn.lanes|=s,Ew|=s,f)}function Yk(s,l,f,y){return od(f,l)?f:T_.current!==null?(s=AE(s,f,y),od(s,l)||(Ic=!0),s):(vw&42)===0?(Ic=!0,s.memoizedState=f):(s=Ae(),Dn.lanes|=s,Ew|=s,l)}function Qk(s,l,f,y,v){var A=Io.p;Io.p=A!==0&&A<k0?A:k0;var K=$e.T,te={};$e.T=te,gb(s,!1,l,f),te._updatedFibers=new Set;try{var fe=v(),me=$e.S;if(me!==null&&me(te,fe),fe!==null&&typeof fe==\"object\"&&typeof fe.then==\"function\"){var Ue=ub(fe,y);a0(s,l,Ue,Ee(s))}else a0(s,l,y,Ee(s))}catch(Ke){a0(s,l,{then:function(){},status:\"rejected\",reason:Ke},Ee(s))}finally{Io.p=A,$e.T=K,K===null&&te._updatedFibers&&(s=te._updatedFibers.size,te._updatedFibers.clear(),10<s&&console.warn(\"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.\"))}}function Yg(s,l,f,y){if(s.tag!==5)throw Error(\"Expected the form instance to be a HostComponent. This is a bug in React.\");var v=Z2(s).queue;Qk(s,v,l,h5,f===null?h:function(){return th(s),f(y)})}function Z2(s){var l=s.memoizedState;if(l!==null)return l;l={memoizedState:h5,baseState:h5,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Hl,lastRenderedState:h5},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Hl,lastRenderedState:f},next:null},s.memoizedState=l,s=s.alternate,s!==null&&(s.memoizedState=l),l}function th(s){$e.T===null&&console.error(\"requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition.\");var l=Z2(s).next.queue;a0(s,l,{},Ee(s))}function TE(){var s=gE(!1);return s=Qk.bind(null,Dn,s.queue,!0,!1),ka().memoizedState=s,[!1,s]}function Jk(){var s=n0(Hl)[0],l=Nr().memoizedState;return[typeof s==\"boolean\"?s:mi(s),l]}function RE(){var s=$g(Hl)[0],l=Nr().memoizedState;return[typeof s==\"boolean\"?s:mi(s),l]}function s0(){return Hr(q7)}function IE(){var s=ka(),l=wi.identifierPrefix;if(Qr){var f=Bb,y=Lb;f=(y&~(1<<32-nd(y)-1)).toString(32)+f,l=\"\\\\xAB\"+l+\"R\"+f,f=EN++,0<f&&(l+=\"H\"+f.toString(32)),l+=\"\\\\xBB\"}else f=EFe++,l=\"\\\\xAB\"+l+\"r\"+f.toString(32)+\"\\\\xBB\";return s.memoizedState=l}function Y2(){return ka().memoizedState=Xk.bind(null,Dn)}function Xk(s,l){for(var f=s.return;f!==null;){switch(f.tag){case 24:case 3:var y=Ee(f);s=Vd(y);var v=oi(f,s,y);v!==null&&(Le(v,f,y),Xf(v,f,y)),f=Zm(),l!=null&&v!==null&&console.error(\"The seed argument is not enabled outside experimental channels.\"),s.payload={cache:f};return}f=f.return}}function OE(s,l,f){var y=arguments;typeof y[3]==\"function\"&&console.error(\"State updates from the useState() and useReducer() Hooks don\\'t support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"),y=Ee(s);var v={lane:y,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null};Qg(s)?PE(l,v):(v=Fg(s,l,v,y),v!==null&&(Le(v,s,y),e_(v,l,y))),wt(s,y)}function Q2(s,l,f){var y=arguments;typeof y[3]==\"function\"&&console.error(\"State updates from the useState() and useReducer() Hooks don\\'t support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"),y=Ee(s),a0(s,l,f,y),wt(s,y)}function a0(s,l,f,y){var v={lane:y,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null};if(Qg(s))PE(l,v);else{var A=s.alternate;if(s.lanes===0&&(A===null||A.lanes===0)&&(A=l.lastRenderedReducer,A!==null)){var K=$e.H;$e.H=A0;try{var te=l.lastRenderedState,fe=A(te,f);if(v.hasEagerState=!0,v.eagerState=fe,od(fe,te))return ip(s,l,v,0),wi===null&&Km(),!1}catch{}finally{$e.H=K}}if(f=Fg(s,l,v,y),f!==null)return Le(f,s,y),e_(f,l,y),!0}return!1}function gb(s,l,f,y){if($e.T===null&&XE===0&&console.error(\"An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition.\"),y={lane:2,revertLane:Tc(),action:y,hasEagerState:!1,eagerState:null,next:null},Qg(s)){if(l)throw Error(\"Cannot update optimistic state while rendering.\");console.error(\"Cannot call startTransition while rendering.\")}else l=Fg(s,f,y,2),l!==null&&Le(l,s,2);wt(s,2)}function Qg(s){var l=s.alternate;return s===Dn||l!==null&&l===Dn}function PE(s,l){I_=xN=!0;var f=s.pending;f===null?l.next=l:(l.next=f.next,f.next=l),s.pending=l}function e_(s,l,f){if((f&4194048)!==0){var y=l.lanes;y&=s.pendingLanes,f|=y,l.lanes=f,Mn(s,f)}}function oa(s){var l=or;return s!=null&&(or=l===null?s:l.concat(s)),l}function J2(s,l,f){for(var y=Object.keys(s.props),v=0;v<y.length;v++){var A=y[v];if(A!==\"children\"&&A!==\"key\"){l===null&&(l=jg(s,f.mode,0),l._debugInfo=or,l.return=f),jt(l,function(K){console.error(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",K)},A);break}}}function X2(s){var l=A7;return A7+=1,O_===null&&(O_=ns()),hE(O_,s,l)}function yb(s,l){l=l.props.ref,s.ref=l!==void 0?l:null}function il(s,l){throw l.$$typeof===aDe?Error(`A React Element from an older version of React was rendered. This is not supported. It can happen if:\\n- Multiple copies of the \"react\" package is used.\\n- A library pre-bundled an old copy of \"react\" or \"react/jsx-runtime\".\\n- A compiler tries to \"inline\" JSX instead of using the runtime.`):(s=Object.prototype.toString.call(l),Error(\"Objects are not valid as a React child (found: \"+(s===\"[object Object]\"?\"object with keys {\"+Object.keys(l).join(\", \")+\"}\":s)+\"). If you meant to render a collection of children, use an array instead.\"))}function c0(s,l){var f=Z(s)||\"Component\";xle[f]||(xle[f]=!0,l=l.displayName||l.name||\"Component\",s.tag===3?console.error(`Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n  root.render(%s)`,l,l,l):console.error(`Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n  <%s>{%s}</%s>`,l,l,f,l,f))}function sl(s,l){var f=Z(s)||\"Component\";Ele[f]||(Ele[f]=!0,l=String(l),s.tag===3?console.error(`Symbols are not valid as a React child.\\n  root.render(%s)`,l):console.error(`Symbols are not valid as a React child.\\n  <%s>%s</%s>`,f,l,f))}function ME(s){function l(Se,ke){if(s){var Oe=Se.deletions;Oe===null?(Se.deletions=[ke],Se.flags|=16):Oe.push(ke)}}function f(Se,ke){if(!s)return null;for(;ke!==null;)l(Se,ke),ke=ke.sibling;return null}function y(Se){for(var ke=new Map;Se!==null;)Se.key!==null?ke.set(Se.key,Se):ke.set(Se.index,Se),Se=Se.sibling;return ke}function v(Se,ke){return Se=wa(Se,ke),Se.index=0,Se.sibling=null,Se}function A(Se,ke,Oe){return Se.index=Oe,s?(Oe=Se.alternate,Oe!==null?(Oe=Oe.index,Oe<ke?(Se.flags|=67108866,ke):Oe):(Se.flags|=67108866,ke)):(Se.flags|=1048576,ke)}function K(Se){return s&&Se.alternate===null&&(Se.flags|=67108866),Se}function te(Se,ke,Oe,Je){return ke===null||ke.tag!==6?(ke=Yf(Oe,Se.mode,Je),ke.return=Se,ke._debugOwner=Se,ke._debugTask=Se._debugTask,ke._debugInfo=or,ke):(ke=v(ke,Oe),ke.return=Se,ke._debugInfo=or,ke)}function fe(Se,ke,Oe,Je){var Pt=Oe.type;return Pt===l_?(ke=Ue(Se,ke,Oe.props.children,Je,Oe.key),J2(Oe,ke,Se),ke):ke!==null&&(ke.elementType===Pt||ob(ke,Oe)||typeof Pt==\"object\"&&Pt!==null&&Pt.$$typeof===uh&&ww(Pt)===ke.type)?(ke=v(ke,Oe.props),yb(ke,Oe),ke.return=Se,ke._debugOwner=Oe._owner,ke._debugInfo=or,ke):(ke=jg(Oe,Se.mode,Je),yb(ke,Oe),ke.return=Se,ke._debugInfo=or,ke)}function me(Se,ke,Oe,Je){return ke===null||ke.tag!==4||ke.stateNode.containerInfo!==Oe.containerInfo||ke.stateNode.implementation!==Oe.implementation?(ke=cE(Oe,Se.mode,Je),ke.return=Se,ke._debugInfo=or,ke):(ke=v(ke,Oe.children||[]),ke.return=Se,ke._debugInfo=or,ke)}function Ue(Se,ke,Oe,Je,Pt){return ke===null||ke.tag!==7?(ke=Zf(Oe,Se.mode,Je,Pt),ke.return=Se,ke._debugOwner=Se,ke._debugTask=Se._debugTask,ke._debugInfo=or,ke):(ke=v(ke,Oe),ke.return=Se,ke._debugInfo=or,ke)}function Ke(Se,ke,Oe){if(typeof ke==\"string\"&&ke!==\"\"||typeof ke==\"number\"||typeof ke==\"bigint\")return ke=Yf(\"\"+ke,Se.mode,Oe),ke.return=Se,ke._debugOwner=Se,ke._debugTask=Se._debugTask,ke._debugInfo=or,ke;if(typeof ke==\"object\"&&ke!==null){switch(ke.$$typeof){case dw:return Oe=jg(ke,Se.mode,Oe),yb(Oe,ke),Oe.return=Se,Se=oa(ke._debugInfo),Oe._debugInfo=or,or=Se,Oe;case c_:return ke=cE(ke,Se.mode,Oe),ke.return=Se,ke._debugInfo=or,ke;case uh:var Je=oa(ke._debugInfo);return ke=ww(ke),Se=Ke(Se,ke,Oe),or=Je,Se}if(pl(ke)||J(ke))return Oe=Zf(ke,Se.mode,Oe,null),Oe.return=Se,Oe._debugOwner=Se,Oe._debugTask=Se._debugTask,Se=oa(ke._debugInfo),Oe._debugInfo=or,or=Se,Oe;if(typeof ke.then==\"function\")return Je=oa(ke._debugInfo),Se=Ke(Se,X2(ke),Oe),or=Je,Se;if(ke.$$typeof===hy)return Ke(Se,Wd(Se,ke),Oe);il(Se,ke)}return typeof ke==\"function\"&&c0(Se,ke),typeof ke==\"symbol\"&&sl(Se,ke),null}function Fe(Se,ke,Oe,Je){var Pt=ke!==null?ke.key:null;if(typeof Oe==\"string\"&&Oe!==\"\"||typeof Oe==\"number\"||typeof Oe==\"bigint\")return Pt!==null?null:te(Se,ke,\"\"+Oe,Je);if(typeof Oe==\"object\"&&Oe!==null){switch(Oe.$$typeof){case dw:return Oe.key===Pt?(Pt=oa(Oe._debugInfo),Se=fe(Se,ke,Oe,Je),or=Pt,Se):null;case c_:return Oe.key===Pt?me(Se,ke,Oe,Je):null;case uh:return Pt=oa(Oe._debugInfo),Oe=ww(Oe),Se=Fe(Se,ke,Oe,Je),or=Pt,Se}if(pl(Oe)||J(Oe))return Pt!==null?null:(Pt=oa(Oe._debugInfo),Se=Ue(Se,ke,Oe,Je,null),or=Pt,Se);if(typeof Oe.then==\"function\")return Pt=oa(Oe._debugInfo),Se=Fe(Se,ke,X2(Oe),Je),or=Pt,Se;if(Oe.$$typeof===hy)return Fe(Se,ke,Wd(Se,Oe),Je);il(Se,Oe)}return typeof Oe==\"function\"&&c0(Se,Oe),typeof Oe==\"symbol\"&&sl(Se,Oe),null}function Qe(Se,ke,Oe,Je,Pt){if(typeof Je==\"string\"&&Je!==\"\"||typeof Je==\"number\"||typeof Je==\"bigint\")return Se=Se.get(Oe)||null,te(ke,Se,\"\"+Je,Pt);if(typeof Je==\"object\"&&Je!==null){switch(Je.$$typeof){case dw:return Oe=Se.get(Je.key===null?Oe:Je.key)||null,Se=oa(Je._debugInfo),ke=fe(ke,Oe,Je,Pt),or=Se,ke;case c_:return Se=Se.get(Je.key===null?Oe:Je.key)||null,me(ke,Se,Je,Pt);case uh:var Hn=oa(Je._debugInfo);return Je=ww(Je),ke=Qe(Se,ke,Oe,Je,Pt),or=Hn,ke}if(pl(Je)||J(Je))return Oe=Se.get(Oe)||null,Se=oa(Je._debugInfo),ke=Ue(ke,Oe,Je,Pt,null),or=Se,ke;if(typeof Je.then==\"function\")return Hn=oa(Je._debugInfo),ke=Qe(Se,ke,Oe,X2(Je),Pt),or=Hn,ke;if(Je.$$typeof===hy)return Qe(Se,ke,Oe,Wd(ke,Je),Pt);il(ke,Je)}return typeof Je==\"function\"&&c0(ke,Je),typeof Je==\"symbol\"&&sl(ke,Je),null}function tn(Se,ke,Oe,Je){if(typeof Oe!=\"object\"||Oe===null)return Je;switch(Oe.$$typeof){case dw:case c_:c(Se,ke,Oe);var Pt=Oe.key;if(typeof Pt!=\"string\")break;if(Je===null){Je=new Set,Je.add(Pt);break}if(!Je.has(Pt)){Je.add(Pt);break}jt(ke,function(){console.error(\"Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \\\\u2014 the behavior is unsupported and could change in a future version.\",Pt)});break;case uh:Oe=ww(Oe),tn(Se,ke,Oe,Je)}return Je}function On(Se,ke,Oe,Je){for(var Pt=null,Hn=null,nn=null,qn=ke,Gn=ke=0,Li=null;qn!==null&&Gn<Oe.length;Gn++){qn.index>Gn?(Li=qn,qn=null):Li=qn.sibling;var ua=Fe(Se,qn,Oe[Gn],Je);if(ua===null){qn===null&&(qn=Li);break}Pt=tn(Se,ua,Oe[Gn],Pt),s&&qn&&ua.alternate===null&&l(Se,qn),ke=A(ua,ke,Gn),nn===null?Hn=ua:nn.sibling=ua,nn=ua,qn=Li}if(Gn===Oe.length)return f(Se,qn),Qr&&sp(Se,Gn),Hn;if(qn===null){for(;Gn<Oe.length;Gn++)qn=Ke(Se,Oe[Gn],Je),qn!==null&&(Pt=tn(Se,qn,Oe[Gn],Pt),ke=A(qn,ke,Gn),nn===null?Hn=qn:nn.sibling=qn,nn=qn);return Qr&&sp(Se,Gn),Hn}for(qn=y(qn);Gn<Oe.length;Gn++)Li=Qe(qn,Se,Gn,Oe[Gn],Je),Li!==null&&(Pt=tn(Se,Li,Oe[Gn],Pt),s&&Li.alternate!==null&&qn.delete(Li.key===null?Gn:Li.key),ke=A(Li,ke,Gn),nn===null?Hn=Li:nn.sibling=Li,nn=Li);return s&&qn.forEach(function(Vb){return l(Se,Vb)}),Qr&&sp(Se,Gn),Hn}function xi(Se,ke,Oe,Je){if(Oe==null)throw Error(\"An iterable object provided no iterator.\");for(var Pt=null,Hn=null,nn=ke,qn=ke=0,Gn=null,Li=null,ua=Oe.next();nn!==null&&!ua.done;qn++,ua=Oe.next()){nn.index>qn?(Gn=nn,nn=null):Gn=nn.sibling;var Vb=Fe(Se,nn,ua.value,Je);if(Vb===null){nn===null&&(nn=Gn);break}Li=tn(Se,Vb,ua.value,Li),s&&nn&&Vb.alternate===null&&l(Se,nn),ke=A(Vb,ke,qn),Hn===null?Pt=Vb:Hn.sibling=Vb,Hn=Vb,nn=Gn}if(ua.done)return f(Se,nn),Qr&&sp(Se,qn),Pt;if(nn===null){for(;!ua.done;qn++,ua=Oe.next())nn=Ke(Se,ua.value,Je),nn!==null&&(Li=tn(Se,nn,ua.value,Li),ke=A(nn,ke,qn),Hn===null?Pt=nn:Hn.sibling=nn,Hn=nn);return Qr&&sp(Se,qn),Pt}for(nn=y(nn);!ua.done;qn++,ua=Oe.next())Gn=Qe(nn,Se,qn,ua.value,Je),Gn!==null&&(Li=tn(Se,Gn,ua.value,Li),s&&Gn.alternate!==null&&nn.delete(Gn.key===null?qn:Gn.key),ke=A(Gn,ke,qn),Hn===null?Pt=Gn:Hn.sibling=Gn,Hn=Gn);return s&&nn.forEach(function(ZFe){return l(Se,ZFe)}),Qr&&sp(Se,qn),Pt}function Dr(Se,ke,Oe,Je){if(typeof Oe==\"object\"&&Oe!==null&&Oe.type===l_&&Oe.key===null&&(J2(Oe,null,Se),Oe=Oe.props.children),typeof Oe==\"object\"&&Oe!==null){switch(Oe.$$typeof){case dw:var Pt=oa(Oe._debugInfo);e:{for(var Hn=Oe.key;ke!==null;){if(ke.key===Hn){if(Hn=Oe.type,Hn===l_){if(ke.tag===7){f(Se,ke.sibling),Je=v(ke,Oe.props.children),Je.return=Se,Je._debugOwner=Oe._owner,Je._debugInfo=or,J2(Oe,Je,Se),Se=Je;break e}}else if(ke.elementType===Hn||ob(ke,Oe)||typeof Hn==\"object\"&&Hn!==null&&Hn.$$typeof===uh&&ww(Hn)===ke.type){f(Se,ke.sibling),Je=v(ke,Oe.props),yb(Je,Oe),Je.return=Se,Je._debugOwner=Oe._owner,Je._debugInfo=or,Se=Je;break e}f(Se,ke);break}else l(Se,ke);ke=ke.sibling}Oe.type===l_?(Je=Zf(Oe.props.children,Se.mode,Je,Oe.key),Je.return=Se,Je._debugOwner=Se,Je._debugTask=Se._debugTask,Je._debugInfo=or,J2(Oe,Je,Se),Se=Je):(Je=jg(Oe,Se.mode,Je),yb(Je,Oe),Je.return=Se,Je._debugInfo=or,Se=Je)}return Se=K(Se),or=Pt,Se;case c_:e:{for(Pt=Oe,Oe=Pt.key;ke!==null;){if(ke.key===Oe)if(ke.tag===4&&ke.stateNode.containerInfo===Pt.containerInfo&&ke.stateNode.implementation===Pt.implementation){f(Se,ke.sibling),Je=v(ke,Pt.children||[]),Je.return=Se,Se=Je;break e}else{f(Se,ke);break}else l(Se,ke);ke=ke.sibling}Je=cE(Pt,Se.mode,Je),Je.return=Se,Se=Je}return K(Se);case uh:return Pt=oa(Oe._debugInfo),Oe=ww(Oe),Se=Dr(Se,ke,Oe,Je),or=Pt,Se}if(pl(Oe))return Pt=oa(Oe._debugInfo),Se=On(Se,ke,Oe,Je),or=Pt,Se;if(J(Oe)){if(Pt=oa(Oe._debugInfo),Hn=J(Oe),typeof Hn!=\"function\")throw Error(\"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\");var nn=Hn.call(Oe);return nn===Oe?(Se.tag!==0||Object.prototype.toString.call(Se.type)!==\"[object GeneratorFunction]\"||Object.prototype.toString.call(nn)!==\"[object Generator]\")&&(vle||console.error(\"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.\"),vle=!0):Oe.entries!==Hn||MK||(console.error(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),MK=!0),Se=xi(Se,ke,nn,Je),or=Pt,Se}if(typeof Oe.then==\"function\")return Pt=oa(Oe._debugInfo),Se=Dr(Se,ke,X2(Oe),Je),or=Pt,Se;if(Oe.$$typeof===hy)return Dr(Se,ke,Wd(Se,Oe),Je);il(Se,Oe)}return typeof Oe==\"string\"&&Oe!==\"\"||typeof Oe==\"number\"||typeof Oe==\"bigint\"?(Pt=\"\"+Oe,ke!==null&&ke.tag===6?(f(Se,ke.sibling),Je=v(ke,Pt),Je.return=Se,Se=Je):(f(Se,ke),Je=Yf(Pt,Se.mode,Je),Je.return=Se,Je._debugOwner=Se,Je._debugTask=Se._debugTask,Je._debugInfo=or,Se=Je),K(Se)):(typeof Oe==\"function\"&&c0(Se,Oe),typeof Oe==\"symbol\"&&sl(Se,Oe),f(Se,ke))}return function(Se,ke,Oe,Je){var Pt=or;or=null;try{A7=0;var Hn=Dr(Se,ke,Oe,Je);return O_=null,Hn}catch(Li){if(Li===S7||Li===bN)throw Li;var nn=g(29,Li,null,Se.mode);nn.lanes=Je,nn.return=Se;var qn=nn._debugInfo=or;if(nn._debugOwner=Se._debugOwner,nn._debugTask=Se._debugTask,qn!=null){for(var Gn=qn.length-1;0<=Gn;Gn--)if(typeof qn[Gn].stack==\"string\"){nn._debugOwner=qn[Gn],nn._debugTask=qn[Gn].debugTask;break}}return nn}finally{or=Pt}}}function nh(s){var l=s.alternate;$(dc,dc.current&M_,s),$(Tp,s,s),xy===null&&(l===null||T_.current!==null||l.memoizedState!==null)&&(xy=s)}function NE(s){if(s.tag===22){if($(dc,dc.current,s),$(Tp,s,s),xy===null){var l=s.alternate;l!==null&&l.memoizedState!==null&&(xy=s)}}else rh(s)}function rh(s){$(dc,dc.current,s),$(Tp,Tp.current,s)}function $d(s){V(Tp,s),xy===s&&(xy=null),V(dc,s)}function bb(s){for(var l=s;l!==null;){if(l.tag===13){var f=l.memoizedState;if(f!==null&&(f=f.dehydrated,f===null||f.data===Hb||HE(f)))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if((l.flags&128)!==0)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===s)break;for(;l.sibling===null;){if(l.return===null||l.return===s)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}function ew(s){if(s!==null&&typeof s!=\"function\"){var l=String(s);Nle.has(l)||(Nle.add(l),console.error(\"Expected the last optional `callback` argument to be a function. Instead received: %s.\",s))}}function l0(s,l,f,y){var v=s.memoizedState,A=f(y,v);if(s.mode&ru){se(!0);try{A=f(y,v)}finally{se(!1)}}A===void 0&&(l=ne(l)||\"Component\",Ile.has(l)||(Ile.add(l),console.error(\"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",l))),v=A==null?v:pr({},v,A),s.memoizedState=v,s.lanes===0&&(s.updateQueue.baseState=v)}function vb(s,l,f,y,v,A,K){var te=s.stateNode;if(typeof te.shouldComponentUpdate==\"function\"){if(f=te.shouldComponentUpdate(y,A,K),s.mode&ru){se(!0);try{f=te.shouldComponentUpdate(y,A,K)}finally{se(!1)}}return f===void 0&&console.error(\"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.\",ne(l)||\"Component\"),f}return l.prototype&&l.prototype.isPureReactComponent?!$m(f,y)||!$m(v,A):!0}function Kd(s,l,f,y){var v=l.state;typeof l.componentWillReceiveProps==\"function\"&&l.componentWillReceiveProps(f,y),typeof l.UNSAFE_componentWillReceiveProps==\"function\"&&l.UNSAFE_componentWillReceiveProps(f,y),l.state!==v&&(s=Z(s)||\"Component\",_le.has(s)||(_le.add(s),console.error(\"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component\\'s constructor). Use setState instead.\",s)),NK.enqueueReplaceState(l,l.state,null))}function fp(s,l){var f=l;if(\"ref\"in l){f={};for(var y in l)y!==\"ref\"&&(f[y]=l[y])}if(s=s.defaultProps){f===l&&(f=pr({},f));for(var v in s)f[v]===void 0&&(f[v]=s[v])}return f}function LE(s){LK(s),console.warn(`%s\\n\\n%s\\n`,N_?\"An error occurred in the <\"+N_+\"> component.\":\"An error occurred in one of your React components.\",`Consider adding an error boundary to your tree to customize error handling behavior.\\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries.`)}function BE(s){var l=N_?\"The above error occurred in the <\"+N_+\"> component.\":\"The above error occurred in one of your React components.\",f=\"React will try to recreate this component tree from scratch using the error boundary you provided, \"+((BK||\"Anonymous\")+\".\");if(typeof s==\"object\"&&s!==null&&typeof s.environmentName==\"string\"){var y=s.environmentName;s=[`%o\\n\\n%s\\n\\n%s\\n`,s,l,f].slice(0),typeof s[0]==\"string\"?s.splice(0,1,fue+s[0],hue,HN+y+HN,pue):s.splice(0,0,fue,hue,HN+y+HN,pue),s.unshift(console),y=KFe.apply(console.error,s),y()}else console.error(`%o\\n\\n%s\\n\\n%s\\n`,s,l,f)}function wb(s){LK(s)}function tw(s,l){try{N_=l.source?Z(l.source):null,BK=null;var f=l.value;if($e.actQueue!==null)$e.thrownErrors.push(f);else{var y=s.onUncaughtError;y(f,{componentStack:l.stack})}}catch(v){setTimeout(function(){throw v})}}function DE(s,l,f){try{N_=f.source?Z(f.source):null,BK=Z(l);var y=s.onCaughtError;y(f.value,{componentStack:f.stack,errorBoundary:l.tag===1?l.stateNode:null})}catch(v){setTimeout(function(){throw v})}}function Gd(s,l,f){return f=Vd(f),f.tag=_K,f.payload={element:null},f.callback=function(){jt(l.source,tw,s,l)},f}function hp(s){return s=Vd(s),s.tag=_K,s}function xb(s,l,f,y){var v=f.type.getDerivedStateFromError;if(typeof v==\"function\"){var A=y.value;s.payload=function(){return v(A)},s.callback=function(){Ii(f),jt(y.source,DE,l,f,y)}}var K=f.stateNode;K!==null&&typeof K.componentDidCatch==\"function\"&&(s.callback=function(){Ii(f),jt(y.source,DE,l,f,y),typeof v!=\"function\"&&(kw===null?kw=new Set([this]):kw.add(this)),kFe(this,y),typeof v==\"function\"||(f.lanes&2)===0&&console.error(\"%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.\",Z(f)||\"Unknown\")})}function Zu(s,l,f,y,v){if(f.flags|=32768,S0&&as(s,v),y!==null&&typeof y==\"object\"&&typeof y.then==\"function\"){if(l=f.alternate,l!==null&&ea(l,f,v,!0),Qr&&(Db=!0),f=Tp.current,f!==null){switch(f.tag){case 13:return xy===null?Bo():f.alternate===null&&Ds===zb&&(Ds=jK),f.flags&=-257,f.flags|=65536,f.lanes=v,y===kK?f.flags|=16384:(l=f.updateQueue,l===null?f.updateQueue=new Set([y]):l.add(y),cl(s,y,v)),!1;case 22:return f.flags|=65536,y===kK?f.flags|=16384:(l=f.updateQueue,l===null?(l={transitions:null,markerInstances:null,retryQueue:new Set([y])},f.updateQueue=l):(f=l.retryQueue,f===null?l.retryQueue=new Set([y]):f.add(y)),cl(s,y,v)),!1}throw Error(\"Unexpected Suspense handler tag (\"+f.tag+\"). This is a bug in React.\")}return cl(s,y,v),Bo(),!1}if(Qr)return Db=!0,l=Tp.current,l!==null?((l.flags&65536)===0&&(l.flags|=256),l.flags|=65536,l.lanes=v,y!==wK&&jl(Xc(Error(\"There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.\",{cause:y}),f))):(y!==wK&&jl(Xc(Error(\"There was an error while hydrating but React was able to recover by instead client rendering the entire root.\",{cause:y}),f)),s=s.current.alternate,s.flags|=65536,v&=-v,s.lanes|=v,y=Xc(y,f),v=Gd(s.stateNode,y,v),fb(s,v),Ds!==r5&&(Ds=F_)),!1;var A=Xc(Error(\"There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.\",{cause:y}),f);if(L7===null?L7=[A]:L7.push(A),Ds!==r5&&(Ds=F_),l===null)return!0;y=Xc(y,f),f=l;do{switch(f.tag){case 3:return f.flags|=65536,s=v&-v,f.lanes|=s,s=Gd(f.stateNode,y,s),fb(f,s),!1;case 1:if(l=f.type,A=f.stateNode,(f.flags&128)===0&&(typeof l.getDerivedStateFromError==\"function\"||A!==null&&typeof A.componentDidCatch==\"function\"&&(kw===null||!kw.has(A))))return f.flags|=65536,v&=-v,f.lanes|=v,v=hp(v),xb(v,s,f,y),fb(f,v),!1}f=f.return}while(f!==null);return!1}function Wi(s,l,f,y){l.child=s===null?Sle(l,null,f,y):P_(l,s.child,f,y)}function Jg(s,l,f,y,v){f=f.render;var A=l.ref;if(\"ref\"in y){var K={};for(var te in y)te!==\"ref\"&&(K[te]=y[te])}else K=y;return Gm(l),xe(l),y=hb(s,l,f,K,A,v),te=ra(),_e(),s!==null&&!Ic?(Ec(s,l,v),Zd(s,l,v)):(Qr&&te&&xa(l),l.flags|=1,Wi(s,l,y,v),l.child)}function Eb(s,l,f,y,v){if(s===null){var A=f.type;return typeof A==\"function\"&&!ib(A)&&A.defaultProps===void 0&&f.compare===null?(f=tl(A),l.tag=15,l.type=f,ih(l,A),Sb(s,l,f,y,v)):(s=I2(f.type,null,y,l,l.mode,v),s.ref=l.ref,s.return=l,l.child=s)}if(A=s.child,!h0(s,v)){var K=A.memoizedProps;if(f=f.compare,f=f!==null?f:$m,f(K,y)&&s.ref===l.ref)return Zd(s,l,v)}return l.flags|=1,s=wa(A,y),s.ref=l.ref,s.return=l,l.child=s}function Sb(s,l,f,y,v){if(s!==null){var A=s.memoizedProps;if($m(A,y)&&s.ref===l.ref&&l.type===s.type)if(Ic=!1,l.pendingProps=y=A,h0(s,v))(s.flags&131072)!==0&&(Ic=!0);else return l.lanes=s.lanes,Zd(s,l,v)}return _a(s,l,f,y,v)}function _o(s,l,f){var y=l.pendingProps,v=y.children,A=s!==null?s.memoizedState:null;if(y.mode===\"hidden\"){if((l.flags&128)!==0){if(y=A!==null?A.baseLanes|f:f,s!==null){for(v=l.child=s.child,A=0;v!==null;)A=A|v.lanes|v.childLanes,v=v.sibling;l.childLanes=A&~y}else l.childLanes=0,l.child=null;return Xg(s,l,y,f)}if((f&536870912)!==0)l.memoizedState={baseLanes:0,cachePool:null},s!==null&&Jm(l,A!==null?A.cachePool:null),A!==null?tc(l,A):eh(l),NE(l);else return l.lanes=l.childLanes=536870912,Xg(s,l,A!==null?A.baseLanes|f:f,f)}else A!==null?(Jm(l,A.cachePool),tc(l,A),rh(l),l.memoizedState=null):(s!==null&&Jm(l,null),eh(l),rh(l));return Wi(s,l,v,f),l.child}function Xg(s,l,f,y){var v=lp();return v=v===null?null:{parent:lc._currentValue,pool:v},l.memoizedState={baseLanes:f,cachePool:v},s!==null&&Jm(l,null),eh(l),NE(l),s!==null&&ea(s,l,y,!0),null}function u0(s,l){var f=l.ref;if(f===null)s!==null&&s.ref!==null&&(l.flags|=4194816);else{if(typeof f!=\"function\"&&typeof f!=\"object\")throw Error(\"Expected ref to be a function, an object returned by React.createRef(), or undefined/null.\");(s===null||s.ref!==f)&&(l.flags|=4194816)}}function _a(s,l,f,y,v){if(f.prototype&&typeof f.prototype.render==\"function\"){var A=ne(f)||\"Unknown\";Ble[A]||(console.error(\"The <%s /> component appears to have a render method, but doesn\\'t extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",A,A),Ble[A]=!0)}return l.mode&ru&&C0.recordLegacyContextWarning(l,null),s===null&&(ih(l,l.type),f.contextTypes&&(A=ne(f)||\"Unknown\",Fle[A]||(Fle[A]=!0,console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)\",A)))),Gm(l),xe(l),f=hb(s,l,f,y,void 0,v),y=ra(),_e(),s!==null&&!Ic?(Ec(s,l,v),Zd(s,l,v)):(Qr&&y&&xa(l),l.flags|=1,Wi(s,l,f,v),l.child)}function oh(s,l,f,y,v,A){return Gm(l),xe(l),Ub=-1,C7=s!==null&&s.type!==l.type,l.updateQueue=null,f=L2(l,y,f,v),pE(s,l),y=ra(),_e(),s!==null&&!Ic?(Ec(s,l,A),Zd(s,l,A)):(Qr&&y&&xa(l),l.flags|=1,Wi(s,l,f,A),l.child)}function ql(s,l,f,y,v){switch(a(l)){case!1:var A=l.stateNode,K=new l.type(l.memoizedProps,A.context).state;A.updater.enqueueSetState(A,K,null);break;case!0:l.flags|=128,l.flags|=65536,A=Error(\"Simulated error coming from DevTools\");var te=v&-v;if(l.lanes|=te,K=wi,K===null)throw Error(\"Expected a work-in-progress root. This is a bug in React. Please file an issue.\");te=hp(te),xb(te,K,l,Xc(A,l)),fb(l,te)}if(Gm(l),l.stateNode===null){if(K=yw,A=f.contextType,\"contextType\"in f&&A!==null&&(A===void 0||A.$$typeof!==hy)&&!Mle.has(f)&&(Mle.add(f),te=A===void 0?\" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\":typeof A!=\"object\"?\" However, it is set to a \"+typeof A+\".\":A.$$typeof===W$?\" Did you accidentally pass the Context.Consumer instead?\":\" However, it is set to an object with keys {\"+Object.keys(A).join(\", \")+\"}.\",console.error(\"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",ne(f)||\"Component\",te)),typeof A==\"object\"&&A!==null&&(K=Hr(A)),A=new f(y,K),l.mode&ru){se(!0);try{A=new f(y,K)}finally{se(!1)}}if(K=l.memoizedState=A.state!==null&&A.state!==void 0?A.state:null,A.updater=NK,l.stateNode=A,A._reactInternals=l,A._reactInternalInstance=kle,typeof f.getDerivedStateFromProps==\"function\"&&K===null&&(K=ne(f)||\"Component\",Cle.has(K)||(Cle.add(K),console.error(\"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",K,A.state===null?\"null\":\"undefined\",K))),typeof f.getDerivedStateFromProps==\"function\"||typeof A.getSnapshotBeforeUpdate==\"function\"){var fe=te=K=null;if(typeof A.componentWillMount==\"function\"&&A.componentWillMount.__suppressDeprecationWarning!==!0?K=\"componentWillMount\":typeof A.UNSAFE_componentWillMount==\"function\"&&(K=\"UNSAFE_componentWillMount\"),typeof A.componentWillReceiveProps==\"function\"&&A.componentWillReceiveProps.__suppressDeprecationWarning!==!0?te=\"componentWillReceiveProps\":typeof A.UNSAFE_componentWillReceiveProps==\"function\"&&(te=\"UNSAFE_componentWillReceiveProps\"),typeof A.componentWillUpdate==\"function\"&&A.componentWillUpdate.__suppressDeprecationWarning!==!0?fe=\"componentWillUpdate\":typeof A.UNSAFE_componentWillUpdate==\"function\"&&(fe=\"UNSAFE_componentWillUpdate\"),K!==null||te!==null||fe!==null){A=ne(f)||\"Component\";var me=typeof f.getDerivedStateFromProps==\"function\"?\"getDerivedStateFromProps()\":\"getSnapshotBeforeUpdate()\";Tle.has(A)||(Tle.add(A),console.error(`Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://react.dev/link/unsafe-component-lifecycles`,A,me,K!==null?`\\n  `+K:\"\",te!==null?`\\n  `+te:\"\",fe!==null?`\\n  `+fe:\"\"))}}A=l.stateNode,K=ne(f)||\"Component\",A.render||(f.prototype&&typeof f.prototype.render==\"function\"?console.error(\"No `render` method found on the %s instance: did you accidentally return an object from the constructor?\",K):console.error(\"No `render` method found on the %s instance: you may have forgotten to define `render`.\",K)),!A.getInitialState||A.getInitialState.isReactClassApproved||A.state||console.error(\"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",K),A.getDefaultProps&&!A.getDefaultProps.isReactClassApproved&&console.error(\"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",K),A.contextType&&console.error(\"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",K),f.childContextTypes&&!Ple.has(f)&&(Ple.add(f),console.error(\"%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)\",K)),f.contextTypes&&!Ole.has(f)&&(Ole.add(f),console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)\",K)),typeof A.componentShouldUpdate==\"function\"&&console.error(\"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",K),f.prototype&&f.prototype.isPureReactComponent&&typeof A.shouldComponentUpdate<\"u\"&&console.error(\"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",ne(f)||\"A pure component\"),typeof A.componentDidUnmount==\"function\"&&console.error(\"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",K),typeof A.componentDidReceiveProps==\"function\"&&console.error(\"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",K),typeof A.componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",K),typeof A.UNSAFE_componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",K),te=A.props!==y,A.props!==void 0&&te&&console.error(\"When calling super() in `%s`, make sure to pass up the same props that your component\\'s constructor was passed.\",K),A.defaultProps&&console.error(\"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",K,K),typeof A.getSnapshotBeforeUpdate!=\"function\"||typeof A.componentDidUpdate==\"function\"||Ale.has(f)||(Ale.add(f),console.error(\"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",ne(f))),typeof A.getDerivedStateFromProps==\"function\"&&console.error(\"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",K),typeof A.getDerivedStateFromError==\"function\"&&console.error(\"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",K),typeof f.getSnapshotBeforeUpdate==\"function\"&&console.error(\"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",K),(te=A.state)&&(typeof te!=\"object\"||pl(te))&&console.error(\"%s.state: must be set to an object or null\",K),typeof A.getChildContext==\"function\"&&typeof f.childContextTypes!=\"object\"&&console.error(\"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",K),A=l.stateNode,A.props=y,A.state=l.memoizedState,A.refs={},Sa(l),K=f.contextType,A.context=typeof K==\"object\"&&K!==null?Hr(K):yw,A.state===y&&(K=ne(f)||\"Component\",Rle.has(K)||(Rle.add(K),console.error(\"%s: It is not recommended to assign props directly to state because updates to props won\\'t be reflected in state. In most cases, it is better to use props directly.\",K))),l.mode&ru&&C0.recordLegacyContextWarning(l,A),C0.recordUnsafeLifecycleWarnings(l,A),A.state=l.memoizedState,K=f.getDerivedStateFromProps,typeof K==\"function\"&&(l0(l,f,K,y),A.state=l.memoizedState),typeof f.getDerivedStateFromProps==\"function\"||typeof A.getSnapshotBeforeUpdate==\"function\"||typeof A.UNSAFE_componentWillMount!=\"function\"&&typeof A.componentWillMount!=\"function\"||(K=A.state,typeof A.componentWillMount==\"function\"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount==\"function\"&&A.UNSAFE_componentWillMount(),K!==A.state&&(console.error(\"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component\\'s constructor). Use setState instead.\",Z(l)||\"Component\"),NK.enqueueReplaceState(A,A.state,null)),Xm(l,y,A,v),Wg(),A.state=l.memoizedState),typeof A.componentDidMount==\"function\"&&(l.flags|=4194308),(l.mode&_0)!==Ni&&(l.flags|=134217728),A=!0}else if(s===null){A=l.stateNode;var Ue=l.memoizedProps;te=fp(f,Ue),A.props=te;var Ke=A.context;fe=f.contextType,K=yw,typeof fe==\"object\"&&fe!==null&&(K=Hr(fe)),me=f.getDerivedStateFromProps,fe=typeof me==\"function\"||typeof A.getSnapshotBeforeUpdate==\"function\",Ue=l.pendingProps!==Ue,fe||typeof A.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof A.componentWillReceiveProps!=\"function\"||(Ue||Ke!==K)&&Kd(l,A,y,K),bw=!1;var Fe=l.memoizedState;A.state=Fe,Xm(l,y,A,v),Wg(),Ke=l.memoizedState,Ue||Fe!==Ke||bw?(typeof me==\"function\"&&(l0(l,f,me,y),Ke=l.memoizedState),(te=bw||vb(l,f,te,y,Fe,Ke,K))?(fe||typeof A.UNSAFE_componentWillMount!=\"function\"&&typeof A.componentWillMount!=\"function\"||(typeof A.componentWillMount==\"function\"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount==\"function\"&&A.UNSAFE_componentWillMount()),typeof A.componentDidMount==\"function\"&&(l.flags|=4194308),(l.mode&_0)!==Ni&&(l.flags|=134217728)):(typeof A.componentDidMount==\"function\"&&(l.flags|=4194308),(l.mode&_0)!==Ni&&(l.flags|=134217728),l.memoizedProps=y,l.memoizedState=Ke),A.props=y,A.state=Ke,A.context=K,A=te):(typeof A.componentDidMount==\"function\"&&(l.flags|=4194308),(l.mode&_0)!==Ni&&(l.flags|=134217728),A=!1)}else{A=l.stateNode,qg(s,l),K=l.memoizedProps,fe=fp(f,K),A.props=fe,me=l.pendingProps,Fe=A.context,Ke=f.contextType,te=yw,typeof Ke==\"object\"&&Ke!==null&&(te=Hr(Ke)),Ue=f.getDerivedStateFromProps,(Ke=typeof Ue==\"function\"||typeof A.getSnapshotBeforeUpdate==\"function\")||typeof A.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof A.componentWillReceiveProps!=\"function\"||(K!==me||Fe!==te)&&Kd(l,A,y,te),bw=!1,Fe=l.memoizedState,A.state=Fe,Xm(l,y,A,v),Wg();var Qe=l.memoizedState;K!==me||Fe!==Qe||bw||s!==null&&s.dependencies!==null&&cb(s.dependencies)?(typeof Ue==\"function\"&&(l0(l,f,Ue,y),Qe=l.memoizedState),(fe=bw||vb(l,f,fe,y,Fe,Qe,te)||s!==null&&s.dependencies!==null&&cb(s.dependencies))?(Ke||typeof A.UNSAFE_componentWillUpdate!=\"function\"&&typeof A.componentWillUpdate!=\"function\"||(typeof A.componentWillUpdate==\"function\"&&A.componentWillUpdate(y,Qe,te),typeof A.UNSAFE_componentWillUpdate==\"function\"&&A.UNSAFE_componentWillUpdate(y,Qe,te)),typeof A.componentDidUpdate==\"function\"&&(l.flags|=4),typeof A.getSnapshotBeforeUpdate==\"function\"&&(l.flags|=1024)):(typeof A.componentDidUpdate!=\"function\"||K===s.memoizedProps&&Fe===s.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!=\"function\"||K===s.memoizedProps&&Fe===s.memoizedState||(l.flags|=1024),l.memoizedProps=y,l.memoizedState=Qe),A.props=y,A.state=Qe,A.context=te,A=fe):(typeof A.componentDidUpdate!=\"function\"||K===s.memoizedProps&&Fe===s.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!=\"function\"||K===s.memoizedProps&&Fe===s.memoizedState||(l.flags|=1024),A=!1)}if(te=A,u0(s,l),K=(l.flags&128)!==0,te||K){if(te=l.stateNode,xr(l),K&&typeof f.getDerivedStateFromError!=\"function\")f=null,lf=-1;else{if(xe(l),f=lle(te),l.mode&ru){se(!0);try{lle(te)}finally{se(!1)}}_e()}l.flags|=1,s!==null&&K?(l.child=P_(l,s.child,null,v),l.child=P_(l,null,f,v)):Wi(s,l,f,v),l.memoizedState=te.state,s=l.child}else s=Zd(s,l,v);return v=l.stateNode,A&&v.props!==y&&(L_||console.error(\"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",Z(l)||\"a component\"),L_=!0),s}function ey(s,l,f,y){return zg(),l.flags|=256,Wi(s,l,f,y),l.child}function ih(s,l){l&&l.childContextTypes&&console.error(`childContextTypes cannot be defined on a function component.\\n  %s.childContextTypes = ...`,l.displayName||l.name||\"Component\"),typeof l.getDerivedStateFromProps==\"function\"&&(s=ne(l)||\"Unknown\",Ule[s]||(console.error(\"%s: Function components do not support getDerivedStateFromProps.\",s),Ule[s]=!0)),typeof l.contextType==\"object\"&&l.contextType!==null&&(l=ne(l)||\"Unknown\",Dle[l]||(console.error(\"%s: Function components do not support contextType.\",l),Dle[l]=!0))}function Yu(s){return{baseLanes:s,cachePool:Hg()}}function d0(s,l,f){return s=s!==null?s.childLanes&~f:0,l&&(s|=mh),s}function Wl(s,l,f){var y,v=l.pendingProps;i(l)&&(l.flags|=128);var A=!1,K=(l.flags&128)!==0;if((y=K)||(y=s!==null&&s.memoizedState===null?!1:(dc.current&T7)!==0),y&&(A=!0,l.flags&=-129),y=(l.flags&32)!==0,l.flags&=-33,s===null){if(Qr){if(A?nh(l):rh(l),Qr){var te=Bs,fe;if(!(fe=!te)){e:{var me=te;for(fe=vy;me.nodeType!==8;){if(!fe){fe=null;break e}if(me=td(me.nextSibling),me===null){fe=null;break e}}fe=me}fe!==null?(uo(),l.memoizedState={dehydrated:fe,treeContext:YE!==null?{id:Lb,overflow:Bb}:null,retryLane:536870912,hydrationErrors:null},me=g(18,null,null,Ni),me.stateNode=fe,me.return=l,l.child=me,id=l,Bs=null,fe=!0):fe=!1,fe=!fe}fe&&(lE(l,te),ap(l))}if(te=l.memoizedState,te!==null&&(te=te.dehydrated,te!==null))return HE(te)?l.lanes=32:l.lanes=536870912,null;$d(l)}return te=v.children,v=v.fallback,A?(rh(l),A=l.mode,te=ty({mode:\"hidden\",children:te},A),v=Zf(v,A,f,null),te.return=l,v.return=l,te.sibling=v,l.child=te,A=l.child,A.memoizedState=Yu(f),A.childLanes=d0(s,y,f),l.memoizedState=FK,v):(nh(l),pp(l,te))}var Ue=s.memoizedState;if(Ue!==null&&(te=Ue.dehydrated,te!==null)){if(K)l.flags&256?(nh(l),l.flags&=-257,l=f0(s,l,f)):l.memoizedState!==null?(rh(l),l.child=s.child,l.flags|=128,l=null):(rh(l),A=v.fallback,te=l.mode,v=ty({mode:\"visible\",children:v.children},te),A=Zf(A,te,f,null),A.flags|=2,v.return=l,A.return=l,v.sibling=A,l.child=v,P_(l,s.child,null,f),v=l.child,v.memoizedState=Yu(f),v.childLanes=d0(s,y,f),l.memoizedState=FK,l=A);else if(nh(l),Qr&&console.error(\"We should not be hydrating here. This is a bug in React. Please file a bug.\"),HE(te)){if(y=te.nextSibling&&te.nextSibling.dataset,y){fe=y.dgst;var Ke=y.msg;me=y.stck;var Fe=y.cstck}te=Ke,y=fe,v=me,fe=A=Fe,A=Error(te||\"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"),A.stack=v||\"\",A.digest=y,y=fe===void 0?null:fe,v={value:A,source:null,stack:y},typeof y==\"string\"&&bK.set(A,v),jl(v),l=f0(s,l,f)}else if(Ic||ea(s,l,f,!1),y=(f&s.childLanes)!==0,Ic||y){if(y=wi,y!==null&&(v=f&-f,v=(v&42)!==0?1:br(v),v=(v&(y.suspendedLanes|f))!==0?0:v,v!==0&&v!==Ue.retryLane))throw Ue.retryLane=v,Rs(s,v),Le(y,s,v),Lle;te.data===Hb||Bo(),l=f0(s,l,f)}else te.data===Hb?(l.flags|=192,l.child=s.child,l=null):(s=Ue.treeContext,Bs=td(te.nextSibling),id=l,Qr=!0,QE=null,Db=!1,kp=null,vy=!1,s!==null&&(uo(),Ep[Sp++]=Lb,Ep[Sp++]=Bb,Ep[Sp++]=YE,Lb=s.id,Bb=s.overflow,YE=l),l=pp(l,v.children),l.flags|=4096);return l}return A?(rh(l),A=v.fallback,te=l.mode,fe=s.child,me=fe.sibling,v=wa(fe,{mode:\"hidden\",children:v.children}),v.subtreeFlags=fe.subtreeFlags&65011712,me!==null?A=wa(me,A):(A=Zf(A,te,f,null),A.flags|=2),A.return=l,v.return=l,v.sibling=A,l.child=v,v=A,A=l.child,te=s.child.memoizedState,te===null?te=Yu(f):(fe=te.cachePool,fe!==null?(me=lc._currentValue,fe=fe.parent!==me?{parent:me,pool:me}:fe):fe=Hg(),te={baseLanes:te.baseLanes|f,cachePool:fe}),A.memoizedState=te,A.childLanes=d0(s,y,f),l.memoizedState=FK,v):(nh(l),f=s.child,s=f.sibling,f=wa(f,{mode:\"visible\",children:v.children}),f.return=l,f.sibling=null,s!==null&&(y=l.deletions,y===null?(l.deletions=[s],l.flags|=16):y.push(s)),l.child=f,l.memoizedState=null,f)}function pp(s,l){return l=ty({mode:\"visible\",children:l},s.mode),l.return=s,s.child=l}function ty(s,l){return s=g(22,s,null,l),s.lanes=0,s.stateNode={_visibility:uN,_pendingMarkers:null,_retryCache:null,_transitions:null},s}function f0(s,l,f){return P_(l,s.child,null,f),s=pp(l,l.pendingProps.children),s.flags|=2,l.memoizedState=null,s}function al(s,l,f){s.lanes|=l;var y=s.alternate;y!==null&&(y.lanes|=l),Xs(s.return,l,f)}function FE(s,l){var f=pl(s);return s=!f&&typeof J(s)==\"function\",f||s?(f=f?\"array\":\"iterable\",console.error(\"A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>\",f,l,f),!1):!0}function mp(s,l,f,y,v){var A=s.memoizedState;A===null?s.memoizedState={isBackwards:l,rendering:null,renderingStartTime:0,last:y,tail:f,tailMode:v}:(A.isBackwards=l,A.rendering=null,A.renderingStartTime=0,A.last=y,A.tail=f,A.tailMode=v)}function nw(s,l,f){var y=l.pendingProps,v=y.revealOrder,A=y.tail;if(y=y.children,v!==void 0&&v!==\"forwards\"&&v!==\"backwards\"&&v!==\"together\"&&!jle[v])if(jle[v]=!0,typeof v==\"string\")switch(v.toLowerCase()){case\"together\":case\"forwards\":case\"backwards\":console.error(\\'\"%s\" is not a valid value for revealOrder on <SuspenseList />. Use lowercase \"%s\" instead.\\',v,v.toLowerCase());break;case\"forward\":case\"backward\":console.error(\\'\"%s\" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use \"%ss\" instead.\\',v,v.toLowerCase());break;default:console.error(\\'\"%s\" is not a supported revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?\\',v)}else console.error(\\'%s is not a supported value for revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?\\',v);A===void 0||DK[A]||(A!==\"collapsed\"&&A!==\"hidden\"?(DK[A]=!0,console.error(\\'\"%s\" is not a supported value for tail on <SuspenseList />. Did you mean \"collapsed\" or \"hidden\"?\\',A)):v!==\"forwards\"&&v!==\"backwards\"&&(DK[A]=!0,console.error(\\'<SuspenseList tail=\"%s\" /> is only valid if revealOrder is \"forwards\" or \"backwards\". Did you mean to specify revealOrder=\"forwards\"?\\',A)));e:if((v===\"forwards\"||v===\"backwards\")&&y!==void 0&&y!==null&&y!==!1)if(pl(y)){for(var K=0;K<y.length;K++)if(!FE(y[K],K))break e}else if(K=J(y),typeof K==\"function\"){if(K=K.call(y))for(var te=K.next(),fe=0;!te.done;te=K.next()){if(!FE(te.value,fe))break e;fe++}}else console.error(\\'A single row was passed to a <SuspenseList revealOrder=\"%s\" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?\\',v);if(Wi(s,l,y,f),y=dc.current,(y&T7)!==0)y=y&M_|T7,l.flags|=128;else{if(s!==null&&(s.flags&128)!==0)e:for(s=l.child;s!==null;){if(s.tag===13)s.memoizedState!==null&&al(s,f,l);else if(s.tag===19)al(s,f,l);else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===l)break e;for(;s.sibling===null;){if(s.return===null||s.return===l)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}y&=M_}switch($(dc,y,l),v){case\"forwards\":for(f=l.child,v=null;f!==null;)s=f.alternate,s!==null&&bb(s)===null&&(v=f),f=f.sibling;f=v,f===null?(v=l.child,l.child=null):(v=f.sibling,f.sibling=null),mp(l,!1,v,f,A);break;case\"backwards\":for(f=null,v=l.child,l.child=null;v!==null;){if(s=v.alternate,s!==null&&bb(s)===null){l.child=v;break}s=v.sibling,v.sibling=f,f=v,v=s}mp(l,!0,f,null,A);break;case\"together\":mp(l,!1,null,null,void 0);break;default:l.memoizedState=null}return l.child}function Zd(s,l,f){if(s!==null&&(l.dependencies=s.dependencies),lf=-1,Ew|=l.lanes,(f&l.childLanes)===0)if(s!==null){if(ea(s,l,f,!1),(f&l.childLanes)===0)return null}else return null;if(s!==null&&l.child!==s.child)throw Error(\"Resuming work not yet implemented.\");if(l.child!==null){for(s=l.child,f=wa(s,s.pendingProps),l.child=f,f.return=l;s.sibling!==null;)s=s.sibling,f=f.sibling=wa(s,s.pendingProps),f.return=l;f.sibling=null}return l.child}function h0(s,l){return(s.lanes&l)!==0?!0:(s=s.dependencies,!!(s!==null&&cb(s)))}function t_(s,l,f){switch(l.tag){case 3:_(l,l.stateNode.containerInfo),Qf(l,lc,s.memoizedState.cache),zg();break;case 27:case 5:N(l);break;case 4:_(l,l.stateNode.containerInfo);break;case 10:Qf(l,l.type,l.memoizedProps.value);break;case 12:(f&l.childLanes)!==0&&(l.flags|=4),l.flags|=2048;var y=l.stateNode;y.effectDuration=-0,y.passiveEffectDuration=-0;break;case 13:if(y=l.memoizedState,y!==null)return y.dehydrated!==null?(nh(l),l.flags|=128,null):(f&l.child.childLanes)!==0?Wl(s,l,f):(nh(l),s=Zd(s,l,f),s!==null?s.sibling:null);nh(l);break;case 19:var v=(s.flags&128)!==0;if(y=(f&l.childLanes)!==0,y||(ea(s,l,f,!1),y=(f&l.childLanes)!==0),v){if(y)return nw(s,l,f);l.flags|=128}if(v=l.memoizedState,v!==null&&(v.rendering=null,v.tail=null,v.lastEffect=null),$(dc,dc.current,l),y)break;return null;case 22:case 23:return l.lanes=0,_o(s,l,f);case 24:Qf(l,lc,s.memoizedState.cache)}return Zd(s,l,f)}function rw(s,l,f){if(l._debugNeedsRemount&&s!==null){f=I2(l.type,l.key,l.pendingProps,l._debugOwner||null,l.mode,l.lanes),f._debugStack=l._debugStack,f._debugTask=l._debugTask;var y=l.return;if(y===null)throw Error(\"Cannot swap the root fiber.\");if(s.alternate=null,l.alternate=null,f.index=l.index,f.sibling=l.sibling,f.return=l.return,f.ref=l.ref,f._debugInfo=l._debugInfo,l===y.child)y.child=f;else{var v=y.child;if(v===null)throw Error(\"Expected parent to have a child.\");for(;v.sibling!==l;)if(v=v.sibling,v===null)throw Error(\"Expected to find the previous sibling.\");v.sibling=f}return l=y.deletions,l===null?(y.deletions=[s],y.flags|=16):l.push(s),f.flags|=2,f}if(s!==null)if(s.memoizedProps!==l.pendingProps||l.type!==s.type)Ic=!0;else{if(!h0(s,f)&&(l.flags&128)===0)return Ic=!1,t_(s,l,f);Ic=(s.flags&131072)!==0}else Ic=!1,(y=Qr)&&(uo(),y=(l.flags&1048576)!==0),y&&(y=l.index,uo(),ec(l,fN,y));switch(l.lanes=0,l.tag){case 16:e:if(y=l.pendingProps,s=ww(l.elementType),l.type=s,typeof s==\"function\")ib(s)?(y=fp(s,y),l.tag=1,l.type=s=tl(s),l=ql(null,l,s,y,f)):(l.tag=0,ih(l,s),l.type=s=tl(s),l=_a(null,l,s,y,f));else{if(s!=null){if(v=s.$$typeof,v===o7){l.tag=11,l.type=s=R2(s),l=Jg(null,l,s,y,f);break e}else if(v===XM){l.tag=14,l=Eb(null,l,s,y,f);break e}}throw l=\"\",s!==null&&typeof s==\"object\"&&s.$$typeof===uh&&(l=\" Did you wrap a component in React.lazy() more than once?\"),s=ne(s)||s,Error(\"Element type is invalid. Received a promise that resolves to: \"+s+\". Lazy element type must resolve to a class or function.\"+l)}return l;case 0:return _a(s,l,l.type,l.pendingProps,f);case 1:return y=l.type,v=fp(y,l.pendingProps),ql(s,l,y,v,f);case 3:e:{if(_(l,l.stateNode.containerInfo),s===null)throw Error(\"Should have a current fiber. This is a bug in React.\");y=l.pendingProps;var A=l.memoizedState;v=A.element,qg(s,l),Xm(l,y,null,f);var K=l.memoizedState;if(y=K.cache,Qf(l,lc,y),y!==A.cache&&O2(l,[lc],f,!0),Wg(),y=K.element,A.isDehydrated)if(A={element:y,isDehydrated:!1,cache:K.cache},l.updateQueue.baseState=A,l.memoizedState=A,l.flags&256){l=ey(s,l,y,f);break e}else if(y!==v){v=Xc(Error(\"This root received an early update, before anything was able hydrate. Switched the entire root to client rendering.\"),l),jl(v),l=ey(s,l,y,f);break e}else{switch(s=l.stateNode.containerInfo,s.nodeType){case 9:s=s.body;break;default:s=s.nodeName===\"HTML\"?s.ownerDocument.body:s}for(Bs=td(s.firstChild),id=l,Qr=!0,QE=null,Db=!1,kp=null,vy=!0,s=Sle(l,null,y,f),l.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling}else{if(zg(),y===v){l=Zd(s,l,f);break e}Wi(s,l,y,f)}l=l.child}return l;case 26:return u0(s,l),s===null?(s=o_(l.type,null,l.pendingProps,null))?l.memoizedState=s:Qr||(s=l.type,f=l.pendingProps,y=F(hw.current),y=ei(y).createElement(s),y[nu]=l,y[cf]=f,Ro(y,s,f),tt(y),l.stateNode=y):l.memoizedState=o_(l.type,s.memoizedProps,l.pendingProps,s.memoizedState),null;case 27:return N(l),s===null&&Qr&&(y=F(hw.current),v=z(),y=l.stateNode=Pa(l.type,l.pendingProps,y,v,!1),Db||(v=eu(y,l.type,l.pendingProps,v),v!==null&&(Ar(l,0).serverProps=v)),id=l,vy=!0,v=Bs,of(l.type)?(aG=v,Bs=td(y.firstChild)):Bs=v),Wi(s,l,l.pendingProps.children,f),u0(s,l),s===null&&(l.flags|=4194304),l.child;case 5:return s===null&&Qr&&(A=z(),y=eb(l.type,A.ancestorInfo),v=Bs,(K=!v)||(K=zE(v,l.type,l.pendingProps,vy),K!==null?(l.stateNode=K,Db||(A=eu(K,l.type,l.pendingProps,A),A!==null&&(Ar(l,0).serverProps=A)),id=l,Bs=td(K.firstChild),vy=!1,A=!0):A=!1,K=!A),K&&(y&&lE(l,v),ap(l))),N(l),v=l.type,A=l.pendingProps,K=s!==null?s.memoizedProps:null,y=A.children,w0(v,A)?y=null:K!==null&&w0(v,K)&&(l.flags|=32),l.memoizedState!==null&&(v=hb(s,l,e7,null,null,f),q7._currentValue=v),u0(s,l),Wi(s,l,y,f),l.child;case 6:return s===null&&Qr&&(s=l.pendingProps,f=z(),y=f.ancestorInfo.current,s=y!=null?Hd(s,y.tag,f.ancestorInfo.implicitRootScope):!0,f=Bs,(y=!f)||(y=r_(f,l.pendingProps,vy),y!==null?(l.stateNode=y,id=l,Bs=null,y=!0):y=!1,y=!y),y&&(s&&lE(l,f),ap(l))),null;case 13:return Wl(s,l,f);case 4:return _(l,l.stateNode.containerInfo),y=l.pendingProps,s===null?l.child=P_(l,null,y,f):Wi(s,l,y,f),l.child;case 11:return Jg(s,l,l.type,l.pendingProps,f);case 7:return Wi(s,l,l.pendingProps,f),l.child;case 8:return Wi(s,l,l.pendingProps.children,f),l.child;case 12:return l.flags|=4,l.flags|=2048,y=l.stateNode,y.effectDuration=-0,y.passiveEffectDuration=-0,Wi(s,l,l.pendingProps.children,f),l.child;case 10:return y=l.type,v=l.pendingProps,A=v.value,\"value\"in v||zle||(zle=!0,console.error(\"The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?\")),Qf(l,y,A),Wi(s,l,v.children,f),l.child;case 9:return v=l.type._context,y=l.pendingProps.children,typeof y!=\"function\"&&console.error(\"A context consumer was rendered with multiple children, or a child that isn\\'t a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\"),Gm(l),v=Hr(v),xe(l),y=OK(y,v,void 0),_e(),l.flags|=1,Wi(s,l,y,f),l.child;case 14:return Eb(s,l,l.type,l.pendingProps,f);case 15:return Sb(s,l,l.type,l.pendingProps,f);case 19:return nw(s,l,f);case 31:return y=l.pendingProps,f=l.mode,y={mode:y.mode,children:y.children},s===null?(s=ty(y,f),s.ref=l.ref,l.child=s,s.return=l,l=s):(s=wa(s.child,y),s.ref=l.ref,l.child=s,s.return=l,l=s),l;case 22:return _o(s,l,f);case 24:return Gm(l),y=Hr(lc),s===null?(v=lp(),v===null&&(v=wi,A=Zm(),v.pooledCache=A,nl(A),A!==null&&(v.pooledCacheLanes|=f),v=A),l.memoizedState={parent:y,cache:v},Sa(l),Qf(l,lc,v)):((s.lanes&f)!==0&&(qg(s,l),Xm(l,null,null,f),Wg()),v=s.memoizedState,A=l.memoizedState,v.parent!==y?(v={parent:y,cache:y},l.memoizedState=v,l.lanes===0&&(l.memoizedState=l.updateQueue.baseState=v),Qf(l,lc,y)):(y=A.cache,Qf(l,lc,y),y!==v.cache&&O2(l,[lc],f,!0))),Wi(s,l,l.pendingProps.children,f),l.child;case 29:throw l.pendingProps}throw Error(\"Unknown unit of work tag (\"+l.tag+\"). This error is likely caused by a bug in React. Please file an issue.\")}function Ca(s){s.flags|=4}function ny(s,l){if(l.type!==\"stylesheet\"||(l.state.loading&Rp)!==f5)s.flags&=-16777217;else if(s.flags|=16777216,!Dae(l)){if(l=Tp.current,l!==null&&((Rr&4194048)===Rr?xy!==null:(Rr&62914560)!==Rr&&(Rr&536870912)===0||l!==xy))throw k7=kK,Qce;s.flags|=8192}}function ry(s,l){l!==null&&(s.flags|=4),s.flags&16384&&(l=s.tag!==22?Bt():536870912,s.lanes|=l,s5|=l)}function kc(s,l){if(!Qr)switch(s.tailMode){case\"hidden\":l=s.tail;for(var f=null;l!==null;)l.alternate!==null&&(f=l),l=l.sibling;f===null?s.tail=null:f.sibling=null;break;case\"collapsed\":f=s.tail;for(var y=null;f!==null;)f.alternate!==null&&(y=f),f=f.sibling;y===null?l||s.tail===null?s.tail=null:s.tail.sibling=null:y.sibling=null}}function fo(s){var l=s.alternate!==null&&s.alternate.child===s.child,f=0,y=0;if(l)if((s.mode&ml)!==Ni){for(var v=s.selfBaseDuration,A=s.child;A!==null;)f|=A.lanes|A.childLanes,y|=A.subtreeFlags&65011712,y|=A.flags&65011712,v+=A.treeBaseDuration,A=A.sibling;s.treeBaseDuration=v}else for(v=s.child;v!==null;)f|=v.lanes|v.childLanes,y|=v.subtreeFlags&65011712,y|=v.flags&65011712,v.return=s,v=v.sibling;else if((s.mode&ml)!==Ni){v=s.actualDuration,A=s.selfBaseDuration;for(var K=s.child;K!==null;)f|=K.lanes|K.childLanes,y|=K.subtreeFlags,y|=K.flags,v+=K.actualDuration,A+=K.treeBaseDuration,K=K.sibling;s.actualDuration=v,s.treeBaseDuration=A}else for(v=s.child;v!==null;)f|=v.lanes|v.childLanes,y|=v.subtreeFlags,y|=v.flags,v.return=s,v=v.sibling;return s.subtreeFlags|=y,s.childLanes=f,l}function kb(s,l,f){var y=l.pendingProps;switch(Is(l),l.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return fo(l),null;case 1:return fo(l),null;case 3:return f=l.stateNode,y=null,s!==null&&(y=s.memoizedState.cache),l.memoizedState.cache!==y&&(l.flags|=2048),qd(lc,l),O(l),f.pendingContext&&(f.context=f.pendingContext,f.pendingContext=null),(s===null||s.child===null)&&(sb(l)?(dE(),Ca(l)):s===null||s.memoizedState.isDehydrated&&(l.flags&256)===0||(l.flags|=1024,cp())),fo(l),null;case 26:return f=l.memoizedState,s===null?(Ca(l),f!==null?(fo(l),ny(l,f)):(fo(l),l.flags&=-16777217)):f?f!==s.memoizedState?(Ca(l),fo(l),ny(l,f)):(fo(l),l.flags&=-16777217):(s.memoizedProps!==y&&Ca(l),fo(l),l.flags&=-16777217),null;case 27:B(l),f=F(hw.current);var v=l.type;if(s!==null&&l.stateNode!=null)s.memoizedProps!==y&&Ca(l);else{if(!y){if(l.stateNode===null)throw Error(\"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\");return fo(l),null}s=z(),sb(l)?uE(l,s):(s=Pa(v,y,f,s,!0),l.stateNode=s,Ca(l))}return fo(l),null;case 5:if(B(l),f=l.type,s!==null&&l.stateNode!=null)s.memoizedProps!==y&&Ca(l);else{if(!y){if(l.stateNode===null)throw Error(\"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\");return fo(l),null}if(v=z(),sb(l))uE(l,v);else{switch(s=F(hw.current),eb(f,v.ancestorInfo),v=v.context,s=ei(s),v){case W_:s=s.createElementNS(h_,f);break;case UN:s=s.createElementNS(iN,f);break;default:switch(f){case\"svg\":s=s.createElementNS(h_,f);break;case\"math\":s=s.createElementNS(iN,f);break;case\"script\":s=s.createElement(\"div\"),s.innerHTML=\"<script><\\\\/script>\",s=s.removeChild(s.firstChild);break;case\"select\":s=typeof y.is==\"string\"?s.createElement(\"select\",{is:y.is}):s.createElement(\"select\"),y.multiple?s.multiple=!0:y.size&&(s.size=y.size);break;default:s=typeof y.is==\"string\"?s.createElement(f,{is:y.is}):s.createElement(f),f.indexOf(\"-\")===-1&&(f!==f.toLowerCase()&&console.error(\"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",f),Object.prototype.toString.call(s)!==\"[object HTMLUnknownElement]\"||Mb.call(sue,f)||(sue[f]=!0,console.error(\"The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.\",f)))}}s[nu]=l,s[cf]=y;e:for(v=l.child;v!==null;){if(v.tag===5||v.tag===6)s.appendChild(v.stateNode);else if(v.tag!==4&&v.tag!==27&&v.child!==null){v.child.return=v,v=v.child;continue}if(v===l)break e;for(;v.sibling===null;){if(v.return===null||v.return===l)break e;v=v.return}v.sibling.return=v.return,v=v.sibling}l.stateNode=s;e:switch(Ro(s,f,y),f){case\"button\":case\"input\":case\"select\":case\"textarea\":s=!!y.autoFocus;break e;case\"img\":s=!0;break e;default:s=!1}s&&Ca(l)}}return fo(l),l.flags&=-16777217,null;case 6:if(s&&l.stateNode!=null)s.memoizedProps!==y&&Ca(l);else{if(typeof y!=\"string\"&&l.stateNode===null)throw Error(\"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\");if(s=F(hw.current),f=z(),sb(l)){s=l.stateNode,f=l.memoizedProps,v=!Db,y=null;var A=id;if(A!==null)switch(A.tag){case 3:v&&(v=aw(s,f,y),v!==null&&(Ar(l,0).serverProps=v));break;case 27:case 5:y=A.memoizedProps,v&&(v=aw(s,f,y),v!==null&&(Ar(l,0).serverProps=v))}s[nu]=l,s=!!(s.nodeValue===f||y!==null&&y.suppressHydrationWarning===!0||v0(s.nodeValue,f)),s||ap(l)}else v=f.ancestorInfo.current,v!=null&&Hd(y,v.tag,f.ancestorInfo.implicitRootScope),s=ei(s).createTextNode(y),s[nu]=l,l.stateNode=s}return fo(l),null;case 13:if(y=l.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(v=sb(l),y!==null&&y.dehydrated!==null){if(s===null){if(!v)throw Error(\"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\");if(v=l.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(\"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\");v[nu]=l,fo(l),(l.mode&ml)!==Ni&&y!==null&&(v=l.child,v!==null&&(l.treeBaseDuration-=v.treeBaseDuration))}else dE(),zg(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4,fo(l),(l.mode&ml)!==Ni&&y!==null&&(v=l.child,v!==null&&(l.treeBaseDuration-=v.treeBaseDuration));v=!1}else v=cp(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=v),v=!0;if(!v)return l.flags&256?($d(l),l):($d(l),null)}return $d(l),(l.flags&128)!==0?(l.lanes=f,(l.mode&ml)!==Ni&&Qm(l),l):(f=y!==null,s=s!==null&&s.memoizedState!==null,f&&(y=l.child,v=null,y.alternate!==null&&y.alternate.memoizedState!==null&&y.alternate.memoizedState.cachePool!==null&&(v=y.alternate.memoizedState.cachePool.pool),A=null,y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(A=y.memoizedState.cachePool.pool),A!==v&&(y.flags|=2048)),f!==s&&f&&(l.child.flags|=8192),ry(l,l.updateQueue),fo(l),(l.mode&ml)!==Ni&&f&&(s=l.child,s!==null&&(l.treeBaseDuration-=s.treeBaseDuration)),null);case 4:return O(l),s===null&&Zl(l.stateNode.containerInfo),fo(l),null;case 10:return qd(l.type,l),fo(l),null;case 19:if(V(dc,l),v=l.memoizedState,v===null)return fo(l),null;if(y=(l.flags&128)!==0,A=v.rendering,A===null)if(y)kc(v,!1);else{if(Ds!==zb||s!==null&&(s.flags&128)!==0)for(s=l.child;s!==null;){if(A=bb(s),A!==null){for(l.flags|=128,kc(v,!1),s=A.updateQueue,l.updateQueue=s,ry(l,s),l.subtreeFlags=0,s=f,f=l.child;f!==null;)aE(f,s),f=f.sibling;return $(dc,dc.current&M_|T7,l),l.child}s=s.sibling}v.tail!==null&&py()>AN&&(l.flags|=128,y=!0,kc(v,!1),l.lanes=4194304)}else{if(!y)if(s=bb(A),s!==null){if(l.flags|=128,y=!0,s=s.updateQueue,l.updateQueue=s,ry(l,s),kc(v,!0),v.tail===null&&v.tailMode===\"hidden\"&&!A.alternate&&!Qr)return fo(l),null}else 2*py()-v.renderingStartTime>AN&&f!==536870912&&(l.flags|=128,y=!0,kc(v,!1),l.lanes=4194304);v.isBackwards?(A.sibling=l.child,l.child=A):(s=v.last,s!==null?s.sibling=A:l.child=A,v.last=A)}return v.tail!==null?(s=v.tail,v.rendering=s,v.tail=s.sibling,v.renderingStartTime=py(),s.sibling=null,f=dc.current,f=y?f&M_|T7:f&M_,$(dc,f,l),s):(fo(l),null);case 22:case 23:return $d(l),ol(l),y=l.memoizedState!==null,s!==null?s.memoizedState!==null!==y&&(l.flags|=8192):y&&(l.flags|=8192),y?(f&536870912)!==0&&(l.flags&128)===0&&(fo(l),l.subtreeFlags&6&&(l.flags|=8192)):fo(l),f=l.updateQueue,f!==null&&ry(l,f.retryQueue),f=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),y=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(y=l.memoizedState.cachePool.pool),y!==f&&(l.flags|=2048),s!==null&&V(e5,l),null;case 24:return f=null,s!==null&&(f=s.memoizedState.cache),l.memoizedState.cache!==f&&(l.flags|=2048),qd(lc,l),fo(l),null;case 25:return null;case 30:return null}throw Error(\"Unknown unit of work tag (\"+l.tag+\"). This error is likely caused by a bug in React. Please file an issue.\")}function ow(s,l){switch(Is(l),l.tag){case 1:return s=l.flags,s&65536?(l.flags=s&-65537|128,(l.mode&ml)!==Ni&&Qm(l),l):null;case 3:return qd(lc,l),O(l),s=l.flags,(s&65536)!==0&&(s&128)===0?(l.flags=s&-65537|128,l):null;case 26:case 27:case 5:return B(l),null;case 13:if($d(l),s=l.memoizedState,s!==null&&s.dehydrated!==null){if(l.alternate===null)throw Error(\"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\");zg()}return s=l.flags,s&65536?(l.flags=s&-65537|128,(l.mode&ml)!==Ni&&Qm(l),l):null;case 19:return V(dc,l),null;case 4:return O(l),null;case 10:return qd(l.type,l),null;case 22:case 23:return $d(l),ol(l),s!==null&&V(e5,l),s=l.flags,s&65536?(l.flags=s&-65537|128,(l.mode&ml)!==Ni&&Qm(l),l):null;case 24:return qd(lc,l),null;case 25:return null;default:return null}}function _b(s,l){switch(Is(l),l.tag){case 3:qd(lc,l),O(l);break;case 26:case 27:case 5:B(l);break;case 4:O(l);break;case 13:$d(l);break;case 19:V(dc,l);break;case 10:qd(l.type,l);break;case 22:case 23:$d(l),ol(l),s!==null&&V(e5,l);break;case 24:qd(lc,l)}}function fr(s){return(s.mode&ml)!==Ni}function oy(s,l){fr(s)?(pi(),Yd(l,s),Lo()):Yd(l,s)}function p0(s,l,f){fr(s)?(pi(),Qu(f,s,l),Lo()):Qu(f,s,l)}function Yd(s,l){try{var f=l.updateQueue,y=f!==null?f.lastEffect:null;if(y!==null){var v=y.next;f=v;do{if((f.tag&s)===s&&((s&uc)!==_p?Vt!==null&&typeof Vt.markComponentPassiveEffectMountStarted==\"function\"&&Vt.markComponentPassiveEffectMountStarted(l):(s&gl)!==_p&&Vt!==null&&typeof Vt.markComponentLayoutEffectMountStarted==\"function\"&&Vt.markComponentLayoutEffectMountStarted(l),y=void 0,(s&sd)!==_p&&(H_=!0),y=jt(l,_Fe,f),(s&sd)!==_p&&(H_=!1),(s&uc)!==_p?Vt!==null&&typeof Vt.markComponentPassiveEffectMountStopped==\"function\"&&Vt.markComponentPassiveEffectMountStopped():(s&gl)!==_p&&Vt!==null&&typeof Vt.markComponentLayoutEffectMountStopped==\"function\"&&Vt.markComponentLayoutEffectMountStopped(),y!==void 0&&typeof y!=\"function\")){var A=void 0;A=(f.tag&gl)!==0?\"useLayoutEffect\":(f.tag&sd)!==0?\"useInsertionEffect\":\"useEffect\";var K=void 0;K=y===null?\" You returned null. If your effect does not require clean up, return undefined (or nothing).\":typeof y.then==\"function\"?`\\n\\nIt looks like you wrote `+A+`(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\\n\\n`+A+`(() => {\\n  async function fetchData() {\\n    // You can await here\\n    const response = await MyAPI.getData(someId);\\n    // ...\\n  }\\n  fetchData();\\n}, [someId]); // Or [] if effect doesn\\'t need props or state\\n\\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching`:\" You returned: \"+y,jt(l,function(te,fe){console.error(\"%s must not return anything besides a function, which is used for clean-up.%s\",te,fe)},A,K)}f=f.next}while(f!==v)}}catch(te){Un(l,l.return,te)}}function Qu(s,l,f){try{var y=l.updateQueue,v=y!==null?y.lastEffect:null;if(v!==null){var A=v.next;y=A;do{if((y.tag&s)===s){var K=y.inst,te=K.destroy;te!==void 0&&(K.destroy=void 0,(s&uc)!==_p?Vt!==null&&typeof Vt.markComponentPassiveEffectUnmountStarted==\"function\"&&Vt.markComponentPassiveEffectUnmountStarted(l):(s&gl)!==_p&&Vt!==null&&typeof Vt.markComponentLayoutEffectUnmountStarted==\"function\"&&Vt.markComponentLayoutEffectUnmountStarted(l),(s&sd)!==_p&&(H_=!0),v=l,jt(v,CFe,v,f,te),(s&sd)!==_p&&(H_=!1),(s&uc)!==_p?Vt!==null&&typeof Vt.markComponentPassiveEffectUnmountStopped==\"function\"&&Vt.markComponentPassiveEffectUnmountStopped():(s&gl)!==_p&&Vt!==null&&typeof Vt.markComponentLayoutEffectUnmountStopped==\"function\"&&Vt.markComponentLayoutEffectUnmountStopped())}y=y.next}while(y!==A)}}catch(fe){Un(l,l.return,fe)}}function iy(s,l){fr(s)?(pi(),Yd(l,s),Lo()):Yd(l,s)}function m0(s,l,f){fr(s)?(pi(),Qu(f,s,l),Lo()):Qu(f,s,l)}function g0(s){var l=s.updateQueue;if(l!==null){var f=s.stateNode;s.type.defaultProps||\"ref\"in s.memoizedProps||L_||(f.props!==s.memoizedProps&&console.error(\"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",Z(s)||\"instance\"),f.state!==s.memoizedState&&console.error(\"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",Z(s)||\"instance\"));try{jt(s,t0,l,f)}catch(y){Un(s,s.return,y)}}}function rs(s,l,f){return s.getSnapshotBeforeUpdate(l,f)}function Vl(s,l){var f=l.memoizedProps,y=l.memoizedState;l=s.stateNode,s.type.defaultProps||\"ref\"in s.memoizedProps||L_||(l.props!==s.memoizedProps&&console.error(\"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",Z(s)||\"instance\"),l.state!==s.memoizedState&&console.error(\"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",Z(s)||\"instance\"));try{var v=fp(s.type,f,s.elementType===s.type),A=jt(s,rs,l,v,y);f=Hle,A!==void 0||f.has(s.type)||(f.add(s.type),jt(s,function(){console.error(\"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.\",Z(s))})),l.__reactInternalSnapshotBeforeUpdate=A}catch(K){Un(s,s.return,K)}}function Qo(s,l,f){f.props=fp(s.type,s.memoizedProps),f.state=s.memoizedState,fr(s)?(pi(),jt(s,mle,s,l,f),Lo()):jt(s,mle,s,l,f)}function sy(s){var l=s.ref;if(l!==null){switch(s.tag){case 26:case 27:case 5:var f=s.stateNode;break;case 30:f=s.stateNode;break;default:f=s.stateNode}if(typeof l==\"function\")if(fr(s))try{pi(),s.refCleanup=l(f)}finally{Lo()}else s.refCleanup=l(f);else typeof l==\"string\"?console.error(\"String refs are no longer supported.\"):l.hasOwnProperty(\"current\")||console.error(\"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().\",Z(s)),l.current=f}}function sh(s,l){try{jt(s,sy,s)}catch(f){Un(s,l,f)}}function Os(s,l){var f=s.ref,y=s.refCleanup;if(f!==null)if(typeof y==\"function\")try{if(fr(s))try{pi(),jt(s,y)}finally{Lo(s)}else jt(s,y)}catch(v){Un(s,l,v)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof f==\"function\")try{if(fr(s))try{pi(),jt(s,f,null)}finally{Lo(s)}else jt(s,f,null)}catch(v){Un(s,l,v)}else f.current=null}function ho(s,l,f,y){var v=s.memoizedProps,A=v.id,K=v.onCommit;v=v.onRender,l=l===null?\"mount\":\"update\",mN&&(l=\"nested-update\"),typeof v==\"function\"&&v(A,l,s.actualDuration,s.treeBaseDuration,s.actualStartTime,f),typeof K==\"function\"&&K(s.memoizedProps.id,l,y,f)}function n_(s,l,f,y){var v=s.memoizedProps;s=v.id,v=v.onPostCommit,l=l===null?\"mount\":\"update\",mN&&(l=\"nested-update\"),typeof v==\"function\"&&v(s,l,y,f)}function y0(s){var l=s.type,f=s.memoizedProps,y=s.stateNode;try{jt(s,ly,y,l,f,s)}catch(v){Un(s,s.return,v)}}function Cb(s,l,f){try{jt(s,rf,s.stateNode,s.type,f,l,s)}catch(y){Un(s,s.return,y)}}function iw(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&of(s.type)||s.tag===4}function Ab(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||iw(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&of(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Tb(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?(f.nodeType===9?f.body:f.nodeName===\"HTML\"?f.ownerDocument.body:f).insertBefore(s,l):(l=f.nodeType===9?f.body:f.nodeName===\"HTML\"?f.ownerDocument.body:f,l.appendChild(s),f=f._reactRootContainer,f!=null||l.onclick!==null||(l.onclick=Xo));else if(y!==4&&(y===27&&of(s.type)&&(f=s.stateNode,l=null),s=s.child,s!==null))for(Tb(s,l,f),s=s.sibling;s!==null;)Tb(s,l,f),s=s.sibling}function ay(s,l,f){var y=s.tag;if(y===5||y===6)s=s.stateNode,l?f.insertBefore(s,l):f.appendChild(s);else if(y!==4&&(y===27&&of(s.type)&&(f=s.stateNode),s=s.child,s!==null))for(ay(s,l,f),s=s.sibling;s!==null;)ay(s,l,f),s=s.sibling}function x(s){for(var l,f=s.return;f!==null;){if(iw(f)){l=f;break}f=f.return}if(l==null)throw Error(\"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\");switch(l.tag){case 27:l=l.stateNode,f=Ab(s),ay(s,f,l);break;case 5:f=l.stateNode,l.flags&32&&(hl(f),l.flags&=-33),l=Ab(s),ay(s,l,f);break;case 3:case 4:l=l.stateNode.containerInfo,f=Ab(s),Tb(s,f,l);break;default:throw Error(\"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\")}}function k(s){var l=s.stateNode,f=s.memoizedProps;try{jt(s,VM,s.type,f,l,s)}catch(y){Un(s,s.return,y)}}function P(s,l){if(s=s.containerInfo,oG=qN,s=Dg(s),Gf(s)){if(\"selectionStart\"in s)var f={start:s.selectionStart,end:s.selectionEnd};else e:{f=(f=s.ownerDocument)&&f.defaultView||window;var y=f.getSelection&&f.getSelection();if(y&&y.rangeCount!==0){f=y.anchorNode;var v=y.anchorOffset,A=y.focusNode;y=y.focusOffset;try{f.nodeType,A.nodeType}catch{f=null;break e}var K=0,te=-1,fe=-1,me=0,Ue=0,Ke=s,Fe=null;t:for(;;){for(var Qe;Ke!==f||v!==0&&Ke.nodeType!==3||(te=K+v),Ke!==A||y!==0&&Ke.nodeType!==3||(fe=K+y),Ke.nodeType===3&&(K+=Ke.nodeValue.length),(Qe=Ke.firstChild)!==null;)Fe=Ke,Ke=Qe;for(;;){if(Ke===s)break t;if(Fe===f&&++me===v&&(te=K),Fe===A&&++Ue===y&&(fe=K),(Qe=Ke.nextSibling)!==null)break;Ke=Fe,Fe=Ke.parentNode}Ke=Qe}f=te===-1||fe===-1?null:{start:te,end:fe}}else f=null}f=f||{start:0,end:0}}else f=null;for(iG={focusedElem:s,selectionRange:f},qN=!1,Oc=l;Oc!==null;)if(l=Oc,s=l.child,(l.subtreeFlags&1024)!==0&&s!==null)s.return=l,Oc=s;else for(;Oc!==null;){switch(s=l=Oc,f=s.alternate,v=s.flags,s.tag){case 0:break;case 11:case 15:break;case 1:(v&1024)!==0&&f!==null&&Vl(s,f);break;case 3:if((v&1024)!==0){if(s=s.stateNode.containerInfo,f=s.nodeType,f===9)Ls(s);else if(f===1)switch(s.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":Ls(s);break;default:s.textContent=\"\"}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((v&1024)!==0)throw Error(\"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\")}if(s=l.sibling,s!==null){s.return=l.return,Oc=s;break}Oc=l.return}}function Q(s,l,f){var y=f.flags;switch(f.tag){case 0:case 11:case 15:lt(s,f),y&4&&oy(f,gl|Cp);break;case 1:if(lt(s,f),y&4)if(s=f.stateNode,l===null)f.type.defaultProps||\"ref\"in f.memoizedProps||L_||(s.props!==f.memoizedProps&&console.error(\"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",Z(f)||\"instance\"),s.state!==f.memoizedState&&console.error(\"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",Z(f)||\"instance\")),fr(f)?(pi(),jt(f,PK,f,s),Lo()):jt(f,PK,f,s);else{var v=fp(f.type,l.memoizedProps);l=l.memoizedState,f.type.defaultProps||\"ref\"in f.memoizedProps||L_||(s.props!==f.memoizedProps&&console.error(\"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",Z(f)||\"instance\"),s.state!==f.memoizedState&&console.error(\"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",Z(f)||\"instance\")),fr(f)?(pi(),jt(f,fle,f,s,v,l,s.__reactInternalSnapshotBeforeUpdate),Lo()):jt(f,fle,f,s,v,l,s.__reactInternalSnapshotBeforeUpdate)}y&64&&g0(f),y&512&&sh(f,f.return);break;case 3:if(l=ko(),lt(s,f),y&64&&(y=f.updateQueue,y!==null)){if(v=null,f.child!==null)switch(f.child.tag){case 27:case 5:v=f.child.stateNode;break;case 1:v=f.child.stateNode}try{jt(f,t0,y,v)}catch(K){Un(f,f.return,K)}}s.effectDuration+=ta(l);break;case 27:l===null&&y&4&&k(f);case 26:case 5:lt(s,f),l===null&&y&4&&y0(f),y&512&&sh(f,f.return);break;case 12:if(y&4){y=ko(),lt(s,f),s=f.stateNode,s.effectDuration+=lb(y);try{jt(f,ho,f,l,pN,s.effectDuration)}catch(K){Un(f,f.return,K)}}else lt(s,f);break;case 13:lt(s,f),y&4&&Pe(s,f),y&64&&(s=f.memoizedState,s!==null&&(s=s.dehydrated,s!==null&&(f=gs.bind(null,f),qE(s,f))));break;case 22:if(y=f.memoizedState!==null||jb,!y){l=l!==null&&l.memoizedState!==null||la,v=jb;var A=la;jb=y,(la=l)&&!A?un(s,f,(f.subtreeFlags&8772)!==0):lt(s,f),jb=v,la=A}break;case 30:break;default:lt(s,f)}}function oe(s){var l=s.alternate;l!==null&&(s.alternate=null,oe(l)),s.child=null,s.deletions=null,s.sibling=null,s.tag===5&&(l=s.stateNode,l!==null&&wr(l)),s.stateNode=null,s._debugOwner=null,s.return=null,s.dependencies=null,s.memoizedProps=null,s.memoizedState=null,s.pendingProps=null,s.stateNode=null,s.updateQueue=null}function de(s,l,f){for(f=f.child;f!==null;)Re(s,l,f),f=f.sibling}function Re(s,l,f){if(tu&&typeof tu.onCommitFiberUnmount==\"function\")try{tu.onCommitFiberUnmount(d_,f)}catch(A){my||(my=!0,console.error(\"React instrumentation encountered an error: %s\",A))}switch(f.tag){case 26:la||Os(f,l),de(s,l,f),f.memoizedState?f.memoizedState.count--:f.stateNode&&(f=f.stateNode,f.parentNode.removeChild(f));break;case 27:la||Os(f,l);var y=La,v=uf;of(f.type)&&(La=f.stateNode,uf=!1),de(s,l,f),jt(f,vp,f.stateNode),La=y,uf=v;break;case 5:la||Os(f,l);case 6:if(y=La,v=uf,La=null,de(s,l,f),La=y,uf=v,La!==null)if(uf)try{jt(f,Rb,La,f.stateNode)}catch(A){Un(f,l,A)}else try{jt(f,x0,La,f.stateNode)}catch(A){Un(f,l,A)}break;case 18:La!==null&&(uf?(s=La,bp(s.nodeType===9?s.body:s.nodeName===\"HTML\"?s.ownerDocument.body:s,f.stateNode),r7(s)):bp(La,f.stateNode));break;case 4:y=La,v=uf,La=f.stateNode.containerInfo,uf=!0,de(s,l,f),La=y,uf=v;break;case 0:case 11:case 14:case 15:la||Qu(sd,f,l),la||p0(f,l,gl),de(s,l,f);break;case 1:la||(Os(f,l),y=f.stateNode,typeof y.componentWillUnmount==\"function\"&&Qo(f,l,y)),de(s,l,f);break;case 21:de(s,l,f);break;case 22:la=(y=la)||f.memoizedState!==null,de(s,l,f),la=y;break;default:de(s,l,f)}}function Pe(s,l){if(l.memoizedState===null&&(s=l.alternate,s!==null&&(s=s.memoizedState,s!==null&&(s=s.dehydrated,s!==null))))try{jt(l,Rc,s)}catch(f){Un(l,l.return,f)}}function nt(s){switch(s.tag){case 13:case 19:var l=s.stateNode;return l===null&&(l=s.stateNode=new qle),l;case 22:return s=s.stateNode,l=s._retryCache,l===null&&(l=s._retryCache=new qle),l;default:throw Error(\"Unexpected Suspense handler tag (\"+s.tag+\"). This is a bug in React.\")}}function Ne(s,l){var f=nt(s);l.forEach(function(y){var v=Mi.bind(null,s,y);if(!f.has(y)){if(f.add(y),S0)if(B_!==null&&D_!==null)as(D_,B_);else throw Error(\"Expected finished root and lanes to be set. This is a bug in React.\");y.then(v,v)}})}function Et(s,l){var f=l.deletions;if(f!==null)for(var y=0;y<f.length;y++){var v=s,A=l,K=f[y],te=A;e:for(;te!==null;){switch(te.tag){case 27:if(of(te.type)){La=te.stateNode,uf=!1;break e}break;case 5:La=te.stateNode,uf=!1;break e;case 3:case 4:La=te.stateNode.containerInfo,uf=!0;break e}te=te.return}if(La===null)throw Error(\"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\");Re(v,A,K),La=null,uf=!1,v=K,A=v.alternate,A!==null&&(A.return=null),v.return=null}if(l.subtreeFlags&13878)for(l=l.child;l!==null;)At(l,s),l=l.sibling}function At(s,l){var f=s.alternate,y=s.flags;switch(s.tag){case 0:case 11:case 14:case 15:Et(l,s),Rt(s),y&4&&(Qu(sd|Cp,s,s.return),Yd(sd|Cp,s),p0(s,s.return,gl|Cp));break;case 1:Et(l,s),Rt(s),y&512&&(la||f===null||Os(f,f.return)),y&64&&jb&&(s=s.updateQueue,s!==null&&(y=s.callbacks,y!==null&&(f=s.shared.hiddenCallbacks,s.shared.hiddenCallbacks=f===null?y:f.concat(y))));break;case 26:var v=T0;if(Et(l,s),Rt(s),y&512&&(la||f===null||Os(f,f.return)),y&4)if(l=f!==null?f.memoizedState:null,y=s.memoizedState,f===null)if(y===null)if(s.stateNode===null){e:{y=s.type,f=s.memoizedProps,l=v.ownerDocument||v;t:switch(y){case\"title\":v=l.getElementsByTagName(\"title\")[0],(!v||v[s7]||v[nu]||v.namespaceURI===h_||v.hasAttribute(\"itemprop\"))&&(v=l.createElement(y),l.head.insertBefore(v,l.querySelector(\"head > title\"))),Ro(v,y,f),v[nu]=s,tt(v),y=v;break e;case\"link\":var A=Ob(\"link\",\"href\",l).get(y+(f.href||\"\"));if(A){for(var K=0;K<A.length;K++)if(v=A[K],v.getAttribute(\"href\")===(f.href==null||f.href===\"\"?null:f.href)&&v.getAttribute(\"rel\")===(f.rel==null?null:f.rel)&&v.getAttribute(\"title\")===(f.title==null?null:f.title)&&v.getAttribute(\"crossorigin\")===(f.crossOrigin==null?null:f.crossOrigin)){A.splice(K,1);break t}}v=l.createElement(y),Ro(v,y,f),l.head.appendChild(v);break;case\"meta\":if(A=Ob(\"meta\",\"content\",l).get(y+(f.content||\"\"))){for(K=0;K<A.length;K++)if(v=A[K],I(f.content,\"content\"),v.getAttribute(\"content\")===(f.content==null?null:\"\"+f.content)&&v.getAttribute(\"name\")===(f.name==null?null:f.name)&&v.getAttribute(\"property\")===(f.property==null?null:f.property)&&v.getAttribute(\"http-equiv\")===(f.httpEquiv==null?null:f.httpEquiv)&&v.getAttribute(\"charset\")===(f.charSet==null?null:f.charSet)){A.splice(K,1);break t}}v=l.createElement(y),Ro(v,y,f),l.head.appendChild(v);break;default:throw Error(\\'getNodesForType encountered a type it did not expect: \"\\'+y+\\'\". This is a bug in React.\\')}v[nu]=s,tt(v),y=v}s.stateNode=y}else af(v,s.type,s.stateNode);else s.stateNode=s_(v,y,s.memoizedProps);else l!==y?(l===null?f.stateNode!==null&&(f=f.stateNode,f.parentNode.removeChild(f)):l.count--,y===null?af(v,s.type,s.stateNode):s_(v,y,s.memoizedProps)):y===null&&s.stateNode!==null&&Cb(s,s.memoizedProps,f.memoizedProps);break;case 27:Et(l,s),Rt(s),y&512&&(la||f===null||Os(f,f.return)),f!==null&&y&4&&Cb(s,s.memoizedProps,f.memoizedProps);break;case 5:if(Et(l,s),Rt(s),y&512&&(la||f===null||Os(f,f.return)),s.flags&32){l=s.stateNode;try{jt(s,hl,l)}catch(Ue){Un(s,s.return,Ue)}}y&4&&s.stateNode!=null&&(l=s.memoizedProps,Cb(s,l,f!==null?f.memoizedProps:l)),y&1024&&(UK=!0,s.type!==\"form\"&&console.error(\"Unexpected host component type. Expected a form. This is a bug in React.\"));break;case 6:if(Et(l,s),Rt(s),y&4){if(s.stateNode===null)throw Error(\"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\");y=s.memoizedProps,f=f!==null?f.memoizedProps:y,l=s.stateNode;try{jt(s,yp,l,f,y)}catch(Ue){Un(s,s.return,Ue)}}break;case 3:if(v=ko(),jN=null,A=T0,T0=lw(l.containerInfo),Et(l,s),T0=A,Rt(s),y&4&&f!==null&&f.memoizedState.isDehydrated)try{jt(s,uy,l.containerInfo)}catch(Ue){Un(s,s.return,Ue)}UK&&(UK=!1,Ft(s)),l.effectDuration+=ta(v);break;case 4:y=T0,T0=lw(s.stateNode.containerInfo),Et(l,s),Rt(s),T0=y;break;case 12:y=ko(),Et(l,s),Rt(s),s.stateNode.effectDuration+=lb(y);break;case 13:Et(l,s),Rt(s),s.child.flags&8192&&s.memoizedState!==null!=(f!==null&&f.memoizedState!==null)&&(VK=py()),y&4&&(y=s.updateQueue,y!==null&&(s.updateQueue=null,Ne(s,y)));break;case 22:v=s.memoizedState!==null;var te=f!==null&&f.memoizedState!==null,fe=jb,me=la;if(jb=fe||v,la=me||te,Et(l,s),la=me,jb=fe,Rt(s),y&8192)e:for(l=s.stateNode,l._visibility=v?l._visibility&~uN:l._visibility|uN,v&&(f===null||te||jb||la||Sn(s)),f=null,l=s;;){if(l.tag===5||l.tag===26){if(f===null){te=f=l;try{A=te.stateNode,v?jt(te,UE,A):jt(te,jE,te.stateNode,te.memoizedProps)}catch(Ue){Un(te,te.return,Ue)}}}else if(l.tag===6){if(f===null){te=l;try{K=te.stateNode,v?jt(te,lh,K):jt(te,E0,K,te.memoizedProps)}catch(Ue){Un(te,te.return,Ue)}}}else if((l.tag!==22&&l.tag!==23||l.memoizedState===null||l===s)&&l.child!==null){l.child.return=l,l=l.child;continue}if(l===s)break e;for(;l.sibling===null;){if(l.return===null||l.return===s)break e;f===l&&(f=null),l=l.return}f===l&&(f=null),l.sibling.return=l.return,l=l.sibling}y&4&&(y=s.updateQueue,y!==null&&(f=y.retryQueue,f!==null&&(y.retryQueue=null,Ne(s,f))));break;case 19:Et(l,s),Rt(s),y&4&&(y=s.updateQueue,y!==null&&(s.updateQueue=null,Ne(s,y)));break;case 30:break;case 21:break;default:Et(l,s),Rt(s)}}function Rt(s){var l=s.flags;if(l&2){try{jt(s,x,s)}catch(f){Un(s,s.return,f)}s.flags&=-3}l&4096&&(s.flags&=-4097)}function Ft(s){if(s.subtreeFlags&1024)for(s=s.child;s!==null;){var l=s;Ft(l),l.tag===5&&l.flags&1024&&l.stateNode.reset(),s=s.sibling}}function lt(s,l){if(l.subtreeFlags&8772)for(l=l.child;l!==null;)Q(s,l.alternate,l),l=l.sibling}function Kn(s){switch(s.tag){case 0:case 11:case 14:case 15:p0(s,s.return,gl),Sn(s);break;case 1:Os(s,s.return);var l=s.stateNode;typeof l.componentWillUnmount==\"function\"&&Qo(s,s.return,l),Sn(s);break;case 27:jt(s,vp,s.stateNode);case 26:case 5:Os(s,s.return),Sn(s);break;case 22:s.memoizedState===null&&Sn(s);break;case 30:Sn(s);break;default:Sn(s)}}function Sn(s){for(s=s.child;s!==null;)Kn(s),s=s.sibling}function mn(s,l,f,y){var v=f.flags;switch(f.tag){case 0:case 11:case 15:un(s,f,y),oy(f,gl);break;case 1:if(un(s,f,y),l=f.stateNode,typeof l.componentDidMount==\"function\"&&jt(f,PK,f,l),l=f.updateQueue,l!==null){s=f.stateNode;try{jt(f,e0,l,s)}catch(A){Un(f,f.return,A)}}y&&v&64&&g0(f),sh(f,f.return);break;case 27:k(f);case 26:case 5:un(s,f,y),y&&l===null&&v&4&&y0(f),sh(f,f.return);break;case 12:if(y&&v&4){v=ko(),un(s,f,y),y=f.stateNode,y.effectDuration+=lb(v);try{jt(f,ho,f,l,pN,y.effectDuration)}catch(A){Un(f,f.return,A)}}else un(s,f,y);break;case 13:un(s,f,y),y&&v&4&&Pe(s,f);break;case 22:f.memoizedState===null&&un(s,f,y),sh(f,f.return);break;case 30:break;default:un(s,f,y)}}function un(s,l,f){for(f=f&&(l.subtreeFlags&8772)!==0,l=l.child;l!==null;)mn(s,l.alternate,l,f),l=l.sibling}function Vi(s,l){var f=null;s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(f=s.memoizedState.cachePool.pool),s=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(s=l.memoizedState.cachePool.pool),s!==f&&(s!=null&&nl(s),f!=null&&Jf(f))}function cn(s,l){s=null,l.alternate!==null&&(s=l.alternate.memoizedState.cache),l=l.memoizedState.cache,l!==s&&(nl(l),s!=null&&Jf(s))}function Tn(s,l,f,y){if(l.subtreeFlags&10256)for(l=l.child;l!==null;)ro(s,l,f,y),l=l.sibling}function ro(s,l,f,y){var v=l.flags;switch(l.tag){case 0:case 11:case 15:Tn(s,l,f,y),v&2048&&iy(l,uc|Cp);break;case 1:Tn(s,l,f,y);break;case 3:var A=ko();Tn(s,l,f,y),v&2048&&(f=null,l.alternate!==null&&(f=l.alternate.memoizedState.cache),l=l.memoizedState.cache,l!==f&&(nl(l),f!=null&&Jf(f))),s.passiveEffectDuration+=ta(A);break;case 12:if(v&2048){v=ko(),Tn(s,l,f,y),s=l.stateNode,s.passiveEffectDuration+=lb(v);try{jt(l,n_,l,l.alternate,pN,s.passiveEffectDuration)}catch(te){Un(l,l.return,te)}}else Tn(s,l,f,y);break;case 13:Tn(s,l,f,y);break;case 23:break;case 22:A=l.stateNode;var K=l.alternate;l.memoizedState!==null?A._visibility&Nb?Tn(s,l,f,y):ii(s,l):A._visibility&Nb?Tn(s,l,f,y):(A._visibility|=Nb,Oi(s,l,f,y,(l.subtreeFlags&10256)!==0)),v&2048&&Vi(K,l);break;case 24:Tn(s,l,f,y),v&2048&&cn(l.alternate,l);break;default:Tn(s,l,f,y)}}function Oi(s,l,f,y,v){for(v=v&&(l.subtreeFlags&10256)!==0,l=l.child;l!==null;)$i(s,l,f,y,v),l=l.sibling}function $i(s,l,f,y,v){var A=l.flags;switch(l.tag){case 0:case 11:case 15:Oi(s,l,f,y,v),iy(l,uc);break;case 23:break;case 22:var K=l.stateNode;l.memoizedState!==null?K._visibility&Nb?Oi(s,l,f,y,v):ii(s,l):(K._visibility|=Nb,Oi(s,l,f,y,v)),v&&A&2048&&Vi(l.alternate,l);break;case 24:Oi(s,l,f,y,v),v&&A&2048&&cn(l.alternate,l);break;default:Oi(s,l,f,y,v)}}function ii(s,l){if(l.subtreeFlags&10256)for(l=l.child;l!==null;){var f=s,y=l,v=y.flags;switch(y.tag){case 22:ii(f,y),v&2048&&Vi(y.alternate,y);break;case 24:ii(f,y),v&2048&&cn(y.alternate,y);break;default:ii(f,y)}l=l.sibling}}function Co(s){if(s.subtreeFlags&R7)for(s=s.child;s!==null;)_c(s),s=s.sibling}function _c(s){switch(s.tag){case 26:Co(s),s.flags&R7&&s.memoizedState!==null&&YBe(T0,s.memoizedState,s.memoizedProps);break;case 5:Co(s);break;case 3:case 4:var l=T0;T0=lw(s.stateNode.containerInfo),Co(s),T0=l;break;case 22:s.memoizedState===null&&(l=s.alternate,l!==null&&l.memoizedState!==null?(l=R7,R7=16777216,Co(s),R7=l):Co(s));break;default:Co(s)}}function Aa(s){var l=s.alternate;if(l!==null&&(s=l.child,s!==null)){l.child=null;do l=s.sibling,s.sibling=null,s=l;while(s!==null)}}function Er(s){var l=s.deletions;if((s.flags&16)!==0){if(l!==null)for(var f=0;f<l.length;f++){var y=l[f];Oc=y,Y(y,s)}Aa(s)}if(s.subtreeFlags&10256)for(s=s.child;s!==null;)w(s),s=s.sibling}function w(s){switch(s.tag){case 0:case 11:case 15:Er(s),s.flags&2048&&m0(s,s.return,uc|Cp);break;case 3:var l=ko();Er(s),s.stateNode.passiveEffectDuration+=ta(l);break;case 12:l=ko(),Er(s),s.stateNode.passiveEffectDuration+=lb(l);break;case 22:l=s.stateNode,s.memoizedState!==null&&l._visibility&Nb&&(s.return===null||s.return.tag!==13)?(l._visibility&=~Nb,S(s)):Er(s);break;default:Er(s)}}function S(s){var l=s.deletions;if((s.flags&16)!==0){if(l!==null)for(var f=0;f<l.length;f++){var y=l[f];Oc=y,Y(y,s)}Aa(s)}for(s=s.child;s!==null;)M(s),s=s.sibling}function M(s){switch(s.tag){case 0:case 11:case 15:m0(s,s.return,uc),S(s);break;case 22:var l=s.stateNode;l._visibility&Nb&&(l._visibility&=~Nb,S(s));break;default:S(s)}}function Y(s,l){for(;Oc!==null;){var f=Oc,y=f;switch(y.tag){case 0:case 11:case 15:m0(y,l,uc);break;case 23:case 22:y.memoizedState!==null&&y.memoizedState.cachePool!==null&&(y=y.memoizedState.cachePool.pool,y!=null&&nl(y));break;case 24:Jf(y.memoizedState.cache)}if(y=f.child,y!==null)y.return=f,Oc=y;else e:for(f=s;Oc!==null;){y=Oc;var v=y.sibling,A=y.return;if(oe(y),y===f){Oc=null;break e}if(v!==null){v.return=A,Oc=v;break e}Oc=A}}}function re(){TFe.forEach(function(s){return s()})}function ue(){var s=typeof IS_REACT_ACT_ENVIRONMENT<\"u\"?IS_REACT_ACT_ENVIRONMENT:void 0;return s||$e.actQueue===null||console.error(\"The current testing environment is not configured to support act(...)\"),s}function Ee(s){if((Oo&ad)!==hh&&Rr!==0)return Rr&-Rr;var l=$e.T;return l!==null?(l._updatedFibers||(l._updatedFibers=new Set),l._updatedFibers.add(s),s=XE,s!==0?s:Tc()):hi()}function Ae(){mh===0&&(mh=(Rr&536870912)===0||Qr?zt():536870912);var s=Tp.current;return s!==null&&(s.flags|=32),mh}function Le(s,l,f){if(H_&&console.error(\"useInsertionEffect must not schedule updates.\"),YK&&(TN=!0),(s===wi&&(Fo===o5||Fo===i5)||s.cancelPendingCommit!==null)&&(kn(s,0),_t(s,Rr,mh,!1)),qt(s,f),(Oo&ad)!==0&&s===wi){if(yy)switch(l.tag){case 0:case 11:case 15:s=kr&&Z(kr)||\"Unknown\",Xle.has(s)||(Xle.add(s),l=Z(l)||\"Unknown\",console.error(\"Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render\",l,s,s));break;case 1:Jle||(console.error(\"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.\"),Jle=!0)}}else S0&&Zs(s,l,f),Ra(l),s===wi&&((Oo&ad)===hh&&(Sw|=f),Ds===r5&&_t(s,Rr,mh,!1)),sa(s)}function Ie(s,l,f){if((Oo&(ad|R0))!==hh)throw Error(\"Should not already be working.\");var y=!f&&(l&124)===0&&(l&s.expiredLanes)===0||Ze(s,l),v=y?os(s,l):Lr(s,l,!0),A=y;do{if(v===zb){j_&&!y&&_t(s,l,0,!1);break}else{if(f=s.current.alternate,A&&!ut(f)){v=Lr(s,l,!1),A=!1;continue}if(v===F_){if(A=l,s.errorRecoveryDisabledLanes&A)var K=0;else K=s.pendingLanes&-536870913,K=K!==0?K:K&536870912?536870912:0;if(K!==0){l=K;e:{v=s;var te=K;K=L7;var fe=v.current.memoizedState.isDehydrated;if(fe&&(kn(v,te).flags|=256),te=Lr(v,te,!1),te!==F_){if(qK&&!fe){v.errorRecoveryDisabledLanes|=A,Sw|=A,v=r5;break e}v=cd,cd=K,v!==null&&(cd===null?cd=v:cd.push.apply(cd,v))}v=te}if(A=!1,v!==F_)continue}}if(v===O7){kn(s,0),_t(s,l,0,!0);break}e:{switch(y=s,v){case zb:case O7:throw Error(\"Root did not complete. This is a bug in React.\");case r5:if((l&4194048)!==l)break;case _N:_t(y,l,mh,!xw);break e;case F_:cd=null;break;case jK:case Wle:break;default:throw Error(\"Unknown root exit status.\")}if($e.actQueue!==null)mo(y,f,l,cd,B7,CN,mh,Sw,s5);else{if((l&62914560)===l&&(A=VK+$le-py(),10<A)){if(_t(y,l,mh,!xw),dt(y,0,!0)!==0)break e;y.timeoutHandle=aue(pt.bind(null,y,f,cd,B7,CN,l,mh,Sw,s5,xw,v,PFe,Gce,0),A);break e}pt(y,f,cd,B7,CN,l,mh,Sw,s5,xw,v,IFe,Gce,0)}}}break}while(!0);sa(s)}function pt(s,l,f,y,v,A,K,te,fe,me,Ue,Ke,Fe,Qe){if(s.timeoutHandle=d5,Ke=l.subtreeFlags,(Ke&8192||(Ke&16785408)===16785408)&&(H7={stylesheets:null,count:0,unsuspend:ZBe},_c(l),Ke=QBe(),Ke!==null)){s.cancelPendingCommit=Ke(mo.bind(null,s,l,A,f,y,v,K,te,fe,Ue,OFe,Fe,Qe)),_t(s,A,K,!me);return}mo(s,l,A,f,y,v,K,te,fe)}function ut(s){for(var l=s;;){var f=l.tag;if((f===0||f===11||f===15)&&l.flags&16384&&(f=l.updateQueue,f!==null&&(f=f.stores,f!==null)))for(var y=0;y<f.length;y++){var v=f[y],A=v.getSnapshot;v=v.value;try{if(!od(A(),v))return!1}catch{return!1}}if(f=l.child,l.subtreeFlags&16384&&f!==null)f.return=l,l=f;else{if(l===s)break;for(;l.sibling===null;){if(l.return===null||l.return===s)return!0;l=l.return}l.sibling.return=l.return,l=l.sibling}}return!0}function _t(s,l,f,y){l&=~WK,l&=~Sw,s.suspendedLanes|=l,s.pingedLanes&=~l,y&&(s.warmLanes|=l),y=s.expirationTimes;for(var v=l;0<v;){var A=31-nd(v),K=1<<A;y[A]=-1,v&=~K}f!==0&&zn(s,f,l)}function bt(){return(Oo&(ad|R0))===hh?(To(0,!1),!1):!0}function rt(){if(kr!==null){if(Fo===df)var s=kr.return;else s=kr,ab(),nc(s),O_=null,A7=0,s=kr;for(;s!==null;)_b(s.alternate,s),s=s.return;kr=null}}function kn(s,l){var f=s.timeoutHandle;f!==d5&&(s.timeoutHandle=d5,VFe(f)),f=s.cancelPendingCommit,f!==null&&(s.cancelPendingCommit=null,f()),rt(),wi=s,kr=f=wa(s.current,null),Rr=l,Fo=df,ph=null,xw=!1,j_=Ze(s,l),qK=!1,Ds=zb,s5=mh=WK=Sw=Ew=0,cd=L7=null,CN=!1,(l&8)!==0&&(l|=l&32);var y=s.entangledLanes;if(y!==0)for(s=s.entanglements,y&=l;0<y;){var v=31-nd(y),A=1<<v;l|=s[v],y&=~A}return Ey=l,Km(),l=$ce(),1e3<l-Vce&&($e.recentlyCreatedOwnerStacks=0,Vce=l),C0.discardPendingWarnings(),f}function Tr(s,l){Dn=null,$e.H=SN,$e.getCurrentStack=null,yy=!1,fh=null,l===S7||l===bN?(l=Ea(),Fo=M7):l===Qce?(l=Ea(),Fo=Vle):Fo=l===Lle?HK:l!==null&&typeof l==\"object\"&&typeof l.then==\"function\"?U_:P7,ph=l;var f=kr;if(f===null)Ds=O7,tw(s,Xc(l,s.current));else switch(f.mode&ml&&M2(f),_e(),Fo){case P7:Vt!==null&&typeof Vt.markComponentErrored==\"function\"&&Vt.markComponentErrored(f,l,Rr);break;case o5:case i5:case M7:case U_:case N7:Vt!==null&&typeof Vt.markComponentSuspended==\"function\"&&Vt.markComponentSuspended(f,l,Rr)}}function _n(){var s=$e.H;return $e.H=SN,s===null?SN:s}function Gt(){var s=$e.A;return $e.A=AFe,s}function Bo(){Ds=r5,xw||(Rr&4194048)!==Rr&&Tp.current!==null||(j_=!0),(Ew&134217727)===0&&(Sw&134217727)===0||wi===null||_t(wi,Rr,mh,!1)}function Lr(s,l,f){var y=Oo;Oo|=ad;var v=_n(),A=Gt();if(wi!==s||Rr!==l){if(S0){var K=s.memoizedUpdaters;0<K.size&&(as(s,Rr),K.clear()),Pr(s,l)}B7=null,kn(s,l)}Me(l),l=!1,K=Ds;e:do try{if(Fo!==df&&kr!==null){var te=kr,fe=ph;switch(Fo){case HK:rt(),K=_N;break e;case M7:case o5:case i5:case U_:Tp.current===null&&(l=!0);var me=Fo;if(Fo=df,ph=null,Jo(s,te,fe,me),f&&j_){K=zb;break e}break;default:me=Fo,Fo=df,ph=null,Jo(s,te,fe,me)}}Rn(),K=Ds;break}catch(Ue){Tr(s,Ue)}while(!0);return l&&s.shellSuspendCounter++,ab(),Oo=y,$e.H=v,$e.A=A,qe(),kr===null&&(wi=null,Rr=0,Km()),K}function Rn(){for(;kr!==null;)si(kr)}function os(s,l){var f=Oo;Oo|=ad;var y=_n(),v=Gt();if(wi!==s||Rr!==l){if(S0){var A=s.memoizedUpdaters;0<A.size&&(as(s,Rr),A.clear()),Pr(s,l)}B7=null,AN=py()+Kle,kn(s,l)}else j_=Ze(s,l);Me(l);e:do try{if(Fo!==df&&kr!==null)t:switch(l=kr,A=ph,Fo){case P7:Fo=df,ph=null,Jo(s,l,A,P7);break;case o5:case i5:if(xc(A)){Fo=df,ph=null,gi(l);break}l=function(){Fo!==o5&&Fo!==i5||wi!==s||(Fo=N7),sa(s)},A.then(l,l);break e;case M7:Fo=N7;break e;case Vle:Fo=zK;break e;case N7:xc(A)?(Fo=df,ph=null,gi(l)):(Fo=df,ph=null,Jo(s,l,A,N7));break;case zK:var K=null;switch(kr.tag){case 26:K=kr.memoizedState;case 5:case 27:var te=kr;if(!K||Dae(K)){Fo=df,ph=null;var fe=te.sibling;if(fe!==null)kr=fe;else{var me=te.return;me!==null?(kr=me,yi(me)):kr=null}break t}break;default:console.error(\"Unexpected type of fiber triggered a suspensey commit. This is a bug in React.\")}Fo=df,ph=null,Jo(s,l,A,zK);break;case U_:Fo=df,ph=null,Jo(s,l,A,U_);break;case HK:rt(),Ds=_N;break e;default:throw Error(\"Unexpected SuspendedReason. This is a bug in React.\")}$e.actQueue!==null?Rn():Ps();break}catch(Ue){Tr(s,Ue)}while(!0);return ab(),$e.H=y,$e.A=v,Oo=f,kr!==null?(Vt!==null&&typeof Vt.markRenderYielded==\"function\"&&Vt.markRenderYielded(),zb):(qe(),wi=null,Rr=0,Km(),Ds)}function Ps(){for(;kr!==null&&!hDe();)si(kr)}function si(s){var l=s.alternate;(s.mode&ml)!==Ni?(P2(s),l=jt(s,rw,l,s,Ey),M2(s)):l=jt(s,rw,l,s,Ey),s.memoizedProps=s.pendingProps,l===null?yi(s):kr=l}function gi(s){var l=jt(s,po,s);s.memoizedProps=s.pendingProps,l===null?yi(s):kr=l}function po(s){var l=s.alternate,f=(s.mode&ml)!==Ni;switch(f&&P2(s),s.tag){case 15:case 0:l=oh(l,s,s.pendingProps,s.type,void 0,Rr);break;case 11:l=oh(l,s,s.pendingProps,s.type.render,s.ref,Rr);break;case 5:nc(s);default:_b(l,s),s=kr=aE(s,Ey),l=rw(l,s,Ey)}return f&&M2(s),l}function Jo(s,l,f,y){ab(),nc(l),O_=null,A7=0;var v=l.return;try{if(Zu(s,v,l,f,Rr)){Ds=O7,tw(s,Xc(f,s.current)),kr=null;return}}catch(A){if(v!==null)throw kr=v,A;Ds=O7,tw(s,Xc(f,s.current)),kr=null;return}l.flags&32768?(Qr||y===P7?s=!0:j_||(Rr&536870912)!==0?s=!1:(xw=s=!0,(y===o5||y===i5||y===M7||y===U_)&&(y=Tp.current,y!==null&&y.tag===13&&(y.flags|=16384))),Bn(l,s)):yi(l)}function yi(s){var l=s;do{if((l.flags&32768)!==0){Bn(l,xw);return}var f=l.alternate;if(s=l.return,P2(l),f=jt(l,kb,f,l,Ey),(l.mode&ml)!==Ni&&Ym(l),f!==null){kr=f;return}if(l=l.sibling,l!==null){kr=l;return}kr=l=s}while(l!==null);Ds===zb&&(Ds=Wle)}function Bn(s,l){do{var f=ow(s.alternate,s);if(f!==null){f.flags&=32767,kr=f;return}if((s.mode&ml)!==Ni){Ym(s),f=s.actualDuration;for(var y=s.child;y!==null;)f+=y.actualDuration,y=y.sibling;s.actualDuration=f}if(f=s.return,f!==null&&(f.flags|=32768,f.subtreeFlags=0,f.deletions=null),!l&&(s=s.sibling,s!==null)){kr=s;return}kr=s=f}while(s!==null);Ds=_N,kr=null}function mo(s,l,f,y,v,A,K,te,fe){s.cancelPendingCommit=null;do Ki();while(yl!==a5);if(C0.flushLegacyContextWarning(),C0.flushPendingUnsafeLifecycleWarnings(),(Oo&(ad|R0))!==hh)throw Error(\"Should not already be working.\");if(Vt!==null&&typeof Vt.markCommitStarted==\"function\"&&Vt.markCommitStarted(f),l===null)ye();else{if(f===0&&console.error(\"finishedLanes should not be empty during a commit. This is a bug in React.\"),l===s.current)throw Error(\"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\");if(A=l.lanes|l.childLanes,A|=vK,Wt(s,f,A,K,te,fe),s===wi&&(kr=wi=null,Rr=0),z_=l,_w=s,Cw=f,KK=A,GK=v,Qle=y,(l.subtreeFlags&10256)!==0||(l.flags&10256)!==0?(s.callbackNode=null,s.callbackPriority=0,Cc(u_,function(){return oc(!0),null})):(s.callbackNode=null,s.callbackPriority=0),pN=C_(),y=(l.flags&13878)!==0,(l.subtreeFlags&13878)!==0||y){y=$e.T,$e.T=null,v=Io.p,Io.p=dh,K=Oo,Oo|=R0;try{P(s,l,f)}finally{Oo=K,Io.p=v,$e.T=y}}yl=Gle,Br(),is(),ss()}}function Br(){if(yl===Gle){yl=a5;var s=_w,l=z_,f=Cw,y=(l.flags&13878)!==0;if((l.subtreeFlags&13878)!==0||y){y=$e.T,$e.T=null;var v=Io.p;Io.p=dh;var A=Oo;Oo|=R0;try{B_=f,D_=s,At(l,s),D_=B_=null,f=iG;var K=Dg(s.containerInfo),te=f.focusedElem,fe=f.selectionRange;if(K!==te&&te&&te.ownerDocument&&Bg(te.ownerDocument.documentElement,te)){if(fe!==null&&Gf(te)){var me=fe.start,Ue=fe.end;if(Ue===void 0&&(Ue=me),\"selectionStart\"in te)te.selectionStart=me,te.selectionEnd=Math.min(Ue,te.value.length);else{var Ke=te.ownerDocument||document,Fe=Ke&&Ke.defaultView||window;if(Fe.getSelection){var Qe=Fe.getSelection(),tn=te.textContent.length,On=Math.min(fe.start,tn),xi=fe.end===void 0?On:Math.min(fe.end,tn);!Qe.extend&&On>xi&&(K=xi,xi=On,On=K);var Dr=sE(te,On),Se=sE(te,xi);if(Dr&&Se&&(Qe.rangeCount!==1||Qe.anchorNode!==Dr.node||Qe.anchorOffset!==Dr.offset||Qe.focusNode!==Se.node||Qe.focusOffset!==Se.offset)){var ke=Ke.createRange();ke.setStart(Dr.node,Dr.offset),Qe.removeAllRanges(),On>xi?(Qe.addRange(ke),Qe.extend(Se.node,Se.offset)):(ke.setEnd(Se.node,Se.offset),Qe.addRange(ke))}}}}for(Ke=[],Qe=te;Qe=Qe.parentNode;)Qe.nodeType===1&&Ke.push({element:Qe,left:Qe.scrollLeft,top:Qe.scrollTop});for(typeof te.focus==\"function\"&&te.focus(),te=0;te<Ke.length;te++){var Oe=Ke[te];Oe.element.scrollLeft=Oe.left,Oe.element.scrollTop=Oe.top}}qN=!!oG,iG=oG=null}finally{Oo=A,Io.p=v,$e.T=y}}s.current=l,yl=Zle}}function is(){if(yl===Zle){yl=a5;var s=_w,l=z_,f=Cw,y=(l.flags&8772)!==0;if((l.subtreeFlags&8772)!==0||y){y=$e.T,$e.T=null;var v=Io.p;Io.p=dh;var A=Oo;Oo|=R0;try{Vt!==null&&typeof Vt.markLayoutEffectsStarted==\"function\"&&Vt.markLayoutEffectsStarted(f),B_=f,D_=s,Q(s,l.alternate,l),D_=B_=null,Vt!==null&&typeof Vt.markLayoutEffectsStopped==\"function\"&&Vt.markLayoutEffectsStopped()}finally{Oo=A,Io.p=v,$e.T=y}}yl=Yle}}function ss(){if(yl===MFe||yl===Yle){yl=a5,pDe();var s=_w,l=z_,f=Cw,y=Qle,v=(l.subtreeFlags&10256)!==0||(l.flags&10256)!==0;v?yl=$K:(yl=a5,z_=_w=null,rc(s,s.pendingLanes),c5=0,F7=null);var A=s.pendingLanes;if(A===0&&(kw=null),v||ia(s),v=vr(f),l=l.stateNode,tu&&typeof tu.onCommitFiberRoot==\"function\")try{var K=(l.current.flags&128)===128;switch(v){case dh:var te=Q$;break;case k0:te=J$;break;case gy:te=u_;break;case rN:te=X$;break;default:te=u_}tu.onCommitFiberRoot(d_,l,te,K)}catch(Ke){my||(my=!0,console.error(\"React instrumentation encountered an error: %s\",Ke))}if(S0&&s.memoizedUpdaters.clear(),re(),y!==null){K=$e.T,te=Io.p,Io.p=dh,$e.T=null;try{var fe=s.onRecoverableError;for(l=0;l<y.length;l++){var me=y[l],Ue=Pi(me.stack);jt(me.source,fe,me.value,Ue)}}finally{$e.T=K,Io.p=te}}(Cw&3)!==0&&Ki(),sa(s),A=s.pendingLanes,(f&4194090)!==0&&(A&42)!==0?(gN=!0,s===ZK?D7++:(D7=0,ZK=s)):D7=0,To(0,!1),ye()}}function Pi(s){return s={componentStack:s},Object.defineProperty(s,\"digest\",{get:function(){console.error(\\'You are accessing \"digest\" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.\\')}}),s}function rc(s,l){(s.pooledCacheLanes&=l)===0&&(l=s.pooledCache,l!=null&&(s.pooledCache=null,Jf(l)))}function Ki(s){return Br(),is(),ss(),oc(s)}function oc(){if(yl!==$K)return!1;var s=_w,l=KK;KK=0;var f=vr(Cw),y=gy===0||gy>f?gy:f;f=$e.T;var v=Io.p;try{Io.p=y,$e.T=null,y=GK,GK=null;var A=_w,K=Cw;if(yl=a5,z_=_w=null,Cw=0,(Oo&(ad|R0))!==hh)throw Error(\"Cannot flush passive effects while already rendering.\");YK=!0,TN=!1,Vt!==null&&typeof Vt.markPassiveEffectsStarted==\"function\"&&Vt.markPassiveEffectsStarted(K);var te=Oo;if(Oo|=R0,w(A.current),ro(A,A.current,K,y),Vt!==null&&typeof Vt.markPassiveEffectsStopped==\"function\"&&Vt.markPassiveEffectsStopped(),ia(A),Oo=te,To(0,!1),TN?A===F7?c5++:(c5=0,F7=A):c5=0,TN=YK=!1,tu&&typeof tu.onPostCommitFiberRoot==\"function\")try{tu.onPostCommitFiberRoot(d_,A)}catch(me){my||(my=!0,console.error(\"React instrumentation encountered an error: %s\",me))}var fe=A.current.stateNode;return fe.effectDuration=0,fe.passiveEffectDuration=0,!0}finally{Io.p=v,$e.T=f,rc(s,l)}}function Ju(s,l,f){l=Xc(f,l),l=Gd(s.stateNode,l,2),s=oi(s,l,2),s!==null&&(qt(s,2),sa(s))}function Un(s,l,f){if(H_=!1,s.tag===3)Ju(s,s,f);else{for(;l!==null;){if(l.tag===3){Ju(l,s,f);return}if(l.tag===1){var y=l.stateNode;if(typeof l.type.getDerivedStateFromError==\"function\"||typeof y.componentDidCatch==\"function\"&&(kw===null||!kw.has(y))){s=Xc(f,s),f=hp(2),y=oi(l,f,2),y!==null&&(xb(f,y,l,s),qt(y,2),sa(y));return}}l=l.return}console.error(`Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\\n\\nError message:\\n\\n%s`,f)}}function cl(s,l,f){var y=s.pingCache;if(y===null){y=s.pingCache=new RFe;var v=new Set;y.set(l,v)}else v=y.get(l),v===void 0&&(v=new Set,y.set(l,v));v.has(f)||(qK=!0,v.add(f),y=Ta.bind(null,s,l,f),S0&&as(s,f),l.then(y,y))}function Ta(s,l,f){var y=s.pingCache;y!==null&&y.delete(l),s.pingedLanes|=s.suspendedLanes&f,s.warmLanes&=~f,ue()&&$e.actQueue===null&&console.error(`A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\\n\\nWhen testing, code that resolves suspended data should be wrapped into act(...):\\n\\nact(() => {\\n  /* finish loading suspended data */\\n});\\n/* assert on the output */\\n\\nThis ensures that you\\'re testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act`),wi===s&&(Rr&f)===f&&(Ds===r5||Ds===jK&&(Rr&62914560)===Rr&&py()-VK<$le?(Oo&ad)===hh&&kn(s,0):WK|=f,s5===Rr&&(s5=0)),sa(s)}function Xu(s,l){l===0&&(l=Bt()),s=Rs(s,l),s!==null&&(qt(s,l),sa(s))}function gs(s){var l=s.memoizedState,f=0;l!==null&&(f=l.retryLane),Xu(s,f)}function Mi(s,l){var f=0;switch(s.tag){case 13:var y=s.stateNode,v=s.memoizedState;v!==null&&(f=v.retryLane);break;case 19:y=s.stateNode;break;case 22:y=s.stateNode._retryCache;break;default:throw Error(\"Pinged unknown suspense boundary type. This is probably a bug in React.\")}y!==null&&y.delete(l),Xu(s,f)}function Ao(s,l,f){if((l.subtreeFlags&67117056)!==0)for(l=l.child;l!==null;){var y=s,v=l,A=v.type===JM;A=f||A,v.tag!==22?v.flags&67108864?A&&jt(v,ys,y,v,(v.mode&Hce)===Ni):Ao(y,v,A):v.memoizedState===null&&(A&&v.flags&8192?jt(v,ys,y,v):v.subtreeFlags&67108864&&jt(v,Ao,y,v,A)),l=l.sibling}}function ys(s,l){var f=2<arguments.length&&arguments[2]!==void 0?arguments[2]:!0;se(!0);try{Kn(l),f&&M(l),mn(s,l.alternate,l,!1),f&&$i(s,l,0,null,!1,0)}finally{se(!1)}}function ia(s){var l=!0;s.current.mode&(ru|_0)||(l=!1),Ao(s,s.current,l)}function $l(s){if((Oo&ad)===hh){var l=s.tag;if(l===3||l===1||l===0||l===11||l===14||l===15){if(l=Z(s)||\"ReactComponent\",RN!==null){if(RN.has(l))return;RN.add(l)}else RN=new Set([l]);jt(s,function(){console.error(\"Can\\'t perform a React state update on a component that hasn\\'t mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.\")})}}}function as(s,l){S0&&s.memoizedUpdaters.forEach(function(f){Zs(s,f,l)})}function Cc(s,l){var f=$e.actQueue;return f!==null?(f.push(l),BFe):Y$(s,l)}function Ra(s){ue()&&$e.actQueue===null&&jt(s,function(){console.error(`An update to %s inside a test was not wrapped in act(...).\\n\\nWhen testing, code that causes React state updates should be wrapped into act(...):\\n\\nact(() => {\\n  /* fire events that update state */\\n});\\n/* assert on the output */\\n\\nThis ensures that you\\'re testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act`,Z(s))})}function sa(s){s!==q_&&s.next===null&&(q_===null?IN=q_=s:q_=q_.next=s),ON=!0,$e.actQueue!==null?JK||(JK=!0,ll()):QK||(QK=!0,ll())}function To(s,l){if(!XK&&ON){XK=!0;do for(var f=!1,y=IN;y!==null;){if(!l)if(s!==0){var v=y.pendingLanes;if(v===0)var A=0;else{var K=y.suspendedLanes,te=y.pingedLanes;A=(1<<31-nd(42|s)+1)-1,A&=v&~(K&~te),A=A&201326741?A&201326741|1:A?A|2:0}A!==0&&(f=!0,Kl(y,A))}else A=Rr,A=dt(y,y===wi?A:0,y.cancelPendingCommit!==null||y.timeoutHandle!==d5),(A&3)===0||Ze(y,A)||(f=!0,Kl(y,A));y=y.next}while(f);XK=!1}}function Ms(){ic()}function ic(){ON=JK=QK=!1;var s=0;l5!==0&&(tf()&&(s=l5),l5=0);for(var l=py(),f=null,y=IN;y!==null;){var v=y.next,A=Ac(y,l);A===0?(y.next=null,f===null?IN=v:f.next=v,v===null&&(q_=f)):(f=y,(s!==0||(A&3)!==0)&&(ON=!0)),y=v}To(s,!1)}function Ac(s,l){for(var f=s.suspendedLanes,y=s.pingedLanes,v=s.expirationTimes,A=s.pendingLanes&-62914561;0<A;){var K=31-nd(A),te=1<<K,fe=v[K];fe===-1?((te&f)===0||(te&y)!==0)&&(v[K]=rn(te,l)):fe<=l&&(s.expiredLanes|=te),A&=~te}if(l=wi,f=Rr,f=dt(s,s===l?f:0,s.cancelPendingCommit!==null||s.timeoutHandle!==d5),y=s.callbackNode,f===0||s===l&&(Fo===o5||Fo===i5)||s.cancelPendingCommit!==null)return y!==null&&aa(y),s.callbackNode=null,s.callbackPriority=0;if((f&3)===0||Ze(s,f)){if(l=f&-f,l!==s.callbackPriority||$e.actQueue!==null&&y!==eG)aa(y);else return l;switch(vr(f)){case dh:case k0:f=J$;break;case gy:f=u_;break;case rN:f=X$;break;default:f=u_}return y=sc.bind(null,s),$e.actQueue!==null?($e.actQueue.push(y),f=eG):f=Y$(f,y),s.callbackPriority=l,s.callbackNode=f,l}return y!==null&&aa(y),s.callbackPriority=2,s.callbackNode=null,2}function sc(s,l){if(gN=mN=!1,yl!==a5&&yl!==$K)return s.callbackNode=null,s.callbackPriority=0,null;var f=s.callbackNode;if(Ki(!0)&&s.callbackNode!==f)return null;var y=Rr;return y=dt(s,s===wi?y:0,s.cancelPendingCommit!==null||s.timeoutHandle!==d5),y===0?null:(Ie(s,y,l),Ac(s,py()),s.callbackNode!=null&&s.callbackNode===f?sc.bind(null,s):null)}function Kl(s,l){if(Ki())return null;mN=gN,gN=!1,Ie(s,l,!0)}function aa(s){s!==eG&&s!==null&&fDe(s)}function ll(){$e.actQueue!==null&&$e.actQueue.push(function(){return ic(),null}),$Fe(function(){(Oo&(ad|R0))!==hh?Y$(Q$,Ms):ic()})}function Tc(){return l5===0&&(l5=zt()),l5}function ul(s){return s==null||typeof s==\"symbol\"||typeof s==\"boolean\"?null:typeof s==\"function\"?s:(I(s,\"action\"),zm(\"\"+s))}function dl(s,l){var f=l.ownerDocument.createElement(\"input\");return f.name=l.name,f.value=l.value,s.id&&f.setAttribute(\"form\",s.id),l.parentNode.insertBefore(f,l),s=new FormData(s),f.parentNode.removeChild(f),s}function Ia(s,l,f,y,v){if(l===\"submit\"&&f&&f.stateNode===v){var A=ul((v[cf]||null).action),K=y.submitter;K&&(l=(l=K[cf]||null)?ul(l.formAction):K.getAttribute(\"formAction\"),l!==null&&(A=l,K=null));var te=new cN(\"action\",\"action\",null,y,v);s.push({event:te,listeners:[{instance:null,listener:function(){if(y.defaultPrevented){if(l5!==0){var fe=K?dl(v,K):new FormData(v),me={pending:!0,data:fe,method:v.method,action:A};Object.freeze(me),Yg(f,me,null,fe)}}else typeof A==\"function\"&&(te.preventDefault(),fe=K?dl(v,K):new FormData(v),me={pending:!0,data:fe,method:v.method,action:A},Object.freeze(me),Yg(f,me,A,fe))},currentTarget:v}]})}}function ca(s,l,f){s.currentTarget=f;try{l(s)}catch(y){LK(y)}s.currentTarget=null}function ah(s,l){l=(l&4)!==0;for(var f=0;f<s.length;f++){var y=s[f];e:{var v=void 0,A=y.event;if(y=y.listeners,l)for(var K=y.length-1;0<=K;K--){var te=y[K],fe=te.instance,me=te.currentTarget;if(te=te.listener,fe!==v&&A.isPropagationStopped())break e;fe!==null?jt(fe,ca,A,te,me):ca(A,te,me),v=fe}else for(K=0;K<y.length;K++){if(te=y[K],fe=te.instance,me=te.currentTarget,te=te.listener,fe!==v&&A.isPropagationStopped())break e;fe!==null?jt(fe,ca,A,te,me):ca(A,te,me),v=fe}}}}function pn(s,l){tG.has(s)||console.error(\\'Did not expect a listenToNonDelegatedEvent() call for \"%s\". This is a bug in React. Please file an issue.\\',s);var f=l[eK];f===void 0&&(f=l[eK]=new Set);var y=s+\"__bubble\";f.has(y)||(gp(l,s,2,!1),f.add(y))}function Gl(s,l,f){tG.has(s)&&!l&&console.error(\\'Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. This is a bug in React. Please file an issue.\\',s);var y=0;l&&(y|=4),gp(f,s,y,l)}function Zl(s){if(!s[PN]){s[PN]=!0,Yae.forEach(function(f){f!==\"selectionchange\"&&(tG.has(f)||Gl(f,!1,s),Gl(f,!0,s))});var l=s.nodeType===9?s:s.ownerDocument;l===null||l[PN]||(l[PN]=!0,Gl(\"selectionchange\",!1,l))}}function gp(s,l,f,y){switch(Hae(l)){case dh:var v=nDe;break;case k0:v=rDe;break;default:v=F$}f=v.bind(null,l,f,s),v=void 0,!cK||l!==\"touchstart\"&&l!==\"touchmove\"&&l!==\"wheel\"||(v=!0),y?v!==void 0?s.addEventListener(l,f,{capture:!0,passive:v}):s.addEventListener(l,f,!0):v!==void 0?s.addEventListener(l,f,{passive:v}):s.addEventListener(l,f,!1)}function ac(s,l,f,y,v){var A=y;if((l&1)===0&&(l&2)===0&&y!==null)e:for(;;){if(y===null)return;var K=y.tag;if(K===3||K===4){var te=y.stateNode.containerInfo;if(te===v)break;if(K===4)for(K=y.return;K!==null;){var fe=K.tag;if((fe===3||fe===4)&&K.stateNode.containerInfo===v)return;K=K.return}for(;te!==null;){if(K=Ri(te),K===null)return;if(fe=K.tag,fe===5||fe===6||fe===26||fe===27){y=A=K;continue e}te=te.parentNode}}y=y.return}Ig(function(){var me=A,Ue=Qh(f),Ke=[];e:{var Fe=zce.get(s);if(Fe!==void 0){var Qe=cN,tn=s;switch(s){case\"keypress\":if(Kf(f)===0)break e;case\"keydown\":case\"keyup\":Qe=XDe;break;case\"focusin\":tn=\"focus\",Qe=fK;break;case\"focusout\":tn=\"blur\",Qe=fK;break;case\"beforeblur\":case\"afterblur\":Qe=fK;break;case\"click\":if(f.button===2)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":Qe=Ace;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":Qe=zDe;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":Qe=nFe;break;case Dce:case Fce:case Uce:Qe=WDe;break;case jce:Qe=oFe;break;case\"scroll\":case\"scrollend\":Qe=UDe;break;case\"wheel\":Qe=sFe;break;case\"copy\":case\"cut\":case\"paste\":Qe=$De;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":Qe=Rce;break;case\"toggle\":case\"beforetoggle\":Qe=cFe}var On=(l&4)!==0,xi=!On&&(s===\"scroll\"||s===\"scrollend\"),Dr=On?Fe!==null?Fe+\"Capture\":null:Fe;On=[];for(var Se=me,ke;Se!==null;){var Oe=Se;if(ke=Oe.stateNode,Oe=Oe.tag,Oe!==5&&Oe!==26&&Oe!==27||ke===null||Dr===null||(Oe=$f(Se,Dr),Oe!=null&&On.push(Yl(Se,Oe,ke))),xi)break;Se=Se.return}0<On.length&&(Fe=new Qe(Fe,tn,null,f,Ue),Ke.push({event:Fe,listeners:On}))}}if((l&7)===0){e:{if(Fe=s===\"mouseover\"||s===\"pointerover\",Qe=s===\"mouseout\"||s===\"pointerout\",Fe&&f!==c7&&(tn=f.relatedTarget||f.fromElement)&&(Ri(tn)||tn[mw]))break e;if((Qe||Fe)&&(Fe=Ue.window===Ue?Ue:(Fe=Ue.ownerDocument)?Fe.defaultView||Fe.parentWindow:window,Qe?(tn=f.relatedTarget||f.toElement,Qe=me,tn=tn?Ri(tn):null,tn!==null&&(xi=R(tn),On=tn.tag,tn!==xi||On!==5&&On!==27&&On!==6)&&(tn=null)):(Qe=null,tn=me),Qe!==tn)){if(On=Ace,Oe=\"onMouseLeave\",Dr=\"onMouseEnter\",Se=\"mouse\",(s===\"pointerout\"||s===\"pointerover\")&&(On=Rce,Oe=\"onPointerLeave\",Dr=\"onPointerEnter\",Se=\"pointer\"),xi=Qe==null?Fe:Te(Qe),ke=tn==null?Fe:Te(tn),Fe=new On(Oe,Se+\"leave\",Qe,f,Ue),Fe.target=xi,Fe.relatedTarget=ke,Oe=null,Ri(Ue)===me&&(On=new On(Dr,Se+\"enter\",tn,f,Ue),On.target=ke,On.relatedTarget=xi,Oe=On),xi=Oe,Qe&&tn)t:{for(On=Qe,Dr=tn,Se=0,ke=On;ke;ke=bs(ke))Se++;for(ke=0,Oe=Dr;Oe;Oe=bs(Oe))ke++;for(;0<Se-ke;)On=bs(On),Se--;for(;0<ke-Se;)Dr=bs(Dr),ke--;for(;Se--;){if(On===Dr||Dr!==null&&On===Dr.alternate)break t;On=bs(On),Dr=bs(Dr)}On=null}else On=null;Qe!==null&&Do(Ke,Fe,Qe,On,!1),tn!==null&&xi!==null&&Do(Ke,xi,tn,On,!0)}}e:{if(Fe=me?Te(me):window,Qe=Fe.nodeName&&Fe.nodeName.toLowerCase(),Qe===\"select\"||Qe===\"input\"&&Fe.type===\"file\")var Je=nb;else if(tb(Fe))if(Lce)Je=T2;else{Je=Fk;var Pt=iE}else Qe=Fe.nodeName,!Qe||Qe.toLowerCase()!==\"input\"||Fe.type!==\"checkbox\"&&Fe.type!==\"radio\"?me&&Ul(me.elementType)&&(Je=nb):Je=Vm;if(Je&&(Je=Je(s,me))){A2(Ke,Je,f,Ue);break e}Pt&&Pt(s,Fe,me),s===\"focusout\"&&me&&Fe.type===\"number\"&&me.memoizedProps.value!=null&&Yc(Fe,\"number\",Fe.value)}switch(Pt=me?Te(me):window,s){case\"focusin\":(tb(Pt)||Pt.contentEditable===\"true\")&&(b_=Pt,pK=me,m7=null);break;case\"focusout\":m7=pK=b_=null;break;case\"mousedown\":mK=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":mK=!1,op(Ke,f,Ue);break;case\"selectionchange\":if(fFe)break;case\"keydown\":case\"keyup\":op(Ke,f,Ue)}var Hn;if(hK)e:{switch(s){case\"compositionstart\":var nn=\"onCompositionStart\";break e;case\"compositionend\":nn=\"onCompositionEnd\";break e;case\"compositionupdate\":nn=\"onCompositionUpdate\";break e}nn=void 0}else y_?Wm(s,f)&&(nn=\"onCompositionEnd\"):s===\"keydown\"&&f.keyCode===Ice&&(nn=\"onCompositionStart\");nn&&(Oce&&f.locale!==\"ko\"&&(y_||nn!==\"onCompositionStart\"?nn===\"onCompositionEnd\"&&y_&&(Hn=Hm()):(gw=Ue,lK=\"value\"in gw?gw.value:gw.textContent,y_=!0)),Pt=cs(me,nn),0<Pt.length&&(nn=new Tce(nn,s,null,f,Ue),Ke.push({event:nn,listeners:Pt}),Hn?nn.data=Hn:(Hn=Xh(f),Hn!==null&&(nn.data=Hn)))),(Hn=uFe?Pg(s,f):Mg(s,f))&&(nn=cs(me,\"onBeforeInput\"),0<nn.length&&(Pt=new GDe(\"onBeforeInput\",\"beforeinput\",null,f,Ue),Ke.push({event:Pt,listeners:nn}),Pt.data=Hn)),Ia(Ke,s,me,f,Ue)}ah(Ke,l)})}function Yl(s,l,f){return{instance:s,listener:l,currentTarget:f}}function cs(s,l){for(var f=l+\"Capture\",y=[];s!==null;){var v=s,A=v.stateNode;if(v=v.tag,v!==5&&v!==26&&v!==27||A===null||(v=$f(s,f),v!=null&&y.unshift(Yl(s,v,A)),v=$f(s,l),v!=null&&y.push(Yl(s,v,A))),s.tag===3)return y;s=s.return}return[]}function bs(s){if(s===null)return null;do s=s.return;while(s&&s.tag!==5&&s.tag!==27);return s||null}function Do(s,l,f,y,v){for(var A=l._reactName,K=[];f!==null&&f!==y;){var te=f,fe=te.alternate,me=te.stateNode;if(te=te.tag,fe!==null&&fe===y)break;te!==5&&te!==26&&te!==27||me===null||(fe=me,v?(me=$f(f,A),me!=null&&K.unshift(Yl(f,me,fe))):v||(me=$f(f,A),me!=null&&K.push(Yl(f,me,fe)))),f=f.return}K.length!==0&&s.push({event:l,listeners:K})}function bi(s,l){rE(s,l),s!==\"input\"&&s!==\"textarea\"&&s!==\"select\"||l==null||l.value!==null||_ce||(_ce=!0,s===\"select\"&&l.multiple?console.error(\"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",s):console.error(\"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",s));var f={registrationNameDependencies:GE,possibleRegistrationNames:tK};Ul(s)||typeof l.is==\"string\"||Xa(s,l,f),l.contentEditable&&!l.suppressContentEditableWarning&&l.children!=null&&console.error(\"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\")}function Sr(s,l,f,y){l!==f&&(f=Ns(f),Ns(l)!==f&&(y[s]=l))}function b0(s,l,f){l.forEach(function(y){f[ed(y)]=y===\"style\"?Qd(s):s.getAttribute(y)})}function vi(s,l){l===!1?console.error(\"Expected `%s` listener to be a function, instead got `false`.\\\\n\\\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.\",s,s,s):console.error(\"Expected `%s` listener to be a function, instead got a value of `%s` type.\",s,typeof l)}function fl(s,l){return s=s.namespaceURI===iN||s.namespaceURI===h_?s.ownerDocument.createElementNS(s.namespaceURI,s.tagName):s.ownerDocument.createElement(s.tagName),s.innerHTML=l,s.innerHTML}function Ns(s){return q(s)&&(console.error(\"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",j(s)),H(s)),(typeof s==\"string\"?s:\"\"+s).replace(DFe,`\\n`).replace(FFe,\"\")}function v0(s,l){return l=Ns(l),Ns(s)===l}function Xo(){}function hr(s,l,f,y,v,A){switch(f){case\"children\":typeof y==\"string\"?(Hd(y,l,!1),l===\"body\"||l===\"textarea\"&&y===\"\"||Vf(s,y)):(typeof y==\"number\"||typeof y==\"bigint\")&&(Hd(\"\"+y,l,!1),l!==\"body\"&&Vf(s,\"\"+y));break;case\"className\":en(s,\"class\",y);break;case\"tabIndex\":en(s,\"tabindex\",y);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":en(s,f,y);break;case\"style\":ms(s,y,A);break;case\"data\":if(l!==\"object\"){en(s,\"data\",y);break}case\"src\":case\"href\":if(y===\"\"&&(l!==\"a\"||f!==\"href\")){console.error(f===\"src\"?\\'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\':\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',f,f),s.removeAttribute(f);break}if(y==null||typeof y==\"function\"||typeof y==\"symbol\"||typeof y==\"boolean\"){s.removeAttribute(f);break}I(y,f),y=zm(\"\"+y),s.setAttribute(f,y);break;case\"action\":case\"formAction\":if(y!=null&&(l===\"form\"?f===\"formAction\"?console.error(\"You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>.\"):typeof y==\"function\"&&(v.encType==null&&v.method==null||LN||(LN=!0,console.error(\"Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.\")),v.target==null||NN||(NN=!0,console.error(\"Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.\"))):l===\"input\"||l===\"button\"?f===\"action\"?console.error(\"You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>.\"):l!==\"input\"||v.type===\"submit\"||v.type===\"image\"||MN?l!==\"button\"||v.type==null||v.type===\"submit\"||MN?typeof y==\"function\"&&(v.name==null||nue||(nue=!0,console.error(\\'Cannot specify a \"name\" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.\\')),v.formEncType==null&&v.formMethod==null||LN||(LN=!0,console.error(\"Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.\")),v.formTarget==null||NN||(NN=!0,console.error(\"Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.\"))):(MN=!0,console.error(\\'A button can only specify a formAction along with type=\"submit\" or no type.\\')):(MN=!0,console.error(\\'An input can only specify a formAction along with type=\"submit\" or type=\"image\".\\')):console.error(f===\"action\"?\"You can only pass the action prop to <form>.\":\"You can only pass the formAction prop to <input> or <button>.\")),typeof y==\"function\"){s.setAttribute(f,\"javascript:throw new Error(\\'A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\\\\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().\\')\");break}else typeof A==\"function\"&&(f===\"formAction\"?(l!==\"input\"&&hr(s,l,\"name\",v.name,v,null),hr(s,l,\"formEncType\",v.formEncType,v,null),hr(s,l,\"formMethod\",v.formMethod,v,null),hr(s,l,\"formTarget\",v.formTarget,v,null)):(hr(s,l,\"encType\",v.encType,v,null),hr(s,l,\"method\",v.method,v,null),hr(s,l,\"target\",v.target,v,null)));if(y==null||typeof y==\"symbol\"||typeof y==\"boolean\"){s.removeAttribute(f);break}I(y,f),y=zm(\"\"+y),s.setAttribute(f,y);break;case\"onClick\":y!=null&&(typeof y!=\"function\"&&vi(f,y),s.onclick=Xo);break;case\"onScroll\":y!=null&&(typeof y!=\"function\"&&vi(f,y),pn(\"scroll\",s));break;case\"onScrollEnd\":y!=null&&(typeof y!=\"function\"&&vi(f,y),pn(\"scrollend\",s));break;case\"dangerouslySetInnerHTML\":if(y!=null){if(typeof y!=\"object\"||!(\"__html\"in y))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");if(f=y.__html,f!=null){if(v.children!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");s.innerHTML=f}}break;case\"multiple\":s.multiple=y&&typeof y!=\"function\"&&typeof y!=\"symbol\";break;case\"muted\":s.muted=y&&typeof y!=\"function\"&&typeof y!=\"symbol\";break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":break;case\"autoFocus\":break;case\"xlinkHref\":if(y==null||typeof y==\"function\"||typeof y==\"boolean\"||typeof y==\"symbol\"){s.removeAttribute(\"xlink:href\");break}I(y,f),f=zm(\"\"+y),s.setAttributeNS(u5,\"xlink:href\",f);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":y!=null&&typeof y!=\"function\"&&typeof y!=\"symbol\"?(I(y,f),s.setAttribute(f,\"\"+y)):s.removeAttribute(f);break;case\"inert\":y!==\"\"||BN[f]||(BN[f]=!0,console.error(\"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",f));case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":y&&typeof y!=\"function\"&&typeof y!=\"symbol\"?s.setAttribute(f,\"\"):s.removeAttribute(f);break;case\"capture\":case\"download\":y===!0?s.setAttribute(f,\"\"):y!==!1&&y!=null&&typeof y!=\"function\"&&typeof y!=\"symbol\"?(I(y,f),s.setAttribute(f,y)):s.removeAttribute(f);break;case\"cols\":case\"rows\":case\"size\":case\"span\":y!=null&&typeof y!=\"function\"&&typeof y!=\"symbol\"&&!isNaN(y)&&1<=y?(I(y,f),s.setAttribute(f,y)):s.removeAttribute(f);break;case\"rowSpan\":case\"start\":y==null||typeof y==\"function\"||typeof y==\"symbol\"||isNaN(y)?s.removeAttribute(f):(I(y,f),s.setAttribute(f,y));break;case\"popover\":pn(\"beforetoggle\",s),pn(\"toggle\",s),Fn(s,\"popover\",y);break;case\"xlinkActuate\":ni(s,u5,\"xlink:actuate\",y);break;case\"xlinkArcrole\":ni(s,u5,\"xlink:arcrole\",y);break;case\"xlinkRole\":ni(s,u5,\"xlink:role\",y);break;case\"xlinkShow\":ni(s,u5,\"xlink:show\",y);break;case\"xlinkTitle\":ni(s,u5,\"xlink:title\",y);break;case\"xlinkType\":ni(s,u5,\"xlink:type\",y);break;case\"xmlBase\":ni(s,nG,\"xml:base\",y);break;case\"xmlLang\":ni(s,nG,\"xml:lang\",y);break;case\"xmlSpace\":ni(s,nG,\"xml:space\",y);break;case\"is\":A!=null&&console.error(\\'Cannot update the \"is\" prop after it has been initialized.\\'),Fn(s,\"is\",y);break;case\"innerText\":case\"textContent\":break;case\"popoverTarget\":rue||y==null||typeof y!=\"object\"||(rue=!0,console.error(\"The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.\",y));default:!(2<f.length)||f[0]!==\"o\"&&f[0]!==\"O\"||f[1]!==\"n\"&&f[1]!==\"N\"?(f=ba(f),Fn(s,f,y)):GE.hasOwnProperty(f)&&y!=null&&typeof y!=\"function\"&&vi(f,y)}}function Ql(s,l,f,y,v,A){switch(f){case\"style\":ms(s,y,A);break;case\"dangerouslySetInnerHTML\":if(y!=null){if(typeof y!=\"object\"||!(\"__html\"in y))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");if(f=y.__html,f!=null){if(v.children!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");s.innerHTML=f}}break;case\"children\":typeof y==\"string\"?Vf(s,y):(typeof y==\"number\"||typeof y==\"bigint\")&&Vf(s,\"\"+y);break;case\"onScroll\":y!=null&&(typeof y!=\"function\"&&vi(f,y),pn(\"scroll\",s));break;case\"onScrollEnd\":y!=null&&(typeof y!=\"function\"&&vi(f,y),pn(\"scrollend\",s));break;case\"onClick\":y!=null&&(typeof y!=\"function\"&&vi(f,y),s.onclick=Xo);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":break;case\"innerText\":case\"textContent\":break;default:if(GE.hasOwnProperty(f))y!=null&&typeof y!=\"function\"&&vi(f,y);else e:{if(f[0]===\"o\"&&f[1]===\"n\"&&(v=f.endsWith(\"Capture\"),l=f.slice(2,v?f.length-7:void 0),A=s[cf]||null,A=A!=null?A[f]:null,typeof A==\"function\"&&s.removeEventListener(l,A,v),typeof y==\"function\")){typeof A!=\"function\"&&A!==null&&(f in s?s[f]=null:s.hasAttribute(f)&&s.removeAttribute(f)),s.addEventListener(l,y,v);break e}f in s?s[f]=y:y===!0?s.setAttribute(f,\"\"):Fn(s,f,y)}}}function Ro(s,l,f){switch(bi(l,f),l){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":pn(\"error\",s),pn(\"load\",s);var y=!1,v=!1,A;for(A in f)if(f.hasOwnProperty(A)){var K=f[A];if(K!=null)switch(A){case\"src\":y=!0;break;case\"srcSet\":v=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:hr(s,l,A,K,f,null)}}v&&hr(s,l,\"srcSet\",f.srcSet,f,null),y&&hr(s,l,\"src\",f.src,f,null);return;case\"input\":Dt(\"input\",f),pn(\"invalid\",s);var te=A=K=v=null,fe=null,me=null;for(y in f)if(f.hasOwnProperty(y)){var Ue=f[y];if(Ue!=null)switch(y){case\"name\":v=Ue;break;case\"type\":K=Ue;break;case\"checked\":fe=Ue;break;case\"defaultChecked\":me=Ue;break;case\"value\":A=Ue;break;case\"defaultValue\":te=Ue;break;case\"children\":case\"dangerouslySetInnerHTML\":if(Ue!=null)throw Error(l+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");break;default:hr(s,l,y,Ue,f,null)}}qu(s,f),Wu(s,A,te,fe,me,K,v,!1),Cr(s);return;case\"select\":Dt(\"select\",f),pn(\"invalid\",s),y=K=A=null;for(v in f)if(f.hasOwnProperty(v)&&(te=f[v],te!=null))switch(v){case\"value\":A=te;break;case\"defaultValue\":K=te;break;case\"multiple\":y=te;default:hr(s,l,v,te,f,null)}Dl(s,f),l=A,f=K,s.multiple=!!y,l!=null?ya(s,!!y,l,!1):f!=null&&ya(s,!!y,f,!0);return;case\"textarea\":Dt(\"textarea\",f),pn(\"invalid\",s),A=v=y=null;for(K in f)if(f.hasOwnProperty(K)&&(te=f[K],te!=null))switch(K){case\"value\":y=te;break;case\"defaultValue\":v=te;break;case\"children\":A=te;break;case\"dangerouslySetInnerHTML\":if(te!=null)throw Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");break;default:hr(s,l,K,te,f,null)}Ja(s,f),Fd(s,y,v,A),Cr(s);return;case\"option\":Ya(s,f);for(fe in f)if(f.hasOwnProperty(fe)&&(y=f[fe],y!=null))switch(fe){case\"selected\":s.selected=y&&typeof y!=\"function\"&&typeof y!=\"symbol\";break;default:hr(s,l,fe,y,f,null)}return;case\"dialog\":pn(\"beforetoggle\",s),pn(\"toggle\",s),pn(\"cancel\",s),pn(\"close\",s);break;case\"iframe\":case\"object\":pn(\"load\",s);break;case\"video\":case\"audio\":for(y=0;y<U7.length;y++)pn(U7[y],s);break;case\"image\":pn(\"error\",s),pn(\"load\",s);break;case\"details\":pn(\"toggle\",s);break;case\"embed\":case\"source\":case\"link\":pn(\"error\",s),pn(\"load\",s);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(me in f)if(f.hasOwnProperty(me)&&(y=f[me],y!=null))switch(me){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:hr(s,l,me,y,f,null)}return;default:if(Ul(l)){for(Ue in f)f.hasOwnProperty(Ue)&&(y=f[Ue],y!==void 0&&Ql(s,l,Ue,y,f,void 0));return}}for(te in f)f.hasOwnProperty(te)&&(y=f[te],y!=null&&hr(s,l,te,y,f,null))}function ch(s,l,f,y){switch(bi(l,y),l){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var v=null,A=null,K=null,te=null,fe=null,me=null,Ue=null;for(Qe in f){var Ke=f[Qe];if(f.hasOwnProperty(Qe)&&Ke!=null)switch(Qe){case\"checked\":break;case\"value\":break;case\"defaultValue\":fe=Ke;default:y.hasOwnProperty(Qe)||hr(s,l,Qe,null,y,Ke)}}for(var Fe in y){var Qe=y[Fe];if(Ke=f[Fe],y.hasOwnProperty(Fe)&&(Qe!=null||Ke!=null))switch(Fe){case\"type\":A=Qe;break;case\"name\":v=Qe;break;case\"checked\":me=Qe;break;case\"defaultChecked\":Ue=Qe;break;case\"value\":K=Qe;break;case\"defaultValue\":te=Qe;break;case\"children\":case\"dangerouslySetInnerHTML\":if(Qe!=null)throw Error(l+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");break;default:Qe!==Ke&&hr(s,l,Fe,Qe,y,Ke)}}l=f.type===\"checkbox\"||f.type===\"radio\"?f.checked!=null:f.value!=null,y=y.type===\"checkbox\"||y.type===\"radio\"?y.checked!=null:y.value!=null,l||!y||tue||(console.error(\"A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"),tue=!0),!l||y||eue||(console.error(\"A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"),eue=!0),ts(s,K,te,fe,me,Ue,A,v);return;case\"select\":Qe=K=te=Fe=null;for(A in f)if(fe=f[A],f.hasOwnProperty(A)&&fe!=null)switch(A){case\"value\":break;case\"multiple\":Qe=fe;default:y.hasOwnProperty(A)||hr(s,l,A,null,y,fe)}for(v in y)if(A=y[v],fe=f[v],y.hasOwnProperty(v)&&(A!=null||fe!=null))switch(v){case\"value\":Fe=A;break;case\"defaultValue\":te=A;break;case\"multiple\":K=A;default:A!==fe&&hr(s,l,v,A,y,fe)}y=te,l=K,f=Qe,Fe!=null?ya(s,!!l,Fe,!1):!!f!=!!l&&(y!=null?ya(s,!!l,y,!0):ya(s,!!l,l?[]:\"\",!1));return;case\"textarea\":Qe=Fe=null;for(te in f)if(v=f[te],f.hasOwnProperty(te)&&v!=null&&!y.hasOwnProperty(te))switch(te){case\"value\":break;case\"children\":break;default:hr(s,l,te,null,y,v)}for(K in y)if(v=y[K],A=f[K],y.hasOwnProperty(K)&&(v!=null||A!=null))switch(K){case\"value\":Fe=v;break;case\"defaultValue\":Qe=v;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(v!=null)throw Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");break;default:v!==A&&hr(s,l,K,v,y,A)}Fl(s,Fe,Qe);return;case\"option\":for(var tn in f)if(Fe=f[tn],f.hasOwnProperty(tn)&&Fe!=null&&!y.hasOwnProperty(tn))switch(tn){case\"selected\":s.selected=!1;break;default:hr(s,l,tn,null,y,Fe)}for(fe in y)if(Fe=y[fe],Qe=f[fe],y.hasOwnProperty(fe)&&Fe!==Qe&&(Fe!=null||Qe!=null))switch(fe){case\"selected\":s.selected=Fe&&typeof Fe!=\"function\"&&typeof Fe!=\"symbol\";break;default:hr(s,l,fe,Fe,y,Qe)}return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var On in f)Fe=f[On],f.hasOwnProperty(On)&&Fe!=null&&!y.hasOwnProperty(On)&&hr(s,l,On,null,y,Fe);for(me in y)if(Fe=y[me],Qe=f[me],y.hasOwnProperty(me)&&Fe!==Qe&&(Fe!=null||Qe!=null))switch(me){case\"children\":case\"dangerouslySetInnerHTML\":if(Fe!=null)throw Error(l+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");break;default:hr(s,l,me,Fe,y,Qe)}return;default:if(Ul(l)){for(var xi in f)Fe=f[xi],f.hasOwnProperty(xi)&&Fe!==void 0&&!y.hasOwnProperty(xi)&&Ql(s,l,xi,void 0,y,Fe);for(Ue in y)Fe=y[Ue],Qe=f[Ue],!y.hasOwnProperty(Ue)||Fe===Qe||Fe===void 0&&Qe===void 0||Ql(s,l,Ue,Fe,y,Qe);return}}for(var Dr in f)Fe=f[Dr],f.hasOwnProperty(Dr)&&Fe!=null&&!y.hasOwnProperty(Dr)&&hr(s,l,Dr,null,y,Fe);for(Ke in y)Fe=y[Ke],Qe=f[Ke],!y.hasOwnProperty(Ke)||Fe===Qe||Fe==null&&Qe==null||hr(s,l,Ke,Fe,y,Qe)}function ed(s){switch(s){case\"class\":return\"className\";case\"for\":return\"htmlFor\";default:return s}}function Qd(s){var l={};s=s.style;for(var f=0;f<s.length;f++){var y=s[f];l[y]=s.getPropertyValue(y)}return l}function Jd(s,l,f){if(l!=null&&typeof l!=\"object\")console.error(\"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.\");else{var y,v=y=\"\",A;for(A in l)if(l.hasOwnProperty(A)){var K=l[A];K!=null&&typeof K!=\"boolean\"&&K!==\"\"&&(A.indexOf(\"--\")===0?(U(K,A),y+=v+A+\":\"+(\"\"+K).trim()):typeof K!=\"number\"||K===0||Sce.has(A)?(U(K,A),y+=v+A.replace(bce,\"-$1\").toLowerCase().replace(vce,\"-ms-\")+\":\"+(\"\"+K).trim()):y+=v+A.replace(bce,\"-$1\").toLowerCase().replace(vce,\"-ms-\")+\":\"+K+\"px\",v=\";\")}y=y||null,l=s.getAttribute(\"style\"),l!==y&&(y=Ns(y),Ns(l)!==y&&(f.style=Qd(s)))}}function Oa(s,l,f,y,v,A){if(v.delete(f),s=s.getAttribute(f),s===null)switch(typeof y){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":return}else if(y!=null)switch(typeof y){case\"function\":case\"symbol\":case\"boolean\":break;default:if(I(y,l),s===\"\"+y)return}Sr(l,s,y,A)}function Xd(s,l,f,y,v,A){if(v.delete(f),s=s.getAttribute(f),s===null){switch(typeof y){case\"function\":case\"symbol\":return}if(!y)return}else switch(typeof y){case\"function\":case\"symbol\":break;default:if(y)return}Sr(l,s,y,A)}function Jl(s,l,f,y,v,A){if(v.delete(f),s=s.getAttribute(f),s===null)switch(typeof y){case\"undefined\":case\"function\":case\"symbol\":return}else if(y!=null)switch(typeof y){case\"function\":case\"symbol\":break;default:if(I(y,f),s===\"\"+y)return}Sr(l,s,y,A)}function Xl(s,l,f,y,v,A){if(v.delete(f),s=s.getAttribute(f),s===null)switch(typeof y){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":return;default:if(isNaN(y))return}else if(y!=null)switch(typeof y){case\"function\":case\"symbol\":case\"boolean\":break;default:if(!isNaN(y)&&(I(y,l),s===\"\"+y))return}Sr(l,s,y,A)}function cc(s,l,f,y,v,A){if(v.delete(f),s=s.getAttribute(f),s===null)switch(typeof y){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":return}else if(y!=null)switch(typeof y){case\"function\":case\"symbol\":case\"boolean\":break;default:if(I(y,l),f=zm(\"\"+y),s===f)return}Sr(l,s,y,A)}function eu(s,l,f,y){for(var v={},A=new Set,K=s.attributes,te=0;te<K.length;te++)switch(K[te].name.toLowerCase()){case\"value\":break;case\"checked\":break;case\"selected\":break;default:A.add(K[te].name)}if(Ul(l)){for(var fe in f)if(f.hasOwnProperty(fe)){var me=f[fe];if(me!=null){if(GE.hasOwnProperty(fe))typeof me!=\"function\"&&vi(fe,me);else if(f.suppressHydrationWarning!==!0)switch(fe){case\"children\":typeof me!=\"string\"&&typeof me!=\"number\"||Sr(\"children\",s.textContent,me,v);continue;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":continue;case\"dangerouslySetInnerHTML\":K=s.innerHTML,me=me?me.__html:void 0,me!=null&&(me=fl(s,me),Sr(fe,K,me,v));continue;case\"style\":A.delete(fe),Jd(s,me,v);continue;case\"offsetParent\":case\"offsetTop\":case\"offsetLeft\":case\"offsetWidth\":case\"offsetHeight\":case\"isContentEditable\":case\"outerText\":case\"outerHTML\":A.delete(fe.toLowerCase()),console.error(\"Assignment to read-only property will result in a no-op: `%s`\",fe);continue;case\"className\":A.delete(\"class\"),K=bn(s,\"class\",me),Sr(\"className\",K,me,v);continue;default:y.context===qb&&l!==\"svg\"&&l!==\"math\"?A.delete(fe.toLowerCase()):A.delete(fe),K=bn(s,fe,me),Sr(fe,K,me,v)}}}}else for(me in f)if(f.hasOwnProperty(me)&&(fe=f[me],fe!=null)){if(GE.hasOwnProperty(me))typeof fe!=\"function\"&&vi(me,fe);else if(f.suppressHydrationWarning!==!0)switch(me){case\"children\":typeof fe!=\"string\"&&typeof fe!=\"number\"||Sr(\"children\",s.textContent,fe,v);continue;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"value\":case\"checked\":case\"selected\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":continue;case\"dangerouslySetInnerHTML\":K=s.innerHTML,fe=fe?fe.__html:void 0,fe!=null&&(fe=fl(s,fe),K!==fe&&(v[me]={__html:K}));continue;case\"className\":Oa(s,me,\"class\",fe,A,v);continue;case\"tabIndex\":Oa(s,me,\"tabindex\",fe,A,v);continue;case\"style\":A.delete(me),Jd(s,fe,v);continue;case\"multiple\":A.delete(me),Sr(me,s.multiple,fe,v);continue;case\"muted\":A.delete(me),Sr(me,s.muted,fe,v);continue;case\"autoFocus\":A.delete(\"autofocus\"),Sr(me,s.autofocus,fe,v);continue;case\"data\":if(l!==\"object\"){A.delete(me),K=s.getAttribute(\"data\"),Sr(me,K,fe,v);continue}case\"src\":case\"href\":if(!(fe!==\"\"||l===\"a\"&&me===\"href\"||l===\"object\"&&me===\"data\")){console.error(me===\"src\"?\\'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\':\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',me,me);continue}cc(s,me,me,fe,A,v);continue;case\"action\":case\"formAction\":if(K=s.getAttribute(me),typeof fe==\"function\"){A.delete(me.toLowerCase()),me===\"formAction\"?(A.delete(\"name\"),A.delete(\"formenctype\"),A.delete(\"formmethod\"),A.delete(\"formtarget\")):(A.delete(\"enctype\"),A.delete(\"method\"),A.delete(\"target\"));continue}else if(K===UFe){A.delete(me.toLowerCase()),Sr(me,\"function\",fe,v);continue}cc(s,me,me.toLowerCase(),fe,A,v);continue;case\"xlinkHref\":cc(s,me,\"xlink:href\",fe,A,v);continue;case\"contentEditable\":Jl(s,me,\"contenteditable\",fe,A,v);continue;case\"spellCheck\":Jl(s,me,\"spellcheck\",fe,A,v);continue;case\"draggable\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":Jl(s,me,me,fe,A,v);continue;case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":Xd(s,me,me.toLowerCase(),fe,A,v);continue;case\"capture\":case\"download\":e:{te=s;var Ue=K=me,Ke=v;if(A.delete(Ue),te=te.getAttribute(Ue),te===null)switch(typeof fe){case\"undefined\":case\"function\":case\"symbol\":break e;default:if(fe===!1)break e}else if(fe!=null)switch(typeof fe){case\"function\":case\"symbol\":break;case\"boolean\":if(fe===!0&&te===\"\")break e;break;default:if(I(fe,K),te===\"\"+fe)break e}Sr(K,te,fe,Ke)}continue;case\"cols\":case\"rows\":case\"size\":case\"span\":e:{if(te=s,Ue=K=me,Ke=v,A.delete(Ue),te=te.getAttribute(Ue),te===null)switch(typeof fe){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":break e;default:if(isNaN(fe)||1>fe)break e}else if(fe!=null)switch(typeof fe){case\"function\":case\"symbol\":case\"boolean\":break;default:if(!(isNaN(fe)||1>fe)&&(I(fe,K),te===\"\"+fe))break e}Sr(K,te,fe,Ke)}continue;case\"rowSpan\":Xl(s,me,\"rowspan\",fe,A,v);continue;case\"start\":Xl(s,me,me,fe,A,v);continue;case\"xHeight\":Oa(s,me,\"x-height\",fe,A,v);continue;case\"xlinkActuate\":Oa(s,me,\"xlink:actuate\",fe,A,v);continue;case\"xlinkArcrole\":Oa(s,me,\"xlink:arcrole\",fe,A,v);continue;case\"xlinkRole\":Oa(s,me,\"xlink:role\",fe,A,v);continue;case\"xlinkShow\":Oa(s,me,\"xlink:show\",fe,A,v);continue;case\"xlinkTitle\":Oa(s,me,\"xlink:title\",fe,A,v);continue;case\"xlinkType\":Oa(s,me,\"xlink:type\",fe,A,v);continue;case\"xmlBase\":Oa(s,me,\"xml:base\",fe,A,v);continue;case\"xmlLang\":Oa(s,me,\"xml:lang\",fe,A,v);continue;case\"xmlSpace\":Oa(s,me,\"xml:space\",fe,A,v);continue;case\"inert\":fe!==\"\"||BN[me]||(BN[me]=!0,console.error(\"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",me)),Xd(s,me,me,fe,A,v);continue;default:if(!(2<me.length)||me[0]!==\"o\"&&me[0]!==\"O\"||me[1]!==\"n\"&&me[1]!==\"N\"){te=ba(me),K=!1,y.context===qb&&l!==\"svg\"&&l!==\"math\"?A.delete(te.toLowerCase()):(Ue=me.toLowerCase(),Ue=sN.hasOwnProperty(Ue)&&sN[Ue]||null,Ue!==null&&Ue!==me&&(K=!0,A.delete(Ue)),A.delete(te));e:if(Ue=s,Ke=te,te=fe,sn(Ke))if(Ue.hasAttribute(Ke))Ue=Ue.getAttribute(Ke),I(te,Ke),te=Ue===\"\"+te?te:Ue;else{switch(typeof te){case\"function\":case\"symbol\":break e;case\"boolean\":if(Ue=Ke.toLowerCase().slice(0,5),Ue!==\"data-\"&&Ue!==\"aria-\")break e}te=te===void 0?void 0:null}else te=void 0;K||Sr(me,te,fe,v)}}}return 0<A.size&&f.suppressHydrationWarning!==!0&&b0(s,A,v),Object.keys(v).length===0?null:v}function Gi(s,l){switch(s.length){case 0:return\"\";case 1:return s[0];case 2:return s[0]+\" \"+l+\" \"+s[1];default:return s.slice(0,-1).join(\", \")+\", \"+l+\" \"+s[s.length-1]}}function ei(s){return s.nodeType===9?s:s.ownerDocument}function cy(s){switch(s){case h_:return W_;case iN:return UN;default:return qb}}function ef(s,l){if(s===qb)switch(l){case\"svg\":return W_;case\"math\":return UN;default:return qb}return s===W_&&l===\"foreignObject\"?qb:s}function w0(s,l){return s===\"textarea\"||s===\"noscript\"||typeof l.children==\"string\"||typeof l.children==\"number\"||typeof l.children==\"bigint\"||typeof l.dangerouslySetInnerHTML==\"object\"&&l.dangerouslySetInnerHTML!==null&&l.dangerouslySetInnerHTML.__html!=null}function tf(){var s=window.event;return s&&s.type===\"popstate\"?s===sG?!1:(sG=s,!0):(sG=null,!1)}function nf(s){setTimeout(function(){throw s})}function ly(s,l,f){switch(l){case\"button\":case\"input\":case\"select\":case\"textarea\":f.autoFocus&&s.focus();break;case\"img\":f.src?s.src=f.src:f.srcSet&&(s.srcset=f.srcSet)}}function rf(s,l,f,y){ch(s,l,f,y),s[cf]=y}function hl(s){Vf(s,\"\")}function yp(s,l,f){s.nodeValue=f}function of(s){return s===\"head\"}function x0(s,l){s.removeChild(l)}function Rb(s,l){(s.nodeType===9?s.body:s.nodeName===\"HTML\"?s.ownerDocument.body:s).removeChild(l)}function bp(s,l){var f=l,y=0,v=0;do{var A=f.nextSibling;if(s.removeChild(f),A&&A.nodeType===8)if(f=A.data,f===FN){if(0<y&&8>y){f=y;var K=s.ownerDocument;if(f&zFe&&vp(K.documentElement),f&HFe&&vp(K.body),f&qFe)for(f=K.head,vp(f),K=f.firstChild;K;){var te=K.nextSibling,fe=K.nodeName;K[s7]||fe===\"SCRIPT\"||fe===\"STYLE\"||fe===\"LINK\"&&K.rel.toLowerCase()===\"stylesheet\"||f.removeChild(K),K=te}}if(v===0){s.removeChild(A),r7(l);return}v--}else f===DN||f===Hb||f===j7?v++:y=f.charCodeAt(0)-48;else y=0;f=A}while(f);r7(l)}function UE(s){s=s.style,typeof s.setProperty==\"function\"?s.setProperty(\"display\",\"none\",\"important\"):s.display=\"none\"}function lh(s){s.nodeValue=\"\"}function jE(s,l){l=l[WFe],l=l!=null&&l.hasOwnProperty(\"display\")?l.display:null,s.style.display=l==null||typeof l==\"boolean\"?\"\":(\"\"+l).trim()}function E0(s,l){s.nodeValue=l}function Ls(s){var l=s.firstChild;for(l&&l.nodeType===10&&(l=l.nextSibling);l;){var f=l;switch(l=l.nextSibling,f.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":Ls(f),wr(f);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(f.rel.toLowerCase()===\"stylesheet\")continue}s.removeChild(f)}}function zE(s,l,f,y){for(;s.nodeType===1;){var v=f;if(s.nodeName.toLowerCase()!==l.toLowerCase()){if(!y&&(s.nodeName!==\"INPUT\"||s.type!==\"hidden\"))break}else if(y){if(!s[s7])switch(l){case\"meta\":if(!s.hasAttribute(\"itemprop\"))break;return s;case\"link\":if(A=s.getAttribute(\"rel\"),A===\"stylesheet\"&&s.hasAttribute(\"data-precedence\"))break;if(A!==v.rel||s.getAttribute(\"href\")!==(v.href==null||v.href===\"\"?null:v.href)||s.getAttribute(\"crossorigin\")!==(v.crossOrigin==null?null:v.crossOrigin)||s.getAttribute(\"title\")!==(v.title==null?null:v.title))break;return s;case\"style\":if(s.hasAttribute(\"data-precedence\"))break;return s;case\"script\":if(A=s.getAttribute(\"src\"),(A!==(v.src==null?null:v.src)||s.getAttribute(\"type\")!==(v.type==null?null:v.type)||s.getAttribute(\"crossorigin\")!==(v.crossOrigin==null?null:v.crossOrigin))&&A&&s.hasAttribute(\"async\")&&!s.hasAttribute(\"itemprop\"))break;return s;default:return s}}else if(l===\"input\"&&s.type===\"hidden\"){I(v.name,\"name\");var A=v.name==null?null:\"\"+v.name;if(v.type===\"hidden\"&&s.getAttribute(\"name\")===A)return s}else return s;if(s=td(s.nextSibling),s===null)break}return null}function r_(s,l,f){if(l===\"\")return null;for(;s.nodeType!==3;)if((s.nodeType!==1||s.nodeName!==\"INPUT\"||s.type!==\"hidden\")&&!f||(s=td(s.nextSibling),s===null))return null;return s}function HE(s){return s.data===j7||s.data===Hb&&s.ownerDocument.readyState===iue}function qE(s,l){var f=s.ownerDocument;if(s.data!==Hb||f.readyState===iue)l();else{var y=function(){l(),f.removeEventListener(\"DOMContentLoaded\",y)};f.addEventListener(\"DOMContentLoaded\",y),s._reactRetry=y}}function td(s){for(;s!=null;s=s.nextSibling){var l=s.nodeType;if(l===1||l===3)break;if(l===8){if(l=s.data,l===DN||l===j7||l===Hb||l===rG||l===oue)break;if(l===FN)return null}}return s}function sw(s){if(s.nodeType===1){for(var l=s.nodeName.toLowerCase(),f={},y=s.attributes,v=0;v<y.length;v++){var A=y[v];f[ed(A.name)]=A.name.toLowerCase()===\"style\"?Qd(s):A.value}return{type:l,props:f}}return s.nodeType===8?{type:\"Suspense\",props:{}}:s.nodeValue}function aw(s,l,f){return f===null||f[jFe]!==!0?(s.nodeValue===l?s=null:(l=Ns(l),s=Ns(s.nodeValue)===l?null:s.nodeValue),s):null}function cw(s){s=s.nextSibling;for(var l=0;s;){if(s.nodeType===8){var f=s.data;if(f===FN){if(l===0)return td(s.nextSibling);l--}else f!==DN&&f!==j7&&f!==Hb||l++}s=s.nextSibling}return null}function WE(s){s=s.previousSibling;for(var l=0;s;){if(s.nodeType===8){var f=s.data;if(f===DN||f===j7||f===Hb){if(l===0)return s;l--}else f===FN&&l++}s=s.previousSibling}return null}function uy(s){r7(s)}function Rc(s){r7(s)}function Pa(s,l,f,y,v){switch(v&&eb(s,y.ancestorInfo),l=ei(f),s){case\"html\":if(s=l.documentElement,!s)throw Error(\"React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page.\");return s;case\"head\":if(s=l.head,!s)throw Error(\"React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page.\");return s;case\"body\":if(s=l.body,!s)throw Error(\"React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page.\");return s;default:throw Error(\"resolveSingletonInstance was called with an element type that is not supported. This is a bug in React.\")}}function VM(s,l,f,y){if(!f[mw]&&le(f)){var v=f.tagName.toLowerCase();console.error(\"You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.\",v,v,v)}switch(s){case\"html\":case\"head\":case\"body\":break;default:console.error(\"acquireSingletonInstance was called with an element type that is not supported. This is a bug in React.\")}for(v=f.attributes;v.length;)f.removeAttributeNode(v[0]);Ro(f,s,l),f[nu]=y,f[cf]=l}function vp(s){for(var l=s.attributes;l.length;)s.removeAttributeNode(l[0]);wr(s)}function lw(s){return typeof s.getRootNode==\"function\"?s.getRootNode():s.nodeType===9?s:s.ownerDocument}function dy(s,l,f){var y=V_;if(y&&typeof l==\"string\"&&l){var v=Zo(l);v=\\'link[rel=\"\\'+s+\\'\"][href=\"\\'+v+\\'\"]\\',typeof f==\"string\"&&(v+=\\'[crossorigin=\"\\'+f+\\'\"]\\'),due.has(v)||(due.add(v),s={rel:s,crossOrigin:f,href:l},y.querySelector(v)===null&&(l=y.createElement(\"link\"),Ro(l,\"link\",s),tt(l),y.head.appendChild(l)))}}function o_(s,l,f,y){var v=(v=hw.current)?lw(v):null;if(!v)throw Error(\\'\"resourceRoot\" was expected to exist. This is a bug in React.\\');switch(s){case\"meta\":case\"title\":return null;case\"style\":return typeof f.precedence==\"string\"&&typeof f.href==\"string\"?(f=sf(f.href),l=xt(v).hoistableStyles,y=l.get(f),y||(y={type:\"style\",instance:null,count:0,state:null},l.set(f,y)),y):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(f.rel===\"stylesheet\"&&typeof f.href==\"string\"&&typeof f.precedence==\"string\"){s=sf(f.href);var A=xt(v).hoistableStyles,K=A.get(s);if(!K&&(v=v.ownerDocument||v,K={type:\"stylesheet\",instance:null,count:0,state:{loading:f5,preload:null}},A.set(s,K),(A=v.querySelector(Ib(s)))&&!A._p&&(K.instance=A,K.state.loading=z7|Rp),!Ip.has(s))){var te={rel:\"preload\",as:\"style\",href:f.href,crossOrigin:f.crossOrigin,integrity:f.integrity,media:f.media,hrefLang:f.hrefLang,referrerPolicy:f.referrerPolicy};Ip.set(s,te),A||$M(v,s,te,K.state)}if(l&&y===null)throw f=`\\n\\n  - `+VE(l)+`\\n  + `+VE(f),Error(\"Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\"+f);return K}if(l&&y!==null)throw f=`\\n\\n  - `+VE(l)+`\\n  + `+VE(f),Error(\"Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\"+f);return null;case\"script\":return l=f.async,f=f.src,typeof f==\"string\"&&l&&typeof l!=\"function\"&&typeof l!=\"symbol\"?(f=fy(f),l=xt(v).hoistableScripts,y=l.get(f),y||(y={type:\"script\",instance:null,count:0,state:null},l.set(f,y)),y):{type:\"void\",instance:null,count:0,state:null};default:throw Error(\\'getResource encountered a type it did not expect: \"\\'+s+\\'\". this is a bug in React.\\')}}function VE(s){var l=0,f=\"<link\";return typeof s.rel==\"string\"?(l++,f+=\\' rel=\"\\'+s.rel+\\'\"\\'):Mb.call(s,\"rel\")&&(l++,f+=\\' rel=\"\\'+(s.rel===null?\"null\":\"invalid type \"+typeof s.rel)+\\'\"\\'),typeof s.href==\"string\"?(l++,f+=\\' href=\"\\'+s.href+\\'\"\\'):Mb.call(s,\"href\")&&(l++,f+=\\' href=\"\\'+(s.href===null?\"null\":\"invalid type \"+typeof s.href)+\\'\"\\'),typeof s.precedence==\"string\"?(l++,f+=\\' precedence=\"\\'+s.precedence+\\'\"\\'):Mb.call(s,\"precedence\")&&(l++,f+=\" precedence={\"+(s.precedence===null?\"null\":\"invalid type \"+typeof s.precedence)+\"}\"),Object.getOwnPropertyNames(s).length>l&&(f+=\" ...\"),f+\" />\"}function sf(s){return\\'href=\"\\'+Zo(s)+\\'\"\\'}function Ib(s){return\\'link[rel=\"stylesheet\"][\\'+s+\"]\"}function i_(s){return pr({},s,{\"data-precedence\":s.precedence,precedence:null})}function $M(s,l,f,y){s.querySelector(\\'link[rel=\"preload\"][as=\"style\"][\\'+l+\"]\")?y.loading=z7:(l=s.createElement(\"link\"),y.preload=l,l.addEventListener(\"load\",function(){return y.loading|=z7}),l.addEventListener(\"error\",function(){return y.loading|=lue}),Ro(l,\"link\",f),tt(l),s.head.appendChild(l))}function fy(s){return\\'[src=\"\\'+Zo(s)+\\'\"]\\'}function uw(s){return\"script[async]\"+s}function s_(s,l,f){if(l.count++,l.instance===null)switch(l.type){case\"style\":var y=s.querySelector(\\'style[data-href~=\"\\'+Zo(f.href)+\\'\"]\\');if(y)return l.instance=y,tt(y),y;var v=pr({},f,{\"data-href\":f.href,\"data-precedence\":f.precedence,href:null,precedence:null});return y=(s.ownerDocument||s).createElement(\"style\"),tt(y),Ro(y,\"style\",v),$E(y,f.precedence,s),l.instance=y;case\"stylesheet\":v=sf(f.href);var A=s.querySelector(Ib(v));if(A)return l.state.loading|=Rp,l.instance=A,tt(A),A;y=i_(f),(v=Ip.get(v))&&KE(y,v),A=(s.ownerDocument||s).createElement(\"link\"),tt(A);var K=A;return K._p=new Promise(function(te,fe){K.onload=te,K.onerror=fe}),Ro(A,\"link\",y),l.state.loading|=Rp,$E(A,f.precedence,s),l.instance=A;case\"script\":return A=fy(f.src),(v=s.querySelector(uw(A)))?(l.instance=v,tt(v),v):(y=f,(v=Ip.get(A))&&(y=pr({},f),a_(y,v)),s=s.ownerDocument||s,v=s.createElement(\"script\"),tt(v),Ro(v,\"link\",y),s.head.appendChild(v),l.instance=v);case\"void\":return null;default:throw Error(\\'acquireResource encountered a resource type it did not expect: \"\\'+l.type+\\'\". this is a bug in React.\\')}else l.type===\"stylesheet\"&&(l.state.loading&Rp)===f5&&(y=l.instance,l.state.loading|=Rp,$E(y,f.precedence,s));return l.instance}function $E(s,l,f){for(var y=f.querySelectorAll(\\'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]\\'),v=y.length?y[y.length-1]:null,A=v,K=0;K<y.length;K++){var te=y[K];if(te.dataset.precedence===l)A=te;else if(A!==v)break}A?A.parentNode.insertBefore(s,A.nextSibling):(l=f.nodeType===9?f.head:f,l.insertBefore(s,l.firstChild))}function KE(s,l){s.crossOrigin==null&&(s.crossOrigin=l.crossOrigin),s.referrerPolicy==null&&(s.referrerPolicy=l.referrerPolicy),s.title==null&&(s.title=l.title)}function a_(s,l){s.crossOrigin==null&&(s.crossOrigin=l.crossOrigin),s.referrerPolicy==null&&(s.referrerPolicy=l.referrerPolicy),s.integrity==null&&(s.integrity=l.integrity)}function Ob(s,l,f){if(jN===null){var y=new Map,v=jN=new Map;v.set(f,y)}else v=jN,y=v.get(f),y||(y=new Map,v.set(f,y));if(y.has(s))return y;for(y.set(s,null),f=f.getElementsByTagName(s),v=0;v<f.length;v++){var A=f[v];if(!(A[s7]||A[nu]||s===\"link\"&&A.getAttribute(\"rel\")===\"stylesheet\")&&A.namespaceURI!==h_){var K=A.getAttribute(l)||\"\";K=s+K;var te=y.get(K);te?te.push(A):y.set(K,[A])}}return y}function af(s,l,f){s=s.ownerDocument||s,s.head.insertBefore(f,l===\"title\"?s.querySelector(\"head > title\"):null)}function KM(s,l,f){var y=!f.ancestorInfo.containerTagInScope;if(f.context===W_||l.itemProp!=null)return!y||l.itemProp==null||s!==\"meta\"&&s!==\"title\"&&s!==\"style\"&&s!==\"link\"&&s!==\"script\"||console.error(\"Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.\",s,s),!1;switch(s){case\"meta\":case\"title\":return!0;case\"style\":if(typeof l.precedence!=\"string\"||typeof l.href!=\"string\"||l.href===\"\"){y&&console.error(\\'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel=\"stylesheet\" ...> tags.  Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence=\"default\"` and `href=\"some unique resource identifier\"`.\\');break}return!0;case\"link\":if(typeof l.rel!=\"string\"||typeof l.href!=\"string\"||l.href===\"\"||l.onLoad||l.onError){if(l.rel===\"stylesheet\"&&typeof l.precedence==\"string\"){s=l.href;var v=l.onError,A=l.disabled;f=[],l.onLoad&&f.push(\"`onLoad`\"),v&&f.push(\"`onError`\"),A!=null&&f.push(\"`disabled`\"),v=Gi(f,\"and\"),v+=f.length===1?\" prop\":\" props\",A=f.length===1?\"an \"+v:\"the \"+v,f.length&&console.error(\\'React encountered a <link rel=\"stylesheet\" href=\"%s\" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.\\',s,A,v)}y&&(typeof l.rel!=\"string\"||typeof l.href!=\"string\"||l.href===\"\"?console.error(\"Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag\"):(l.onError||l.onLoad)&&console.error(\"Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"));break}switch(l.rel){case\"stylesheet\":return s=l.precedence,l=l.disabled,typeof s!=\"string\"&&y&&console.error(\\'Cannot render a <link rel=\"stylesheet\" /> outside the main document without knowing its precedence. Consider adding precedence=\"default\" or moving it into the root <head> tag.\\'),typeof s==\"string\"&&l==null;default:return!0}case\"script\":if(s=l.async&&typeof l.async!=\"function\"&&typeof l.async!=\"symbol\",!s||l.onLoad||l.onError||!l.src||typeof l.src!=\"string\"){y&&(s?l.onLoad||l.onError?console.error(\"Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"):console.error(\"Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>.\"):console.error(\\'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async=\"\" or moving it into the root <head> tag.\\'));break}return!0;case\"noscript\":case\"template\":y&&console.error(\"Cannot render <%s> outside the main document. Try moving it into the root <head> tag.\",s)}return!1}function Dae(s){return!(s.type===\"stylesheet\"&&(s.state.loading&uue)===f5)}function ZBe(){}function YBe(s,l,f){if(H7===null)throw Error(\"Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.\");var y=H7;if(l.type===\"stylesheet\"&&(typeof f.media!=\"string\"||matchMedia(f.media).matches!==!1)&&(l.state.loading&Rp)===f5){if(l.instance===null){var v=sf(f.href),A=s.querySelector(Ib(v));if(A){s=A._p,s!==null&&typeof s==\"object\"&&typeof s.then==\"function\"&&(y.count++,y=GM.bind(y),s.then(y,y)),l.state.loading|=Rp,l.instance=A,tt(A);return}A=s.ownerDocument||s,f=i_(f),(v=Ip.get(v))&&KE(f,v),A=A.createElement(\"link\"),tt(A);var K=A;K._p=new Promise(function(te,fe){K.onload=te,K.onerror=fe}),Ro(A,\"link\",f),l.instance=A}y.stylesheets===null&&(y.stylesheets=new Map),y.stylesheets.set(l,s),(s=l.state.preload)&&(l.state.loading&uue)===f5&&(y.count++,l=GM.bind(y),s.addEventListener(\"load\",l),s.addEventListener(\"error\",l))}}function QBe(){if(H7===null)throw Error(\"Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug.\");var s=H7;return s.stylesheets&&s.count===0&&L$(s,s.stylesheets),0<s.count?function(l){var f=setTimeout(function(){if(s.stylesheets&&L$(s,s.stylesheets),s.unsuspend){var y=s.unsuspend;s.unsuspend=null,y()}},6e4);return s.unsuspend=l,function(){s.unsuspend=null,clearTimeout(f)}}:null}function GM(){if(this.count--,this.count===0){if(this.stylesheets)L$(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}function L$(s,l){s.stylesheets=null,s.unsuspend!==null&&(s.count++,zN=new Map,l.forEach(JBe,s),zN=null,GM.call(s))}function JBe(s,l){if(!(l.state.loading&Rp)){var f=zN.get(s);if(f)var y=f.get(cG);else{f=new Map,zN.set(s,f);for(var v=s.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),A=0;A<v.length;A++){var K=v[A];(K.nodeName===\"LINK\"||K.getAttribute(\"media\")!==\"not all\")&&(f.set(K.dataset.precedence,K),y=K)}y&&f.set(cG,y)}v=l.instance,K=v.getAttribute(\"data-precedence\"),A=f.get(K)||y,A===y&&f.set(cG,v),f.set(K,v),this.count++,y=GM.bind(this),v.addEventListener(\"load\",y),v.addEventListener(\"error\",y),A?A.parentNode.insertBefore(v,A.nextSibling):(s=s.nodeType===9?s.head:s,s.insertBefore(v,s.firstChild)),l.state.loading|=Rp}}function XBe(s,l,f,y,v,A,K,te){for(this.tag=1,this.containerInfo=s,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=d5,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Mt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Mt(0),this.hiddenUpdates=Mt(null),this.identifierPrefix=y,this.onUncaughtError=v,this.onCaughtError=A,this.onRecoverableError=K,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=te,this.incompleteTransitions=new Map,this.passiveEffectDuration=this.effectDuration=-0,this.memoizedUpdaters=new Set,s=this.pendingUpdatersLaneMap=[],l=0;31>l;l++)s.push(new Set);this._debugRootType=f?\"hydrateRoot()\":\"createRoot()\"}function Fae(s,l,f,y,v,A,K,te,fe,me,Ue,Ke){return s=new XBe(s,l,f,K,te,fe,me,Ke),l=gFe,A===!0&&(l|=ru|_0),S0&&(l|=ml),A=g(3,null,null,l),s.current=A,A.stateNode=s,l=Zm(),nl(l),s.pooledCache=l,nl(l),A.memoizedState={element:y,isDehydrated:f,cache:l},Sa(A),s}function Uae(s){return s?(s=yw,s):yw}function B$(s,l,f,y,v,A){if(tu&&typeof tu.onScheduleFiberRoot==\"function\")try{tu.onScheduleFiberRoot(d_,y,f)}catch(K){my||(my=!0,console.error(\"React instrumentation encountered an error: %s\",K))}Vt!==null&&typeof Vt.markRenderScheduled==\"function\"&&Vt.markRenderScheduled(l),v=Uae(v),y.context===null?y.context=v:y.pendingContext=v,yy&&fh!==null&&!mue&&(mue=!0,console.error(`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\\n\\nCheck the render method of %s.`,Z(fh)||\"Unknown\")),y=Vd(l),y.payload={element:f},A=A===void 0?null:A,A!==null&&(typeof A!=\"function\"&&console.error(\"Expected the last optional `callback` argument to be a function. Instead received: %s.\",A),y.callback=A),f=oi(s,y,l),f!==null&&(Le(f,s,l),Xf(f,s,l))}function jae(s,l){if(s=s.memoizedState,s!==null&&s.dehydrated!==null){var f=s.retryLane;s.retryLane=f!==0&&f<l?f:l}}function D$(s,l){jae(s,l),(s=s.alternate)&&jae(s,l)}function zae(s){if(s.tag===13){var l=Rs(s,67108864);l!==null&&Le(l,s,67108864),D$(s,67108864)}}function eDe(){return fh}function tDe(){for(var s=new Map,l=1,f=0;31>f;f++){var y=ht(l);s.set(l,y),l*=2}return s}function nDe(s,l,f,y){var v=$e.T;$e.T=null;var A=Io.p;try{Io.p=dh,F$(s,l,f,y)}finally{Io.p=A,$e.T=v}}function rDe(s,l,f,y){var v=$e.T;$e.T=null;var A=Io.p;try{Io.p=k0,F$(s,l,f,y)}finally{Io.p=A,$e.T=v}}function F$(s,l,f,y){if(qN){var v=U$(y);if(v===null)ac(s,l,y,WN,f),qae(s,y);else if(oDe(v,s,l,f,y))y.stopPropagation();else if(qae(s,y),l&4&&-1<GFe.indexOf(s)){for(;v!==null;){var A=le(v);if(A!==null)switch(A.tag){case 3:if(A=A.stateNode,A.current.memoizedState.isDehydrated){var K=Ct(A.pendingLanes);if(K!==0){var te=A;for(te.pendingLanes|=2,te.entangledLanes|=2;K;){var fe=1<<31-nd(K);te.entanglements[1]|=fe,K&=~fe}sa(A),(Oo&(ad|R0))===hh&&(AN=py()+Kle,To(0,!1))}}break;case 13:te=Rs(A,2),te!==null&&Le(te,A,2),bt(),D$(A,2)}if(A=U$(y),A===null&&ac(s,l,y,WN,f),A===v)break;v=A}v!==null&&y.stopPropagation()}else ac(s,l,y,null,f)}}function U$(s){return s=Qh(s),j$(s)}function j$(s){if(WN=null,s=Ri(s),s!==null){var l=R(s);if(l===null)s=null;else{var f=l.tag;if(f===13){if(s=L(l),s!==null)return s;s=null}else if(f===3){if(l.stateNode.current.memoizedState.isDehydrated)return l.tag===3?l.stateNode.containerInfo:null;s=null}else l!==s&&(s=null)}}return WN=s,null}function Hae(s){switch(s){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return dh;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return k0;case\"message\":switch(mDe()){case Q$:return dh;case J$:return k0;case u_:case gDe:return gy;case X$:return rN;default:return gy}default:return gy}}function qae(s,l){switch(s){case\"focusin\":case\"focusout\":Aw=null;break;case\"dragenter\":case\"dragleave\":Tw=null;break;case\"mouseover\":case\"mouseout\":Rw=null;break;case\"pointerover\":case\"pointerout\":W7.delete(l.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":V7.delete(l.pointerId)}}function n7(s,l,f,y,v,A){return s===null||s.nativeEvent!==A?(s={blockedOn:l,domEventName:f,eventSystemFlags:y,nativeEvent:A,targetContainers:[v]},l!==null&&(l=le(l),l!==null&&zae(l)),s):(s.eventSystemFlags|=y,l=s.targetContainers,v!==null&&l.indexOf(v)===-1&&l.push(v),s)}function oDe(s,l,f,y,v){switch(l){case\"focusin\":return Aw=n7(Aw,s,l,f,y,v),!0;case\"dragenter\":return Tw=n7(Tw,s,l,f,y,v),!0;case\"mouseover\":return Rw=n7(Rw,s,l,f,y,v),!0;case\"pointerover\":var A=v.pointerId;return W7.set(A,n7(W7.get(A)||null,s,l,f,y,v)),!0;case\"gotpointercapture\":return A=v.pointerId,V7.set(A,n7(V7.get(A)||null,s,l,f,y,v)),!0}return!1}function Wae(s){var l=Ri(s.target);if(l!==null){var f=R(l);if(f!==null){if(l=f.tag,l===13){if(l=L(f),l!==null){s.blockedOn=l,er(s.priority,function(){if(f.tag===13){var y=Ee(f);y=br(y);var v=Rs(f,y);v!==null&&Le(v,f,y),D$(f,y)}});return}}else if(l===3&&f.stateNode.current.memoizedState.isDehydrated){s.blockedOn=f.tag===3?f.stateNode.containerInfo:null;return}}}s.blockedOn=null}function ZM(s){if(s.blockedOn!==null)return!1;for(var l=s.targetContainers;0<l.length;){var f=U$(s.nativeEvent);if(f===null){f=s.nativeEvent;var y=new f.constructor(f.type,f),v=y;c7!==null&&console.error(\"Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue.\"),c7=v,f.target.dispatchEvent(y),c7===null&&console.error(\"Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue.\"),c7=null}else return l=le(f),l!==null&&zae(l),s.blockedOn=f,!1;l.shift()}return!0}function Vae(s,l,f){ZM(s)&&f.delete(l)}function iDe(){lG=!1,Aw!==null&&ZM(Aw)&&(Aw=null),Tw!==null&&ZM(Tw)&&(Tw=null),Rw!==null&&ZM(Rw)&&(Rw=null),W7.forEach(Vae),V7.forEach(Vae)}function YM(s,l){s.blockedOn===l&&(s.blockedOn=null,lG||(lG=!0,Ma.unstable_scheduleCallback(Ma.unstable_NormalPriority,iDe)))}function $ae(s){VN!==s&&(VN=s,Ma.unstable_scheduleCallback(Ma.unstable_NormalPriority,function(){VN===s&&(VN=null);for(var l=0;l<s.length;l+=3){var f=s[l],y=s[l+1],v=s[l+2];if(typeof y!=\"function\"){if(j$(y||f)===null)continue;break}var A=le(f);A!==null&&(s.splice(l,3),l-=3,f={pending:!0,data:v,method:f.method,action:y},Object.freeze(f),Yg(A,f,y,v))}}))}function r7(s){function l(fe){return YM(fe,s)}Aw!==null&&YM(Aw,s),Tw!==null&&YM(Tw,s),Rw!==null&&YM(Rw,s),W7.forEach(l),V7.forEach(l);for(var f=0;f<Iw.length;f++){var y=Iw[f];y.blockedOn===s&&(y.blockedOn=null)}for(;0<Iw.length&&(f=Iw[0],f.blockedOn===null);)Wae(f),f.blockedOn===null&&Iw.shift();if(f=(s.ownerDocument||s).$$reactFormReplay,f!=null)for(y=0;y<f.length;y+=3){var v=f[y],A=f[y+1],K=v[cf]||null;if(typeof A==\"function\")K||$ae(f);else if(K){var te=null;if(A&&A.hasAttribute(\"formAction\")){if(v=A,K=A[cf]||null)te=K.formAction;else if(j$(v)!==null)continue}else te=K.action;typeof te==\"function\"?f[y+1]=te:(f.splice(y,3),y-=3),$ae(f)}}}function z$(s){this._internalRoot=s}function QM(s){this._internalRoot=s}function Kae(s){s[mw]&&(s._reactRootContainer?console.error(\"You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.\"):console.error(\"You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it.\"))}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var Ma=Jue(),H$=et(),sDe=I0(),pr=Object.assign,aDe=Symbol.for(\"react.element\"),dw=Symbol.for(\"react.transitional.element\"),c_=Symbol.for(\"react.portal\"),l_=Symbol.for(\"react.fragment\"),JM=Symbol.for(\"react.strict_mode\"),q$=Symbol.for(\"react.profiler\"),cDe=Symbol.for(\"react.provider\"),W$=Symbol.for(\"react.consumer\"),hy=Symbol.for(\"react.context\"),o7=Symbol.for(\"react.forward_ref\"),V$=Symbol.for(\"react.suspense\"),$$=Symbol.for(\"react.suspense_list\"),XM=Symbol.for(\"react.memo\"),uh=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");var K$=Symbol.for(\"react.activity\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.tracing_marker\");var lDe=Symbol.for(\"react.memo_cache_sentinel\");Symbol.for(\"react.view_transition\");var Gae=Symbol.iterator,uDe=Symbol.for(\"react.client.reference\"),pl=Array.isArray,$e=H$.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Io=sDe.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,dDe=Object.freeze({pending:!1,data:null,method:null,action:null}),G$=[],Z$=[],Pb=-1,fw=ae(null),i7=ae(null),hw=ae(null),eN=ae(null),Mb=Object.prototype.hasOwnProperty,Y$=Ma.unstable_scheduleCallback,fDe=Ma.unstable_cancelCallback,hDe=Ma.unstable_shouldYield,pDe=Ma.unstable_requestPaint,py=Ma.unstable_now,mDe=Ma.unstable_getCurrentPriorityLevel,Q$=Ma.unstable_ImmediatePriority,J$=Ma.unstable_UserBlockingPriority,u_=Ma.unstable_NormalPriority,gDe=Ma.unstable_LowPriority,X$=Ma.unstable_IdlePriority,yDe=Ma.log,bDe=Ma.unstable_setDisableYieldValue,d_=null,tu=null,Vt=null,my=!1,S0=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\",nd=Math.clz32?Math.clz32:Ge,vDe=Math.log,wDe=Math.LN2,tN=256,nN=4194304,dh=2,k0=8,gy=32,rN=268435456,pw=Math.random().toString(36).slice(2),nu=\"__reactFiber$\"+pw,cf=\"__reactProps$\"+pw,mw=\"__reactContainer$\"+pw,eK=\"__reactEvents$\"+pw,xDe=\"__reactListeners$\"+pw,EDe=\"__reactHandles$\"+pw,Zae=\"__reactResources$\"+pw,s7=\"__reactMarker$\"+pw,Yae=new Set,GE={},tK={},SDe={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},kDe=RegExp(\"^[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),Qae={},Jae={},a7=0,Xae,ece,tce,nce,rce,oce,ice;jr.__reactDisabledLog=!0;var nK,sce,rK=!1,oK=new(typeof WeakMap==\"function\"?WeakMap:Map),fh=null,yy=!1,_De=/[\\\\n\"\\\\\\\\]/g,ace=!1,cce=!1,lce=!1,uce=!1,dce=!1,fce=!1,hce=[\"value\",\"defaultValue\"],pce=!1,mce=/[\"\\'&<>\\\\n\\\\t]|^\\\\s|\\\\s$/,CDe=\"address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp\".split(\" \"),gce=\"applet caption html table td th marquee object template foreignObject desc title\".split(\" \"),ADe=gce.concat([\"button\"]),TDe=\"dd dt li option optgroup p rp rt\".split(\" \"),yce={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null,containerTagInScope:null,implicitRootScope:!1},oN={},iK={animation:\"animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction\".split(\" \"),background:\"backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize\".split(\" \"),backgroundPosition:[\"backgroundPositionX\",\"backgroundPositionY\"],border:\"borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth\".split(\" \"),borderBlockEnd:[\"borderBlockEndColor\",\"borderBlockEndStyle\",\"borderBlockEndWidth\"],borderBlockStart:[\"borderBlockStartColor\",\"borderBlockStartStyle\",\"borderBlockStartWidth\"],borderBottom:[\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\"],borderColor:[\"borderBottomColor\",\"borderLeftColor\",\"borderRightColor\",\"borderTopColor\"],borderImage:[\"borderImageOutset\",\"borderImageRepeat\",\"borderImageSlice\",\"borderImageSource\",\"borderImageWidth\"],borderInlineEnd:[\"borderInlineEndColor\",\"borderInlineEndStyle\",\"borderInlineEndWidth\"],borderInlineStart:[\"borderInlineStartColor\",\"borderInlineStartStyle\",\"borderInlineStartWidth\"],borderLeft:[\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderRadius:[\"borderBottomLeftRadius\",\"borderBottomRightRadius\",\"borderTopLeftRadius\",\"borderTopRightRadius\"],borderRight:[\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\"],borderStyle:[\"borderBottomStyle\",\"borderLeftStyle\",\"borderRightStyle\",\"borderTopStyle\"],borderTop:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\"],borderWidth:[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopWidth\"],columnRule:[\"columnRuleColor\",\"columnRuleStyle\",\"columnRuleWidth\"],columns:[\"columnCount\",\"columnWidth\"],flex:[\"flexBasis\",\"flexGrow\",\"flexShrink\"],flexFlow:[\"flexDirection\",\"flexWrap\"],font:\"fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight\".split(\" \"),fontVariant:\"fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition\".split(\" \"),gap:[\"columnGap\",\"rowGap\"],grid:\"gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows\".split(\" \"),gridArea:[\"gridColumnEnd\",\"gridColumnStart\",\"gridRowEnd\",\"gridRowStart\"],gridColumn:[\"gridColumnEnd\",\"gridColumnStart\"],gridColumnGap:[\"columnGap\"],gridGap:[\"columnGap\",\"rowGap\"],gridRow:[\"gridRowEnd\",\"gridRowStart\"],gridRowGap:[\"rowGap\"],gridTemplate:[\"gridTemplateAreas\",\"gridTemplateColumns\",\"gridTemplateRows\"],listStyle:[\"listStyleImage\",\"listStylePosition\",\"listStyleType\"],margin:[\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\"],marker:[\"markerEnd\",\"markerMid\",\"markerStart\"],mask:\"maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize\".split(\" \"),maskPosition:[\"maskPositionX\",\"maskPositionY\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],overflow:[\"overflowX\",\"overflowY\"],padding:[\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\"],placeContent:[\"alignContent\",\"justifyContent\"],placeItems:[\"alignItems\",\"justifyItems\"],placeSelf:[\"alignSelf\",\"justifySelf\"],textDecoration:[\"textDecorationColor\",\"textDecorationLine\",\"textDecorationStyle\"],textEmphasis:[\"textEmphasisColor\",\"textEmphasisStyle\"],transition:[\"transitionDelay\",\"transitionDuration\",\"transitionProperty\",\"transitionTimingFunction\"],wordWrap:[\"overflowWrap\"]},bce=/([A-Z])/g,vce=/^ms-/,RDe=/^(?:webkit|moz|o)[A-Z]/,IDe=/^-ms-/,ODe=/-(.)/g,wce=/;\\\\s*$/,f_={},sK={},xce=!1,Ece=!1,Sce=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \")),iN=\"http://www.w3.org/1998/Math/MathML\",h_=\"http://www.w3.org/2000/svg\",PDe=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),sN={accept:\"accept\",acceptcharset:\"acceptCharset\",\"accept-charset\":\"acceptCharset\",accesskey:\"accessKey\",action:\"action\",allowfullscreen:\"allowFullScreen\",alt:\"alt\",as:\"as\",async:\"async\",autocapitalize:\"autoCapitalize\",autocomplete:\"autoComplete\",autocorrect:\"autoCorrect\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",autosave:\"autoSave\",capture:\"capture\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",challenge:\"challenge\",charset:\"charSet\",checked:\"checked\",children:\"children\",cite:\"cite\",class:\"className\",classid:\"classID\",classname:\"className\",cols:\"cols\",colspan:\"colSpan\",content:\"content\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",controls:\"controls\",controlslist:\"controlsList\",coords:\"coords\",crossorigin:\"crossOrigin\",dangerouslysetinnerhtml:\"dangerouslySetInnerHTML\",data:\"data\",datetime:\"dateTime\",default:\"default\",defaultchecked:\"defaultChecked\",defaultvalue:\"defaultValue\",defer:\"defer\",dir:\"dir\",disabled:\"disabled\",disablepictureinpicture:\"disablePictureInPicture\",disableremoteplayback:\"disableRemotePlayback\",download:\"download\",draggable:\"draggable\",enctype:\"encType\",enterkeyhint:\"enterKeyHint\",fetchpriority:\"fetchPriority\",for:\"htmlFor\",form:\"form\",formmethod:\"formMethod\",formaction:\"formAction\",formenctype:\"formEncType\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",headers:\"headers\",height:\"height\",hidden:\"hidden\",high:\"high\",href:\"href\",hreflang:\"hrefLang\",htmlfor:\"htmlFor\",httpequiv:\"httpEquiv\",\"http-equiv\":\"httpEquiv\",icon:\"icon\",id:\"id\",imagesizes:\"imageSizes\",imagesrcset:\"imageSrcSet\",inert:\"inert\",innerhtml:\"innerHTML\",inputmode:\"inputMode\",integrity:\"integrity\",is:\"is\",itemid:\"itemID\",itemprop:\"itemProp\",itemref:\"itemRef\",itemscope:\"itemScope\",itemtype:\"itemType\",keyparams:\"keyParams\",keytype:\"keyType\",kind:\"kind\",label:\"label\",lang:\"lang\",list:\"list\",loop:\"loop\",low:\"low\",manifest:\"manifest\",marginwidth:\"marginWidth\",marginheight:\"marginHeight\",max:\"max\",maxlength:\"maxLength\",media:\"media\",mediagroup:\"mediaGroup\",method:\"method\",min:\"min\",minlength:\"minLength\",multiple:\"multiple\",muted:\"muted\",name:\"name\",nomodule:\"noModule\",nonce:\"nonce\",novalidate:\"noValidate\",open:\"open\",optimum:\"optimum\",pattern:\"pattern\",placeholder:\"placeholder\",playsinline:\"playsInline\",poster:\"poster\",preload:\"preload\",profile:\"profile\",radiogroup:\"radioGroup\",readonly:\"readOnly\",referrerpolicy:\"referrerPolicy\",rel:\"rel\",required:\"required\",reversed:\"reversed\",role:\"role\",rows:\"rows\",rowspan:\"rowSpan\",sandbox:\"sandbox\",scope:\"scope\",scoped:\"scoped\",scrolling:\"scrolling\",seamless:\"seamless\",selected:\"selected\",shape:\"shape\",size:\"size\",sizes:\"sizes\",span:\"span\",spellcheck:\"spellCheck\",src:\"src\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",start:\"start\",step:\"step\",style:\"style\",summary:\"summary\",tabindex:\"tabIndex\",target:\"target\",title:\"title\",type:\"type\",usemap:\"useMap\",value:\"value\",width:\"width\",wmode:\"wmode\",wrap:\"wrap\",about:\"about\",accentheight:\"accentHeight\",\"accent-height\":\"accentHeight\",accumulate:\"accumulate\",additive:\"additive\",alignmentbaseline:\"alignmentBaseline\",\"alignment-baseline\":\"alignmentBaseline\",allowreorder:\"allowReorder\",alphabetic:\"alphabetic\",amplitude:\"amplitude\",arabicform:\"arabicForm\",\"arabic-form\":\"arabicForm\",ascent:\"ascent\",attributename:\"attributeName\",attributetype:\"attributeType\",autoreverse:\"autoReverse\",azimuth:\"azimuth\",basefrequency:\"baseFrequency\",baselineshift:\"baselineShift\",\"baseline-shift\":\"baselineShift\",baseprofile:\"baseProfile\",bbox:\"bbox\",begin:\"begin\",bias:\"bias\",by:\"by\",calcmode:\"calcMode\",capheight:\"capHeight\",\"cap-height\":\"capHeight\",clip:\"clip\",clippath:\"clipPath\",\"clip-path\":\"clipPath\",clippathunits:\"clipPathUnits\",cliprule:\"clipRule\",\"clip-rule\":\"clipRule\",color:\"color\",colorinterpolation:\"colorInterpolation\",\"color-interpolation\":\"colorInterpolation\",colorinterpolationfilters:\"colorInterpolationFilters\",\"color-interpolation-filters\":\"colorInterpolationFilters\",colorprofile:\"colorProfile\",\"color-profile\":\"colorProfile\",colorrendering:\"colorRendering\",\"color-rendering\":\"colorRendering\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",cursor:\"cursor\",cx:\"cx\",cy:\"cy\",d:\"d\",datatype:\"datatype\",decelerate:\"decelerate\",descent:\"descent\",diffuseconstant:\"diffuseConstant\",direction:\"direction\",display:\"display\",divisor:\"divisor\",dominantbaseline:\"dominantBaseline\",\"dominant-baseline\":\"dominantBaseline\",dur:\"dur\",dx:\"dx\",dy:\"dy\",edgemode:\"edgeMode\",elevation:\"elevation\",enablebackground:\"enableBackground\",\"enable-background\":\"enableBackground\",end:\"end\",exponent:\"exponent\",externalresourcesrequired:\"externalResourcesRequired\",fill:\"fill\",fillopacity:\"fillOpacity\",\"fill-opacity\":\"fillOpacity\",fillrule:\"fillRule\",\"fill-rule\":\"fillRule\",filter:\"filter\",filterres:\"filterRes\",filterunits:\"filterUnits\",floodopacity:\"floodOpacity\",\"flood-opacity\":\"floodOpacity\",floodcolor:\"floodColor\",\"flood-color\":\"floodColor\",focusable:\"focusable\",fontfamily:\"fontFamily\",\"font-family\":\"fontFamily\",fontsize:\"fontSize\",\"font-size\":\"fontSize\",fontsizeadjust:\"fontSizeAdjust\",\"font-size-adjust\":\"fontSizeAdjust\",fontstretch:\"fontStretch\",\"font-stretch\":\"fontStretch\",fontstyle:\"fontStyle\",\"font-style\":\"fontStyle\",fontvariant:\"fontVariant\",\"font-variant\":\"fontVariant\",fontweight:\"fontWeight\",\"font-weight\":\"fontWeight\",format:\"format\",from:\"from\",fx:\"fx\",fy:\"fy\",g1:\"g1\",g2:\"g2\",glyphname:\"glyphName\",\"glyph-name\":\"glyphName\",glyphorientationhorizontal:\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\":\"glyphOrientationHorizontal\",glyphorientationvertical:\"glyphOrientationVertical\",\"glyph-orientation-vertical\":\"glyphOrientationVertical\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",hanging:\"hanging\",horizadvx:\"horizAdvX\",\"horiz-adv-x\":\"horizAdvX\",horizoriginx:\"horizOriginX\",\"horiz-origin-x\":\"horizOriginX\",ideographic:\"ideographic\",imagerendering:\"imageRendering\",\"image-rendering\":\"imageRendering\",in2:\"in2\",in:\"in\",inlist:\"inlist\",intercept:\"intercept\",k1:\"k1\",k2:\"k2\",k3:\"k3\",k4:\"k4\",k:\"k\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",kerning:\"kerning\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",letterspacing:\"letterSpacing\",\"letter-spacing\":\"letterSpacing\",lightingcolor:\"lightingColor\",\"lighting-color\":\"lightingColor\",limitingconeangle:\"limitingConeAngle\",local:\"local\",markerend:\"markerEnd\",\"marker-end\":\"markerEnd\",markerheight:\"markerHeight\",markermid:\"markerMid\",\"marker-mid\":\"markerMid\",markerstart:\"markerStart\",\"marker-start\":\"markerStart\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",mask:\"mask\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",mathematical:\"mathematical\",mode:\"mode\",numoctaves:\"numOctaves\",offset:\"offset\",opacity:\"opacity\",operator:\"operator\",order:\"order\",orient:\"orient\",orientation:\"orientation\",origin:\"origin\",overflow:\"overflow\",overlineposition:\"overlinePosition\",\"overline-position\":\"overlinePosition\",overlinethickness:\"overlineThickness\",\"overline-thickness\":\"overlineThickness\",paintorder:\"paintOrder\",\"paint-order\":\"paintOrder\",panose1:\"panose1\",\"panose-1\":\"panose1\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointerevents:\"pointerEvents\",\"pointer-events\":\"pointerEvents\",points:\"points\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",popover:\"popover\",popovertarget:\"popoverTarget\",popovertargetaction:\"popoverTargetAction\",prefix:\"prefix\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",property:\"property\",r:\"r\",radius:\"radius\",refx:\"refX\",refy:\"refY\",renderingintent:\"renderingIntent\",\"rendering-intent\":\"renderingIntent\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",resource:\"resource\",restart:\"restart\",result:\"result\",results:\"results\",rotate:\"rotate\",rx:\"rx\",ry:\"ry\",scale:\"scale\",security:\"security\",seed:\"seed\",shaperendering:\"shapeRendering\",\"shape-rendering\":\"shapeRendering\",slope:\"slope\",spacing:\"spacing\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",speed:\"speed\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stemh:\"stemh\",stemv:\"stemv\",stitchtiles:\"stitchTiles\",stopcolor:\"stopColor\",\"stop-color\":\"stopColor\",stopopacity:\"stopOpacity\",\"stop-opacity\":\"stopOpacity\",strikethroughposition:\"strikethroughPosition\",\"strikethrough-position\":\"strikethroughPosition\",strikethroughthickness:\"strikethroughThickness\",\"strikethrough-thickness\":\"strikethroughThickness\",string:\"string\",stroke:\"stroke\",strokedasharray:\"strokeDasharray\",\"stroke-dasharray\":\"strokeDasharray\",strokedashoffset:\"strokeDashoffset\",\"stroke-dashoffset\":\"strokeDashoffset\",strokelinecap:\"strokeLinecap\",\"stroke-linecap\":\"strokeLinecap\",strokelinejoin:\"strokeLinejoin\",\"stroke-linejoin\":\"strokeLinejoin\",strokemiterlimit:\"strokeMiterlimit\",\"stroke-miterlimit\":\"strokeMiterlimit\",strokewidth:\"strokeWidth\",\"stroke-width\":\"strokeWidth\",strokeopacity:\"strokeOpacity\",\"stroke-opacity\":\"strokeOpacity\",suppresscontenteditablewarning:\"suppressContentEditableWarning\",suppresshydrationwarning:\"suppressHydrationWarning\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textanchor:\"textAnchor\",\"text-anchor\":\"textAnchor\",textdecoration:\"textDecoration\",\"text-decoration\":\"textDecoration\",textlength:\"textLength\",textrendering:\"textRendering\",\"text-rendering\":\"textRendering\",to:\"to\",transform:\"transform\",transformorigin:\"transformOrigin\",\"transform-origin\":\"transformOrigin\",typeof:\"typeof\",u1:\"u1\",u2:\"u2\",underlineposition:\"underlinePosition\",\"underline-position\":\"underlinePosition\",underlinethickness:\"underlineThickness\",\"underline-thickness\":\"underlineThickness\",unicode:\"unicode\",unicodebidi:\"unicodeBidi\",\"unicode-bidi\":\"unicodeBidi\",unicoderange:\"unicodeRange\",\"unicode-range\":\"unicodeRange\",unitsperem:\"unitsPerEm\",\"units-per-em\":\"unitsPerEm\",unselectable:\"unselectable\",valphabetic:\"vAlphabetic\",\"v-alphabetic\":\"vAlphabetic\",values:\"values\",vectoreffect:\"vectorEffect\",\"vector-effect\":\"vectorEffect\",version:\"version\",vertadvy:\"vertAdvY\",\"vert-adv-y\":\"vertAdvY\",vertoriginx:\"vertOriginX\",\"vert-origin-x\":\"vertOriginX\",vertoriginy:\"vertOriginY\",\"vert-origin-y\":\"vertOriginY\",vhanging:\"vHanging\",\"v-hanging\":\"vHanging\",videographic:\"vIdeographic\",\"v-ideographic\":\"vIdeographic\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",visibility:\"visibility\",vmathematical:\"vMathematical\",\"v-mathematical\":\"vMathematical\",vocab:\"vocab\",widths:\"widths\",wordspacing:\"wordSpacing\",\"word-spacing\":\"wordSpacing\",writingmode:\"writingMode\",\"writing-mode\":\"writingMode\",x1:\"x1\",x2:\"x2\",x:\"x\",xchannelselector:\"xChannelSelector\",xheight:\"xHeight\",\"x-height\":\"xHeight\",xlinkactuate:\"xlinkActuate\",\"xlink:actuate\":\"xlinkActuate\",xlinkarcrole:\"xlinkArcrole\",\"xlink:arcrole\":\"xlinkArcrole\",xlinkhref:\"xlinkHref\",\"xlink:href\":\"xlinkHref\",xlinkrole:\"xlinkRole\",\"xlink:role\":\"xlinkRole\",xlinkshow:\"xlinkShow\",\"xlink:show\":\"xlinkShow\",xlinktitle:\"xlinkTitle\",\"xlink:title\":\"xlinkTitle\",xlinktype:\"xlinkType\",\"xlink:type\":\"xlinkType\",xmlbase:\"xmlBase\",\"xml:base\":\"xmlBase\",xmllang:\"xmlLang\",\"xml:lang\":\"xmlLang\",xmlns:\"xmlns\",\"xml:space\":\"xmlSpace\",xmlnsxlink:\"xmlnsXlink\",\"xmlns:xlink\":\"xmlnsXlink\",xmlspace:\"xmlSpace\",y1:\"y1\",y2:\"y2\",y:\"y\",ychannelselector:\"yChannelSelector\",z:\"z\",zoomandpan:\"zoomAndPan\"},kce={\"aria-current\":0,\"aria-description\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},p_={},MDe=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),NDe=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),_ce=!1,rd={},Cce=/^on./,LDe=/^on[^A-Z]/,BDe=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),DDe=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),FDe=/^[\\\\u0000-\\\\u001F ]*j[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*v[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*s[\\\\r\\\\n\\\\t]*c[\\\\r\\\\n\\\\t]*r[\\\\r\\\\n\\\\t]*i[\\\\r\\\\n\\\\t]*p[\\\\r\\\\n\\\\t]*t[\\\\r\\\\n\\\\t]*:/i,c7=null,m_=null,g_=null,aK=!1,by=!(typeof window>\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),cK=!1;if(by)try{var l7={};Object.defineProperty(l7,\"passive\",{get:function(){cK=!0}}),window.addEventListener(\"test\",l7,l7),window.removeEventListener(\"test\",l7,l7)}catch{cK=!1}var gw=null,lK=null,aN=null,ZE={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(s){return s.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cN=va(ZE),u7=pr({},ZE,{view:0,detail:0}),UDe=va(u7),uK,dK,d7,lN=pr({},u7,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Jh,button:0,buttons:0,relatedTarget:function(s){return s.relatedTarget===void 0?s.fromElement===s.srcElement?s.toElement:s.fromElement:s.relatedTarget},movementX:function(s){return\"movementX\"in s?s.movementX:(s!==d7&&(d7&&s.type===\"mousemove\"?(uK=s.screenX-d7.screenX,dK=s.screenY-d7.screenY):dK=uK=0,d7=s),uK)},movementY:function(s){return\"movementY\"in s?s.movementY:dK}}),Ace=va(lN),jDe=pr({},lN,{dataTransfer:0}),zDe=va(jDe),HDe=pr({},u7,{relatedTarget:0}),fK=va(HDe),qDe=pr({},ZE,{animationName:0,elapsedTime:0,pseudoElement:0}),WDe=va(qDe),VDe=pr({},ZE,{clipboardData:function(s){return\"clipboardData\"in s?s.clipboardData:window.clipboardData}}),$De=va(VDe),KDe=pr({},ZE,{data:0}),Tce=va(KDe),GDe=Tce,ZDe={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},YDe={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},QDe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"},JDe=pr({},u7,{key:function(s){if(s.key){var l=ZDe[s.key]||s.key;if(l!==\"Unidentified\")return l}return s.type===\"keypress\"?(s=Kf(s),s===13?\"Enter\":String.fromCharCode(s)):s.type===\"keydown\"||s.type===\"keyup\"?YDe[s.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Jh,charCode:function(s){return s.type===\"keypress\"?Kf(s):0},keyCode:function(s){return s.type===\"keydown\"||s.type===\"keyup\"?s.keyCode:0},which:function(s){return s.type===\"keypress\"?Kf(s):s.type===\"keydown\"||s.type===\"keyup\"?s.keyCode:0}}),XDe=va(JDe),eFe=pr({},lN,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Rce=va(eFe),tFe=pr({},u7,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Jh}),nFe=va(tFe),rFe=pr({},ZE,{propertyName:0,elapsedTime:0,pseudoElement:0}),oFe=va(rFe),iFe=pr({},lN,{deltaX:function(s){return\"deltaX\"in s?s.deltaX:\"wheelDeltaX\"in s?-s.wheelDeltaX:0},deltaY:function(s){return\"deltaY\"in s?s.deltaY:\"wheelDeltaY\"in s?-s.wheelDeltaY:\"wheelDelta\"in s?-s.wheelDelta:0},deltaZ:0,deltaMode:0}),sFe=va(iFe),aFe=pr({},ZE,{newState:0,oldState:0}),cFe=va(aFe),lFe=[9,13,27,32],Ice=229,hK=by&&\"CompositionEvent\"in window,f7=null;by&&\"documentMode\"in document&&(f7=document.documentMode);var uFe=by&&\"TextEvent\"in window&&!f7,Oce=by&&(!hK||f7&&8<f7&&11>=f7),Pce=32,Mce=String.fromCharCode(Pce),Nce=!1,y_=!1,dFe={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},h7=null,p7=null,Lce=!1;by&&(Lce=Ng(\"input\")&&(!document.documentMode||9<document.documentMode));var od=typeof Object.is==\"function\"?Object.is:np,fFe=by&&\"documentMode\"in document&&11>=document.documentMode,b_=null,pK=null,m7=null,mK=!1,v_={animationend:Vu(\"Animation\",\"AnimationEnd\"),animationiteration:Vu(\"Animation\",\"AnimationIteration\"),animationstart:Vu(\"Animation\",\"AnimationStart\"),transitionrun:Vu(\"Transition\",\"TransitionRun\"),transitionstart:Vu(\"Transition\",\"TransitionStart\"),transitioncancel:Vu(\"Transition\",\"TransitionCancel\"),transitionend:Vu(\"Transition\",\"TransitionEnd\")},gK={},Bce={};by&&(Bce=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete v_.animationend.animation,delete v_.animationiteration.animation,delete v_.animationstart.animation),\"TransitionEvent\"in window||delete v_.transitionend.transition);var Dce=$u(\"animationend\"),Fce=$u(\"animationiteration\"),Uce=$u(\"animationstart\"),hFe=$u(\"transitionrun\"),pFe=$u(\"transitionstart\"),mFe=$u(\"transitioncancel\"),jce=$u(\"transitionend\"),zce=new Map,yK=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");yK.push(\"scrollEnd\");var bK=new WeakMap,uN=1,Nb=2,wp=[],w_=0,vK=0,yw={};Object.freeze(yw);var xp=null,x_=null,Ni=0,gFe=1,ml=2,ru=8,_0=16,Hce=64,qce=!1;try{var Wce=Object.preventExtensions({})}catch{qce=!0}var E_=[],S_=0,dN=null,fN=0,Ep=[],Sp=0,YE=null,Lb=1,Bb=\"\",id=null,Bs=null,Qr=!1,Db=!1,kp=null,QE=null,vy=!1,wK=Error(\"Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you\\'re seeing this, it\\'s likely a bug in React.\"),Vce=0;if(typeof performance==\"object\"&&typeof performance.now==\"function\")var yFe=performance,$ce=function(){return yFe.now()};else{var bFe=Date;$ce=function(){return bFe.now()}}var xK=ae(null),EK=ae(null),Kce={},hN=null,k_=null,__=!1,vFe=typeof AbortController<\"u\"?AbortController:function(){var s=[],l=this.signal={aborted:!1,addEventListener:function(f,y){s.push(y)}};this.abort=function(){l.aborted=!0,s.forEach(function(f){return f()})}},wFe=Ma.unstable_scheduleCallback,xFe=Ma.unstable_NormalPriority,lc={$$typeof:hy,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0,_currentRenderer:null,_currentRenderer2:null},C_=Ma.unstable_now,Gce=-0,pN=-0,lf=-1.1,JE=-0,mN=!1,gN=!1,g7=null,SK=0,XE=0,A_=null,Zce=$e.S;$e.S=function(s,l){typeof l==\"object\"&&l!==null&&typeof l.then==\"function\"&&na(s,l),Zce!==null&&Zce(s,l)};var e5=ae(null),C0={recordUnsafeLifecycleWarnings:function(){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}},y7=[],b7=[],v7=[],w7=[],x7=[],E7=[],t5=new Set;C0.recordUnsafeLifecycleWarnings=function(s,l){t5.has(s.type)||(typeof l.componentWillMount==\"function\"&&l.componentWillMount.__suppressDeprecationWarning!==!0&&y7.push(s),s.mode&ru&&typeof l.UNSAFE_componentWillMount==\"function\"&&b7.push(s),typeof l.componentWillReceiveProps==\"function\"&&l.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&v7.push(s),s.mode&ru&&typeof l.UNSAFE_componentWillReceiveProps==\"function\"&&w7.push(s),typeof l.componentWillUpdate==\"function\"&&l.componentWillUpdate.__suppressDeprecationWarning!==!0&&x7.push(s),s.mode&ru&&typeof l.UNSAFE_componentWillUpdate==\"function\"&&E7.push(s))},C0.flushPendingUnsafeLifecycleWarnings=function(){var s=new Set;0<y7.length&&(y7.forEach(function(te){s.add(Z(te)||\"Component\"),t5.add(te.type)}),y7=[]);var l=new Set;0<b7.length&&(b7.forEach(function(te){l.add(Z(te)||\"Component\"),t5.add(te.type)}),b7=[]);var f=new Set;0<v7.length&&(v7.forEach(function(te){f.add(Z(te)||\"Component\"),t5.add(te.type)}),v7=[]);var y=new Set;0<w7.length&&(w7.forEach(function(te){y.add(Z(te)||\"Component\"),t5.add(te.type)}),w7=[]);var v=new Set;0<x7.length&&(x7.forEach(function(te){v.add(Z(te)||\"Component\"),t5.add(te.type)}),x7=[]);var A=new Set;if(0<E7.length&&(E7.forEach(function(te){A.add(Z(te)||\"Component\"),t5.add(te.type)}),E7=[]),0<l.size){var K=m(l);console.error(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n\\nPlease update the following components: %s`,K)}0<y.size&&(K=m(y),console.error(`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you\\'re updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n\\nPlease update the following components: %s`,K)),0<A.size&&(K=m(A),console.error(`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n\\nPlease update the following components: %s`,K)),0<s.size&&(K=m(s),console.warn(`componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \\\\`npx react-codemod rename-unsafe-lifecycles\\\\` in your project source folder.\\n\\nPlease update the following components: %s`,K)),0<f.size&&(K=m(f),console.warn(`componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you\\'re updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \\\\`npx react-codemod rename-unsafe-lifecycles\\\\` in your project source folder.\\n\\nPlease update the following components: %s`,K)),0<v.size&&(K=m(v),console.warn(`componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \\\\`npx react-codemod rename-unsafe-lifecycles\\\\` in your project source folder.\\n\\nPlease update the following components: %s`,K))};var yN=new Map,Yce=new Set;C0.recordLegacyContextWarning=function(s,l){for(var f=null,y=s;y!==null;)y.mode&ru&&(f=y),y=y.return;f===null?console.error(\"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.\"):!Yce.has(s.type)&&(y=yN.get(f),s.type.contextTypes!=null||s.type.childContextTypes!=null||l!==null&&typeof l.getChildContext==\"function\")&&(y===void 0&&(y=[],yN.set(f,y)),y.push(s))},C0.flushLegacyContextWarning=function(){yN.forEach(function(s){if(s.length!==0){var l=s[0],f=new Set;s.forEach(function(v){f.add(Z(v)||\"Component\"),Yce.add(v.type)});var y=m(f);jt(l,function(){console.error(`Legacy context API has been detected within a strict-mode tree.\\n\\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\\n\\nPlease update the following components: %s\\n\\nLearn more about this warning here: https://react.dev/link/legacy-context`,y)})}})},C0.discardPendingWarnings=function(){y7=[],b7=[],v7=[],w7=[],x7=[],E7=[],yN=new Map};var S7=Error(\"Suspense Exception: This is not a real error! It\\'s an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\\\n\\\\nTo handle async errors, wrap your component in an error boundary, or call the promise\\'s `.catch` method and pass the result to `use`.\"),Qce=Error(\"Suspense Exception: This is not a real error, and should not leak into userspace. If you\\'re seeing this, it\\'s likely a bug in React.\"),bN=Error(\"Suspense Exception: This is not a real error! It\\'s an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\\\n\\\\nTo handle async errors, wrap your component in an error boundary.\"),kK={then:function(){console.error(\\'Internal React error: A listener was unexpectedly attached to a \"noop\" thenable. This is a bug in React. Please file an issue.\\')}},k7=null,vN=!1,_p=0,Cp=1,sd=2,gl=4,uc=8,Jce=0,Xce=1,ele=2,_K=3,bw=!1,tle=!1,CK=null,AK=!1,T_=ae(null),wN=ae(0),R_,nle=new Set,rle=new Set,TK=new Set,ole=new Set,vw=0,Dn=null,ai=null,Na=null,xN=!1,I_=!1,n5=!1,EN=0,_7=0,Fb=null,EFe=0,SFe=25,We=null,Ap=null,Ub=-1,C7=!1,SN={readContext:Hr,use:zl,useCallback:Yo,useContext:Yo,useEffect:Yo,useImperativeHandle:Yo,useLayoutEffect:Yo,useInsertionEffect:Yo,useMemo:Yo,useReducer:Yo,useRef:Yo,useState:Yo,useDebugValue:Yo,useDeferredValue:Yo,useTransition:Yo,useSyncExternalStore:Yo,useId:Yo,useHostTransitionStatus:Yo,useFormState:Yo,useActionState:Yo,useOptimistic:Yo,useMemoCache:Yo,useCacheRefresh:Yo},RK=null,ile=null,IK=null,sle=null,wy=null,A0=null,kN=null;RK={readContext:function(s){return Hr(s)},use:zl,useCallback:function(s,l){return We=\"useCallback\",In(),up(l),_E(s,l)},useContext:function(s){return We=\"useContext\",In(),Hr(s)},useEffect:function(s,l){return We=\"useEffect\",In(),up(l),V2(s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",In(),up(f),kE(s,l,f)},useInsertionEffect:function(s,l){We=\"useInsertionEffect\",In(),up(l),i0(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",In(),up(l),SE(s,l)},useMemo:function(s,l){We=\"useMemo\",In(),up(l);var f=$e.H;$e.H=wy;try{return Zg(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",In();var y=$e.H;$e.H=wy;try{return D2(s,l,f)}finally{$e.H=y}},useRef:function(s){return We=\"useRef\",In(),EE(s)},useState:function(s){We=\"useState\",In();var l=$e.H;$e.H=wy;try{return yE(s)}finally{$e.H=l}},useDebugValue:function(){We=\"useDebugValue\",In()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",In(),CE(s,l)},useTransition:function(){return We=\"useTransition\",In(),TE()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",In(),U2(s,l,f)},useId:function(){return We=\"useId\",In(),IE()},useFormState:function(s,l){return We=\"useFormState\",In(),Vg(),Kg(s,l)},useActionState:function(s,l){return We=\"useActionState\",In(),Kg(s,l)},useOptimistic:function(s){return We=\"useOptimistic\",In(),bE(s)},useHostTransitionStatus:s0,useMemoCache:dp,useCacheRefresh:function(){return We=\"useCacheRefresh\",In(),Y2()}},ile={readContext:function(s){return Hr(s)},use:zl,useCallback:function(s,l){return We=\"useCallback\",gt(),_E(s,l)},useContext:function(s){return We=\"useContext\",gt(),Hr(s)},useEffect:function(s,l){return We=\"useEffect\",gt(),V2(s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",gt(),kE(s,l,f)},useInsertionEffect:function(s,l){We=\"useInsertionEffect\",gt(),i0(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",gt(),SE(s,l)},useMemo:function(s,l){We=\"useMemo\",gt();var f=$e.H;$e.H=wy;try{return Zg(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",gt();var y=$e.H;$e.H=wy;try{return D2(s,l,f)}finally{$e.H=y}},useRef:function(s){return We=\"useRef\",gt(),EE(s)},useState:function(s){We=\"useState\",gt();var l=$e.H;$e.H=wy;try{return yE(s)}finally{$e.H=l}},useDebugValue:function(){We=\"useDebugValue\",gt()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",gt(),CE(s,l)},useTransition:function(){return We=\"useTransition\",gt(),TE()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",gt(),U2(s,l,f)},useId:function(){return We=\"useId\",gt(),IE()},useActionState:function(s,l){return We=\"useActionState\",gt(),Kg(s,l)},useFormState:function(s,l){return We=\"useFormState\",gt(),Vg(),Kg(s,l)},useOptimistic:function(s){return We=\"useOptimistic\",gt(),bE(s)},useHostTransitionStatus:s0,useMemoCache:dp,useCacheRefresh:function(){return We=\"useCacheRefresh\",gt(),Y2()}},IK={readContext:function(s){return Hr(s)},use:zl,useCallback:function(s,l){return We=\"useCallback\",gt(),K2(s,l)},useContext:function(s){return We=\"useContext\",gt(),Hr(s)},useEffect:function(s,l){We=\"useEffect\",gt(),Sc(2048,uc,s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",gt(),$2(s,l,f)},useInsertionEffect:function(s,l){return We=\"useInsertionEffect\",gt(),Sc(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",gt(),Sc(4,gl,s,l)},useMemo:function(s,l){We=\"useMemo\",gt();var f=$e.H;$e.H=A0;try{return G2(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",gt();var y=$e.H;$e.H=A0;try{return n0(s,l,f)}finally{$e.H=y}},useRef:function(){return We=\"useRef\",gt(),Nr().memoizedState},useState:function(){We=\"useState\",gt();var s=$e.H;$e.H=A0;try{return n0(Hl)}finally{$e.H=s}},useDebugValue:function(){We=\"useDebugValue\",gt()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",gt(),Gk(s,l)},useTransition:function(){return We=\"useTransition\",gt(),Jk()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",gt(),r0(s,l,f)},useId:function(){return We=\"useId\",gt(),Nr().memoizedState},useFormState:function(s){return We=\"useFormState\",gt(),Vg(),o0(s)},useActionState:function(s){return We=\"useActionState\",gt(),o0(s)},useOptimistic:function(s,l){return We=\"useOptimistic\",gt(),z2(s,l)},useHostTransitionStatus:s0,useMemoCache:dp,useCacheRefresh:function(){return We=\"useCacheRefresh\",gt(),Nr().memoizedState}},sle={readContext:function(s){return Hr(s)},use:zl,useCallback:function(s,l){return We=\"useCallback\",gt(),K2(s,l)},useContext:function(s){return We=\"useContext\",gt(),Hr(s)},useEffect:function(s,l){We=\"useEffect\",gt(),Sc(2048,uc,s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",gt(),$2(s,l,f)},useInsertionEffect:function(s,l){return We=\"useInsertionEffect\",gt(),Sc(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",gt(),Sc(4,gl,s,l)},useMemo:function(s,l){We=\"useMemo\",gt();var f=$e.H;$e.H=kN;try{return G2(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",gt();var y=$e.H;$e.H=kN;try{return $g(s,l,f)}finally{$e.H=y}},useRef:function(){return We=\"useRef\",gt(),Nr().memoizedState},useState:function(){We=\"useState\",gt();var s=$e.H;$e.H=kN;try{return $g(Hl)}finally{$e.H=s}},useDebugValue:function(){We=\"useDebugValue\",gt()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",gt(),Zk(s,l)},useTransition:function(){return We=\"useTransition\",gt(),RE()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",gt(),r0(s,l,f)},useId:function(){return We=\"useId\",gt(),Nr().memoizedState},useFormState:function(s){return We=\"useFormState\",gt(),Vg(),q2(s)},useActionState:function(s){return We=\"useActionState\",gt(),q2(s)},useOptimistic:function(s,l){return We=\"useOptimistic\",gt(),vE(s,l)},useHostTransitionStatus:s0,useMemoCache:dp,useCacheRefresh:function(){return We=\"useCacheRefresh\",gt(),Nr().memoizedState}},wy={readContext:function(s){return d(),Hr(s)},use:function(s){return u(),zl(s)},useCallback:function(s,l){return We=\"useCallback\",u(),In(),_E(s,l)},useContext:function(s){return We=\"useContext\",u(),In(),Hr(s)},useEffect:function(s,l){return We=\"useEffect\",u(),In(),V2(s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",u(),In(),kE(s,l,f)},useInsertionEffect:function(s,l){We=\"useInsertionEffect\",u(),In(),i0(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",u(),In(),SE(s,l)},useMemo:function(s,l){We=\"useMemo\",u(),In();var f=$e.H;$e.H=wy;try{return Zg(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",u(),In();var y=$e.H;$e.H=wy;try{return D2(s,l,f)}finally{$e.H=y}},useRef:function(s){return We=\"useRef\",u(),In(),EE(s)},useState:function(s){We=\"useState\",u(),In();var l=$e.H;$e.H=wy;try{return yE(s)}finally{$e.H=l}},useDebugValue:function(){We=\"useDebugValue\",u(),In()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",u(),In(),CE(s,l)},useTransition:function(){return We=\"useTransition\",u(),In(),TE()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",u(),In(),U2(s,l,f)},useId:function(){return We=\"useId\",u(),In(),IE()},useFormState:function(s,l){return We=\"useFormState\",u(),In(),Kg(s,l)},useActionState:function(s,l){return We=\"useActionState\",u(),In(),Kg(s,l)},useOptimistic:function(s){return We=\"useOptimistic\",u(),In(),bE(s)},useMemoCache:function(s){return u(),dp(s)},useHostTransitionStatus:s0,useCacheRefresh:function(){return We=\"useCacheRefresh\",In(),Y2()}},A0={readContext:function(s){return d(),Hr(s)},use:function(s){return u(),zl(s)},useCallback:function(s,l){return We=\"useCallback\",u(),gt(),K2(s,l)},useContext:function(s){return We=\"useContext\",u(),gt(),Hr(s)},useEffect:function(s,l){We=\"useEffect\",u(),gt(),Sc(2048,uc,s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",u(),gt(),$2(s,l,f)},useInsertionEffect:function(s,l){return We=\"useInsertionEffect\",u(),gt(),Sc(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",u(),gt(),Sc(4,gl,s,l)},useMemo:function(s,l){We=\"useMemo\",u(),gt();var f=$e.H;$e.H=A0;try{return G2(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",u(),gt();var y=$e.H;$e.H=A0;try{return n0(s,l,f)}finally{$e.H=y}},useRef:function(){return We=\"useRef\",u(),gt(),Nr().memoizedState},useState:function(){We=\"useState\",u(),gt();var s=$e.H;$e.H=A0;try{return n0(Hl)}finally{$e.H=s}},useDebugValue:function(){We=\"useDebugValue\",u(),gt()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",u(),gt(),Gk(s,l)},useTransition:function(){return We=\"useTransition\",u(),gt(),Jk()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",u(),gt(),r0(s,l,f)},useId:function(){return We=\"useId\",u(),gt(),Nr().memoizedState},useFormState:function(s){return We=\"useFormState\",u(),gt(),o0(s)},useActionState:function(s){return We=\"useActionState\",u(),gt(),o0(s)},useOptimistic:function(s,l){return We=\"useOptimistic\",u(),gt(),z2(s,l)},useMemoCache:function(s){return u(),dp(s)},useHostTransitionStatus:s0,useCacheRefresh:function(){return We=\"useCacheRefresh\",gt(),Nr().memoizedState}},kN={readContext:function(s){return d(),Hr(s)},use:function(s){return u(),zl(s)},useCallback:function(s,l){return We=\"useCallback\",u(),gt(),K2(s,l)},useContext:function(s){return We=\"useContext\",u(),gt(),Hr(s)},useEffect:function(s,l){We=\"useEffect\",u(),gt(),Sc(2048,uc,s,l)},useImperativeHandle:function(s,l,f){return We=\"useImperativeHandle\",u(),gt(),$2(s,l,f)},useInsertionEffect:function(s,l){return We=\"useInsertionEffect\",u(),gt(),Sc(4,sd,s,l)},useLayoutEffect:function(s,l){return We=\"useLayoutEffect\",u(),gt(),Sc(4,gl,s,l)},useMemo:function(s,l){We=\"useMemo\",u(),gt();var f=$e.H;$e.H=A0;try{return G2(s,l)}finally{$e.H=f}},useReducer:function(s,l,f){We=\"useReducer\",u(),gt();var y=$e.H;$e.H=A0;try{return $g(s,l,f)}finally{$e.H=y}},useRef:function(){return We=\"useRef\",u(),gt(),Nr().memoizedState},useState:function(){We=\"useState\",u(),gt();var s=$e.H;$e.H=A0;try{return $g(Hl)}finally{$e.H=s}},useDebugValue:function(){We=\"useDebugValue\",u(),gt()},useDeferredValue:function(s,l){return We=\"useDeferredValue\",u(),gt(),Zk(s,l)},useTransition:function(){return We=\"useTransition\",u(),gt(),RE()},useSyncExternalStore:function(s,l,f){return We=\"useSyncExternalStore\",u(),gt(),r0(s,l,f)},useId:function(){return We=\"useId\",u(),gt(),Nr().memoizedState},useFormState:function(s){return We=\"useFormState\",u(),gt(),q2(s)},useActionState:function(s){return We=\"useActionState\",u(),gt(),q2(s)},useOptimistic:function(s,l){return We=\"useOptimistic\",u(),gt(),vE(s,l)},useMemoCache:function(s){return u(),dp(s)},useHostTransitionStatus:s0,useCacheRefresh:function(){return We=\"useCacheRefresh\",gt(),Nr().memoizedState}};var ale={\"react-stack-bottom-frame\":function(s,l,f){var y=yy;yy=!0;try{return s(l,f)}finally{yy=y}}},OK=ale[\"react-stack-bottom-frame\"].bind(ale),cle={\"react-stack-bottom-frame\":function(s){var l=yy;yy=!0;try{return s.render()}finally{yy=l}}},lle=cle[\"react-stack-bottom-frame\"].bind(cle),ule={\"react-stack-bottom-frame\":function(s,l){try{l.componentDidMount()}catch(f){Un(s,s.return,f)}}},PK=ule[\"react-stack-bottom-frame\"].bind(ule),dle={\"react-stack-bottom-frame\":function(s,l,f,y,v){try{l.componentDidUpdate(f,y,v)}catch(A){Un(s,s.return,A)}}},fle=dle[\"react-stack-bottom-frame\"].bind(dle),hle={\"react-stack-bottom-frame\":function(s,l){var f=l.stack;s.componentDidCatch(l.value,{componentStack:f!==null?f:\"\"})}},kFe=hle[\"react-stack-bottom-frame\"].bind(hle),ple={\"react-stack-bottom-frame\":function(s,l,f){try{f.componentWillUnmount()}catch(y){Un(s,l,y)}}},mle=ple[\"react-stack-bottom-frame\"].bind(ple),gle={\"react-stack-bottom-frame\":function(s){s.resourceKind!=null&&console.error(\"Expected only SimpleEffects when enableUseEffectCRUDOverload is disabled, got %s\",s.resourceKind);var l=s.create;return s=s.inst,l=l(),s.destroy=l}},_Fe=gle[\"react-stack-bottom-frame\"].bind(gle),yle={\"react-stack-bottom-frame\":function(s,l,f){try{f()}catch(y){Un(s,l,y)}}},CFe=yle[\"react-stack-bottom-frame\"].bind(yle),ble={\"react-stack-bottom-frame\":function(s){var l=s._init;return l(s._payload)}},ww=ble[\"react-stack-bottom-frame\"].bind(ble),O_=null,A7=0,or=null,MK,vle=MK=!1,wle={},xle={},Ele={};c=function(s,l,f){if(f!==null&&typeof f==\"object\"&&f._store&&(!f._store.validated&&f.key==null||f._store.validated===2)){if(typeof f._store!=\"object\")throw Error(\"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\");f._store.validated=1;var y=Z(s),v=y||\"null\";if(!wle[v]){wle[v]=!0,f=f._owner,s=s._debugOwner;var A=\"\";s&&typeof s.tag==\"number\"&&(v=Z(s))&&(A=`\\n\\nCheck the render method of \\\\``+v+\"`.\"),A||y&&(A=`\\n\\nCheck the top-level render call using <`+y+\">.\");var K=\"\";f!=null&&s!==f&&(y=null,typeof f.tag==\"number\"?y=Z(f):typeof f.name==\"string\"&&(y=f.name),y&&(K=\" It was passed a child from \"+y+\".\")),jt(l,function(){console.error(\\'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.\\',A,K)})}}};var P_=ME(!0),Sle=ME(!1),Tp=ae(null),xy=null,M_=1,T7=2,dc=ae(0),kle={},_le=new Set,Cle=new Set,Ale=new Set,Tle=new Set,Rle=new Set,Ile=new Set,Ole=new Set,Ple=new Set,Mle=new Set,Nle=new Set;Object.freeze(kle);var NK={enqueueSetState:function(s,l,f){s=s._reactInternals;var y=Ee(s),v=Vd(y);v.payload=l,f!=null&&(ew(f),v.callback=f),l=oi(s,v,y),l!==null&&(Le(l,s,y),Xf(l,s,y)),wt(s,y)},enqueueReplaceState:function(s,l,f){s=s._reactInternals;var y=Ee(s),v=Vd(y);v.tag=Xce,v.payload=l,f!=null&&(ew(f),v.callback=f),l=oi(s,v,y),l!==null&&(Le(l,s,y),Xf(l,s,y)),wt(s,y)},enqueueForceUpdate:function(s,l){s=s._reactInternals;var f=Ee(s),y=Vd(f);y.tag=ele,l!=null&&(ew(l),y.callback=l),l=oi(s,y,f),l!==null&&(Le(l,s,f),Xf(l,s,f)),Vt!==null&&typeof Vt.markForceUpdateScheduled==\"function\"&&Vt.markForceUpdateScheduled(s,f)}},LK=typeof reportError==\"function\"?reportError:function(s){if(typeof window==\"object\"&&typeof window.ErrorEvent==\"function\"){var l=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:typeof s==\"object\"&&s!==null&&typeof s.message==\"string\"?String(s.message):String(s),error:s});if(!window.dispatchEvent(l))return}else if(typeof process==\"object\"&&typeof process.emit==\"function\"){process.emit(\"uncaughtException\",s);return}console.error(s)},N_=null,BK=null,Lle=Error(\"This is not a real error. It\\'s an implementation detail of React\\'s selective hydration feature. If this leaks into userspace, it\\'s a bug in React. Please file an issue.\"),Ic=!1,Ble={},Dle={},Fle={},Ule={},L_=!1,jle={},DK={},FK={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null},zle=!1,Hle=null;Hle=new Set;var jb=!1,la=!1,UK=!1,qle=typeof WeakSet==\"function\"?WeakSet:Set,Oc=null,B_=null,D_=null,La=null,uf=!1,T0=null,R7=8192,AFe={getCacheForType:function(s){var l=Hr(lc),f=l.data.get(s);return f===void 0&&(f=s(),l.data.set(s,f)),f},getOwner:function(){return fh}};if(typeof Symbol==\"function\"&&Symbol.for){var I7=Symbol.for;I7(\"selector.component\"),I7(\"selector.has_pseudo_class\"),I7(\"selector.role\"),I7(\"selector.test_id\"),I7(\"selector.text\")}var TFe=[],RFe=typeof WeakMap==\"function\"?WeakMap:Map,hh=0,ad=2,R0=4,zb=0,O7=1,F_=2,jK=3,r5=4,_N=6,Wle=5,Oo=hh,wi=null,kr=null,Rr=0,df=0,P7=1,o5=2,M7=3,Vle=4,zK=5,U_=6,N7=7,HK=8,i5=9,Fo=df,ph=null,xw=!1,j_=!1,qK=!1,Ey=0,Ds=zb,Ew=0,Sw=0,WK=0,mh=0,s5=0,L7=null,cd=null,CN=!1,VK=0,$le=300,AN=1/0,Kle=500,B7=null,kw=null,IFe=0,OFe=1,PFe=2,a5=0,Gle=1,Zle=2,Yle=3,MFe=4,$K=5,yl=0,_w=null,z_=null,Cw=0,KK=0,GK=null,Qle=null,NFe=50,D7=0,ZK=null,YK=!1,TN=!1,LFe=50,c5=0,F7=null,H_=!1,RN=null,Jle=!1,Xle=new Set,BFe={},IN=null,q_=null,QK=!1,JK=!1,ON=!1,XK=!1,l5=0,eG={};(function(){for(var s=0;s<yK.length;s++){var l=yK[s],f=l.toLowerCase();l=l[0].toUpperCase()+l.slice(1),Js(f,\"on\"+l)}Js(Dce,\"onAnimationEnd\"),Js(Fce,\"onAnimationIteration\"),Js(Uce,\"onAnimationStart\"),Js(\"dblclick\",\"onDoubleClick\"),Js(\"focusin\",\"onFocus\"),Js(\"focusout\",\"onBlur\"),Js(hFe,\"onTransitionRun\"),Js(pFe,\"onTransitionStart\"),Js(mFe,\"onTransitionCancel\"),Js(jce,\"onTransitionEnd\")})(),hn(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),hn(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),hn(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),hn(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),It(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),It(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),It(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),It(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),It(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),It(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var U7=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),tG=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(U7)),PN=\"_reactListening\"+Math.random().toString(36).slice(2),eue=!1,tue=!1,MN=!1,nue=!1,NN=!1,LN=!1,rue=!1,BN={},DFe=/\\\\r\\\\n?/g,FFe=/\\\\u0000|\\\\uFFFD/g,u5=\"http://www.w3.org/1999/xlink\",nG=\"http://www.w3.org/XML/1998/namespace\",UFe=\"javascript:throw new Error(\\'React form unexpectedly submitted.\\')\",jFe=\"suppressHydrationWarning\",DN=\"$\",FN=\"/$\",Hb=\"$?\",j7=\"$!\",zFe=1,HFe=2,qFe=4,rG=\"F!\",oue=\"F\",iue=\"complete\",WFe=\"style\",qb=0,W_=1,UN=2,oG=null,iG=null,sue={dialog:!0,webview:!0},sG=null,aue=typeof setTimeout==\"function\"?setTimeout:void 0,VFe=typeof clearTimeout==\"function\"?clearTimeout:void 0,d5=-1,cue=typeof Promise==\"function\"?Promise:void 0,$Fe=typeof queueMicrotask==\"function\"?queueMicrotask:typeof cue<\"u\"?function(s){return cue.resolve(null).then(s).catch(nf)}:aue,aG=null,f5=0,z7=1,lue=2,uue=3,Rp=4,Ip=new Map,due=new Set,Wb=Io.d;Io.d={f:function(){var s=Wb.f(),l=bt();return s||l},r:function(s){var l=le(s);l!==null&&l.tag===5&&l.type===\"form\"?th(l):Wb.r(s)},D:function(s){Wb.D(s),dy(\"dns-prefetch\",s,null)},C:function(s,l){Wb.C(s,l),dy(\"preconnect\",s,l)},L:function(s,l,f){Wb.L(s,l,f);var y=V_;if(y&&s&&l){var v=\\'link[rel=\"preload\"][as=\"\\'+Zo(l)+\\'\"]\\';l===\"image\"&&f&&f.imageSrcSet?(v+=\\'[imagesrcset=\"\\'+Zo(f.imageSrcSet)+\\'\"]\\',typeof f.imageSizes==\"string\"&&(v+=\\'[imagesizes=\"\\'+Zo(f.imageSizes)+\\'\"]\\')):v+=\\'[href=\"\\'+Zo(s)+\\'\"]\\';var A=v;switch(l){case\"style\":A=sf(s);break;case\"script\":A=fy(s)}Ip.has(A)||(s=pr({rel:\"preload\",href:l===\"image\"&&f&&f.imageSrcSet?void 0:s,as:l},f),Ip.set(A,s),y.querySelector(v)!==null||l===\"style\"&&y.querySelector(Ib(A))||l===\"script\"&&y.querySelector(uw(A))||(l=y.createElement(\"link\"),Ro(l,\"link\",s),tt(l),y.head.appendChild(l)))}},m:function(s,l){Wb.m(s,l);var f=V_;if(f&&s){var y=l&&typeof l.as==\"string\"?l.as:\"script\",v=\\'link[rel=\"modulepreload\"][as=\"\\'+Zo(y)+\\'\"][href=\"\\'+Zo(s)+\\'\"]\\',A=v;switch(y){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":A=fy(s)}if(!Ip.has(A)&&(s=pr({rel:\"modulepreload\",href:s},l),Ip.set(A,s),f.querySelector(v)===null)){switch(y){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(f.querySelector(uw(A)))return}y=f.createElement(\"link\"),Ro(y,\"link\",s),tt(y),f.head.appendChild(y)}}},X:function(s,l){Wb.X(s,l);var f=V_;if(f&&s){var y=xt(f).hoistableScripts,v=fy(s),A=y.get(v);A||(A=f.querySelector(uw(v)),A||(s=pr({src:s,async:!0},l),(l=Ip.get(v))&&a_(s,l),A=f.createElement(\"script\"),tt(A),Ro(A,\"link\",s),f.head.appendChild(A)),A={type:\"script\",instance:A,count:1,state:null},y.set(v,A))}},S:function(s,l,f){Wb.S(s,l,f);var y=V_;if(y&&s){var v=xt(y).hoistableStyles,A=sf(s);l=l||\"default\";var K=v.get(A);if(!K){var te={loading:f5,preload:null};if(K=y.querySelector(Ib(A)))te.loading=z7|Rp;else{s=pr({rel:\"stylesheet\",href:s,\"data-precedence\":l},f),(f=Ip.get(A))&&KE(s,f);var fe=K=y.createElement(\"link\");tt(fe),Ro(fe,\"link\",s),fe._p=new Promise(function(me,Ue){fe.onload=me,fe.onerror=Ue}),fe.addEventListener(\"load\",function(){te.loading|=z7}),fe.addEventListener(\"error\",function(){te.loading|=lue}),te.loading|=Rp,$E(K,l,y)}K={type:\"stylesheet\",instance:K,count:1,state:te},v.set(A,K)}}},M:function(s,l){Wb.M(s,l);var f=V_;if(f&&s){var y=xt(f).hoistableScripts,v=fy(s),A=y.get(v);A||(A=f.querySelector(uw(v)),A||(s=pr({src:s,async:!0,type:\"module\"},l),(l=Ip.get(v))&&a_(s,l),A=f.createElement(\"script\"),tt(A),Ro(A,\"link\",s),f.head.appendChild(A)),A={type:\"script\",instance:A,count:1,state:null},y.set(v,A))}}};var V_=typeof document>\"u\"?null:document,jN=null,H7=null,cG=null,zN=null,h5=dDe,q7={$$typeof:hy,Provider:null,Consumer:null,_currentValue:h5,_currentValue2:h5,_threadCount:0},fue=\"%c%s%c \",hue=\"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\",pue=\"\",HN=\" \",KFe=Function.prototype.bind,mue=!1,gue=null,yue=null,bue=null,vue=null,wue=null,xue=null,Eue=null,Sue=null,kue=null;gue=function(s,l,f,y){l=t(s,l),l!==null&&(f=e(l.memoizedState,f,0,y),l.memoizedState=f,l.baseState=f,s.memoizedProps=pr({},s.memoizedProps),f=Rs(s,2),f!==null&&Le(f,s,2))},yue=function(s,l,f){l=t(s,l),l!==null&&(f=o(l.memoizedState,f,0),l.memoizedState=f,l.baseState=f,s.memoizedProps=pr({},s.memoizedProps),f=Rs(s,2),f!==null&&Le(f,s,2))},bue=function(s,l,f,y){l=t(s,l),l!==null&&(f=n(l.memoizedState,f,y),l.memoizedState=f,l.baseState=f,s.memoizedProps=pr({},s.memoizedProps),f=Rs(s,2),f!==null&&Le(f,s,2))},vue=function(s,l,f){s.pendingProps=e(s.memoizedProps,l,0,f),s.alternate&&(s.alternate.pendingProps=s.pendingProps),l=Rs(s,2),l!==null&&Le(l,s,2)},wue=function(s,l){s.pendingProps=o(s.memoizedProps,l,0),s.alternate&&(s.alternate.pendingProps=s.pendingProps),l=Rs(s,2),l!==null&&Le(l,s,2)},xue=function(s,l,f){s.pendingProps=n(s.memoizedProps,l,f),s.alternate&&(s.alternate.pendingProps=s.pendingProps),l=Rs(s,2),l!==null&&Le(l,s,2)},Eue=function(s){var l=Rs(s,2);l!==null&&Le(l,s,2)},Sue=function(s){a=s},kue=function(s){i=s};var qN=!0,WN=null,lG=!1,Aw=null,Tw=null,Rw=null,W7=new Map,V7=new Map,Iw=[],GFe=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \"),VN=null;if(QM.prototype.render=z$.prototype.render=function(s){var l=this._internalRoot;if(l===null)throw Error(\"Cannot update an unmounted root.\");var f=arguments;typeof f[1]==\"function\"?console.error(\"does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"):T(f[1])?console.error(\"You passed a container to the second argument of root.render(...). You don\\'t need to pass it again since you already passed it to create the root.\"):typeof f[1]<\"u\"&&console.error(\"You passed a second argument to root.render(...) but it only accepts one argument.\"),f=s;var y=l.current,v=Ee(y);B$(y,v,f,l,null,null)},QM.prototype.unmount=z$.prototype.unmount=function(){var s=arguments;if(typeof s[0]==\"function\"&&console.error(\"does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"),s=this._internalRoot,s!==null){this._internalRoot=null;var l=s.containerInfo;(Oo&(ad|R0))!==hh&&console.error(\"Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.\"),B$(s.current,2,null,s,null,null),bt(),l[mw]=null}},QM.prototype.unstable_scheduleHydration=function(s){if(s){var l=hi();s={blockedOn:null,target:s,priority:l};for(var f=0;f<Iw.length&&l!==0&&l<Iw[f].priority;f++);Iw.splice(f,0,s),f===0&&Wae(s)}},function(){var s=H$.version;if(s!==\"19.1.0\")throw Error(`Incompatible React versions: The \"react\" and \"react-dom\" packages must have the exact same version. Instead got:\\n  - react:      `+(s+`\\n  - react-dom:  19.1.0\\nLearn more: https://react.dev/warnings/version-mismatch`))}(),typeof Map==\"function\"&&Map.prototype!=null&&typeof Map.prototype.forEach==\"function\"&&typeof Set==\"function\"&&Set.prototype!=null&&typeof Set.prototype.clear==\"function\"&&typeof Set.prototype.forEach==\"function\"||console.error(\"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills\"),Io.findDOMNode=function(s){var l=s._reactInternals;if(l===void 0)throw typeof s.render==\"function\"?Error(\"Unable to find node on an unmounted component.\"):(s=Object.keys(s).join(\",\"),Error(\"Argument appears to not be a ReactComponent. Keys: \"+s));return s=G(l),s=s!==null?W(s):null,s=s===null?null:s.stateNode,s},!function(){var s={bundleType:1,version:\"19.1.0\",rendererPackageName:\"react-dom\",currentDispatcherRef:$e,reconcilerVersion:\"19.1.0\"};return s.overrideHookState=gue,s.overrideHookStateDeletePath=yue,s.overrideHookStateRenamePath=bue,s.overrideProps=vue,s.overridePropsDeletePath=wue,s.overridePropsRenamePath=xue,s.scheduleUpdate=Eue,s.setErrorHandler=Sue,s.setSuspenseHandler=kue,s.scheduleRefresh=E,s.scheduleRoot=b,s.setRefreshHandler=C,s.getCurrentFiber=eDe,s.getLaneLabelMap=tDe,s.injectProfilingHooks=pe,ee(s)}()&&by&&window.top===window.self&&(-1<navigator.userAgent.indexOf(\"Chrome\")&&navigator.userAgent.indexOf(\"Edge\")===-1||-1<navigator.userAgent.indexOf(\"Firefox\"))){var _ue=window.location.protocol;/^(https?|file):$/.test(_ue)&&console.info(\"%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools\"+(_ue===\"file:\"?`\\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq`:\"\"),\"font-weight:bold\")}YN.createRoot=function(s,l){if(!T(s))throw Error(\"Target container is not a DOM element.\");Kae(s);var f=!1,y=\"\",v=LE,A=BE,K=wb,te=null;return l!=null&&(l.hydrate?console.warn(\"hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.\"):typeof l==\"object\"&&l!==null&&l.$$typeof===dw&&console.error(`You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\\n\\n  let root = createRoot(domContainer);\\n  root.render(<App />);`),l.unstable_strictMode===!0&&(f=!0),l.identifierPrefix!==void 0&&(y=l.identifierPrefix),l.onUncaughtError!==void 0&&(v=l.onUncaughtError),l.onCaughtError!==void 0&&(A=l.onCaughtError),l.onRecoverableError!==void 0&&(K=l.onRecoverableError),l.unstable_transitionCallbacks!==void 0&&(te=l.unstable_transitionCallbacks)),l=Fae(s,1,!1,null,null,f,y,v,A,K,te,null),s[mw]=l.current,Zl(s),new z$(l)},YN.hydrateRoot=function(s,l,f){if(!T(s))throw Error(\"Target container is not a DOM element.\");Kae(s),l===void 0&&console.error(\"Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)\");var y=!1,v=\"\",A=LE,K=BE,te=wb,fe=null,me=null;return f!=null&&(f.unstable_strictMode===!0&&(y=!0),f.identifierPrefix!==void 0&&(v=f.identifierPrefix),f.onUncaughtError!==void 0&&(A=f.onUncaughtError),f.onCaughtError!==void 0&&(K=f.onCaughtError),f.onRecoverableError!==void 0&&(te=f.onRecoverableError),f.unstable_transitionCallbacks!==void 0&&(fe=f.unstable_transitionCallbacks),f.formState!==void 0&&(me=f.formState)),l=Fae(s,1,!0,l,f??null,y,v,A,K,te,fe,me),l.context=Uae(null),f=l.current,y=Ee(f),y=br(y),v=Vd(y),v.callback=null,oi(f,v,y),f=y,l.current.lanes=f,qt(l,f),sa(l),s[mw]=l.current,Zl(s),new QM(l)},YN.version=\"19.1.0\",typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var ide=be((Ebt,ode)=>{\"use strict\";p();ode.exports=rde()});function Ba(t){return{formatters:void 0,fees:void 0,serializers:void 0,...t}}var O0=ce(()=>{p()});var xG,sde=ce(()=>{p();xG=\"2.31.4\"});function ade(t,e){return e?.(t)?t:t&&typeof t==\"object\"&&\"cause\"in t&&t.cause!==void 0?ade(t.cause,e):e?null:t}var EG,Be,ir=ce(()=>{p();sde();EG={getDocsUrl:({docsBaseUrl:t,docsPath:e=\"\",docsSlug:n})=>e?`${t??\"https://viem.sh\"}${e}${n?`#${n}`:\"\"}`:void 0,version:`viem@${xG}`},Be=class t extends Error{constructor(e,n={}){let r=n.cause instanceof t?n.cause.details:n.cause?.message?n.cause.message:n.details,o=n.cause instanceof t&&n.cause.docsPath||n.docsPath,i=EG.getDocsUrl?.({...n,docsPath:o}),a=[e||\"An error occurred.\",\"\",...n.metaMessages?[...n.metaMessages,\"\"]:[],...i?[`Docs: ${i}`]:[],...r?[`Details: ${r}`]:[],...EG.version?[`Version: ${EG.version}`]:[]].join(`\\n`);super(a,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docsPath\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"metaMessages\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"shortMessage\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"version\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"BaseError\"}),this.details=r,this.docsPath=o,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=e,this.version=xG}walk(e){return ade(this,e)}}});var Y_,QN,JN,XN,Z7=ce(()=>{p();ir();Y_=class extends Be{constructor({max:e,min:n,signed:r,size:o,value:i}){super(`Number \"${i}\" is not in safe ${o?`${o*8}-bit ${r?\"signed\":\"unsigned\"} `:\"\"}integer range ${e?`(${n} to ${e})`:`(above ${n})`}`,{name:\"IntegerOutOfRangeError\"})}},QN=class extends Be{constructor(e){super(`Bytes value \"${e}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:\"InvalidBytesBooleanError\"})}},JN=class extends Be{constructor(e){super(`Hex value \"${e}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`,{name:\"InvalidHexBooleanError\"})}},XN=class extends Be{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${e} bytes.`,{name:\"SizeOverflowError\"})}}});function da(t,{strict:e=!0}={}){return!t||typeof t!=\"string\"?!1:e?/^0x[0-9a-fA-F]*$/.test(t):t.startsWith(\"0x\")}var P0=ce(()=>{p()});function Jr(t){return da(t,{strict:!1})?Math.ceil((t.length-2)/2):t.length}var Mp=ce(()=>{p();P0()});function Fs(t,{dir:e=\"left\"}={}){let n=typeof t==\"string\"?t.replace(\"0x\",\"\"):t,r=0;for(let o=0;o<n.length-1&&n[e===\"left\"?o:n.length-o-1].toString()===\"0\";o++)r++;return n=e===\"left\"?n.slice(r):n.slice(0,n.length-r),typeof t==\"string\"?(n.length===1&&e===\"right\"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}var Pw=ce(()=>{p()});var Y7,Q7,J7,eL=ce(()=>{p();ir();Y7=class extends Be{constructor({offset:e,position:n,size:r}){super(`Slice ${n===\"start\"?\"starting\":\"ending\"} at offset \"${e}\" is out-of-bounds (size: ${r}).`,{name:\"SliceOffsetOutOfBoundsError\"})}},Q7=class extends Be{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (${e}) exceeds padding size (${n}).`,{name:\"SizeExceedsPaddingSizeError\"})}},J7=class extends Be{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} is expected to be ${n} ${r} long, but is ${e} ${r} long.`,{name:\"InvalidBytesLengthError\"})}}});function Np(t,{dir:e,size:n=32}={}){return typeof t==\"string\"?Gb(t,{dir:e,size:n}):LUe(t,{dir:e,size:n})}function Gb(t,{dir:e,size:n=32}={}){if(n===null)return t;let r=t.replace(\"0x\",\"\");if(r.length>n*2)throw new Q7({size:Math.ceil(r.length/2),targetSize:n,type:\"hex\"});return`0x${r[e===\"right\"?\"padEnd\":\"padStart\"](n*2,\"0\")}`}function LUe(t,{dir:e,size:n=32}={}){if(n===null)return t;if(t.length>n)throw new Q7({size:t.length,targetSize:n,type:\"bytes\"});let r=new Uint8Array(n);for(let o=0;o<n;o++){let i=e===\"right\";r[i?o:n-o-1]=t[i?o:t.length-o-1]}return r}var X7=ce(()=>{p();eL()});function Uo(t,e={}){return typeof t==\"number\"||typeof t==\"bigint\"?Ye(t,e):typeof t==\"string\"?gh(t,e):typeof t==\"boolean\"?Q_(t,e):Xr(t,e)}function Q_(t,e={}){let n=`0x${Number(t)}`;return typeof e.size==\"number\"?(dd(n,{size:e.size}),Np(n,{size:e.size})):n}function Xr(t,e={}){let n=\"\";for(let o=0;o<t.length;o++)n+=BUe[t[o]];let r=`0x${n}`;return typeof e.size==\"number\"?(dd(r,{size:e.size}),Np(r,{dir:\"right\",size:e.size})):r}function Ye(t,e={}){let{signed:n,size:r}=e,o=BigInt(t),i;r?n?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof t==\"number\"&&(i=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof i==\"bigint\"&&n?-i-1n:0;if(i&&o>i||o<a){let u=typeof t==\"bigint\"?\"n\":\"\";throw new Y_({max:i?`${i}${u}`:void 0,min:`${a}${u}`,signed:n,size:r,value:`${t}${u}`})}let c=`0x${(n&&o<0?(1n<<BigInt(r*8))+BigInt(o):o).toString(16)}`;return r?Np(c,{size:r}):c}function gh(t,e={}){let n=DUe.encode(t);return Xr(n,e)}var BUe,DUe,gn=ce(()=>{p();Z7();X7();fc();BUe=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));DUe=new TextEncoder});function Lp(t,e={}){return typeof t==\"number\"||typeof t==\"bigint\"?jUe(t,e):typeof t==\"boolean\"?UUe(t,e):da(t)?Us(t,e):M0(t,e)}function UUe(t,e={}){let n=new Uint8Array(1);return n[0]=Number(t),typeof e.size==\"number\"?(dd(n,{size:e.size}),Np(n,{size:e.size})):n}function cde(t){if(t>=Zb.zero&&t<=Zb.nine)return t-Zb.zero;if(t>=Zb.A&&t<=Zb.F)return t-(Zb.A-10);if(t>=Zb.a&&t<=Zb.f)return t-(Zb.a-10)}function Us(t,e={}){let n=t;e.size&&(dd(n,{size:e.size}),n=Np(n,{dir:\"right\",size:e.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let o=r.length/2,i=new Uint8Array(o);for(let a=0,c=0;a<o;a++){let u=cde(r.charCodeAt(c++)),d=cde(r.charCodeAt(c++));if(u===void 0||d===void 0)throw new Be(`Invalid byte sequence (\"${r[c-2]}${r[c-1]}\" in \"${r}\").`);i[a]=u*16+d}return i}function jUe(t,e){let n=Ye(t,e);return Us(n)}function M0(t,e={}){let n=FUe.encode(t);return typeof e.size==\"number\"?(dd(n,{size:e.size}),Np(n,{dir:\"right\",size:e.size})):n}var FUe,Zb,hc=ce(()=>{p();ir();P0();X7();fc();gn();FUe=new TextEncoder;Zb={zero:48,nine:57,A:65,F:70,a:97,f:102}});function dd(t,{size:e}){if(Jr(t)>e)throw new XN({givenSize:Jr(t),maxSize:e})}function tL(t,e){let n=typeof e==\"string\"?{to:e}:e,r=n.to;return r===\"number\"?Ei(t,n):r===\"bigint\"?jo(t,n):r===\"string\"?g5(t,n):r===\"boolean\"?eR(t,n):Us(t,n)}function jo(t,e={}){let{signed:n}=e;e.size&&dd(t,{size:e.size});let r=BigInt(t);if(!n)return r;let o=(t.length-2)/2,i=(1n<<BigInt(o)*8n-1n)-1n;return r<=i?r:r-BigInt(`0x${\"f\".padStart(o*2,\"f\")}`)-1n}function eR(t,e={}){let n=t;if(e.size&&(dd(n,{size:e.size}),n=Fs(n)),Fs(n)===\"0x00\")return!1;if(Fs(n)===\"0x01\")return!0;throw new JN(n)}function Ei(t,e={}){return Number(jo(t,e))}function g5(t,e={}){let n=Us(t);return e.size&&(dd(n,{size:e.size}),n=Fs(n,{dir:\"right\"})),new TextDecoder().decode(n)}var fc=ce(()=>{p();Z7();Mp();Pw();hc()});function J_(t,e){return({exclude:n,format:r})=>({exclude:n,format:o=>{let i=e(o);if(n)for(let a of n)delete i[a];return{...i,...r(o)}},type:t})}var nL=ce(()=>{p()});function y5(t){let e={...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,chainId:t.chainId?Ei(t.chainId):void 0,gas:t.gas?BigInt(t.gas):void 0,gasPrice:t.gasPrice?BigInt(t.gasPrice):void 0,maxFeePerBlobGas:t.maxFeePerBlobGas?BigInt(t.maxFeePerBlobGas):void 0,maxFeePerGas:t.maxFeePerGas?BigInt(t.maxFeePerGas):void 0,maxPriorityFeePerGas:t.maxPriorityFeePerGas?BigInt(t.maxPriorityFeePerGas):void 0,nonce:t.nonce?Ei(t.nonce):void 0,to:t.to?t.to:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,type:t.type?SG[t.type]:void 0,typeHex:t.type?t.type:void 0,value:t.value?BigInt(t.value):void 0,v:t.v?BigInt(t.v):void 0};return t.authorizationList&&(e.authorizationList=zUe(t.authorizationList)),e.yParity=(()=>{if(t.yParity)return Number(t.yParity);if(typeof e.v==\"bigint\"){if(e.v===0n||e.v===27n)return 0;if(e.v===1n||e.v===28n)return 1;if(e.v>=35n)return e.v%2n===0n?1:0}})(),e.type===\"legacy\"&&(delete e.accessList,delete e.maxFeePerBlobGas,delete e.maxFeePerGas,delete e.maxPriorityFeePerGas,delete e.yParity),e.type===\"eip2930\"&&(delete e.maxFeePerBlobGas,delete e.maxFeePerGas,delete e.maxPriorityFeePerGas),e.type===\"eip1559\"&&delete e.maxFeePerBlobGas,e}function zUe(t){return t.map(e=>({address:e.address,chainId:Number(e.chainId),nonce:Number(e.nonce),r:e.r,s:e.s,yParity:Number(e.yParity)}))}var SG,lde,tR=ce(()=>{p();fc();nL();SG={\"0x0\":\"legacy\",\"0x1\":\"eip2930\",\"0x2\":\"eip1559\",\"0x3\":\"eip4844\",\"0x4\":\"eip7702\"};lde=J_(\"transaction\",y5)});function nR(t){let e=(t.transactions??[]).map(n=>typeof n==\"string\"?n:y5(n));return{...t,baseFeePerGas:t.baseFeePerGas?BigInt(t.baseFeePerGas):null,blobGasUsed:t.blobGasUsed?BigInt(t.blobGasUsed):void 0,difficulty:t.difficulty?BigInt(t.difficulty):void 0,excessBlobGas:t.excessBlobGas?BigInt(t.excessBlobGas):void 0,gasLimit:t.gasLimit?BigInt(t.gasLimit):void 0,gasUsed:t.gasUsed?BigInt(t.gasUsed):void 0,hash:t.hash?t.hash:null,logsBloom:t.logsBloom?t.logsBloom:null,nonce:t.nonce?t.nonce:null,number:t.number?BigInt(t.number):null,size:t.size?BigInt(t.size):void 0,timestamp:t.timestamp?BigInt(t.timestamp):void 0,transactions:e,totalDifficulty:t.totalDifficulty?BigInt(t.totalDifficulty):null}}var ude,rL=ce(()=>{p();nL();tR();ude=J_(\"block\",nR)});function ou(t,{args:e,eventName:n}={}){return{...t,blockHash:t.blockHash?t.blockHash:null,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,logIndex:t.logIndex?Number(t.logIndex):null,transactionHash:t.transactionHash?t.transactionHash:null,transactionIndex:t.transactionIndex?Number(t.transactionIndex):null,...n?{args:e,eventName:n}:{}}}var Mw=ce(()=>{p()});function _G(t){let e={...t,blockNumber:t.blockNumber?BigInt(t.blockNumber):null,contractAddress:t.contractAddress?t.contractAddress:null,cumulativeGasUsed:t.cumulativeGasUsed?BigInt(t.cumulativeGasUsed):null,effectiveGasPrice:t.effectiveGasPrice?BigInt(t.effectiveGasPrice):null,gasUsed:t.gasUsed?BigInt(t.gasUsed):null,logs:t.logs?t.logs.map(n=>ou(n)):null,to:t.to?t.to:null,transactionIndex:t.transactionIndex?Ei(t.transactionIndex):null,status:t.status?kG[t.status]:null,type:t.type?SG[t.type]||t.type:null};return t.blobGasPrice&&(e.blobGasPrice=BigInt(t.blobGasPrice)),t.blobGasUsed&&(e.blobGasUsed=BigInt(t.blobGasUsed)),e}var kG,dde,oL=ce(()=>{p();fc();nL();Mw();tR();kG={\"0x0\":\"reverted\",\"0x1\":\"success\"};dde=J_(\"transactionReceipt\",_G)});function Bp(t){let e={};return typeof t.authorizationList<\"u\"&&(e.authorizationList=qUe(t.authorizationList)),typeof t.accessList<\"u\"&&(e.accessList=t.accessList),typeof t.blobVersionedHashes<\"u\"&&(e.blobVersionedHashes=t.blobVersionedHashes),typeof t.blobs<\"u\"&&(typeof t.blobs[0]!=\"string\"?e.blobs=t.blobs.map(n=>Xr(n)):e.blobs=t.blobs),typeof t.data<\"u\"&&(e.data=t.data),typeof t.from<\"u\"&&(e.from=t.from),typeof t.gas<\"u\"&&(e.gas=Ye(t.gas)),typeof t.gasPrice<\"u\"&&(e.gasPrice=Ye(t.gasPrice)),typeof t.maxFeePerBlobGas<\"u\"&&(e.maxFeePerBlobGas=Ye(t.maxFeePerBlobGas)),typeof t.maxFeePerGas<\"u\"&&(e.maxFeePerGas=Ye(t.maxFeePerGas)),typeof t.maxPriorityFeePerGas<\"u\"&&(e.maxPriorityFeePerGas=Ye(t.maxPriorityFeePerGas)),typeof t.nonce<\"u\"&&(e.nonce=Ye(t.nonce)),typeof t.to<\"u\"&&(e.to=t.to),typeof t.type<\"u\"&&(e.type=HUe[t.type]),typeof t.value<\"u\"&&(e.value=Ye(t.value)),e}function qUe(t){return t.map(e=>({address:e.address,r:e.r?Ye(BigInt(e.r)):e.r,s:e.s?Ye(BigInt(e.s)):e.s,chainId:Ye(e.chainId),nonce:Ye(e.nonce),...typeof e.yParity<\"u\"?{yParity:Ye(e.yParity)}:{},...typeof e.v<\"u\"&&typeof e.yParity>\"u\"?{v:Ye(e.v)}:{}}))}var HUe,b5=ce(()=>{p();gn();HUe={legacy:\"0x0\",eip2930:\"0x1\",eip1559:\"0x2\",eip4844:\"0x3\",eip7702:\"0x4\"}});var Pvt,Mvt,Nvt,Lvt,Bvt,Dvt,Fvt,Uvt,jvt,zvt,Hvt,qvt,Wvt,Vvt,$vt,Kvt,Gvt,Zvt,Yvt,Qvt,Jvt,Xvt,e2t,t2t,n2t,r2t,o2t,i2t,s2t,a2t,c2t,l2t,u2t,d2t,f2t,h2t,p2t,m2t,g2t,y2t,b2t,v2t,w2t,x2t,E2t,S2t,k2t,_2t,C2t,A2t,T2t,R2t,I2t,O2t,P2t,M2t,N2t,L2t,B2t,D2t,F2t,U2t,j2t,z2t,H2t,q2t,W2t,V2t,$2t,K2t,G2t,Z2t,Y2t,Q2t,J2t,X2t,ewt,twt,nwt,rwt,owt,iwt,swt,awt,cwt,lwt,uwt,dwt,fwt,hwt,pwt,mwt,gwt,ywt,bwt,X_,CG=ce(()=>{p();Pvt=2n**(8n-1n)-1n,Mvt=2n**(16n-1n)-1n,Nvt=2n**(24n-1n)-1n,Lvt=2n**(32n-1n)-1n,Bvt=2n**(40n-1n)-1n,Dvt=2n**(48n-1n)-1n,Fvt=2n**(56n-1n)-1n,Uvt=2n**(64n-1n)-1n,jvt=2n**(72n-1n)-1n,zvt=2n**(80n-1n)-1n,Hvt=2n**(88n-1n)-1n,qvt=2n**(96n-1n)-1n,Wvt=2n**(104n-1n)-1n,Vvt=2n**(112n-1n)-1n,$vt=2n**(120n-1n)-1n,Kvt=2n**(128n-1n)-1n,Gvt=2n**(136n-1n)-1n,Zvt=2n**(144n-1n)-1n,Yvt=2n**(152n-1n)-1n,Qvt=2n**(160n-1n)-1n,Jvt=2n**(168n-1n)-1n,Xvt=2n**(176n-1n)-1n,e2t=2n**(184n-1n)-1n,t2t=2n**(192n-1n)-1n,n2t=2n**(200n-1n)-1n,r2t=2n**(208n-1n)-1n,o2t=2n**(216n-1n)-1n,i2t=2n**(224n-1n)-1n,s2t=2n**(232n-1n)-1n,a2t=2n**(240n-1n)-1n,c2t=2n**(248n-1n)-1n,l2t=2n**(256n-1n)-1n,u2t=-(2n**(8n-1n)),d2t=-(2n**(16n-1n)),f2t=-(2n**(24n-1n)),h2t=-(2n**(32n-1n)),p2t=-(2n**(40n-1n)),m2t=-(2n**(48n-1n)),g2t=-(2n**(56n-1n)),y2t=-(2n**(64n-1n)),b2t=-(2n**(72n-1n)),v2t=-(2n**(80n-1n)),w2t=-(2n**(88n-1n)),x2t=-(2n**(96n-1n)),E2t=-(2n**(104n-1n)),S2t=-(2n**(112n-1n)),k2t=-(2n**(120n-1n)),_2t=-(2n**(128n-1n)),C2t=-(2n**(136n-1n)),A2t=-(2n**(144n-1n)),T2t=-(2n**(152n-1n)),R2t=-(2n**(160n-1n)),I2t=-(2n**(168n-1n)),O2t=-(2n**(176n-1n)),P2t=-(2n**(184n-1n)),M2t=-(2n**(192n-1n)),N2t=-(2n**(200n-1n)),L2t=-(2n**(208n-1n)),B2t=-(2n**(216n-1n)),D2t=-(2n**(224n-1n)),F2t=-(2n**(232n-1n)),U2t=-(2n**(240n-1n)),j2t=-(2n**(248n-1n)),z2t=-(2n**(256n-1n)),H2t=2n**8n-1n,q2t=2n**16n-1n,W2t=2n**24n-1n,V2t=2n**32n-1n,$2t=2n**40n-1n,K2t=2n**48n-1n,G2t=2n**56n-1n,Z2t=2n**64n-1n,Y2t=2n**72n-1n,Q2t=2n**80n-1n,J2t=2n**88n-1n,X2t=2n**96n-1n,ewt=2n**104n-1n,twt=2n**112n-1n,nwt=2n**120n-1n,rwt=2n**128n-1n,owt=2n**136n-1n,iwt=2n**144n-1n,swt=2n**152n-1n,awt=2n**160n-1n,cwt=2n**168n-1n,lwt=2n**176n-1n,uwt=2n**184n-1n,dwt=2n**192n-1n,fwt=2n**200n-1n,hwt=2n**208n-1n,pwt=2n**216n-1n,mwt=2n**224n-1n,gwt=2n**232n-1n,ywt=2n**240n-1n,bwt=2n**248n-1n,X_=2n**256n-1n});function Da(t){return typeof t[0]==\"string\"?fa(t):WUe(t)}function WUe(t){let e=0;for(let o of t)e+=o.length;let n=new Uint8Array(e),r=0;for(let o of t)n.set(o,r),r+=o.length;return n}function fa(t){return`0x${t.reduce((e,n)=>e+n.replace(\"0x\",\"\"),\"\")}`}var iu=ce(()=>{p()});var rR,e4,iL,AG=ce(()=>{p();ir();rR=class extends Be{constructor({offset:e}){super(`Offset \\\\`${e}\\\\` cannot be negative.`,{name:\"NegativeOffsetError\"})}},e4=class extends Be{constructor({length:e,position:n}){super(`Position \\\\`${n}\\\\` is out of bounds (\\\\`0 < position < ${e}\\\\`).`,{name:\"PositionOutOfBoundsError\"})}},iL=class extends Be{constructor({count:e,limit:n}){super(`Recursive read limit of \\\\`${n}\\\\` exceeded (recursive read count: \\\\`${e}\\\\`).`,{name:\"RecursiveReadLimitExceededError\"})}}});function t4(t,{recursiveReadLimit:e=8192}={}){let n=Object.create(VUe);return n.bytes=t,n.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=e,n}var VUe,sL=ce(()=>{p();AG();VUe={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new iL({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(t){if(t<0||t>this.bytes.length-1)throw new e4({length:this.bytes.length,position:t})},decrementPosition(t){if(t<0)throw new rR({offset:t});let e=this.position-t;this.assertPosition(e),this.position=e},getReadCount(t){return this.positionReadCount.get(t||this.position)||0},incrementPosition(t){if(t<0)throw new rR({offset:t});let e=this.position+t;this.assertPosition(e),this.position=e},inspectByte(t){let e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(t,e){let n=e??this.position;return this.assertPosition(n+t-1),this.bytes.subarray(n,n+t)},inspectUint8(t){let e=t??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(t){let e=t??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(t){let e=t??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(t){let e=t??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushBytes(t){this.assertPosition(this.position+t.length-1),this.bytes.set(t,this.position),this.position+=t.length},pushUint8(t){this.assertPosition(this.position),this.bytes[this.position]=t,this.position++},pushUint16(t){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,t),this.position+=2},pushUint24(t){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,t>>8),this.dataView.setUint8(this.position+2,t&255),this.position+=3},pushUint32(t){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,t),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let t=this.inspectByte();return this.position++,t},readBytes(t,e){this.assertReadLimit(),this._touch();let n=this.inspectBytes(t);return this.position+=e??t,n},readUint8(){this.assertReadLimit(),this._touch();let t=this.inspectUint8();return this.position+=1,t},readUint16(){this.assertReadLimit(),this._touch();let t=this.inspectUint16();return this.position+=2,t},readUint24(){this.assertReadLimit(),this._touch();let t=this.inspectUint24();return this.position+=3,t},readUint32(){this.assertReadLimit(),this._touch();let t=this.inspectUint32();return this.position+=4,t},get remaining(){return this.bytes.length-this.position},setPosition(t){let e=this.position;return this.assertPosition(t),this.position=t,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let t=this.getReadCount();this.positionReadCount.set(this.position,t+1),t>0&&this.recursiveReadCount++}}});function N0(t,e=\"hex\"){let n=fde(t),r=t4(new Uint8Array(n.length));return n.encode(r),e===\"hex\"?Xr(r.bytes):r.bytes}function fde(t){return Array.isArray(t)?$Ue(t.map(e=>fde(e))):KUe(t)}function $Ue(t){let e=t.reduce((o,i)=>o+i.length,0),n=hde(e);return{length:e<=55?1+e:1+n+e,encode(o){e<=55?o.pushByte(192+e):(o.pushByte(247+n),n===1?o.pushUint8(e):n===2?o.pushUint16(e):n===3?o.pushUint24(e):o.pushUint32(e));for(let{encode:i}of t)i(o)}}}function KUe(t){let e=typeof t==\"string\"?Us(t):t,n=hde(e.length);return{length:e.length===1&&e[0]<128?1:e.length<=55?1+e.length:1+n+e.length,encode(o){e.length===1&&e[0]<128?o.pushBytes(e):e.length<=55?(o.pushByte(128+e.length),o.pushBytes(e)):(o.pushByte(183+n),n===1?o.pushUint8(e.length):n===2?o.pushUint16(e.length):n===3?o.pushUint24(e.length):o.pushUint32(e.length),o.pushBytes(e))}}}function hde(t){if(t<2**8)return 1;if(t<2**16)return 2;if(t<2**24)return 3;if(t<2**32)return 4;throw new Be(\"Length is too large.\")}var aL=ce(()=>{p();ir();sL();hc();gn()});var TG,RG,IG,cL=ce(()=>{p();TG={gwei:9,wei:18},RG={ether:-9,wei:9},IG={ether:-18,gwei:-9}});function vs(t,e){let n=t.toString(),r=n.startsWith(\"-\");r&&(n=n.slice(1)),n=n.padStart(e,\"0\");let[o,i]=[n.slice(0,n.length-e),n.slice(n.length-e)];return i=i.replace(/(0+)$/,\"\"),`${r?\"-\":\"\"}${o||\"0\"}${i?`.${i}`:\"\"}`}var lL=ce(()=>{p()});function n4(t,e=\"wei\"){return vs(t,TG[e])}var uL=ce(()=>{p();cL();lL()});function pc(t,e=\"wei\"){return vs(t,RG[e])}var r4=ce(()=>{p();cL();lL()});function v5(t){let e=Object.entries(t).map(([r,o])=>o===void 0||o===!1?null:[r,o]).filter(Boolean),n=e.reduce((r,[o])=>Math.max(r,o.length),0);return e.map(([r,o])=>`  ${`${r}:`.padEnd(n+1)}  ${o}`).join(`\\n`)}var dL,fL,hL,pL,mL,o4,i4,gL,L0=ce(()=>{p();uL();r4();ir();dL=class extends Be{constructor(){super([\"Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.\",\"Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.\"].join(`\\n`),{name:\"FeeConflictError\"})}},fL=class extends Be{constructor({v:e}){super(`Invalid \\\\`v\\\\` value \"${e}\". Expected 27 or 28.`,{name:\"InvalidLegacyVError\"})}},hL=class extends Be{constructor({transaction:e}){super(\"Cannot infer a transaction type from provided transaction.\",{metaMessages:[\"Provided Transaction:\",\"{\",v5(e),\"}\",\"\",\"To infer the type, either provide:\",\"- a `type` to the Transaction, or\",\"- an EIP-1559 Transaction with `maxFeePerGas`, or\",\"- an EIP-2930 Transaction with `gasPrice` & `accessList`, or\",\"- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or\",\"- an EIP-7702 Transaction with `authorizationList`, or\",\"- a Legacy Transaction with `gasPrice`\"],name:\"InvalidSerializableTransactionError\"})}},pL=class extends Be{constructor({storageKey:e}){super(`Size for storage key \"${e}\" is invalid. Expected 32 bytes. Got ${Math.floor((e.length-2)/2)} bytes.`,{name:\"InvalidStorageKeySizeError\"})}},mL=class extends Be{constructor(e,{account:n,docsPath:r,chain:o,data:i,gas:a,gasPrice:c,maxFeePerGas:u,maxPriorityFeePerGas:d,nonce:h,to:m,value:g}){let b=v5({chain:o&&`${o?.name} (id: ${o?.id})`,from:n?.address,to:m,value:typeof g<\"u\"&&`${n4(g)} ${o?.nativeCurrency?.symbol||\"ETH\"}`,data:i,gas:a,gasPrice:typeof c<\"u\"&&`${pc(c)} gwei`,maxFeePerGas:typeof u<\"u\"&&`${pc(u)} gwei`,maxPriorityFeePerGas:typeof d<\"u\"&&`${pc(d)} gwei`,nonce:h});super(e.shortMessage,{cause:e,docsPath:r,metaMessages:[...e.metaMessages?[...e.metaMessages,\" \"]:[],\"Request Arguments:\",b].filter(Boolean),name:\"TransactionExecutionError\"}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},o4=class extends Be{constructor({blockHash:e,blockNumber:n,blockTag:r,hash:o,index:i}){let a=\"Transaction\";r&&i!==void 0&&(a=`Transaction at block time \"${r}\" at index \"${i}\"`),e&&i!==void 0&&(a=`Transaction at block hash \"${e}\" at index \"${i}\"`),n&&i!==void 0&&(a=`Transaction at block number \"${n}\" at index \"${i}\"`),o&&(a=`Transaction with hash \"${o}\"`),super(`${a} could not be found.`,{name:\"TransactionNotFoundError\"})}},i4=class extends Be{constructor({hash:e}){super(`Transaction receipt with hash \"${e}\" could not be found. The Transaction may not be processed on a block yet.`,{name:\"TransactionReceiptNotFoundError\"})}},gL=class extends Be{constructor({hash:e}){super(`Timed out while waiting for transaction with hash \"${e}\" to be confirmed.`,{name:\"WaitForTransactionReceiptTimeoutError\"})}}});function pde(t){if(!t||t.length===0)return[];let e=[];for(let n of t){let{chainId:r,nonce:o,...i}=n,a=n.address;e.push([r?Uo(r):\"0x\",a,o?Uo(o):\"0x\",...s4({},i)])}return e}var mde=ce(()=>{p();gn();OG()});function a4(t){let{kzg:e}=t,n=t.to??(typeof t.blobs[0]==\"string\"?\"hex\":\"bytes\"),r=typeof t.blobs[0]==\"string\"?t.blobs.map(i=>Us(i)):t.blobs,o=[];for(let i of r)o.push(Uint8Array.from(e.blobToKzgCommitment(i)));return n===\"bytes\"?o:o.map(i=>Xr(i))}var yL=ce(()=>{p();hc();gn()});function c4(t){let{kzg:e}=t,n=t.to??(typeof t.blobs[0]==\"string\"?\"hex\":\"bytes\"),r=typeof t.blobs[0]==\"string\"?t.blobs.map(a=>Us(a)):t.blobs,o=typeof t.commitments[0]==\"string\"?t.commitments.map(a=>Us(a)):t.commitments,i=[];for(let a=0;a<r.length;a++){let c=r[a],u=o[a];i.push(Uint8Array.from(e.computeBlobKzgProof(c,u)))}return n===\"bytes\"?i:i.map(a=>Xr(a))}var bL=ce(()=>{p();hc();gn()});var w5,gde=ce(()=>{p();w5=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0});function Bw(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function Nw(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function Zi(t,...e){if(!Bw(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function bde(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.createHasher\");Nw(t.outputLen),Nw(t.blockLen)}function Qb(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function vL(t,e){Zi(t);let n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function vde(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Dp(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function wL(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function B0(t,e){return t<<32-e|t>>>e}function ZUe(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}function YUe(t){for(let e=0;e<t.length;e++)t[e]=ZUe(t[e]);return t}function Fp(t){if(Zi(t),wde)return t.toHex();let e=\"\";for(let n=0;n<t.length;n++)e+=QUe[t[n]];return e}function yde(t){if(t>=Yb._0&&t<=Yb._9)return t-Yb._0;if(t>=Yb.A&&t<=Yb.F)return t-(Yb.A-10);if(t>=Yb.a&&t<=Yb.f)return t-(Yb.a-10)}function l4(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);if(wde)return Uint8Array.fromHex(t);let e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);let r=new Uint8Array(n);for(let o=0,i=0;o<n;o++,i+=2){let a=yde(t.charCodeAt(i)),c=yde(t.charCodeAt(i+1));if(a===void 0||c===void 0){let u=t[i]+t[i+1];throw new Error(\\'hex string expected, got non-hex character \"\\'+u+\\'\" at index \\'+i)}r[o]=a*16+c}return r}function u4(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function x5(t){return typeof t==\"string\"&&(t=u4(t)),Zi(t),t}function ws(...t){let e=0;for(let r=0;r<t.length;r++){let o=t[r];Zi(o),e+=o.length}let n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){let i=t[r];n.set(i,o),o+=i.length}return n}function oR(t){let e=r=>t().update(x5(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function E5(t=32){if(w5&&typeof w5.getRandomValues==\"function\")return w5.getRandomValues(new Uint8Array(t));if(w5&&typeof w5.randomBytes==\"function\")return Uint8Array.from(w5.randomBytes(t));throw new Error(\"crypto.getRandomValues must be defined\")}var GUe,PG,wde,QUe,Yb,Lw,Jb=ce(()=>{p();gde();GUe=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;PG=GUe?t=>t:YUe,wde=typeof Uint8Array.from([]).toHex==\"function\"&&typeof Uint8Array.fromHex==\"function\",QUe=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));Yb={_0:48,_9:57,A:65,F:70,a:97,f:102};Lw=class{}});function JUe(t,e,n,r){if(typeof t.setBigUint64==\"function\")return t.setBigUint64(e,n,r);let o=BigInt(32),i=BigInt(4294967295),a=Number(n>>o&i),c=Number(n&i),u=r?4:0,d=r?0:4;t.setUint32(e+u,a,r),t.setUint32(e+d,c,r)}function xde(t,e,n){return t&e^~t&n}function Ede(t,e,n){return t&e^t&n^e&n}var iR,Xb,bl,Sde=ce(()=>{p();Jb();iR=class extends Lw{constructor(e,n,r,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=o,this.buffer=new Uint8Array(e),this.view=wL(this.buffer)}update(e){Qb(this),e=x5(e),Zi(e);let{view:n,buffer:r,blockLen:o}=this,i=e.length;for(let a=0;a<i;){let c=Math.min(o-this.pos,i-a);if(c===o){let u=wL(e);for(;o<=i-a;a+=o)this.process(u,a);continue}r.set(e.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Qb(this),vL(e,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:i}=this,{pos:a}=this;n[a++]=128,Dp(this.buffer.subarray(a)),this.padOffset>o-a&&(this.process(r,0),a=0);for(let m=a;m<o;m++)n[m]=0;JUe(r,o-8,BigInt(this.length*8),i),this.process(r,0);let c=wL(e),u=this.outputLen;if(u%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");let d=u/4,h=this.get();if(d>h.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let m=0;m<d;m++)c.setUint32(4*m,h[m],i)}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:i,destroyed:a,pos:c}=this;return e.destroyed=a,e.finished=i,e.length=o,e.pos=c,o%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}},Xb=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),bl=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function XUe(t,e=!1){return e?{h:Number(t&xL),l:Number(t>>kde&xL)}:{h:Number(t>>kde&xL)|0,l:Number(t&xL)|0}}function EL(t,e=!1){let n=t.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:a,l:c}=XUe(t[i],e);[r[i],o[i]]=[a,c]}return[r,o]}function _y(t,e,n,r){let o=(e>>>0)+(r>>>0);return{h:t+n+(o/2**32|0)|0,l:o|0}}var xL,kde,MG,NG,S5,k5,sR,aR,_de,Cde,Ade,Tde,Rde,Ide,Ode,Pde,Mde,Nde,LG=ce(()=>{p();xL=BigInt(4294967295),kde=BigInt(32);MG=(t,e,n)=>t>>>n,NG=(t,e,n)=>t<<32-n|e>>>n,S5=(t,e,n)=>t>>>n|e<<32-n,k5=(t,e,n)=>t<<32-n|e>>>n,sR=(t,e,n)=>t<<64-n|e>>>n-32,aR=(t,e,n)=>t>>>n-32|e<<64-n,_de=(t,e,n)=>t<<n|e>>>32-n,Cde=(t,e,n)=>e<<n|t>>>32-n,Ade=(t,e,n)=>e<<n-32|t>>>64-n,Tde=(t,e,n)=>t<<n-32|e>>>64-n;Rde=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),Ide=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,Ode=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),Pde=(t,e,n,r,o)=>e+n+r+o+(t/2**32|0)|0,Mde=(t,e,n,r,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(o>>>0),Nde=(t,e,n,r,o,i)=>e+n+r+o+i+(t/2**32|0)|0});var tje,Dw,SL,Lde,nje,rje,Fw,Uw,BG,_5,Bde,kL=ce(()=>{p();Sde();LG();Jb();tje=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Dw=new Uint32Array(64),SL=class extends iR{constructor(e=32){super(64,e,8,!1),this.A=Xb[0]|0,this.B=Xb[1]|0,this.C=Xb[2]|0,this.D=Xb[3]|0,this.E=Xb[4]|0,this.F=Xb[5]|0,this.G=Xb[6]|0,this.H=Xb[7]|0}get(){let{A:e,B:n,C:r,D:o,E:i,F:a,G:c,H:u}=this;return[e,n,r,o,i,a,c,u]}set(e,n,r,o,i,a,c,u){this.A=e|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=i|0,this.F=a|0,this.G=c|0,this.H=u|0}process(e,n){for(let m=0;m<16;m++,n+=4)Dw[m]=e.getUint32(n,!1);for(let m=16;m<64;m++){let g=Dw[m-15],b=Dw[m-2],E=B0(g,7)^B0(g,18)^g>>>3,C=B0(b,17)^B0(b,19)^b>>>10;Dw[m]=C+Dw[m-7]+E+Dw[m-16]|0}let{A:r,B:o,C:i,D:a,E:c,F:u,G:d,H:h}=this;for(let m=0;m<64;m++){let g=B0(c,6)^B0(c,11)^B0(c,25),b=h+g+xde(c,u,d)+tje[m]+Dw[m]|0,C=(B0(r,2)^B0(r,13)^B0(r,22))+Ede(r,o,i)|0;h=d,d=u,u=c,c=a+b|0,a=i,i=o,o=r,r=b+C|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,a=a+this.D|0,c=c+this.E|0,u=u+this.F|0,d=d+this.G|0,h=h+this.H|0,this.set(r,o,i,a,c,u,d,h)}roundClean(){Dp(Dw)}destroy(){this.set(0,0,0,0,0,0,0,0),Dp(this.buffer)}},Lde=EL([\"0x428a2f98d728ae22\",\"0x7137449123ef65cd\",\"0xb5c0fbcfec4d3b2f\",\"0xe9b5dba58189dbbc\",\"0x3956c25bf348b538\",\"0x59f111f1b605d019\",\"0x923f82a4af194f9b\",\"0xab1c5ed5da6d8118\",\"0xd807aa98a3030242\",\"0x12835b0145706fbe\",\"0x243185be4ee4b28c\",\"0x550c7dc3d5ffb4e2\",\"0x72be5d74f27b896f\",\"0x80deb1fe3b1696b1\",\"0x9bdc06a725c71235\",\"0xc19bf174cf692694\",\"0xe49b69c19ef14ad2\",\"0xefbe4786384f25e3\",\"0x0fc19dc68b8cd5b5\",\"0x240ca1cc77ac9c65\",\"0x2de92c6f592b0275\",\"0x4a7484aa6ea6e483\",\"0x5cb0a9dcbd41fbd4\",\"0x76f988da831153b5\",\"0x983e5152ee66dfab\",\"0xa831c66d2db43210\",\"0xb00327c898fb213f\",\"0xbf597fc7beef0ee4\",\"0xc6e00bf33da88fc2\",\"0xd5a79147930aa725\",\"0x06ca6351e003826f\",\"0x142929670a0e6e70\",\"0x27b70a8546d22ffc\",\"0x2e1b21385c26c926\",\"0x4d2c6dfc5ac42aed\",\"0x53380d139d95b3df\",\"0x650a73548baf63de\",\"0x766a0abb3c77b2a8\",\"0x81c2c92e47edaee6\",\"0x92722c851482353b\",\"0xa2bfe8a14cf10364\",\"0xa81a664bbc423001\",\"0xc24b8b70d0f89791\",\"0xc76c51a30654be30\",\"0xd192e819d6ef5218\",\"0xd69906245565a910\",\"0xf40e35855771202a\",\"0x106aa07032bbd1b8\",\"0x19a4c116b8d2d0c8\",\"0x1e376c085141ab53\",\"0x2748774cdf8eeb99\",\"0x34b0bcb5e19b48a8\",\"0x391c0cb3c5c95a63\",\"0x4ed8aa4ae3418acb\",\"0x5b9cca4f7763e373\",\"0x682e6ff3d6b2b8a3\",\"0x748f82ee5defb2fc\",\"0x78a5636f43172f60\",\"0x84c87814a1f0ab72\",\"0x8cc702081a6439ec\",\"0x90befffa23631e28\",\"0xa4506cebde82bde9\",\"0xbef9a3f7b2c67915\",\"0xc67178f2e372532b\",\"0xca273eceea26619c\",\"0xd186b8c721c0c207\",\"0xeada7dd6cde0eb1e\",\"0xf57d4f7fee6ed178\",\"0x06f067aa72176fba\",\"0x0a637dc5a2c898a6\",\"0x113f9804bef90dae\",\"0x1b710b35131c471b\",\"0x28db77f523047d84\",\"0x32caab7b40c72493\",\"0x3c9ebe0a15c9bebc\",\"0x431d67c49c100d4c\",\"0x4cc5d4becb3e42b6\",\"0x597f299cfc657e2a\",\"0x5fcb6fab3ad6faec\",\"0x6c44198c4a475817\"].map(t=>BigInt(t))),nje=Lde[0],rje=Lde[1],Fw=new Uint32Array(80),Uw=new Uint32Array(80),BG=class extends iR{constructor(e=64){super(128,e,16,!1),this.Ah=bl[0]|0,this.Al=bl[1]|0,this.Bh=bl[2]|0,this.Bl=bl[3]|0,this.Ch=bl[4]|0,this.Cl=bl[5]|0,this.Dh=bl[6]|0,this.Dl=bl[7]|0,this.Eh=bl[8]|0,this.El=bl[9]|0,this.Fh=bl[10]|0,this.Fl=bl[11]|0,this.Gh=bl[12]|0,this.Gl=bl[13]|0,this.Hh=bl[14]|0,this.Hl=bl[15]|0}get(){let{Ah:e,Al:n,Bh:r,Bl:o,Ch:i,Cl:a,Dh:c,Dl:u,Eh:d,El:h,Fh:m,Fl:g,Gh:b,Gl:E,Hh:C,Hl:T}=this;return[e,n,r,o,i,a,c,u,d,h,m,g,b,E,C,T]}set(e,n,r,o,i,a,c,u,d,h,m,g,b,E,C,T){this.Ah=e|0,this.Al=n|0,this.Bh=r|0,this.Bl=o|0,this.Ch=i|0,this.Cl=a|0,this.Dh=c|0,this.Dl=u|0,this.Eh=d|0,this.El=h|0,this.Fh=m|0,this.Fl=g|0,this.Gh=b|0,this.Gl=E|0,this.Hh=C|0,this.Hl=T|0}process(e,n){for(let D=0;D<16;D++,n+=4)Fw[D]=e.getUint32(n),Uw[D]=e.getUint32(n+=4);for(let D=16;D<80;D++){let G=Fw[D-15]|0,W=Uw[D-15]|0,J=S5(G,W,1)^S5(G,W,8)^MG(G,W,7),ne=k5(G,W,1)^k5(G,W,8)^NG(G,W,7),ie=Fw[D-2]|0,Z=Uw[D-2]|0,ae=S5(ie,Z,19)^sR(ie,Z,61)^MG(ie,Z,6),V=k5(ie,Z,19)^aR(ie,Z,61)^NG(ie,Z,6),$=Ode(ne,V,Uw[D-7],Uw[D-16]),F=Pde($,J,ae,Fw[D-7],Fw[D-16]);Fw[D]=F|0,Uw[D]=$|0}let{Ah:r,Al:o,Bh:i,Bl:a,Ch:c,Cl:u,Dh:d,Dl:h,Eh:m,El:g,Fh:b,Fl:E,Gh:C,Gl:T,Hh:R,Hl:L}=this;for(let D=0;D<80;D++){let G=S5(m,g,14)^S5(m,g,18)^sR(m,g,41),W=k5(m,g,14)^k5(m,g,18)^aR(m,g,41),J=m&b^~m&C,ne=g&E^~g&T,ie=Mde(L,W,ne,rje[D],Uw[D]),Z=Nde(ie,R,G,J,nje[D],Fw[D]),ae=ie|0,V=S5(r,o,28)^sR(r,o,34)^sR(r,o,39),$=k5(r,o,28)^aR(r,o,34)^aR(r,o,39),F=r&i^r&c^i&c,_=o&a^o&u^a&u;R=C|0,L=T|0,C=b|0,T=E|0,b=m|0,E=g|0,{h:m,l:g}=_y(d|0,h|0,Z|0,ae|0),d=c|0,h=u|0,c=i|0,u=a|0,i=r|0,a=o|0;let O=Rde(ae,$,_);r=Ide(O,Z,V,F),o=O|0}({h:r,l:o}=_y(this.Ah|0,this.Al|0,r|0,o|0)),{h:i,l:a}=_y(this.Bh|0,this.Bl|0,i|0,a|0),{h:c,l:u}=_y(this.Ch|0,this.Cl|0,c|0,u|0),{h:d,l:h}=_y(this.Dh|0,this.Dl|0,d|0,h|0),{h:m,l:g}=_y(this.Eh|0,this.El|0,m|0,g|0),{h:b,l:E}=_y(this.Fh|0,this.Fl|0,b|0,E|0),{h:C,l:T}=_y(this.Gh|0,this.Gl|0,C|0,T|0),{h:R,l:L}=_y(this.Hh|0,this.Hl|0,R|0,L|0),this.set(r,o,i,a,c,u,d,h,m,g,b,E,C,T,R,L)}roundClean(){Dp(Fw,Uw)}destroy(){Dp(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},_5=oR(()=>new SL),Bde=oR(()=>new BG)});var C5,_L=ce(()=>{p();kL();C5=_5});function cR(t,e){let n=e||\"hex\",r=C5(da(t,{strict:!1})?Lp(t):t);return n===\"bytes\"?r:Uo(r)}var DG=ce(()=>{p();_L();P0();hc();gn()});function Dde(t){let{commitment:e,version:n=1}=t,r=t.to??(typeof e==\"string\"?\"hex\":\"bytes\"),o=cR(e,\"bytes\");return o.set([n],0),r===\"bytes\"?o:Xr(o)}var Fde=ce(()=>{p();gn();DG()});function CL(t){let{commitments:e,version:n}=t,r=t.to??(typeof e[0]==\"string\"?\"hex\":\"bytes\"),o=[];for(let i of e)o.push(Dde({commitment:i,to:r,version:n}));return o}var FG=ce(()=>{p();Fde()});var AL,d4,TL,RL,UG=ce(()=>{p();ir();AL=class extends Be{constructor({maxSize:e,size:n}){super(\"Blob size is too large.\",{metaMessages:[`Max: ${e} bytes`,`Given: ${n} bytes`],name:\"BlobSizeTooLargeError\"})}},d4=class extends Be{constructor(){super(\"Blob data must not be empty.\",{name:\"EmptyBlobError\"})}},TL=class extends Be{constructor({hash:e,size:n}){super(`Versioned hash \"${e}\" size is invalid.`,{metaMessages:[\"Expected: 32\",`Received: ${n}`],name:\"InvalidVersionedHashSizeError\"})}},RL=class extends Be{constructor({hash:e,version:n}){super(`Versioned hash \"${e}\" version is invalid.`,{metaMessages:[`Expected: ${1}`,`Received: ${n}`],name:\"InvalidVersionedHashVersionError\"})}}});function Ude(t){let e=t.to??(typeof t.data==\"string\"?\"hex\":\"bytes\"),n=typeof t.data==\"string\"?Us(t.data):t.data,r=Jr(n);if(!r)throw new d4;if(r>761855)throw new AL({maxSize:761855,size:r});let o=[],i=!0,a=0;for(;i;){let c=t4(new Uint8Array(131072)),u=0;for(;u<4096;){let d=n.slice(a,a+31);if(c.pushByte(0),c.pushBytes(d),d.length<31){c.pushByte(128),i=!1;break}u++,a+=31}o.push(c)}return e===\"bytes\"?o.map(c=>c.bytes):o.map(c=>Xr(c.bytes))}var jde=ce(()=>{p();UG();sL();Mp();hc();gn()});function IL(t){let{data:e,kzg:n,to:r}=t,o=t.blobs??Ude({data:e,to:r}),i=t.commitments??a4({blobs:o,kzg:n,to:r}),a=t.proofs??c4({blobs:o,commitments:i,kzg:n,to:r}),c=[];for(let u=0;u<o.length;u++)c.push({blob:o[u],commitment:i[u],proof:a[u]});return c}var jG=ce(()=>{p();yL();bL();jde()});var ci,D0=ce(()=>{p();ir();ci=class extends Be{constructor({address:e}){super(`Address \"${e}\" is invalid.`,{metaMessages:[\"- Address must be a hex value of 20 bytes (40 hex characters).\",\"- Address must match its checksum counterpart.\"],name:\"InvalidAddressError\"})}}});var A5,OL,PL,lR,T5,uR=ce(()=>{p();ir();A5=class extends Be{constructor({blockNumber:e,chain:n,contract:r}){super(`Chain \"${n.name}\" does not support contract \"${r.name}\".`,{metaMessages:[\"This could be due to any of the following:\",...e&&r.blockCreated&&r.blockCreated>e?[`- The contract \"${r.name}\" was not deployed until block ${r.blockCreated} (current block ${e}).`]:[`- The chain does not have the contract \"${r.name}\" configured.`]],name:\"ChainDoesNotSupportContract\"})}},OL=class extends Be{constructor({chain:e,currentChainId:n}){super(`The current chain of the wallet (id: ${n}) does not match the target chain for the transaction (id: ${e.id} \\\\u2013 ${e.name}).`,{metaMessages:[`Current Chain ID:  ${n}`,`Expected Chain ID: ${e.id} \\\\u2013 ${e.name}`],name:\"ChainMismatchError\"})}},PL=class extends Be{constructor(){super([\"No chain was provided to the request.\",\"Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.\"].join(`\\n`),{name:\"ChainNotFoundError\"})}},lR=class extends Be{constructor(){super(\"No chain was provided to the Client.\",{name:\"ClientChainNotConfiguredError\"})}},T5=class extends Be{constructor({chainId:e}){super(typeof e==\"number\"?`Chain ID \"${e}\" is invalid.`:\"Chain ID is invalid.\",{name:\"InvalidChainIdError\"})}}});var ev,Up,f4,h4,p4,m4,g4,y4,b4,v4,Cy,jp,jw=ce(()=>{p();r4();ir();ev=class extends Be{constructor({cause:e,message:n}={}){let r=n?.replace(\"execution reverted: \",\"\")?.replace(\"execution reverted\",\"\");super(`Execution reverted ${r?`with reason: ${r}`:\"for an unknown reason\"}.`,{cause:e,name:\"ExecutionRevertedError\"})}};Object.defineProperty(ev,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:3});Object.defineProperty(ev,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});Up=class extends Be{constructor({cause:e,maxFeePerGas:n}={}){super(`The fee cap (\\\\`maxFeePerGas\\\\`${n?` = ${pc(n)} gwei`:\"\"}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:e,name:\"FeeCapTooHighError\"})}};Object.defineProperty(Up,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\\\\^256-1|fee cap higher than 2\\\\^256-1/});f4=class extends Be{constructor({cause:e,maxFeePerGas:n}={}){super(`The fee cap (\\\\`maxFeePerGas\\\\`${n?` = ${pc(n)}`:\"\"} gwei) cannot be lower than the block base fee.`,{cause:e,name:\"FeeCapTooLowError\"})}};Object.defineProperty(f4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});h4=class extends Be{constructor({cause:e,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:\"\"}is higher than the next one expected.`,{cause:e,name:\"NonceTooHighError\"})}};Object.defineProperty(h4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});p4=class extends Be{constructor({cause:e,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:\"\"}is lower than the current nonce of the account.`,\"Try increasing the nonce or find the latest nonce with `getTransactionCount`.\"].join(`\\n`),{cause:e,name:\"NonceTooLowError\"})}};Object.defineProperty(p4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});m4=class extends Be{constructor({cause:e,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:\"\"}exceeds the maximum allowed nonce.`,{cause:e,name:\"NonceMaxValueError\"})}};Object.defineProperty(m4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});g4=class extends Be{constructor({cause:e}={}){super([\"The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.\"].join(`\\n`),{cause:e,metaMessages:[\"This error could arise when the account does not have enough funds to:\",\" - pay for the total gas fee,\",\" - pay for the value to send.\",\" \",\"The cost of the transaction is calculated as `gas * gas fee + value`, where:\",\" - `gas` is the amount of gas needed for transaction to execute,\",\" - `gas fee` is the gas fee,\",\" - `value` is the amount of ether to send to the recipient.\"],name:\"InsufficientFundsError\"})}};Object.defineProperty(g4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});y4=class extends Be{constructor({cause:e,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:\"\"}provided for the transaction exceeds the limit allowed for the block.`,{cause:e,name:\"IntrinsicGasTooHighError\"})}};Object.defineProperty(y4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});b4=class extends Be{constructor({cause:e,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:\"\"}provided for the transaction is too low.`,{cause:e,name:\"IntrinsicGasTooLowError\"})}};Object.defineProperty(b4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});v4=class extends Be{constructor({cause:e}){super(\"The transaction type is not supported for this chain.\",{cause:e,name:\"TransactionTypeNotSupportedError\"})}};Object.defineProperty(v4,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});Cy=class extends Be{constructor({cause:e,maxPriorityFeePerGas:n,maxFeePerGas:r}={}){super([`The provided tip (\\\\`maxPriorityFeePerGas\\\\`${n?` = ${pc(n)} gwei`:\"\"}) cannot be higher than the fee cap (\\\\`maxFeePerGas\\\\`${r?` = ${pc(r)} gwei`:\"\"}).`].join(`\\n`),{cause:e,name:\"TipAboveFeeCapError\"})}};Object.defineProperty(Cy,\"nodeMessage\",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});jp=class extends Be{constructor({cause:e}){super(`An error occurred while executing: ${e?.shortMessage}`,{cause:e,name:\"UnknownNodeError\"})}}});var Ay,dR=ce(()=>{p();Ay=class extends Map{constructor(e){super(),Object.defineProperty(this,\"maxSize\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let n=super.get(e);return super.has(e)&&n!==void 0&&(this.delete(e),super.set(e,n)),n}set(e,n){if(super.set(e,n),this.maxSize&&this.size>this.maxSize){let r=this.keys().next().value;r&&this.delete(r)}return this}}});function hje(t,e=24){let n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let a=0;a<10;a++)n[a]=t[a]^t[a+10]^t[a+20]^t[a+30]^t[a+40];for(let a=0;a<10;a+=2){let c=(a+8)%10,u=(a+2)%10,d=n[u],h=n[u+1],m=zde(d,h,1)^n[c],g=Hde(d,h,1)^n[c+1];for(let b=0;b<50;b+=10)t[a+b]^=m,t[a+b+1]^=g}let o=t[2],i=t[3];for(let a=0;a<24;a++){let c=Wde[a],u=zde(o,i,c),d=Hde(o,i,c),h=qde[a];o=t[h],i=t[h+1],t[h]=u,t[h+1]=d}for(let a=0;a<50;a+=10){for(let c=0;c<10;c++)n[c]=t[a+c];for(let c=0;c<10;c++)t[a+c]^=~n[(c+2)%10]&n[(c+4)%10]}t[0]^=dje[r],t[1]^=fje[r]}Dp(n)}var sje,fR,aje,cje,lje,uje,qde,Wde,Vde,$de,dje,fje,zde,Hde,zG,pje,R5,ML=ce(()=>{p();LG();Jb();sje=BigInt(0),fR=BigInt(1),aje=BigInt(2),cje=BigInt(7),lje=BigInt(256),uje=BigInt(113),qde=[],Wde=[],Vde=[];for(let t=0,e=fR,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],qde.push(2*(5*r+n)),Wde.push((t+1)*(t+2)/2%64);let o=sje;for(let i=0;i<7;i++)e=(e<<fR^(e>>cje)*uje)%lje,e&aje&&(o^=fR<<(fR<<BigInt(i))-fR);Vde.push(o)}$de=EL(Vde,!0),dje=$de[0],fje=$de[1],zde=(t,e,n)=>n>32?Ade(t,e,n):_de(t,e,n),Hde=(t,e,n)=>n>32?Tde(t,e,n):Cde(t,e,n);zG=class t extends Lw{constructor(e,n,r,o=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,Nw(r),!(0<e&&e<200))throw new Error(\"only keccak-f1600 function is supported\");this.state=new Uint8Array(200),this.state32=vde(this.state)}clone(){return this._cloneInto()}keccak(){PG(this.state32),hje(this.state32,this.rounds),PG(this.state32),this.posOut=0,this.pos=0}update(e){Qb(this),e=x5(e),Zi(e);let{blockLen:n,state:r}=this,o=e.length;for(let i=0;i<o;){let a=Math.min(n-this.pos,o-i);for(let c=0;c<a;c++)r[this.pos++]^=e[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:n,pos:r,blockLen:o}=this;e[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){Qb(this,!1),Zi(e),this.finish();let n=this.state,{blockLen:r}=this;for(let o=0,i=e.length;o<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-o);e.set(n.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(e)}xof(e){return Nw(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(vL(e,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Dp(this.state)}_cloneInto(e){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:a}=this;return e||(e=new t(n,r,o,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=o,e.enableXOF=a,e.destroyed=this.destroyed,e}},pje=(t,e,n)=>oR(()=>new zG(e,t,n)),R5=pje(1,136,256/8)});function Po(t,e){let n=e||\"hex\",r=R5(da(t,{strict:!1})?Lp(t):t);return n===\"bytes\"?r:Uo(r)}var zp=ce(()=>{p();ML();P0();hc();gn()});function Ty(t,e){if(HG.has(`${t}.${e}`))return HG.get(`${t}.${e}`);let n=e?`${e}${t.toLowerCase()}`:t.substring(2).toLowerCase(),r=Po(M0(n),\"bytes\"),o=(e?n.substring(`${e}0x`.length):n).split(\"\");for(let a=0;a<40;a+=2)r[a>>1]>>4>=8&&o[a]&&(o[a]=o[a].toUpperCase()),(r[a>>1]&15)>=8&&o[a+1]&&(o[a+1]=o[a+1].toUpperCase());let i=`0x${o.join(\"\")}`;return HG.set(`${t}.${e}`,i),i}function Fr(t,e){if(!Kr(t,{strict:!1}))throw new ci({address:t});return Ty(t,e)}var HG,tv=ce(()=>{p();D0();hc();zp();dR();hf();HG=new Ay(8192)});function Kr(t,e){let{strict:n=!0}=e??{},r=`${t}.${n}`;if(qG.has(r))return qG.get(r);let o=mje.test(t)?t.toLowerCase()===t?!0:n?Ty(t)===t:!0:!1;return qG.set(r,o),o}var mje,qG,hf=ce(()=>{p();dR();tv();mje=/^0x[a-fA-F0-9]{40}$/,qG=new Ay(8192)});function Hp(t,e,n,{strict:r}={}){return da(t,{strict:!1})?w4(t,e,n,{strict:r}):WG(t,e,n,{strict:r})}function Kde(t,e){if(typeof e==\"number\"&&e>0&&e>Jr(t)-1)throw new Y7({offset:e,position:\"start\",size:Jr(t)})}function Gde(t,e,n){if(typeof e==\"number\"&&typeof n==\"number\"&&Jr(t)!==n-e)throw new Y7({offset:n,position:\"end\",size:Jr(t)})}function WG(t,e,n,{strict:r}={}){Kde(t,e);let o=t.slice(e,n);return r&&Gde(o,e,n),o}function w4(t,e,n,{strict:r}={}){Kde(t,e);let o=`0x${t.replace(\"0x\",\"\").slice((e??0)*2,(n??t.length)*2)}`;return r&&Gde(o,e,n),o}var nv=ce(()=>{p();eL();P0();Mp()});function Zde(t){let{authorizationList:e}=t;if(e)for(let n of e){let{chainId:r}=n,o=n.address;if(!Kr(o))throw new ci({address:o});if(r<0)throw new T5({chainId:r})}NL(t)}function Yde(t){let{blobVersionedHashes:e}=t;if(e){if(e.length===0)throw new d4;for(let n of e){let r=Jr(n),o=Ei(Hp(n,0,1));if(r!==32)throw new TL({hash:n,size:r});if(o!==1)throw new RL({hash:n,version:o})}}NL(t)}function NL(t){let{chainId:e,maxPriorityFeePerGas:n,maxFeePerGas:r,to:o}=t;if(e<=0)throw new T5({chainId:e});if(o&&!Kr(o))throw new ci({address:o});if(r&&r>X_)throw new Up({maxFeePerGas:r});if(n&&r&&n>r)throw new Cy({maxFeePerGas:r,maxPriorityFeePerGas:n})}function Qde(t){let{chainId:e,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:o,to:i}=t;if(e<=0)throw new T5({chainId:e});if(i&&!Kr(i))throw new ci({address:i});if(n||o)throw new Be(\"`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.\");if(r&&r>X_)throw new Up({maxFeePerGas:r})}function Jde(t){let{chainId:e,maxPriorityFeePerGas:n,gasPrice:r,maxFeePerGas:o,to:i}=t;if(i&&!Kr(i))throw new ci({address:i});if(typeof e<\"u\"&&e<=0)throw new T5({chainId:e});if(n||o)throw new Be(\"`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.\");if(r&&r>X_)throw new Up({maxFeePerGas:r})}var Xde=ce(()=>{p();CG();D0();ir();UG();uR();jw();hf();Mp();nv();fc()});function LL(t){if(t.type)return t.type;if(typeof t.authorizationList<\"u\")return\"eip7702\";if(typeof t.blobs<\"u\"||typeof t.blobVersionedHashes<\"u\"||typeof t.maxFeePerBlobGas<\"u\"||typeof t.sidecars<\"u\")return\"eip4844\";if(typeof t.maxFeePerGas<\"u\"||typeof t.maxPriorityFeePerGas<\"u\")return\"eip1559\";if(typeof t.gasPrice<\"u\")return typeof t.accessList<\"u\"?\"eip2930\":\"legacy\";throw new hL({transaction:t})}var VG=ce(()=>{p();L0()});function hR(t){if(!t||t.length===0)return[];let e=[];for(let n=0;n<t.length;n++){let{address:r,storageKeys:o}=t[n];for(let i=0;i<o.length;i++)if(o[i].length-2!==64)throw new pL({storageKey:o[i]});if(!Kr(r,{strict:!1}))throw new ci({address:r});e.push([r,o])}return e}var efe=ce(()=>{p();D0();L0();hf()});function tfe(t,e){let n=LL(t);return n===\"eip1559\"?bje(t,e):n===\"eip2930\"?vje(t,e):n===\"eip4844\"?yje(t,e):n===\"eip7702\"?gje(t,e):wje(t,e)}function gje(t,e){let{authorizationList:n,chainId:r,gas:o,nonce:i,to:a,value:c,maxFeePerGas:u,maxPriorityFeePerGas:d,accessList:h,data:m}=t;Zde(t);let g=hR(h),b=pde(n);return fa([\"0x04\",N0([Ye(r),i?Ye(i):\"0x\",d?Ye(d):\"0x\",u?Ye(u):\"0x\",o?Ye(o):\"0x\",a??\"0x\",c?Ye(c):\"0x\",m??\"0x\",g,b,...s4(t,e)])])}function yje(t,e){let{chainId:n,gas:r,nonce:o,to:i,value:a,maxFeePerBlobGas:c,maxFeePerGas:u,maxPriorityFeePerGas:d,accessList:h,data:m}=t;Yde(t);let g=t.blobVersionedHashes,b=t.sidecars;if(t.blobs&&(typeof g>\"u\"||typeof b>\"u\")){let D=typeof t.blobs[0]==\"string\"?t.blobs:t.blobs.map(J=>Xr(J)),G=t.kzg,W=a4({blobs:D,kzg:G});if(typeof g>\"u\"&&(g=CL({commitments:W})),typeof b>\"u\"){let J=c4({blobs:D,commitments:W,kzg:G});b=IL({blobs:D,commitments:W,proofs:J})}}let E=hR(h),C=[Ye(n),o?Ye(o):\"0x\",d?Ye(d):\"0x\",u?Ye(u):\"0x\",r?Ye(r):\"0x\",i??\"0x\",a?Ye(a):\"0x\",m??\"0x\",E,c?Ye(c):\"0x\",g??[],...s4(t,e)],T=[],R=[],L=[];if(b)for(let D=0;D<b.length;D++){let{blob:G,commitment:W,proof:J}=b[D];T.push(G),R.push(W),L.push(J)}return fa([\"0x03\",b?N0([C,T,R,L]):N0(C)])}function bje(t,e){let{chainId:n,gas:r,nonce:o,to:i,value:a,maxFeePerGas:c,maxPriorityFeePerGas:u,accessList:d,data:h}=t;NL(t);let m=hR(d),g=[Ye(n),o?Ye(o):\"0x\",u?Ye(u):\"0x\",c?Ye(c):\"0x\",r?Ye(r):\"0x\",i??\"0x\",a?Ye(a):\"0x\",h??\"0x\",m,...s4(t,e)];return fa([\"0x02\",N0(g)])}function vje(t,e){let{chainId:n,gas:r,data:o,nonce:i,to:a,value:c,accessList:u,gasPrice:d}=t;Qde(t);let h=hR(u),m=[Ye(n),i?Ye(i):\"0x\",d?Ye(d):\"0x\",r?Ye(r):\"0x\",a??\"0x\",c?Ye(c):\"0x\",o??\"0x\",h,...s4(t,e)];return fa([\"0x01\",N0(m)])}function wje(t,e){let{chainId:n=0,gas:r,data:o,nonce:i,to:a,value:c,gasPrice:u}=t;Jde(t);let d=[i?Ye(i):\"0x\",u?Ye(u):\"0x\",r?Ye(r):\"0x\",a??\"0x\",c?Ye(c):\"0x\",o??\"0x\"];if(e){let h=(()=>{if(e.v>=35n)return(e.v-35n)/2n>0?e.v:27n+(e.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+e.v-27n);let b=27n+(e.v===27n?0n:1n);if(e.v!==b)throw new fL({v:e.v});return b})(),m=Fs(e.r),g=Fs(e.s);d=[...d,Ye(h),m===\"0x00\"?\"0x\":m,g===\"0x00\"?\"0x\":g]}else n>0&&(d=[...d,Ye(n),\"0x\",\"0x\"]);return N0(d)}function s4(t,e){let n=e??t,{v:r,yParity:o}=n;if(typeof n.r>\"u\")return[];if(typeof n.s>\"u\")return[];if(typeof r>\"u\"&&typeof o>\"u\")return[];let i=Fs(n.r),a=Fs(n.s);return[typeof o==\"number\"?o?Ye(1):\"0x\":r===0n?\"0x\":r===1n?Ye(1):r===27n?\"0x\":Ye(1),i===\"0x00\"?\"0x\":i,a===\"0x00\"?\"0x\":a]}var OG=ce(()=>{p();L0();mde();yL();bL();FG();jG();iu();Pw();gn();aL();Xde();VG();efe()});var nfe,rfe=ce(()=>{p();nfe={gasPriceOracle:{address:\"0x420000000000000000000000000000000000000F\"},l1Block:{address:\"0x4200000000000000000000000000000000000015\"},l2CrossDomainMessenger:{address:\"0x4200000000000000000000000000000000000007\"},l2Erc721Bridge:{address:\"0x4200000000000000000000000000000000000014\"},l2StandardBridge:{address:\"0x4200000000000000000000000000000000000010\"},l2ToL1MessagePasser:{address:\"0x4200000000000000000000000000000000000016\"}}});var ofe,ife=ce(()=>{p();fc();rL();tR();oL();ofe={block:ude({format(t){return{transactions:t.transactions?.map(n=>{if(typeof n==\"string\")return n;let r=y5(n);return r.typeHex===\"0x7e\"&&(r.isSystemTx=n.isSystemTx,r.mint=n.mint?jo(n.mint):void 0,r.sourceHash=n.sourceHash,r.type=\"deposit\"),r}),stateRoot:t.stateRoot}}}),transaction:lde({format(t){let e={};return t.type===\"0x7e\"&&(e.isSystemTx=t.isSystemTx,e.mint=t.mint?jo(t.mint):void 0,e.sourceHash=t.sourceHash,e.type=\"deposit\"),e}}),transactionReceipt:dde({format(t){return{l1GasPrice:t.l1GasPrice?jo(t.l1GasPrice):null,l1GasUsed:t.l1GasUsed?jo(t.l1GasUsed):null,l1Fee:t.l1Fee?jo(t.l1Fee):null,l1FeeScalar:t.l1FeeScalar?Number(t.l1FeeScalar):null}}})}});function xje(t,e){return Sje(t)?Eje(t):tfe(t,e)}function Eje(t){kje(t);let{sourceHash:e,data:n,from:r,gas:o,isSystemTx:i,mint:a,to:c,value:u}=t,d=[e,r,c??\"0x\",a?Uo(a):\"0x\",u?Uo(u):\"0x\",o?Uo(o):\"0x\",i?\"0x1\":\"0x\",n??\"0x\"];return fa([\"0x7e\",N0(d)])}function Sje(t){return t.type===\"deposit\"||typeof t.sourceHash<\"u\"}function kje(t){let{from:e,to:n}=t;if(e&&!Kr(e))throw new ci({address:e});if(n&&!Kr(n))throw new ci({address:n})}var sfe,afe=ce(()=>{p();D0();hf();iu();gn();aL();OG();sfe={transaction:xje}});var qp,pR=ce(()=>{p();rfe();ife();afe();qp={blockTime:2e3,contracts:nfe,formatters:ofe,serializers:sfe}});var $G,cfe=ce(()=>{p();O0();$G=Ba({id:42161,name:\"Arbitrum One\",nativeCurrency:{name:\"Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://arb1.arbitrum.io/rpc\"]}},blockExplorers:{default:{name:\"Arbiscan\",url:\"https://arbiscan.io\",apiUrl:\"https://api.arbiscan.io/api\"}},contracts:{multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:7654707}}})});var KG,lfe=ce(()=>{p();O0();KG=Ba({id:421614,name:\"Arbitrum Sepolia\",nativeCurrency:{name:\"Arbitrum Sepolia Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://sepolia-rollup.arbitrum.io/rpc\"]}},blockExplorers:{default:{name:\"Arbiscan\",url:\"https://sepolia.arbiscan.io\",apiUrl:\"https://api-sepolia.arbiscan.io/api\"}},contracts:{multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:81930}},testnet:!0})});var mR,Yn,ufe=ce(()=>{p();pR();O0();mR=1,Yn=Ba({...qp,id:8453,name:\"Base\",nativeCurrency:{name:\"Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://mainnet.base.org\"]}},blockExplorers:{default:{name:\"Basescan\",url:\"https://basescan.org\",apiUrl:\"https://api.basescan.org/api\"}},contracts:{...qp.contracts,disputeGameFactory:{[mR]:{address:\"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e\"}},l2OutputOracle:{[mR]:{address:\"0x56315b90c40730925ec5485cf004d835058518A0\"}},multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:5022},portal:{[mR]:{address:\"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e\",blockCreated:17482143}},l1StandardBridge:{[mR]:{address:\"0x3154Cf16ccdb4C6d922629664174b904d80F2C35\",blockCreated:17482143}}},sourceId:mR})});var gR,xs,dfe=ce(()=>{p();pR();O0();gR=11155111,xs=Ba({...qp,id:84532,network:\"base-sepolia\",name:\"Base Sepolia\",nativeCurrency:{name:\"Sepolia Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://sepolia.base.org\"]}},blockExplorers:{default:{name:\"Basescan\",url:\"https://sepolia.basescan.org\",apiUrl:\"https://api-sepolia.basescan.org/api\"}},contracts:{...qp.contracts,disputeGameFactory:{[gR]:{address:\"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1\"}},l2OutputOracle:{[gR]:{address:\"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254\"}},portal:{[gR]:{address:\"0x49f53e41452c74589e85ca1677426ba426459e85\",blockCreated:4446677}},l1StandardBridge:{[gR]:{address:\"0xfd0Bf71F60660E2f608ed56e1659C450eB113120\",blockCreated:4446677}},multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:1059647}},testnet:!0,sourceId:gR})});function BL({chain:t,currentChainId:e}){if(!t)throw new PL;if(e!==t.id)throw new OL({chain:t,currentChainId:e})}var GG=ce(()=>{p();uR()});function Wp({blockNumber:t,chain:e,contract:n}){let r=e?.contracts?.[n];if(!r)throw new A5({chain:e,contract:{name:n}});if(t&&r.blockCreated&&r.blockCreated>t)throw new A5({blockNumber:t,chain:e,contract:{name:n,blockCreated:r.blockCreated}});return r.address}var I5=ce(()=>{p();uR()});function Wn(t){return typeof t==\"string\"?{address:t,type:\"json-rpc\"}:t}var js=ce(()=>{p()});var su,zw,Hw=ce(()=>{p();ir();su=class extends Be{constructor({docsPath:e}={}){super([\"Could not find an Account to execute with this Action.\",\"Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client.\"].join(`\\n`),{docsPath:e,docsSlug:\"account\",name:\"AccountNotFoundError\"})}},zw=class extends Be{constructor({docsPath:e,metaMessages:n,type:r}){super(`Account type \"${r}\" is not supported.`,{docsPath:e,metaMessages:n,name:\"AccountTypeNotSupportedError\"})}}});var DL,FL,ffe,yR=ce(()=>{p();DL={1:\"An `assert` condition failed.\",17:\"Arithmetic operation resulted in underflow or overflow.\",18:\"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).\",33:\"Attempted to convert to an invalid type.\",34:\"Attempted to access a storage byte array that is incorrectly encoded.\",49:\"Performed `.pop()` on an empty array\",50:\"Array index is out of bounds.\",65:\"Allocated too much memory or created an array which is too large.\",81:\"Attempted to call a zero-initialized variable of internal function type.\"},FL={inputs:[{name:\"message\",type:\"string\"}],name:\"Error\",type:\"error\"},ffe={inputs:[{name:\"reason\",type:\"uint256\"}],name:\"Panic\",type:\"error\"}});function mc(t,{includeName:e=!1}={}){if(t.type!==\"function\"&&t.type!==\"event\"&&t.type!==\"error\")throw new UL(t.type);return`${t.name}(${bR(t.inputs,{includeName:e})})`}function bR(t,{includeName:e=!1}={}){return t?t.map(n=>_je(n,{includeName:e})).join(e?\", \":\",\"):\"\"}function _je(t,{includeName:e}){return t.type.startsWith(\"tuple\")?`(${bR(t.components,{includeName:e})})${t.type.slice(5)}`:t.type+(e&&t.name?` ${t.name}`:\"\")}var rv=ce(()=>{p();Es()});var jL,vR,x4,Vp,zL,HL,E4,qL,wR,S4,WL,k4,xR,F0,_4,VL,$L,C4,U0,Ry,KL,GL,A4,UL,ZL,Es=ce(()=>{p();rv();Mp();ir();jL=class extends Be{constructor({docsPath:e}){super([\"A constructor was not found on the ABI.\",\"Make sure you are using the correct ABI and that the constructor exists on it.\"].join(`\\n`),{docsPath:e,name:\"AbiConstructorNotFoundError\"})}},vR=class extends Be{constructor({docsPath:e}){super([\"Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.\",\"Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.\"].join(`\\n`),{docsPath:e,name:\"AbiConstructorParamsNotFoundError\"})}},x4=class extends Be{constructor({data:e,params:n,size:r}){super([`Data size of ${r} bytes is too small for given parameters.`].join(`\\n`),{metaMessages:[`Params: (${bR(n,{includeName:!0})})`,`Data:   ${e} (${r} bytes)`],name:\"AbiDecodingDataSizeTooSmallError\"}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"params\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"size\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e,this.params=n,this.size=r}},Vp=class extends Be{constructor(){super(\\'Cannot decode zero data (\"0x\") with ABI parameters.\\',{name:\"AbiDecodingZeroDataError\"})}},zL=class extends Be{constructor({expectedLength:e,givenLength:n,type:r}){super([`ABI encoding array length mismatch for type ${r}.`,`Expected length: ${e}`,`Given length: ${n}`].join(`\\n`),{name:\"AbiEncodingArrayLengthMismatchError\"})}},HL=class extends Be{constructor({expectedSize:e,value:n}){super(`Size of bytes \"${n}\" (bytes${Jr(n)}) does not match expected size (bytes${e}).`,{name:\"AbiEncodingBytesSizeMismatchError\"})}},E4=class extends Be{constructor({expectedLength:e,givenLength:n}){super([\"ABI encoding params/values length mismatch.\",`Expected length (params): ${e}`,`Given length (values): ${n}`].join(`\\n`),{name:\"AbiEncodingLengthMismatchError\"})}},qL=class extends Be{constructor(e,{docsPath:n}){super([`Arguments (\\\\`args\\\\`) were provided to \"${e}\", but \"${e}\" on the ABI does not contain any parameters (\\\\`inputs\\\\`).`,\"Cannot encode error result without knowing what the parameter types are.\",\"Make sure you are using the correct ABI and that the inputs exist on it.\"].join(`\\n`),{docsPath:n,name:\"AbiErrorInputsNotFoundError\"})}},wR=class extends Be{constructor(e,{docsPath:n}={}){super([`Error ${e?`\"${e}\" `:\"\"}not found on ABI.`,\"Make sure you are using the correct ABI and that the error exists on it.\"].join(`\\n`),{docsPath:n,name:\"AbiErrorNotFoundError\"})}},S4=class extends Be{constructor(e,{docsPath:n}){super([`Encoded error signature \"${e}\" not found on ABI.`,\"Make sure you are using the correct ABI and that the error exists on it.\",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${e}.`].join(`\\n`),{docsPath:n,name:\"AbiErrorSignatureNotFoundError\"}),Object.defineProperty(this,\"signature\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=e}},WL=class extends Be{constructor({docsPath:e}){super(\"Cannot extract event signature from empty topics.\",{docsPath:e,name:\"AbiEventSignatureEmptyTopicsError\"})}},k4=class extends Be{constructor(e,{docsPath:n}){super([`Encoded event signature \"${e}\" not found on ABI.`,\"Make sure you are using the correct ABI and that the event exists on it.\",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`\\n`),{docsPath:n,name:\"AbiEventSignatureNotFoundError\"})}},xR=class extends Be{constructor(e,{docsPath:n}={}){super([`Event ${e?`\"${e}\" `:\"\"}not found on ABI.`,\"Make sure you are using the correct ABI and that the event exists on it.\"].join(`\\n`),{docsPath:n,name:\"AbiEventNotFoundError\"})}},F0=class extends Be{constructor(e,{docsPath:n}={}){super([`Function ${e?`\"${e}\" `:\"\"}not found on ABI.`,\"Make sure you are using the correct ABI and that the function exists on it.\"].join(`\\n`),{docsPath:n,name:\"AbiFunctionNotFoundError\"})}},_4=class extends Be{constructor(e,{docsPath:n}){super([`Function \"${e}\" does not contain any \\\\`outputs\\\\` on ABI.`,\"Cannot decode function result without knowing what the parameter types are.\",\"Make sure you are using the correct ABI and that the function exists on it.\"].join(`\\n`),{docsPath:n,name:\"AbiFunctionOutputsNotFoundError\"})}},VL=class extends Be{constructor(e,{docsPath:n}){super([`Encoded function signature \"${e}\" not found on ABI.`,\"Make sure you are using the correct ABI and that the function exists on it.\",`You can look up the signature here: https://openchain.xyz/signatures?query=${e}.`].join(`\\n`),{docsPath:n,name:\"AbiFunctionSignatureNotFoundError\"})}},$L=class extends Be{constructor(e,n){super(\"Found ambiguous types in overloaded ABI items.\",{metaMessages:[`\\\\`${e.type}\\\\` in \\\\`${mc(e.abiItem)}\\\\`, and`,`\\\\`${n.type}\\\\` in \\\\`${mc(n.abiItem)}\\\\``,\"\",\"These types encode differently and cannot be distinguished at runtime.\",\"Remove one of the ambiguous items in the ABI.\"],name:\"AbiItemAmbiguityError\"})}},C4=class extends Be{constructor({expectedSize:e,givenSize:n}){super(`Expected bytes${e}, got bytes${n}.`,{name:\"BytesSizeMismatchError\"})}},U0=class extends Be{constructor({abiItem:e,data:n,params:r,size:o}){super([`Data size of ${o} bytes is too small for non-indexed event parameters.`].join(`\\n`),{metaMessages:[`Params: (${bR(r,{includeName:!0})})`,`Data:   ${n} (${o} bytes)`],name:\"DecodeLogDataMismatch\"}),Object.defineProperty(this,\"abiItem\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"params\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"size\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e,this.data=n,this.params=r,this.size=o}},Ry=class extends Be{constructor({abiItem:e,param:n}){super([`Expected a topic for indexed event parameter${n.name?` \"${n.name}\"`:\"\"} on event \"${mc(e,{includeName:!0})}\".`].join(`\\n`),{name:\"DecodeLogTopicsMismatch\"}),Object.defineProperty(this,\"abiItem\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=e}},KL=class extends Be{constructor(e,{docsPath:n}){super([`Type \"${e}\" is not a valid encoding type.`,\"Please provide a valid ABI type.\"].join(`\\n`),{docsPath:n,name:\"InvalidAbiEncodingType\"})}},GL=class extends Be{constructor(e,{docsPath:n}){super([`Type \"${e}\" is not a valid decoding type.`,\"Please provide a valid ABI type.\"].join(`\\n`),{docsPath:n,name:\"InvalidAbiDecodingType\"})}},A4=class extends Be{constructor(e){super([`Value \"${e}\" is not a valid array.`].join(`\\n`),{name:\"InvalidArrayError\"})}},UL=class extends Be{constructor(e){super([`\"${e}\" is not a valid definition type.`,\\'Valid types: \"function\", \"event\", \"error\"\\'].join(`\\n`),{name:\"InvalidDefinitionTypeError\"})}},ZL=class extends Be{constructor(e){super(`Type \"${e}\" is not supported for packed encoding.`,{name:\"UnsupportedPackedAbiType\"})}}});function hfe(t){return Cje(t)}var Cje,pfe=ce(()=>{p();hc();zp();Cje=t=>Po(Lp(t))});var mfe,gfe=ce(()=>{p();mfe=\"1.0.8\"});var Fa,T4=ce(()=>{p();gfe();Fa=class t extends Error{constructor(e,n={}){let r=n.cause instanceof t?n.cause.details:n.cause?.message?n.cause.message:n.details,o=n.cause instanceof t&&n.cause.docsPath||n.docsPath,i=[e||\"An error occurred.\",\"\",...n.metaMessages?[...n.metaMessages,\"\"]:[],...o?[`Docs: https://abitype.dev${o}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${mfe}`].join(`\\n`);super(i),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docsPath\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"metaMessages\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"shortMessage\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiTypeError\"}),n.cause&&(this.cause=n.cause),this.details=r,this.docsPath=o,this.metaMessages=n.metaMessages,this.shortMessage=e}}});function yh(t,e){return t.exec(e)?.groups}var ZG,YG,YL,ER=ce(()=>{p();ZG=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,YG=/^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)?$/,YL=/^\\\\(.+?\\\\).*?$/});function QL(t){let e=t.type;if(yfe.test(t.type)&&\"components\"in t){e=\"(\";let n=t.components.length;for(let o=0;o<n;o++){let i=t.components[o];e+=QL(i),o<n-1&&(e+=\", \")}let r=yh(yfe,t.type);return e+=`)${r?.array??\"\"}`,QL({...t,type:e})}return\"indexed\"in t&&t.indexed&&(e=`${e} indexed`),t.name?`${e} ${t.name}`:e}var yfe,bfe=ce(()=>{p();ER();yfe=/^tuple(?<array>(\\\\[(\\\\d*)\\\\])*)$/});function R4(t){let e=\"\",n=t.length;for(let r=0;r<n;r++){let o=t[r];e+=QL(o),r!==n-1&&(e+=\", \")}return e}var vfe=ce(()=>{p();bfe()});function O5(t){return t.type===\"function\"?`function ${t.name}(${R4(t.inputs)})${t.stateMutability&&t.stateMutability!==\"nonpayable\"?` ${t.stateMutability}`:\"\"}${t.outputs?.length?` returns (${R4(t.outputs)})`:\"\"}`:t.type===\"event\"?`event ${t.name}(${R4(t.inputs)})`:t.type===\"error\"?`error ${t.name}(${R4(t.inputs)})`:t.type===\"constructor\"?`constructor(${R4(t.inputs)})${t.stateMutability===\"payable\"?\" payable\":\"\"}`:t.type===\"fallback\"?`fallback() external${t.stateMutability===\"payable\"?\" payable\":\"\"}`:\"receive() external payable\"}var wfe=ce(()=>{p();vfe()});function Efe(t){return xfe.test(t)}function Sfe(t){return yh(xfe,t)}function _fe(t){return kfe.test(t)}function Cfe(t){return yh(kfe,t)}function Tfe(t){return Afe.test(t)}function Rfe(t){return yh(Afe,t)}function I4(t){return Ife.test(t)}function Ofe(t){return yh(Ife,t)}function Mfe(t){return Pfe.test(t)}function Nfe(t){return yh(Pfe,t)}function Bfe(t){return Lfe.test(t)}function Dfe(t){return yh(Lfe,t)}function Ffe(t){return Aje.test(t)}var xfe,kfe,Afe,Ife,Pfe,Lfe,Aje,Ufe,JL,SR=ce(()=>{p();ER();xfe=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\\\\((?<parameters>.*?)\\\\)$/;kfe=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\\\\((?<parameters>.*?)\\\\)$/;Afe=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\\\\((?<parameters>.*?)\\\\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\\\\s?\\\\((?<returns>.*?)\\\\))?$/;Ife=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \\\\{(?<properties>.*?)\\\\}$/;Pfe=/^constructor\\\\((?<parameters>.*?)\\\\)(?:\\\\s(?<stateMutability>payable{1}))?$/;Lfe=/^fallback\\\\(\\\\) external(?:\\\\s(?<stateMutability>payable{1}))?$/;Aje=/^receive\\\\(\\\\) external payable$/;Ufe=new Set([\"indexed\"]),JL=new Set([\"calldata\",\"memory\",\"storage\"])});var kR,_R,XL,eB=ce(()=>{p();T4();kR=class extends Fa{constructor({signature:e}){super(\"Failed to parse ABI item.\",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:\"/api/human#parseabiitem-1\"}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidAbiItemError\"})}},_R=class extends Fa{constructor({type:e}){super(\"Unknown type.\",{metaMessages:[`Type \"${e}\" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"UnknownTypeError\"})}},XL=class extends Fa{constructor({type:e}){super(\"Unknown type.\",{metaMessages:[`Type \"${e}\" is not a valid ABI type.`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"UnknownSolidityTypeError\"})}}});var CR,AR,TR,RR,IR,QG=ce(()=>{p();T4();CR=class extends Fa{constructor({param:e}){super(\"Invalid ABI parameter.\",{details:e}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidParameterError\"})}},AR=class extends Fa{constructor({param:e,name:n}){super(\"Invalid ABI parameter.\",{details:e,metaMessages:[`\"${n}\" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"SolidityProtectedKeywordError\"})}},TR=class extends Fa{constructor({param:e,type:n,modifier:r}){super(\"Invalid ABI parameter.\",{details:e,metaMessages:[`Modifier \"${r}\" not allowed${n?` in \"${n}\" type`:\"\"}.`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidModifierError\"})}},RR=class extends Fa{constructor({param:e,type:n,modifier:r}){super(\"Invalid ABI parameter.\",{details:e,metaMessages:[`Modifier \"${r}\" not allowed${n?` in \"${n}\" type`:\"\"}.`,`Data location can only be specified for array, struct, or mapping types, but \"${r}\" was given.`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidFunctionModifierError\"})}},IR=class extends Fa{constructor({abiParameter:e}){super(\"Invalid ABI parameter.\",{details:JSON.stringify(e,null,2),metaMessages:[\"ABI parameter type is invalid.\"]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidAbiTypeParameterError\"})}}});var j0,OR,PR,JG=ce(()=>{p();T4();j0=class extends Fa{constructor({signature:e,type:n}){super(`Invalid ${n} signature.`,{details:e}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidSignatureError\"})}},OR=class extends Fa{constructor({signature:e}){super(\"Unknown signature.\",{details:e}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"UnknownSignatureError\"})}},PR=class extends Fa{constructor({signature:e}){super(\"Invalid struct signature.\",{details:e,metaMessages:[\"No properties exist.\"]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidStructSignatureError\"})}}});var MR,jfe=ce(()=>{p();T4();MR=class extends Fa{constructor({type:e}){super(\"Circular reference detected.\",{metaMessages:[`Struct \"${e}\" is a circular reference.`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"CircularReferenceError\"})}}});var NR,zfe=ce(()=>{p();T4();NR=class extends Fa{constructor({current:e,depth:n}){super(\"Unbalanced parentheses.\",{metaMessages:[`\"${e.trim()}\" has too many ${n>0?\"opening\":\"closing\"} parentheses.`],details:`Depth \"${n}\"`}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"InvalidParenthesisError\"})}}});function Hfe(t,e,n){let r=\"\";if(n)for(let o of Object.entries(n)){if(!o)continue;let i=\"\";for(let a of o[1])i+=`[${a.type}${a.name?`:${a.name}`:\"\"}]`;r+=`(${o[0]}{${i}})`}return e?`${e}:${t}${r}`:t}var tB,qfe=ce(()=>{p();tB=new Map([[\"address\",{type:\"address\"}],[\"bool\",{type:\"bool\"}],[\"bytes\",{type:\"bytes\"}],[\"bytes32\",{type:\"bytes32\"}],[\"int\",{type:\"int256\"}],[\"int256\",{type:\"int256\"}],[\"string\",{type:\"string\"}],[\"uint\",{type:\"uint256\"}],[\"uint8\",{type:\"uint8\"}],[\"uint16\",{type:\"uint16\"}],[\"uint24\",{type:\"uint24\"}],[\"uint32\",{type:\"uint32\"}],[\"uint64\",{type:\"uint64\"}],[\"uint96\",{type:\"uint96\"}],[\"uint112\",{type:\"uint112\"}],[\"uint160\",{type:\"uint160\"}],[\"uint192\",{type:\"uint192\"}],[\"uint256\",{type:\"uint256\"}],[\"address owner\",{type:\"address\",name:\"owner\"}],[\"address to\",{type:\"address\",name:\"to\"}],[\"bool approved\",{type:\"bool\",name:\"approved\"}],[\"bytes _data\",{type:\"bytes\",name:\"_data\"}],[\"bytes data\",{type:\"bytes\",name:\"data\"}],[\"bytes signature\",{type:\"bytes\",name:\"signature\"}],[\"bytes32 hash\",{type:\"bytes32\",name:\"hash\"}],[\"bytes32 r\",{type:\"bytes32\",name:\"r\"}],[\"bytes32 root\",{type:\"bytes32\",name:\"root\"}],[\"bytes32 s\",{type:\"bytes32\",name:\"s\"}],[\"string name\",{type:\"string\",name:\"name\"}],[\"string symbol\",{type:\"string\",name:\"symbol\"}],[\"string tokenURI\",{type:\"string\",name:\"tokenURI\"}],[\"uint tokenId\",{type:\"uint256\",name:\"tokenId\"}],[\"uint8 v\",{type:\"uint8\",name:\"v\"}],[\"uint256 balance\",{type:\"uint256\",name:\"balance\"}],[\"uint256 tokenId\",{type:\"uint256\",name:\"tokenId\"}],[\"uint256 value\",{type:\"uint256\",name:\"value\"}],[\"event:address indexed from\",{type:\"address\",name:\"from\",indexed:!0}],[\"event:address indexed to\",{type:\"address\",name:\"to\",indexed:!0}],[\"event:uint indexed tokenId\",{type:\"uint256\",name:\"tokenId\",indexed:!0}],[\"event:uint256 indexed tokenId\",{type:\"uint256\",name:\"tokenId\",indexed:!0}]])});function LR(t,e={}){if(Tfe(t))return Tje(t,e);if(_fe(t))return Rje(t,e);if(Efe(t))return Ije(t,e);if(Mfe(t))return Oje(t,e);if(Bfe(t))return Pje(t);if(Ffe(t))return{type:\"receive\",stateMutability:\"payable\"};throw new OR({signature:t})}function Tje(t,e={}){let n=Rfe(t);if(!n)throw new j0({signature:t,type:\"function\"});let r=z0(n.parameters),o=[],i=r.length;for(let c=0;c<i;c++)o.push(qw(r[c],{modifiers:JL,structs:e,type:\"function\"}));let a=[];if(n.returns){let c=z0(n.returns),u=c.length;for(let d=0;d<u;d++)a.push(qw(c[d],{modifiers:JL,structs:e,type:\"function\"}))}return{name:n.name,type:\"function\",stateMutability:n.stateMutability??\"nonpayable\",inputs:o,outputs:a}}function Rje(t,e={}){let n=Cfe(t);if(!n)throw new j0({signature:t,type:\"event\"});let r=z0(n.parameters),o=[],i=r.length;for(let a=0;a<i;a++)o.push(qw(r[a],{modifiers:Ufe,structs:e,type:\"event\"}));return{name:n.name,type:\"event\",inputs:o}}function Ije(t,e={}){let n=Sfe(t);if(!n)throw new j0({signature:t,type:\"error\"});let r=z0(n.parameters),o=[],i=r.length;for(let a=0;a<i;a++)o.push(qw(r[a],{structs:e,type:\"error\"}));return{name:n.name,type:\"error\",inputs:o}}function Oje(t,e={}){let n=Nfe(t);if(!n)throw new j0({signature:t,type:\"constructor\"});let r=z0(n.parameters),o=[],i=r.length;for(let a=0;a<i;a++)o.push(qw(r[a],{structs:e,type:\"constructor\"}));return{type:\"constructor\",stateMutability:n.stateMutability??\"nonpayable\",inputs:o}}function Pje(t){let e=Dfe(t);if(!e)throw new j0({signature:t,type:\"fallback\"});return{type:\"fallback\",stateMutability:e.stateMutability??\"nonpayable\"}}function qw(t,e){let n=Hfe(t,e?.type,e?.structs);if(tB.has(n))return tB.get(n);let r=YL.test(t),o=yh(r?Nje:Mje,t);if(!o)throw new CR({param:t});if(o.name&&Dje(o.name))throw new AR({param:t,name:o.name});let i=o.name?{name:o.name}:{},a=o.modifier===\"indexed\"?{indexed:!0}:{},c=e?.structs??{},u,d={};if(r){u=\"tuple\";let m=z0(o.type),g=[],b=m.length;for(let E=0;E<b;E++)g.push(qw(m[E],{structs:c}));d={components:g}}else if(o.type in c)u=\"tuple\",d={components:c[o.type]};else if(Lje.test(o.type))u=`${o.type}256`;else if(u=o.type,e?.type!==\"struct\"&&!XG(u))throw new XL({type:u});if(o.modifier){if(!e?.modifiers?.has?.(o.modifier))throw new TR({param:t,type:e?.type,modifier:o.modifier});if(JL.has(o.modifier)&&!Fje(u,!!o.array))throw new RR({param:t,type:e?.type,modifier:o.modifier})}let h={type:`${u}${o.array??\"\"}`,...i,...a,...d};return tB.set(n,h),h}function z0(t,e=[],n=\"\",r=0){let o=t.trim().length;for(let i=0;i<o;i++){let a=t[i],c=t.slice(i+1);switch(a){case\",\":return r===0?z0(c,[...e,n.trim()]):z0(c,e,`${n}${a}`,r);case\"(\":return z0(c,e,`${n}${a}`,r+1);case\")\":return z0(c,e,`${n}${a}`,r-1);default:return z0(c,e,`${n}${a}`,r)}}if(n===\"\")return e;if(r!==0)throw new NR({current:n,depth:r});return e.push(n.trim()),e}function XG(t){return t===\"address\"||t===\"bool\"||t===\"function\"||t===\"string\"||ZG.test(t)||YG.test(t)}function Dje(t){return t===\"address\"||t===\"bool\"||t===\"function\"||t===\"string\"||t===\"tuple\"||ZG.test(t)||YG.test(t)||Bje.test(t)}function Fje(t,e){return e||t===\"bytes\"||t===\"string\"||t===\"tuple\"}var Mje,Nje,Lje,Bje,nB=ce(()=>{p();ER();eB();QG();JG();zfe();qfe();SR();Mje=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\\\\[\\\\d*?\\\\])+?)?(?:\\\\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\\\\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Nje=/^\\\\((?<type>.+?)\\\\)(?<array>(?:\\\\[\\\\d*?\\\\])+?)?(?:\\\\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\\\\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Lje=/^u?int$/;Bje=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function rB(t){let e={},n=t.length;for(let a=0;a<n;a++){let c=t[a];if(!I4(c))continue;let u=Ofe(c);if(!u)throw new j0({signature:c,type:\"struct\"});let d=u.properties.split(\";\"),h=[],m=d.length;for(let g=0;g<m;g++){let E=d[g].trim();if(!E)continue;let C=qw(E,{type:\"struct\"});h.push(C)}if(!h.length)throw new PR({signature:c});e[u.name]=h}let r={},o=Object.entries(e),i=o.length;for(let a=0;a<i;a++){let[c,u]=o[a];r[c]=Wfe(u,e)}return r}function Wfe(t,e,n=new Set){let r=[],o=t.length;for(let i=0;i<o;i++){let a=t[i];if(YL.test(a.type))r.push(a);else{let u=yh(Uje,a.type);if(!u?.type)throw new IR({abiParameter:a});let{array:d,type:h}=u;if(h in e){if(n.has(h))throw new MR({type:h});r.push({...a,type:`tuple${d??\"\"}`,components:Wfe(e[h]??[],e,new Set([...n,h]))})}else if(XG(h))r.push(a);else throw new _R({type:h})}}return r}var Uje,eZ=ce(()=>{p();ER();eB();QG();JG();jfe();SR();nB();Uje=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\\\\[\\\\d*?\\\\])+?)?$/});function P5(t){let e=rB(t),n=[],r=t.length;for(let o=0;o<r;o++){let i=t[o];I4(i)||n.push(LR(i,e))}return n}var Vfe=ce(()=>{p();SR();eZ();nB()});function BR(t){let e;if(typeof t==\"string\")e=LR(t);else{let n=rB(t),r=t.length;for(let o=0;o<r;o++){let i=t[o];if(!I4(i)){e=LR(i,n);break}}}if(!e)throw new kR({signature:t});return e}var $fe=ce(()=>{p();eB();SR();eZ();nB()});var DR=ce(()=>{p();wfe();Vfe();$fe()});function Kfe(t){let e=!0,n=\"\",r=0,o=\"\",i=!1;for(let a=0;a<t.length;a++){let c=t[a];if([\"(\",\")\",\",\"].includes(c)&&(e=!0),c===\"(\"&&r++,c===\")\"&&r--,!!e){if(r===0){if(c===\" \"&&[\"event\",\"function\",\"\"].includes(o))o=\"\";else if(o+=c,c===\")\"){i=!0;break}continue}if(c===\" \"){t[a-1]!==\",\"&&n!==\",\"&&n!==\",(\"&&(n=\"\",e=!1);continue}o+=c,n+=c}}if(!i)throw new Be(\"Unable to normalize signature.\");return o}var Gfe=ce(()=>{p();ir()});var Zfe,Yfe=ce(()=>{p();DR();Gfe();Zfe=t=>{let e=typeof t==\"string\"?t:O5(t);return Kfe(e)}});function oB(t){return hfe(Zfe(t))}var tZ=ce(()=>{p();pfe();Yfe()});var Iy,O4=ce(()=>{p();nv();tZ();Iy=t=>Hp(oB(t),0,4)});function Qfe(t,e={}){typeof e.size<\"u\"&&dd(t,{size:e.size});let n=Xr(t,e);return jo(n,e)}function Jfe(t,e={}){let n=t;if(typeof e.size<\"u\"&&(dd(n,{size:e.size}),n=Fs(n)),n.length>1||n[0]>1)throw new QN(n);return!!n[0]}function Oy(t,e={}){typeof e.size<\"u\"&&dd(t,{size:e.size});let n=Xr(t,e);return Ei(n,e)}function Xfe(t,e={}){let n=t;return typeof e.size<\"u\"&&(dd(n,{size:e.size}),n=Fs(n,{dir:\"right\"})),new TextDecoder().decode(n)}var ehe=ce(()=>{p();Z7();Pw();fc();gn()});var the,iB,P4,sB=ce(()=>{p();the=/^(.*)\\\\[([0-9]*)\\\\]$/,iB=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,P4=/^(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)?$/});function vl(t,e){if(t.length!==e.length)throw new E4({expectedLength:t.length,givenLength:e.length});let n=zje({params:t,values:e}),r=rZ(n);return r.length===0?\"0x\":r}function zje({params:t,values:e}){let n=[];for(let r=0;r<t.length;r++)n.push(nZ({param:t[r],value:e[r]}));return n}function nZ({param:t,value:e}){let n=aB(t.type);if(n){let[r,o]=n;return qje(e,{length:r,param:{...t,type:o}})}if(t.type===\"tuple\")return Gje(e,{param:t});if(t.type===\"address\")return Hje(e);if(t.type===\"bool\")return Vje(e);if(t.type.startsWith(\"uint\")||t.type.startsWith(\"int\")){let r=t.type.startsWith(\"int\"),[,,o=\"256\"]=P4.exec(t.type)??[];return $je(e,{signed:r,size:Number(o)})}if(t.type.startsWith(\"bytes\"))return Wje(e,{param:t});if(t.type===\"string\")return Kje(e);throw new KL(t.type,{docsPath:\"/docs/contract/encodeAbiParameters\"})}function rZ(t){let e=0;for(let i=0;i<t.length;i++){let{dynamic:a,encoded:c}=t[i];a?e+=32:e+=Jr(c)}let n=[],r=[],o=0;for(let i=0;i<t.length;i++){let{dynamic:a,encoded:c}=t[i];a?(n.push(Ye(e+o,{size:32})),r.push(c),o+=Jr(c)):n.push(c)}return Da([...n,...r])}function Hje(t){if(!Kr(t))throw new ci({address:t});return{dynamic:!1,encoded:Gb(t.toLowerCase())}}function qje(t,{length:e,param:n}){let r=e===null;if(!Array.isArray(t))throw new A4(t);if(!r&&t.length!==e)throw new zL({expectedLength:e,givenLength:t.length,type:`${n.type}[${e}]`});let o=!1,i=[];for(let a=0;a<t.length;a++){let c=nZ({param:n,value:t[a]});c.dynamic&&(o=!0),i.push(c)}if(r||o){let a=rZ(i);if(r){let c=Ye(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?Da([c,a]):c}}if(o)return{dynamic:!0,encoded:a}}return{dynamic:!1,encoded:Da(i.map(({encoded:a})=>a))}}function Wje(t,{param:e}){let[,n]=e.type.split(\"bytes\"),r=Jr(t);if(!n){let o=t;return r%32!==0&&(o=Gb(o,{dir:\"right\",size:Math.ceil((t.length-2)/2/32)*32})),{dynamic:!0,encoded:Da([Gb(Ye(r,{size:32})),o])}}if(r!==Number.parseInt(n))throw new HL({expectedSize:Number.parseInt(n),value:t});return{dynamic:!1,encoded:Gb(t,{dir:\"right\"})}}function Vje(t){if(typeof t!=\"boolean\")throw new Be(`Invalid boolean value: \"${t}\" (type: ${typeof t}). Expected: \\\\`true\\\\` or \\\\`false\\\\`.`);return{dynamic:!1,encoded:Gb(Q_(t))}}function $je(t,{signed:e,size:n=256}){if(typeof n==\"number\"){let r=2n**(BigInt(n)-(e?1n:0n))-1n,o=e?-r-1n:0n;if(t>r||t<o)throw new Y_({max:r.toString(),min:o.toString(),signed:e,size:n/8,value:t.toString()})}return{dynamic:!1,encoded:Ye(t,{size:32,signed:e})}}function Kje(t){let e=gh(t),n=Math.ceil(Jr(e)/32),r=[];for(let o=0;o<n;o++)r.push(Gb(Hp(e,o*32,(o+1)*32),{dir:\"right\"}));return{dynamic:!0,encoded:Da([Gb(Ye(Jr(e),{size:32})),...r])}}function Gje(t,{param:e}){let n=!1,r=[];for(let o=0;o<e.components.length;o++){let i=e.components[o],a=Array.isArray(t)?o:i.name,c=nZ({param:i,value:t[a]});r.push(c),c.dynamic&&(n=!0)}return{dynamic:n,encoded:n?rZ(r):Da(r.map(({encoded:o})=>o))}}function aB(t){let e=t.match(/^(.*)\\\\[(\\\\d+)?\\\\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}var Py=ce(()=>{p();Es();D0();ir();Z7();hf();iu();X7();Mp();nv();gn();sB()});function H0(t,e){let n=typeof e==\"string\"?Us(e):e,r=t4(n);if(Jr(n)===0&&t.length>0)throw new Vp;if(Jr(e)&&Jr(e)<32)throw new x4({data:typeof e==\"string\"?e:Xr(e),params:t,size:Jr(e)});let o=0,i=[];for(let a=0;a<t.length;++a){let c=t[a];r.setPosition(o);let[u,d]=M4(r,c,{staticPosition:0});o+=d,i.push(u)}return i}function M4(t,e,{staticPosition:n}){let r=aB(e.type);if(r){let[o,i]=r;return Yje(t,{...e,type:i},{length:o,staticPosition:n})}if(e.type===\"tuple\")return eze(t,e,{staticPosition:n});if(e.type===\"address\")return Zje(t);if(e.type===\"bool\")return Qje(t);if(e.type.startsWith(\"bytes\"))return Jje(t,e,{staticPosition:n});if(e.type.startsWith(\"uint\")||e.type.startsWith(\"int\"))return Xje(t,e);if(e.type===\"string\")return tze(t,{staticPosition:n});throw new GL(e.type,{docsPath:\"/docs/contract/decodeAbiParameters\"})}function Zje(t){let e=t.readBytes(32);return[Ty(Xr(WG(e,-20))),32]}function Yje(t,e,{length:n,staticPosition:r}){if(!n){let a=Oy(t.readBytes(oZ)),c=r+a,u=c+nhe;t.setPosition(c);let d=Oy(t.readBytes(nhe)),h=FR(e),m=0,g=[];for(let b=0;b<d;++b){t.setPosition(u+(h?b*32:m));let[E,C]=M4(t,e,{staticPosition:u});m+=C,g.push(E)}return t.setPosition(r+32),[g,32]}if(FR(e)){let a=Oy(t.readBytes(oZ)),c=r+a,u=[];for(let d=0;d<n;++d){t.setPosition(c+d*32);let[h]=M4(t,e,{staticPosition:c});u.push(h)}return t.setPosition(r+32),[u,32]}let o=0,i=[];for(let a=0;a<n;++a){let[c,u]=M4(t,e,{staticPosition:r+o});o+=u,i.push(c)}return[i,o]}function Qje(t){return[Jfe(t.readBytes(32),{size:32}),32]}function Jje(t,e,{staticPosition:n}){let[r,o]=e.type.split(\"bytes\");if(!o){let a=Oy(t.readBytes(32));t.setPosition(n+a);let c=Oy(t.readBytes(32));if(c===0)return t.setPosition(n+32),[\"0x\",32];let u=t.readBytes(c);return t.setPosition(n+32),[Xr(u),32]}return[Xr(t.readBytes(Number.parseInt(o),32)),32]}function Xje(t,e){let n=e.type.startsWith(\"int\"),r=Number.parseInt(e.type.split(\"int\")[1]||\"256\"),o=t.readBytes(32);return[r>48?Qfe(o,{signed:n}):Oy(o,{signed:n}),32]}function eze(t,e,{staticPosition:n}){let r=e.components.length===0||e.components.some(({name:a})=>!a),o=r?[]:{},i=0;if(FR(e)){let a=Oy(t.readBytes(oZ)),c=n+a;for(let u=0;u<e.components.length;++u){let d=e.components[u];t.setPosition(c+i);let[h,m]=M4(t,d,{staticPosition:c});i+=m,o[r?u:d?.name]=h}return t.setPosition(n+32),[o,32]}for(let a=0;a<e.components.length;++a){let c=e.components[a],[u,d]=M4(t,c,{staticPosition:n});o[r?a:c?.name]=u,i+=d}return[o,i]}function tze(t,{staticPosition:e}){let n=Oy(t.readBytes(32)),r=e+n;t.setPosition(r);let o=Oy(t.readBytes(32));if(o===0)return t.setPosition(e+32),[\"\",32];let i=t.readBytes(o,32),a=Xfe(Fs(i));return t.setPosition(e+32),[a,32]}function FR(t){let{type:e}=t;if(e===\"string\"||e===\"bytes\"||e.endsWith(\"[]\"))return!0;if(e===\"tuple\")return t.components?.some(FR);let n=aB(t.type);return!!(n&&FR({...t,type:n[1]}))}var nhe,oZ,N4=ce(()=>{p();Es();tv();sL();Mp();nv();Pw();ehe();hc();gn();Py();nhe=32,oZ=32});function cB(t){let{abi:e,data:n}=t,r=Hp(n,0,4);if(r===\"0x\")throw new Vp;let i=[...e||[],FL,ffe].find(a=>a.type===\"error\"&&r===Iy(mc(a)));if(!i)throw new S4(r,{docsPath:\"/docs/contract/decodeErrorResult\"});return{abiItem:i,args:\"inputs\"in i&&i.inputs&&i.inputs.length>0?H0(i.inputs,Hp(n,4)):void 0,errorName:i.name}}var iZ=ce(()=>{p();yR();Es();nv();O4();N4();rv()});var qr,au=ce(()=>{p();qr=(t,e,n)=>JSON.stringify(t,(r,o)=>{let i=typeof o==\"bigint\"?o.toString():o;return typeof e==\"function\"?e(r,i):i},n)});function sZ({abiItem:t,args:e,includeFunctionName:n=!0,includeName:r=!1}){if(\"name\"in t&&\"inputs\"in t&&t.inputs)return`${n?t.name:\"\"}(${t.inputs.map((o,i)=>`${r&&o.name?`${o.name}: `:\"\"}${typeof e[i]==\"object\"?qr(e[i]):e[i]}`).join(\", \")})`}var rhe=ce(()=>{p();au()});var Ww,UR=ce(()=>{p();tZ();Ww=oB});function pf(t){let{abi:e,args:n=[],name:r}=t,o=da(r,{strict:!1}),i=e.filter(c=>o?c.type===\"function\"?Iy(c)===r:c.type===\"event\"?Ww(c)===r:!1:\"name\"in c&&c.name===r);if(i.length===0)return;if(i.length===1)return i[0];let a;for(let c of i){if(!(\"inputs\"in c))continue;if(!n||n.length===0){if(!c.inputs||c.inputs.length===0)return c;continue}if(!c.inputs||c.inputs.length===0||c.inputs.length!==n.length)continue;if(n.every((d,h)=>{let m=\"inputs\"in c&&c.inputs[h];return m?aZ(d,m):!1})){if(a&&\"inputs\"in a&&a.inputs){let d=ohe(c.inputs,a.inputs,n);if(d)throw new $L({abiItem:c,type:d[0]},{abiItem:a,type:d[1]})}a=c}}return a||i[0]}function aZ(t,e){let n=typeof t,r=e.type;switch(r){case\"address\":return Kr(t,{strict:!1});case\"bool\":return n===\"boolean\";case\"function\":return n===\"string\";case\"string\":return n===\"string\";default:return r===\"tuple\"&&\"components\"in e?Object.values(e.components).every((o,i)=>aZ(Object.values(t)[i],o)):/^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)?$/.test(r)?n===\"number\"||n===\"bigint\":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n===\"string\"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\\\\[[0-9]{0,}\\\\])+$/.test(r)?Array.isArray(t)&&t.every(o=>aZ(o,{...e,type:r.replace(/(\\\\[[0-9]{0,}\\\\])$/,\"\")})):!1}}function ohe(t,e,n){for(let r in t){let o=t[r],i=e[r];if(o.type===\"tuple\"&&i.type===\"tuple\"&&\"components\"in o&&\"components\"in i)return ohe(o.components,i.components,n[r]);let a=[o.type,i.type];if(a.includes(\"address\")&&a.includes(\"bytes20\")?!0:a.includes(\"address\")&&a.includes(\"string\")?Kr(n[r],{strict:!1}):a.includes(\"address\")&&a.includes(\"bytes\")?Kr(n[r],{strict:!1}):!1)return a}}var Vw=ce(()=>{p();Es();P0();hf();UR();O4()});function ihe(t){return t.reduce((e,{slot:n,value:r})=>`${e}        ${n}: ${r}\\n`,\"\")}function she(t){return t.reduce((e,{address:n,...r})=>{let o=`${e}    ${n}:\\n`;return r.nonce&&(o+=`      nonce: ${r.nonce}\\n`),r.balance&&(o+=`      balance: ${r.balance}\\n`),r.code&&(o+=`      code: ${r.code}\\n`),r.state&&(o+=`      state:\\n`,o+=ihe(r.state)),r.stateDiff&&(o+=`      stateDiff:\\n`,o+=ihe(r.stateDiff)),o},`  State Override:\\n`).slice(0,-1)}var lB,uB,cZ=ce(()=>{p();ir();lB=class extends Be{constructor({address:e}){super(`State for account \"${e}\" is set multiple times.`,{name:\"AccountStateConflictError\"})}},uB=class extends Be{constructor(){super(\"state and stateDiff are set on the same account.\",{name:\"StateAssignmentConflictError\"})}}});var ahe,M5,dB=ce(()=>{p();ahe=t=>t,M5=t=>t});var N5,L5,$w,jR,zR,q0,ov=ce(()=>{p();js();yR();iZ();rv();rhe();Vw();uL();r4();Es();ir();cZ();L0();dB();N5=class extends Be{constructor(e,{account:n,docsPath:r,chain:o,data:i,gas:a,gasPrice:c,maxFeePerGas:u,maxPriorityFeePerGas:d,nonce:h,to:m,value:g,stateOverride:b}){let E=n?Wn(n):void 0,C=v5({from:E?.address,to:m,value:typeof g<\"u\"&&`${n4(g)} ${o?.nativeCurrency?.symbol||\"ETH\"}`,data:i,gas:a,gasPrice:typeof c<\"u\"&&`${pc(c)} gwei`,maxFeePerGas:typeof u<\"u\"&&`${pc(u)} gwei`,maxPriorityFeePerGas:typeof d<\"u\"&&`${pc(d)} gwei`,nonce:h});b&&(C+=`\\n${she(b)}`),super(e.shortMessage,{cause:e,docsPath:r,metaMessages:[...e.metaMessages?[...e.metaMessages,\" \"]:[],\"Raw Call Arguments:\",C].filter(Boolean),name:\"CallExecutionError\"}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}},L5=class extends Be{constructor(e,{abi:n,args:r,contractAddress:o,docsPath:i,functionName:a,sender:c}){let u=pf({abi:n,args:r,name:a}),d=u?sZ({abiItem:u,args:r,includeFunctionName:!1,includeName:!1}):void 0,h=u?mc(u,{includeName:!0}):void 0,m=v5({address:o&&ahe(o),function:h,args:d&&d!==\"()\"&&`${[...Array(a?.length??0).keys()].map(()=>\" \").join(\"\")}${d}`,sender:c});super(e.shortMessage||`An unknown error occurred while executing the contract function \"${a}\".`,{cause:e,docsPath:i,metaMessages:[...e.metaMessages?[...e.metaMessages,\" \"]:[],m&&\"Contract Call:\",m].filter(Boolean),name:\"ContractFunctionExecutionError\"}),Object.defineProperty(this,\"abi\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"args\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"contractAddress\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"formattedArgs\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"functionName\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"sender\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=n,this.args=r,this.cause=e,this.contractAddress=o,this.functionName=a,this.sender=c}},$w=class extends Be{constructor({abi:e,data:n,functionName:r,message:o}){let i,a,c,u;if(n&&n!==\"0x\")try{a=cB({abi:e,data:n});let{abiItem:h,errorName:m,args:g}=a;if(m===\"Error\")u=g[0];else if(m===\"Panic\"){let[b]=g;u=DL[b]}else{let b=h?mc(h,{includeName:!0}):void 0,E=h&&g?sZ({abiItem:h,args:g,includeFunctionName:!1,includeName:!1}):void 0;c=[b?`Error: ${b}`:\"\",E&&E!==\"()\"?`       ${[...Array(m?.length??0).keys()].map(()=>\" \").join(\"\")}${E}`:\"\"]}}catch(h){i=h}else o&&(u=o);let d;i instanceof S4&&(d=i.signature,c=[`Unable to decode signature \"${d}\" as it was not found on the provided ABI.`,\"Make sure you are using the correct ABI and that the error exists on it.\",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${d}.`]),super(u&&u!==\"execution reverted\"||d?[`The contract function \"${r}\" reverted with the following ${d?\"signature\":\"reason\"}:`,u||d].join(`\\n`):`The contract function \"${r}\" reverted.`,{cause:i,metaMessages:c,name:\"ContractFunctionRevertedError\"}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"raw\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"reason\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"signature\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=a,this.raw=n,this.reason=u,this.signature=d}},jR=class extends Be{constructor({functionName:e}){super(`The contract function \"${e}\" returned no data (\"0x\").`,{metaMessages:[\"This could be due to any of the following:\",`  - The contract does not have the function \"${e}\",`,\"  - The parameters passed to the contract function may be invalid, or\",\"  - The address is not a contract.\"],name:\"ContractFunctionZeroDataError\"})}},zR=class extends Be{constructor({factory:e}){super(`Deployment for counterfactual contract call failed${e?` for factory \"${e}\".`:\"\"}`,{metaMessages:[\"Please ensure:\",\"- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).\",\"- The `factoryData` is a valid encoded function call for contract deployment function on the factory.\"],name:\"CounterfactualDeploymentFailedError\"})}},q0=class extends Be{constructor({data:e,message:n}){super(n||\"\",{name:\"RawContractError\"}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=e}}});var $p,Kw,HR,B5=ce(()=>{p();au();ir();dB();$p=class extends Be{constructor({body:e,cause:n,details:r,headers:o,status:i,url:a}){super(\"HTTP request failed.\",{cause:n,details:r,metaMessages:[i&&`Status: ${i}`,`URL: ${M5(a)}`,e&&`Request body: ${qr(e)}`].filter(Boolean),name:\"HttpRequestError\"}),Object.defineProperty(this,\"body\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"headers\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"status\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"url\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=e,this.headers=o,this.status=i,this.url=a}},Kw=class extends Be{constructor({body:e,error:n,url:r}){super(\"RPC Request failed.\",{cause:n,details:n.message,metaMessages:[`URL: ${M5(r)}`,`Request body: ${qr(e)}`],name:\"RpcRequestError\"}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=n.code,this.data=n.data}},HR=class extends Be{constructor({body:e,url:n}){super(\"The request took too long to respond.\",{details:\"The request timed out.\",metaMessages:[`URL: ${M5(n)}`,`Request body: ${qr(e)}`],name:\"TimeoutError\"})}}});var nze,wl,cu,D5,F5,U5,j5,My,W0,z5,mf,H5,iv,Gw,q5,oo,W5,V5,$5,K5,ha,sv,G5,Z5,Y5,Q5,J5,av,qR,X5=ce(()=>{p();ir();B5();nze=-1,wl=class extends Be{constructor(e,{code:n,docsPath:r,metaMessages:o,name:i,shortMessage:a}){super(a,{cause:e,docsPath:r,metaMessages:o||e?.metaMessages,name:i||\"RpcError\"}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||e.name,this.code=e instanceof Kw?e.code:n??nze}},cu=class extends wl{constructor(e,n){super(e,n),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=n.data}},D5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"ParseRpcError\",shortMessage:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"})}};Object.defineProperty(D5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32700});F5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"InvalidRequestRpcError\",shortMessage:\"JSON is not a valid request object.\"})}};Object.defineProperty(F5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32600});U5=class t extends wl{constructor(e,{method:n}={}){super(e,{code:t.code,name:\"MethodNotFoundRpcError\",shortMessage:`The method${n?` \"${n}\"`:\"\"} does not exist / is not available.`})}};Object.defineProperty(U5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32601});j5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"InvalidParamsRpcError\",shortMessage:[\"Invalid parameters were provided to the RPC method.\",\"Double check you have provided the correct parameters.\"].join(`\\n`)})}};Object.defineProperty(j5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32602});My=class t extends wl{constructor(e){super(e,{code:t.code,name:\"InternalRpcError\",shortMessage:\"An internal error was received.\"})}};Object.defineProperty(My,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32603});W0=class t extends wl{constructor(e){super(e,{code:t.code,name:\"InvalidInputRpcError\",shortMessage:[\"Missing or invalid parameters.\",\"Double check you have provided the correct parameters.\"].join(`\\n`)})}};Object.defineProperty(W0,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});z5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"ResourceNotFoundRpcError\",shortMessage:\"Requested resource not found.\"}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ResourceNotFoundRpcError\"})}};Object.defineProperty(z5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32001});mf=class t extends wl{constructor(e){super(e,{code:t.code,name:\"ResourceUnavailableRpcError\",shortMessage:\"Requested resource not available.\"})}};Object.defineProperty(mf,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32002});H5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"TransactionRejectedRpcError\",shortMessage:\"Transaction creation failed.\"})}};Object.defineProperty(H5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32003});iv=class t extends wl{constructor(e,{method:n}={}){super(e,{code:t.code,name:\"MethodNotSupportedRpcError\",shortMessage:`Method${n?` \"${n}\"`:\"\"} is not supported.`})}};Object.defineProperty(iv,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32004});Gw=class t extends wl{constructor(e){super(e,{code:t.code,name:\"LimitExceededRpcError\",shortMessage:\"Request exceeds defined limit.\"})}};Object.defineProperty(Gw,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32005});q5=class t extends wl{constructor(e){super(e,{code:t.code,name:\"JsonRpcVersionUnsupportedError\",shortMessage:\"Version of JSON-RPC protocol is not supported.\"})}};Object.defineProperty(q5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32006});oo=class t extends cu{constructor(e){super(e,{code:t.code,name:\"UserRejectedRequestError\",shortMessage:\"User rejected the request.\"})}};Object.defineProperty(oo,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4001});W5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"UnauthorizedProviderError\",shortMessage:\"The requested method and/or account has not been authorized by the user.\"})}};Object.defineProperty(W5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4100});V5=class t extends cu{constructor(e,{method:n}={}){super(e,{code:t.code,name:\"UnsupportedProviderMethodError\",shortMessage:`The Provider does not support the requested method${n?` \" ${n}\"`:\"\"}.`})}};Object.defineProperty(V5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4200});$5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"ProviderDisconnectedError\",shortMessage:\"The Provider is disconnected from all chains.\"})}};Object.defineProperty($5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4900});K5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"ChainDisconnectedError\",shortMessage:\"The Provider is not connected to the requested chain.\"})}};Object.defineProperty(K5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4901});ha=class t extends cu{constructor(e){super(e,{code:t.code,name:\"SwitchChainError\",shortMessage:\"An error occurred when attempting to switch chain.\"})}};Object.defineProperty(ha,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4902});sv=class t extends cu{constructor(e){super(e,{code:t.code,name:\"UnsupportedNonOptionalCapabilityError\",shortMessage:\"This Wallet does not support a capability that was not marked as optional.\"})}};Object.defineProperty(sv,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5700});G5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"UnsupportedChainIdError\",shortMessage:\"This Wallet does not support the requested chain ID.\"})}};Object.defineProperty(G5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5710});Z5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"DuplicateIdError\",shortMessage:\"There is already a bundle submitted with this ID.\"})}};Object.defineProperty(Z5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5720});Y5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"UnknownBundleIdError\",shortMessage:\"This bundle id is unknown / has not been submitted\"})}};Object.defineProperty(Y5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5730});Q5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"BundleTooLargeError\",shortMessage:\"The call bundle is too large for the Wallet to process.\"})}};Object.defineProperty(Q5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5740});J5=class t extends cu{constructor(e){super(e,{code:t.code,name:\"AtomicReadyWalletRejectedUpgradeError\",shortMessage:\"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade.\"})}};Object.defineProperty(J5,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5750});av=class t extends cu{constructor(e){super(e,{code:t.code,name:\"AtomicityNotSupportedError\",shortMessage:\"The wallet does not support atomic execution but the request requires it.\"})}};Object.defineProperty(av,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:5760});qR=class extends wl{constructor(e){super(e,{name:\"UnknownRpcError\",shortMessage:\"An unknown RPC error occurred.\"})}}});function Zw(t,e){let n=(t.details||\"\").toLowerCase(),r=t instanceof Be?t.walk(o=>o?.code===ev.code):t;return r instanceof Be?new ev({cause:t,message:r.details}):ev.nodeMessage.test(n)?new ev({cause:t,message:t.details}):Up.nodeMessage.test(n)?new Up({cause:t,maxFeePerGas:e?.maxFeePerGas}):f4.nodeMessage.test(n)?new f4({cause:t,maxFeePerGas:e?.maxFeePerGas}):h4.nodeMessage.test(n)?new h4({cause:t,nonce:e?.nonce}):p4.nodeMessage.test(n)?new p4({cause:t,nonce:e?.nonce}):m4.nodeMessage.test(n)?new m4({cause:t,nonce:e?.nonce}):g4.nodeMessage.test(n)?new g4({cause:t}):y4.nodeMessage.test(n)?new y4({cause:t,gas:e?.gas}):b4.nodeMessage.test(n)?new b4({cause:t,gas:e?.gas}):v4.nodeMessage.test(n)?new v4({cause:t}):Cy.nodeMessage.test(n)?new Cy({cause:t,maxFeePerGas:e?.maxFeePerGas,maxPriorityFeePerGas:e?.maxPriorityFeePerGas}):new jp({cause:t})}var WR=ce(()=>{p();ir();jw()});function fB(t,{docsPath:e,...n}){let r=(()=>{let o=Zw(t,n);return o instanceof jp?t:o})();return new N5(r,{docsPath:e,...n})}var lZ=ce(()=>{p();ov();jw();WR()});function Yw(t,{format:e}){if(!e)return{};let n={};function r(i){let a=Object.keys(i);for(let c of a)c in t&&(n[c]=t[c]),i[c]&&typeof i[c]==\"object\"&&!Array.isArray(i[c])&&r(i[c])}let o=e(t||{});return r(o),n}var VR=ce(()=>{p()});function gf(t){let{account:e,gasPrice:n,maxFeePerGas:r,maxPriorityFeePerGas:o,to:i}=t,a=e?Wn(e):void 0;if(a&&!Kr(a.address))throw new ci({address:a.address});if(i&&!Kr(i))throw new ci({address:i});if(typeof n<\"u\"&&(typeof r<\"u\"||typeof o<\"u\"))throw new dL;if(r&&r>X_)throw new Up({maxFeePerGas:r});if(o&&r&&o>r)throw new Cy({maxFeePerGas:r,maxPriorityFeePerGas:o})}var Qw=ce(()=>{p();js();CG();D0();jw();L0();hf()});var li,che=ce(()=>{p();O0();li=Ba({id:1,name:\"Ethereum\",nativeCurrency:{name:\"Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://eth.merkle.io\"]}},blockExplorers:{default:{name:\"Etherscan\",url:\"https://etherscan.io\",apiUrl:\"https://api.etherscan.io/api\"}},contracts:{ensRegistry:{address:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"},ensUniversalResolver:{address:\"0xce01f8eee7E479C928F8919abD53E553a36CeF67\",blockCreated:19258213},multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:14353601}}})});var $R,KR,lhe=ce(()=>{p();pR();O0();$R=1,KR=Ba({...qp,id:10,name:\"OP Mainnet\",nativeCurrency:{name:\"Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://mainnet.optimism.io\"]}},blockExplorers:{default:{name:\"Optimism Explorer\",url:\"https://optimistic.etherscan.io\",apiUrl:\"https://api-optimistic.etherscan.io/api\"}},contracts:{...qp.contracts,disputeGameFactory:{[$R]:{address:\"0xe5965Ab5962eDc7477C8520243A95517CD252fA9\"}},l2OutputOracle:{[$R]:{address:\"0xdfe97868233d1aa22e815a266982f2cf17685a27\"}},multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:4286263},portal:{[$R]:{address:\"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed\"}},l1StandardBridge:{[$R]:{address:\"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1\"}}},sourceId:$R})});var GR,uZ,uhe=ce(()=>{p();pR();O0();GR=11155111,uZ=Ba({...qp,id:11155420,name:\"OP Sepolia\",nativeCurrency:{name:\"Sepolia Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://sepolia.optimism.io\"]}},blockExplorers:{default:{name:\"Blockscout\",url:\"https://optimism-sepolia.blockscout.com\",apiUrl:\"https://optimism-sepolia.blockscout.com/api\"}},contracts:{...qp.contracts,disputeGameFactory:{[GR]:{address:\"0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1\"}},l2OutputOracle:{[GR]:{address:\"0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F\"}},multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:1620204},portal:{[GR]:{address:\"0x16Fc5058F25648194471939df75CF27A2fdC48BC\"}},l1StandardBridge:{[GR]:{address:\"0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1\"}}},testnet:!0,sourceId:GR})});var dZ,dhe=ce(()=>{p();O0();dZ=Ba({id:137,name:\"Polygon\",nativeCurrency:{name:\"POL\",symbol:\"POL\",decimals:18},rpcUrls:{default:{http:[\"https://polygon-rpc.com\"]}},blockExplorers:{default:{name:\"PolygonScan\",url:\"https://polygonscan.com\",apiUrl:\"https://api.polygonscan.com/api\"}},contracts:{multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:25770160}}})});var fZ,fhe=ce(()=>{p();O0();fZ=Ba({id:80001,name:\"Polygon Mumbai\",nativeCurrency:{name:\"MATIC\",symbol:\"MATIC\",decimals:18},rpcUrls:{default:{http:[\"https://80001.rpc.thirdweb.com\"]}},blockExplorers:{default:{name:\"PolygonScan\",url:\"https://mumbai.polygonscan.com\",apiUrl:\"https://api-testnet.polygonscan.com/api\"}},contracts:{multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:25770160}},testnet:!0})});var ZR,hhe=ce(()=>{p();O0();ZR=Ba({id:11155111,name:\"Sepolia\",nativeCurrency:{name:\"Sepolia Ether\",symbol:\"ETH\",decimals:18},rpcUrls:{default:{http:[\"https://sepolia.drpc.org\"]}},blockExplorers:{default:{name:\"Etherscan\",url:\"https://sepolia.etherscan.io\",apiUrl:\"https://api-sepolia.etherscan.io/api\"}},contracts:{multicall3:{address:\"0xca11bde05977b3631167028862be2a173976ca11\",blockCreated:751532},ensRegistry:{address:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\"},ensUniversalResolver:{address:\"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC\",blockCreated:5317080}},testnet:!0})});var Si=ce(()=>{p();cfe();lfe();ufe();dfe();che();lhe();uhe();dhe();fhe();hhe()});var phe=be(hB=>{\"use strict\";p();(function(){function t(q){if(q==null)return null;if(typeof q==\"function\")return q.$$typeof===ae?null:q.displayName||q.name||null;if(typeof q==\"string\")return q;switch(q){case C:return\"Fragment\";case R:return\"Profiler\";case T:return\"StrictMode\";case W:return\"Suspense\";case J:return\"SuspenseList\";case Z:return\"Activity\"}if(typeof q==\"object\")switch(typeof q.tag==\"number\"&&console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),q.$$typeof){case E:return\"Portal\";case D:return(q.displayName||\"Context\")+\".Provider\";case L:return(q._context.displayName||\"Context\")+\".Consumer\";case G:var H=q.render;return q=q.displayName,q||(q=H.displayName||H.name||\"\",q=q!==\"\"?\"ForwardRef(\"+q+\")\":\"ForwardRef\"),q;case ne:return H=q.displayName||null,H!==null?H:t(q.type)||\"Memo\";case ie:H=q._payload,q=q._init;try{return t(q(H))}catch{}}return null}function e(q){return\"\"+q}function n(q){try{e(q);var H=!1}catch{H=!0}if(H){H=console;var I=H.error,U=typeof Symbol==\"function\"&&Symbol.toStringTag&&q[Symbol.toStringTag]||q.constructor.name||\"Object\";return I.call(H,\"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",U),e(q)}}function r(q){if(q===C)return\"<>\";if(typeof q==\"object\"&&q!==null&&q.$$typeof===ie)return\"<...>\";try{var H=t(q);return H?\"<\"+H+\">\":\"<...>\"}catch{return\"<...>\"}}function o(){var q=V.A;return q===null?null:q.getOwner()}function i(){return Error(\"react-stack-top-frame\")}function a(q){if($.call(q,\"key\")){var H=Object.getOwnPropertyDescriptor(q,\"key\").get;if(H&&H.isReactWarning)return!1}return q.key!==void 0}function c(q,H){function I(){O||(O=!0,console.error(\"%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)\",H))}I.isReactWarning=!0,Object.defineProperty(q,\"key\",{get:I,configurable:!0})}function u(){var q=t(this.type);return z[q]||(z[q]=!0,console.error(\"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.\")),q=this.props.ref,q!==void 0?q:null}function d(q,H,I,U,X,ee,se,pe){return I=ee.ref,q={$$typeof:b,type:q,key:H,props:ee,_owner:X},(I!==void 0?I:null)!==null?Object.defineProperty(q,\"ref\",{enumerable:!1,get:u}):Object.defineProperty(q,\"ref\",{enumerable:!1,value:null}),q._store={},Object.defineProperty(q._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(q,\"_debugInfo\",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(q,\"_debugStack\",{configurable:!1,enumerable:!1,writable:!0,value:se}),Object.defineProperty(q,\"_debugTask\",{configurable:!1,enumerable:!1,writable:!0,value:pe}),Object.freeze&&(Object.freeze(q.props),Object.freeze(q)),q}function h(q,H,I,U,X,ee,se,pe){var ye=H.children;if(ye!==void 0)if(U)if(F(ye)){for(U=0;U<ye.length;U++)m(ye[U]);Object.freeze&&Object.freeze(ye)}else console.error(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else m(ye);if($.call(H,\"key\")){ye=t(q);var xe=Object.keys(H).filter(function(Me){return Me!==\"key\"});U=0<xe.length?\"{key: someKey, \"+xe.join(\": ..., \")+\": ...}\":\"{key: someKey}\",j[ye+U]||(xe=0<xe.length?\"{\"+xe.join(\": ..., \")+\": ...}\":\"{}\",console.error(`A props object containing a \"key\" prop is being spread into JSX:\\n  let props = %s;\\n  <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n  let props = %s;\\n  <%s key={someKey} {...props} />`,U,ye,xe,ye),j[ye+U]=!0)}if(ye=null,I!==void 0&&(n(I),ye=\"\"+I),a(H)&&(n(H.key),ye=\"\"+H.key),\"key\"in H){I={};for(var _e in H)_e!==\"key\"&&(I[_e]=H[_e])}else I=H;return ye&&c(I,typeof q==\"function\"?q.displayName||q.name||\"Unknown\":q),d(q,ye,ee,X,o(),I,se,pe)}function m(q){typeof q==\"object\"&&q!==null&&q.$$typeof===b&&q._store&&(q._store.validated=1)}var g=et(),b=Symbol.for(\"react.transitional.element\"),E=Symbol.for(\"react.portal\"),C=Symbol.for(\"react.fragment\"),T=Symbol.for(\"react.strict_mode\"),R=Symbol.for(\"react.profiler\");Symbol.for(\"react.provider\");var L=Symbol.for(\"react.consumer\"),D=Symbol.for(\"react.context\"),G=Symbol.for(\"react.forward_ref\"),W=Symbol.for(\"react.suspense\"),J=Symbol.for(\"react.suspense_list\"),ne=Symbol.for(\"react.memo\"),ie=Symbol.for(\"react.lazy\"),Z=Symbol.for(\"react.activity\"),ae=Symbol.for(\"react.client.reference\"),V=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=Object.prototype.hasOwnProperty,F=Array.isArray,_=console.createTask?console.createTask:function(){return null};g={\"react-stack-bottom-frame\":function(q){return q()}};var O,z={},N=g[\"react-stack-bottom-frame\"].bind(g,i)(),B=_(r(i)),j={};hB.Fragment=C,hB.jsx=function(q,H,I,U,X){var ee=1e4>V.recentlyCreatedOwnerStacks++;return h(q,H,I,!1,U,X,ee?Error(\"react-stack-top-frame\"):N,ee?_(r(q)):B)},hB.jsxs=function(q,H,I,U,X){var ee=1e4>V.recentlyCreatedOwnerStacks++;return h(q,H,I,!0,U,X,ee?Error(\"react-stack-top-frame\"):N,ee?_(r(q)):B)}})()});var De=be((G_t,mhe)=>{\"use strict\";p();mhe.exports=phe()});async function epe(t,{chain:e}){let{id:n,name:r,nativeCurrency:o,rpcUrls:i,blockExplorers:a}=e;await t.request({method:\"wallet_addEthereumChain\",params:[{chainId:Ye(n),chainName:r,nativeCurrency:o,rpcUrls:i.default.http,blockExplorerUrls:a?Object.values(a).map(({url:c})=>c):void 0}]},{dedupe:!0,retryCount:0})}var tpe=ce(()=>{p();gn()});function h6(t){let{abi:e,args:n,bytecode:r}=t;if(!n||n.length===0)return r;let o=e.find(a=>\"type\"in a&&a.type===\"constructor\");if(!o)throw new jL({docsPath:LZ});if(!(\"inputs\"in o))throw new vR({docsPath:LZ});if(!o.inputs||o.inputs.length===0)throw new vR({docsPath:LZ});let i=vl(o.inputs,n);return fa([r,i])}var LZ,kB=ce(()=>{p();Es();iu();Py();LZ=\"/docs/contract/encodeDeployData\"});function npe(t){let e=Po(`0x${t.substring(4)}`).substring(26);return Ty(`0x${e}`)}var rpe=ce(()=>{p();tv();zp()});var _B,BZ,ope=ce(()=>{p();Jb();_B=class extends Lw{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,bde(e);let r=x5(n);if(this.iHash=e.create(),typeof this.iHash.update!=\"function\")throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let o=this.blockLen,i=new Uint8Array(o);i.set(r.length>o?e.create().update(r).digest():r);for(let a=0;a<i.length;a++)i[a]^=54;this.iHash.update(i),this.oHash=e.create();for(let a=0;a<i.length;a++)i[a]^=106;this.oHash.update(i),Dp(i)}update(e){return Qb(this),this.iHash.update(e),this}digestInto(e){Qb(this),Zi(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:n,iHash:r,finished:o,destroyed:i,blockLen:a,outputLen:c}=this;return e=e,e.finished=o,e.destroyed=i,e.blockLen=a,e.outputLen=c,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},BZ=(t,e,n)=>new _B(t,e).update(n).digest();BZ.create=(t,e)=>new _B(t,e)});function pv(t,e){if(typeof e!=\"boolean\")throw new Error(t+\" boolean expected, got \"+e)}function a9(t){let e=t.toString(16);return e.length&1?\"0\"+e:e}function ipe(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return t===\"\"?UZ:BigInt(\"0x\"+t)}function G0(t){return ipe(Fp(t))}function p6(t){return Zi(t),ipe(Fp(Uint8Array.from(t).reverse()))}function m6(t,e){return l4(t.toString(16).padStart(e*2,\"0\"))}function J4(t,e){return m6(t,e).reverse()}function Ho(t,e,n){let r;if(typeof e==\"string\")try{r=l4(e)}catch(i){throw new Error(t+\" must be hex string or Uint8Array, cause: \"+i)}else if(Bw(e))r=Uint8Array.from(e);else throw new Error(t+\" must be hex string or Uint8Array\");let o=r.length;if(typeof n==\"number\"&&o!==n)throw new Error(t+\" of length \"+n+\" expected, got \"+o);return r}function c9(t,e,n){return DZ(t)&&DZ(e)&&DZ(n)&&e<=t&&t<n}function Fy(t,e,n,r){if(!c9(e,n,r))throw new Error(\"expected valid \"+t+\": \"+n+\" <= n < \"+r+\", got \"+e)}function spe(t){let e;for(e=0;t>UZ;t>>=FZ,e+=1);return e}function ape(t,e,n){if(typeof t!=\"number\"||t<2)throw new Error(\"hashLen must be a number\");if(typeof e!=\"number\"||e<2)throw new Error(\"qByteLen must be a number\");if(typeof n!=\"function\")throw new Error(\"hmacFn must be a function\");let r=b=>new Uint8Array(b),o=b=>Uint8Array.of(b),i=r(t),a=r(t),c=0,u=()=>{i.fill(1),a.fill(0),c=0},d=(...b)=>n(a,i,...b),h=(b=r(0))=>{a=d(o(0),b),i=d(),b.length!==0&&(a=d(o(1),b),i=d())},m=()=>{if(c++>=1e3)throw new Error(\"drbg: tried 1000 values\");let b=0,E=[];for(;b<e;){i=d();let C=i.slice();E.push(C),b+=i.length}return ws(...E)};return(b,E)=>{u(),h(b);let C;for(;!(C=E(m()));)h();return u(),C}}function cpe(t){return typeof t==\"function\"&&Number.isSafeInteger(t.outputLen)}function Uy(t,e,n={}){if(!t||typeof t!=\"object\")throw new Error(\"expected valid options object\");function r(o,i,a){let c=t[o];if(a&&c===void 0)return;let u=typeof c;if(u!==i||c===null)throw new Error(`param \"${o}\" is invalid: expected ${i}, got ${u}`)}Object.entries(e).forEach(([o,i])=>r(o,i,!1)),Object.entries(n).forEach(([o,i])=>r(o,i,!0))}function X4(t){let e=new WeakMap;return(n,...r)=>{let o=e.get(n);if(o!==void 0)return o;let i=t(n,...r);return e.set(n,i),i}}var UZ,FZ,DZ,g6,y6=ce(()=>{p();Jb();Jb();UZ=BigInt(0),FZ=BigInt(1);DZ=t=>typeof t==\"bigint\"&&UZ<=t;g6=t=>(FZ<<BigInt(t))-FZ});function ui(t,e){let n=t%e;return n>=md?n:e+n}function us(t,e,n){let r=t;for(;e-- >md;)r*=r,r%=n;return r}function lpe(t,e){if(t===md)throw new Error(\"invert: expected non-zero number\");if(e<=md)throw new Error(\"invert: expected positive modulus, got \"+e);let n=ui(t,e),r=e,o=md,i=Mc,a=Mc,c=md;for(;n!==md;){let d=r/n,h=r%n,m=o-a*d,g=i-c*d;r=n,n=h,o=a,i=c,a=m,c=g}if(r!==Mc)throw new Error(\"invert: does not exist\");return ui(o,e)}function ppe(t,e){let n=(t.ORDER+Mc)/dpe,r=t.pow(e,n);if(!t.eql(t.sqr(r),e))throw new Error(\"Cannot find square root\");return r}function mze(t,e){let n=(t.ORDER-fpe)/hpe,r=t.mul(e,b6),o=t.pow(r,n),i=t.mul(e,o),a=t.mul(t.mul(i,b6),o),c=t.mul(i,t.sub(a,t.ONE));if(!t.eql(t.sqr(c),e))throw new Error(\"Cannot find square root\");return c}function gze(t){if(t<BigInt(3))throw new Error(\"sqrt is not defined for small field\");let e=t-Mc,n=0;for(;e%b6===md;)e/=b6,n++;let r=b6,o=Z0(t);for(;upe(o,r)===1;)if(r++>1e3)throw new Error(\"Cannot find square root: probably non-prime P\");if(n===1)return ppe;let i=o.pow(r,e),a=(e+Mc)/b6;return function(u,d){if(u.is0(d))return d;if(upe(u,d)!==1)throw new Error(\"Cannot find square root\");let h=n,m=u.mul(u.ONE,i),g=u.pow(d,e),b=u.pow(d,a);for(;!u.eql(g,u.ONE);){if(u.is0(g))return u.ZERO;let E=1,C=u.sqr(g);for(;!u.eql(C,u.ONE);)if(E++,C=u.sqr(C),E===h)throw new Error(\"Cannot find square root\");let T=Mc<<BigInt(h-E-1),R=u.pow(m,T);h=E,m=u.sqr(R),g=u.mul(g,m),b=u.mul(b,R)}return b}}function yze(t){return t%dpe===pze?ppe:t%hpe===fpe?mze:gze(t)}function CB(t){let e={ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"number\",BITS:\"number\"},n=bze.reduce((r,o)=>(r[o]=\"function\",r),e);return Uy(t,n),t}function vze(t,e,n){if(n<md)throw new Error(\"invalid exponent, negatives unsupported\");if(n===md)return t.ONE;if(n===Mc)return e;let r=t.ONE,o=e;for(;n>md;)n&Mc&&(r=t.mul(r,o)),o=t.sqr(o),n>>=Mc;return r}function dx(t,e,n=!1){let r=new Array(e.length).fill(n?t.ZERO:void 0),o=e.reduce((a,c,u)=>t.is0(c)?a:(r[u]=a,t.mul(a,c)),t.ONE),i=t.inv(o);return e.reduceRight((a,c,u)=>t.is0(c)?a:(r[u]=t.mul(a,r[u]),t.mul(a,c)),i),r}function upe(t,e){let n=(t.ORDER-Mc)/b6,r=t.pow(e,n),o=t.eql(r,t.ONE),i=t.eql(r,t.ZERO),a=t.eql(r,t.neg(t.ONE));if(!o&&!i&&!a)throw new Error(\"invalid Legendre symbol result\");return o?1:i?0:-1}function gpe(t,e){e!==void 0&&Nw(e);let n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Z0(t,e,n=!1,r={}){if(t<=md)throw new Error(\"invalid field: expected ORDER > 0, got \"+t);let o,i;if(typeof e==\"object\"&&e!=null){if(r.sqrt||n)throw new Error(\"cannot specify opts in two arguments\");let h=e;h.BITS&&(o=h.BITS),h.sqrt&&(i=h.sqrt),typeof h.isLE==\"boolean\"&&(n=h.isLE)}else typeof e==\"number\"&&(o=e),r.sqrt&&(i=r.sqrt);let{nBitLength:a,nByteLength:c}=gpe(t,o);if(c>2048)throw new Error(\"invalid field: expected ORDER of <= 2048 bytes\");let u,d=Object.freeze({ORDER:t,isLE:n,BITS:a,BYTES:c,MASK:g6(a),ZERO:md,ONE:Mc,create:h=>ui(h,t),isValid:h=>{if(typeof h!=\"bigint\")throw new Error(\"invalid field element: expected bigint, got \"+typeof h);return md<=h&&h<t},is0:h=>h===md,isValidNot0:h=>!d.is0(h)&&d.isValid(h),isOdd:h=>(h&Mc)===Mc,neg:h=>ui(-h,t),eql:(h,m)=>h===m,sqr:h=>ui(h*h,t),add:(h,m)=>ui(h+m,t),sub:(h,m)=>ui(h-m,t),mul:(h,m)=>ui(h*m,t),pow:(h,m)=>vze(d,h,m),div:(h,m)=>ui(h*lpe(m,t),t),sqrN:h=>h*h,addN:(h,m)=>h+m,subN:(h,m)=>h-m,mulN:(h,m)=>h*m,inv:h=>lpe(h,t),sqrt:i||(h=>(u||(u=yze(t)),u(d,h))),toBytes:h=>n?J4(h,c):m6(h,c),fromBytes:h=>{if(h.length!==c)throw new Error(\"Field.fromBytes: expected \"+c+\" bytes, got \"+h.length);return n?p6(h):G0(h)},invertBatch:h=>dx(d,h),cmov:(h,m,g)=>g?m:h});return Object.freeze(d)}function ype(t){if(typeof t!=\"bigint\")throw new Error(\"field order must be bigint\");let e=t.toString(2).length;return Math.ceil(e/8)}function jZ(t){let e=ype(t);return e+Math.ceil(e/2)}function bpe(t,e,n=!1){let r=t.length,o=ype(e),i=jZ(e);if(r<16||r<i||r>1024)throw new Error(\"expected \"+i+\"-1024 bytes of input, got \"+r);let a=n?p6(t):G0(t),c=ui(a,e-Mc)+Mc;return n?J4(c,o):m6(c,o)}var md,Mc,b6,pze,dpe,fpe,hpe,mpe,bze,v6=ce(()=>{p();y6();md=BigInt(0),Mc=BigInt(1),b6=BigInt(2),pze=BigInt(3),dpe=BigInt(4),fpe=BigInt(5),hpe=BigInt(8);mpe=(t,e)=>(ui(t,e)&Mc)===Mc,bze=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"]});function eC(t,e){let n=e.negate();return t?n:e}function AB(t,e,n){let r=e===\"pz\"?a=>a.pz:a=>a.ez,o=dx(t.Fp,n.map(r));return n.map((a,c)=>a.toAffine(o[c])).map(t.fromAffine)}function Epe(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error(\"invalid window size, expected [1..\"+e+\"], got W=\"+t)}function zZ(t,e){Epe(t,e);let n=Math.ceil(e/t)+1,r=2**(t-1),o=2**t,i=g6(t),a=BigInt(t);return{windows:n,windowSize:r,mask:i,maxNumber:o,shiftBy:a}}function vpe(t,e,n){let{windowSize:r,mask:o,maxNumber:i,shiftBy:a}=n,c=Number(t&o),u=t>>a;c>r&&(c-=i,u+=w6);let d=e*r,h=d+Math.abs(c)-1,m=c===0,g=c<0,b=e%2!==0;return{nextN:u,offset:h,isZero:m,isNeg:g,isNegF:b,offsetF:d}}function wze(t,e){if(!Array.isArray(t))throw new Error(\"array expected\");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error(\"invalid point at index \"+r)})}function xze(t,e){if(!Array.isArray(t))throw new Error(\"array of scalars expected\");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error(\"invalid scalar at index \"+r)})}function qZ(t){return Spe.get(t)||1}function wpe(t){if(t!==tC)throw new Error(\"invalid wNAF\")}function TB(t,e){return{constTimeNegate:eC,hasPrecomputes(n){return qZ(n)!==1},unsafeLadder(n,r,o=t.ZERO){let i=n;for(;r>tC;)r&w6&&(o=o.add(i)),i=i.double(),r>>=w6;return o},precomputeWindow(n,r){let{windows:o,windowSize:i}=zZ(r,e),a=[],c=n,u=c;for(let d=0;d<o;d++){u=c,a.push(u);for(let h=1;h<i;h++)u=u.add(c),a.push(u);c=u.double()}return a},wNAF(n,r,o){let i=t.ZERO,a=t.BASE,c=zZ(n,e);for(let u=0;u<c.windows;u++){let{nextN:d,offset:h,isZero:m,isNeg:g,isNegF:b,offsetF:E}=vpe(o,u,c);o=d,m?a=a.add(eC(b,r[E])):i=i.add(eC(g,r[h]))}return wpe(o),{p:i,f:a}},wNAFUnsafe(n,r,o,i=t.ZERO){let a=zZ(n,e);for(let c=0;c<a.windows&&o!==tC;c++){let{nextN:u,offset:d,isZero:h,isNeg:m}=vpe(o,c,a);if(o=u,!h){let g=r[d];i=i.add(m?g.negate():g)}}return wpe(o),i},getPrecomputes(n,r,o){let i=HZ.get(r);return i||(i=this.precomputeWindow(r,n),n!==1&&(typeof o==\"function\"&&(i=o(i)),HZ.set(r,i))),i},wNAFCached(n,r,o){let i=qZ(n);return this.wNAF(i,this.getPrecomputes(i,n,o),r)},wNAFCachedUnsafe(n,r,o,i){let a=qZ(n);return a===1?this.unsafeLadder(n,r,i):this.wNAFUnsafe(a,this.getPrecomputes(a,n,o),r,i)},setWindowSize(n,r){Epe(r,e),Spe.set(n,r),HZ.delete(n)}}}function kpe(t,e,n,r){let o=e,i=t.ZERO,a=t.ZERO;for(;n>tC||r>tC;)n&w6&&(i=i.add(o)),r&w6&&(a=a.add(o)),o=o.double(),n>>=w6,r>>=w6;return{p1:i,p2:a}}function RB(t,e,n,r){wze(n,t),xze(r,e);let o=n.length,i=r.length;if(o!==i)throw new Error(\"arrays of points and scalars must have equal length\");let a=t.ZERO,c=spe(BigInt(o)),u=1;c>12?u=c-3:c>4?u=c-2:c>0&&(u=2);let d=g6(u),h=new Array(Number(d)+1).fill(a),m=Math.floor((e.BITS-1)/u)*u,g=a;for(let b=m;b>=0;b-=u){h.fill(a);for(let C=0;C<i;C++){let T=r[C],R=Number(T>>BigInt(b)&d);h[R]=h[R].add(n[C])}let E=a;for(let C=h.length-1,T=a;C>0;C--)T=T.add(h[C]),E=E.add(T);if(g=g.add(E),b!==0)for(let C=0;C<u;C++)g=g.double()}return g}function xpe(t,e){if(e){if(e.ORDER!==t)throw new Error(\"Field.ORDER must match order: Fp == p, Fn == n\");return CB(e),e}else return Z0(t)}function IB(t,e,n={}){if(!e||typeof e!=\"object\")throw new Error(`expected valid ${t} CURVE object`);for(let c of[\"p\",\"n\",\"h\"]){let u=e[c];if(!(typeof u==\"bigint\"&&u>tC))throw new Error(`CURVE.${c} must be positive bigint`)}let r=xpe(e.p,n.Fp),o=xpe(e.n,n.Fn),a=[\"Gx\",\"Gy\",\"a\",t===\"weierstrass\"?\"b\":\"d\"];for(let c of a)if(!r.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return{Fp:r,Fn:o}}var tC,w6,HZ,Spe,WZ=ce(()=>{p();y6();v6();tC=BigInt(0),w6=BigInt(1);HZ=new WeakMap,Spe=new WeakMap});function _pe(t){t.lowS!==void 0&&pv(\"lowS\",t.lowS),t.prehash!==void 0&&pv(\"prehash\",t.prehash)}function Eze(t,e,n){function r(o){let i=t.sqr(o),a=t.mul(i,o);return t.add(t.add(a,t.mul(o,e)),n)}return r}function Cpe(t,e,n){let{BYTES:r}=t;function o(i){let a;if(typeof i==\"bigint\")a=i;else{let c=Ho(\"private key\",i);if(e){if(!e.includes(c.length*2))throw new Error(\"invalid private key\");let u=new Uint8Array(r);u.set(c,u.length-c.length),c=u}try{a=t.fromBytes(c)}catch{throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof i}`)}}if(n&&(a=t.create(a)),!t.isValidNot0(a))throw new Error(\"invalid private key: out of range [1..N-1]\");return a}return o}function Sze(t,e={}){let{Fp:n,Fn:r}=IB(\"weierstrass\",t,e),{h:o,n:i}=t;Uy(e,{},{allowInfinityPoint:\"boolean\",clearCofactor:\"function\",isTorsionFree:\"function\",fromBytes:\"function\",toBytes:\"function\",endo:\"object\",wrapPrivateKey:\"boolean\"});let{endo:a}=e;if(a&&(!n.is0(t.a)||typeof a.beta!=\"bigint\"||typeof a.splitScalar!=\"function\"))throw new Error(\\'invalid endo: expected \"beta\": bigint and \"splitScalar\": function\\');function c(){if(!n.isOdd)throw new Error(\"compression is not supported: Field does not have .isOdd()\")}function u(ie,Z,ae){let{x:V,y:$}=Z.toAffine(),F=n.toBytes(V);if(pv(\"isCompressed\",ae),ae){c();let _=!n.isOdd($);return ws(Ape(_),F)}else return ws(Uint8Array.of(4),F,n.toBytes($))}function d(ie){Zi(ie);let Z=n.BYTES,ae=Z+1,V=2*Z+1,$=ie.length,F=ie[0],_=ie.subarray(1);if($===ae&&(F===2||F===3)){let O=n.fromBytes(_);if(!n.isValid(O))throw new Error(\"bad point: is not on curve, wrong x\");let z=g(O),N;try{N=n.sqrt(z)}catch(q){let H=q instanceof Error?\": \"+q.message:\"\";throw new Error(\"bad point: is not on curve, sqrt error\"+H)}c();let B=n.isOdd(N);return(F&1)===1!==B&&(N=n.neg(N)),{x:O,y:N}}else if($===V&&F===4){let O=n.fromBytes(_.subarray(Z*0,Z*1)),z=n.fromBytes(_.subarray(Z*1,Z*2));if(!b(O,z))throw new Error(\"bad point: is not on curve\");return{x:O,y:z}}else throw new Error(`bad point: got length ${$}, expected compressed=${ae} or uncompressed=${V}`)}let h=e.toBytes||u,m=e.fromBytes||d,g=Eze(n,t.a,t.b);function b(ie,Z){let ae=n.sqr(Z),V=g(ie);return n.eql(ae,V)}if(!b(t.Gx,t.Gy))throw new Error(\"bad curve params: generator point\");let E=n.mul(n.pow(t.a,nC),$Z),C=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(E,C)))throw new Error(\"bad curve params: a or b\");function T(ie,Z,ae=!1){if(!n.isValid(Z)||ae&&n.is0(Z))throw new Error(`bad point coordinate ${ie}`);return Z}function R(ie){if(!(ie instanceof W))throw new Error(\"ProjectivePoint expected\")}let L=X4((ie,Z)=>{let{px:ae,py:V,pz:$}=ie;if(n.eql($,n.ONE))return{x:ae,y:V};let F=ie.is0();Z==null&&(Z=F?n.ONE:n.inv($));let _=n.mul(ae,Z),O=n.mul(V,Z),z=n.mul($,Z);if(F)return{x:n.ZERO,y:n.ZERO};if(!n.eql(z,n.ONE))throw new Error(\"invZ was invalid\");return{x:_,y:O}}),D=X4(ie=>{if(ie.is0()){if(e.allowInfinityPoint&&!n.is0(ie.py))return;throw new Error(\"bad point: ZERO\")}let{x:Z,y:ae}=ie.toAffine();if(!n.isValid(Z)||!n.isValid(ae))throw new Error(\"bad point: x or y not field elements\");if(!b(Z,ae))throw new Error(\"bad point: equation left != right\");if(!ie.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\");return!0});function G(ie,Z,ae,V,$){return ae=new W(n.mul(ae.px,ie),ae.py,ae.pz),Z=eC(V,Z),ae=eC($,ae),Z.add(ae)}class W{constructor(Z,ae,V){this.px=T(\"x\",Z),this.py=T(\"y\",ae,!0),this.pz=T(\"z\",V),Object.freeze(this)}static fromAffine(Z){let{x:ae,y:V}=Z||{};if(!Z||!n.isValid(ae)||!n.isValid(V))throw new Error(\"invalid affine point\");if(Z instanceof W)throw new Error(\"projective point not allowed\");return n.is0(ae)&&n.is0(V)?W.ZERO:new W(ae,V,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(Z){return AB(W,\"pz\",Z)}static fromBytes(Z){return Zi(Z),W.fromHex(Z)}static fromHex(Z){let ae=W.fromAffine(m(Ho(\"pointHex\",Z)));return ae.assertValidity(),ae}static fromPrivateKey(Z){let ae=Cpe(r,e.allowedPrivateKeyLengths,e.wrapPrivateKey);return W.BASE.multiply(ae(Z))}static msm(Z,ae){return RB(W,r,Z,ae)}precompute(Z=8,ae=!0){return ne.setWindowSize(this,Z),ae||this.multiply(nC),this}_setWindowSize(Z){this.precompute(Z)}assertValidity(){D(this)}hasEvenY(){let{y:Z}=this.toAffine();if(!n.isOdd)throw new Error(\"Field doesn\\'t support isOdd\");return!n.isOdd(Z)}equals(Z){R(Z);let{px:ae,py:V,pz:$}=this,{px:F,py:_,pz:O}=Z,z=n.eql(n.mul(ae,O),n.mul(F,$)),N=n.eql(n.mul(V,O),n.mul(_,$));return z&&N}negate(){return new W(this.px,n.neg(this.py),this.pz)}double(){let{a:Z,b:ae}=t,V=n.mul(ae,nC),{px:$,py:F,pz:_}=this,O=n.ZERO,z=n.ZERO,N=n.ZERO,B=n.mul($,$),j=n.mul(F,F),q=n.mul(_,_),H=n.mul($,F);return H=n.add(H,H),N=n.mul($,_),N=n.add(N,N),O=n.mul(Z,N),z=n.mul(V,q),z=n.add(O,z),O=n.sub(j,z),z=n.add(j,z),z=n.mul(O,z),O=n.mul(H,O),N=n.mul(V,N),q=n.mul(Z,q),H=n.sub(B,q),H=n.mul(Z,H),H=n.add(H,N),N=n.add(B,B),B=n.add(N,B),B=n.add(B,q),B=n.mul(B,H),z=n.add(z,B),q=n.mul(F,_),q=n.add(q,q),B=n.mul(q,H),O=n.sub(O,B),N=n.mul(q,j),N=n.add(N,N),N=n.add(N,N),new W(O,z,N)}add(Z){R(Z);let{px:ae,py:V,pz:$}=this,{px:F,py:_,pz:O}=Z,z=n.ZERO,N=n.ZERO,B=n.ZERO,j=t.a,q=n.mul(t.b,nC),H=n.mul(ae,F),I=n.mul(V,_),U=n.mul($,O),X=n.add(ae,V),ee=n.add(F,_);X=n.mul(X,ee),ee=n.add(H,I),X=n.sub(X,ee),ee=n.add(ae,$);let se=n.add(F,O);return ee=n.mul(ee,se),se=n.add(H,U),ee=n.sub(ee,se),se=n.add(V,$),z=n.add(_,O),se=n.mul(se,z),z=n.add(I,U),se=n.sub(se,z),B=n.mul(j,ee),z=n.mul(q,U),B=n.add(z,B),z=n.sub(I,B),B=n.add(I,B),N=n.mul(z,B),I=n.add(H,H),I=n.add(I,H),U=n.mul(j,U),ee=n.mul(q,ee),I=n.add(I,U),U=n.sub(H,U),U=n.mul(j,U),ee=n.add(ee,U),H=n.mul(I,ee),N=n.add(N,H),H=n.mul(se,ee),z=n.mul(X,z),z=n.sub(z,H),H=n.mul(X,I),B=n.mul(se,B),B=n.add(B,H),new W(z,N,B)}subtract(Z){return this.add(Z.negate())}is0(){return this.equals(W.ZERO)}multiply(Z){let{endo:ae}=e;if(!r.isValidNot0(Z))throw new Error(\"invalid scalar: out of range\");let V,$,F=_=>ne.wNAFCached(this,_,W.normalizeZ);if(ae){let{k1neg:_,k1:O,k2neg:z,k2:N}=ae.splitScalar(Z),{p:B,f:j}=F(O),{p:q,f:H}=F(N);$=j.add(H),V=G(ae.beta,B,q,_,z)}else{let{p:_,f:O}=F(Z);V=_,$=O}return W.normalizeZ([V,$])[0]}multiplyUnsafe(Z){let{endo:ae}=e,V=this;if(!r.isValid(Z))throw new Error(\"invalid scalar: out of range\");if(Z===x6||V.is0())return W.ZERO;if(Z===gd)return V;if(ne.hasPrecomputes(this))return this.multiply(Z);if(ae){let{k1neg:$,k1:F,k2neg:_,k2:O}=ae.splitScalar(Z),{p1:z,p2:N}=kpe(W,V,F,O);return G(ae.beta,z,N,$,_)}else return ne.wNAFCachedUnsafe(V,Z)}multiplyAndAddUnsafe(Z,ae,V){let $=this.multiplyUnsafe(ae).add(Z.multiplyUnsafe(V));return $.is0()?void 0:$}toAffine(Z){return L(this,Z)}isTorsionFree(){let{isTorsionFree:Z}=e;return o===gd?!0:Z?Z(W,this):ne.wNAFCachedUnsafe(this,i).is0()}clearCofactor(){let{clearCofactor:Z}=e;return o===gd?this:Z?Z(W,this):this.multiplyUnsafe(o)}toBytes(Z=!0){return pv(\"isCompressed\",Z),this.assertValidity(),h(W,this,Z)}toRawBytes(Z=!0){return this.toBytes(Z)}toHex(Z=!0){return Fp(this.toBytes(Z))}toString(){return`<Point ${this.is0()?\"ZERO\":this.toHex()}>`}}W.BASE=new W(t.Gx,t.Gy,n.ONE),W.ZERO=new W(n.ZERO,n.ONE,n.ZERO),W.Fp=n,W.Fn=r;let J=r.BITS,ne=TB(W,e.endo?Math.ceil(J/2):J);return W}function Ape(t){return Uint8Array.of(t?2:3)}function kze(t,e,n={}){Uy(e,{hash:\"function\"},{hmac:\"function\",lowS:\"boolean\",randomBytes:\"function\",bits2int:\"function\",bits2int_modN:\"function\"});let r=e.randomBytes||E5,o=e.hmac||((V,...$)=>BZ(e.hash,V,ws(...$))),{Fp:i,Fn:a}=t,{ORDER:c,BITS:u}=a;function d(V){let $=c>>gd;return V>$}function h(V){return d(V)?a.neg(V):V}function m(V,$){if(!a.isValidNot0($))throw new Error(`invalid signature ${V}: out of range 1..CURVE.n`)}class g{constructor($,F,_){m(\"r\",$),m(\"s\",F),this.r=$,this.s=F,_!=null&&(this.recovery=_),Object.freeze(this)}static fromCompact($){let F=a.BYTES,_=Ho(\"compactSignature\",$,F*2);return new g(a.fromBytes(_.subarray(0,F)),a.fromBytes(_.subarray(F,F*2)))}static fromDER($){let{r:F,s:_}=gv.toSig(Ho(\"DER\",$));return new g(F,_)}assertValidity(){}addRecoveryBit($){return new g(this.r,this.s,$)}recoverPublicKey($){let F=i.ORDER,{r:_,s:O,recovery:z}=this;if(z==null||![0,1,2,3].includes(z))throw new Error(\"recovery id invalid\");if(c*mv<F&&z>1)throw new Error(\"recovery id is ambiguous for h>1 curve\");let B=z===2||z===3?_+c:_;if(!i.isValid(B))throw new Error(\"recovery id 2 or 3 invalid\");let j=i.toBytes(B),q=t.fromHex(ws(Ape((z&1)===0),j)),H=a.inv(B),I=D(Ho(\"msgHash\",$)),U=a.create(-I*H),X=a.create(O*H),ee=t.BASE.multiplyUnsafe(U).add(q.multiplyUnsafe(X));if(ee.is0())throw new Error(\"point at infinify\");return ee.assertValidity(),ee}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a.neg(this.s),this.recovery):this}toBytes($){if($===\"compact\")return ws(a.toBytes(this.r),a.toBytes(this.s));if($===\"der\")return l4(gv.hexFromSig(this));throw new Error(\"invalid format\")}toDERRawBytes(){return this.toBytes(\"der\")}toDERHex(){return Fp(this.toBytes(\"der\"))}toCompactRawBytes(){return this.toBytes(\"compact\")}toCompactHex(){return Fp(this.toBytes(\"compact\"))}}let b=Cpe(a,n.allowedPrivateKeyLengths,n.wrapPrivateKey),E={isValidPrivateKey(V){try{return b(V),!0}catch{return!1}},normPrivateKeyToScalar:b,randomPrivateKey:()=>{let V=c;return bpe(r(jZ(V)),V)},precompute(V=8,$=t.BASE){return $.precompute(V,!1)}};function C(V,$=!0){return t.fromPrivateKey(V).toBytes($)}function T(V){if(typeof V==\"bigint\")return!1;if(V instanceof t)return!0;let F=Ho(\"key\",V).length,_=i.BYTES,O=_+1,z=2*_+1;if(!(n.allowedPrivateKeyLengths||a.BYTES===O))return F===O||F===z}function R(V,$,F=!0){if(T(V)===!0)throw new Error(\"first arg must be private key\");if(T($)===!1)throw new Error(\"second arg must be public key\");return t.fromHex($).multiply(b(V)).toBytes(F)}let L=e.bits2int||function(V){if(V.length>8192)throw new Error(\"input is too large\");let $=G0(V),F=V.length*8-u;return F>0?$>>BigInt(F):$},D=e.bits2int_modN||function(V){return a.create(L(V))},G=g6(u);function W(V){return Fy(\"num < 2^\"+u,V,x6,G),a.toBytes(V)}function J(V,$,F=ne){if([\"recovered\",\"canonical\"].some(X=>X in F))throw new Error(\"sign() legacy options not supported\");let{hash:_}=e,{lowS:O,prehash:z,extraEntropy:N}=F;O==null&&(O=!0),V=Ho(\"msgHash\",V),_pe(F),z&&(V=Ho(\"prehashed msgHash\",_(V)));let B=D(V),j=b($),q=[W(j),W(B)];if(N!=null&&N!==!1){let X=N===!0?r(i.BYTES):N;q.push(Ho(\"extraEntropy\",X))}let H=ws(...q),I=B;function U(X){let ee=L(X);if(!a.isValidNot0(ee))return;let se=a.inv(ee),pe=t.BASE.multiply(ee).toAffine(),ye=a.create(pe.x);if(ye===x6)return;let xe=a.create(se*a.create(I+ye*j));if(xe===x6)return;let _e=(pe.x===ye?0:2)|Number(pe.y&gd),Me=xe;return O&&d(xe)&&(Me=h(xe),_e^=1),new g(ye,Me,_e)}return{seed:H,k2sig:U}}let ne={lowS:e.lowS,prehash:!1},ie={lowS:e.lowS,prehash:!1};function Z(V,$,F=ne){let{seed:_,k2sig:O}=J(V,$,F);return ape(e.hash.outputLen,a.BYTES,o)(_,O)}t.BASE.precompute(8);function ae(V,$,F,_=ie){let O=V;$=Ho(\"msgHash\",$),F=Ho(\"publicKey\",F),_pe(_);let{lowS:z,prehash:N,format:B}=_;if(\"strict\"in _)throw new Error(\"options.strict was renamed to lowS\");if(B!==void 0&&![\"compact\",\"der\",\"js\"].includes(B))throw new Error(\\'format must be \"compact\", \"der\" or \"js\"\\');let j=typeof O==\"string\"||Bw(O),q=!j&&!B&&typeof O==\"object\"&&O!==null&&typeof O.r==\"bigint\"&&typeof O.s==\"bigint\";if(!j&&!q)throw new Error(\"invalid signature, expected Uint8Array, hex string or Signature instance\");let H,I;try{if(q)if(B===void 0||B===\"js\")H=new g(O.r,O.s);else throw new Error(\"invalid format\");if(j){try{B!==\"compact\"&&(H=g.fromDER(O))}catch(Me){if(!(Me instanceof gv.Err))throw Me}!H&&B!==\"der\"&&(H=g.fromCompact(O))}I=t.fromHex(F)}catch{return!1}if(!H||z&&H.hasHighS())return!1;N&&($=e.hash($));let{r:U,s:X}=H,ee=D($),se=a.inv(X),pe=a.create(ee*se),ye=a.create(U*se),xe=t.BASE.multiplyUnsafe(pe).add(I.multiplyUnsafe(ye));return xe.is0()?!1:a.create(xe.x)===U}return Object.freeze({getPublicKey:C,getSharedSecret:R,sign:Z,verify:ae,utils:E,Point:t,Signature:g})}function _ze(t){let e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp,r=Z0(e.n,t.nBitLength),o={Fp:n,Fn:r,allowedPrivateKeyLengths:t.allowedPrivateKeyLengths,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,wrapPrivateKey:t.wrapPrivateKey,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:o}}function Cze(t){let{CURVE:e,curveOpts:n}=_ze(t),r={hash:t.hash,hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,ecdsaOpts:r}}function Aze(t,e){return Object.assign({},e,{ProjectivePoint:e.Point,CURVE:t})}function Tpe(t){let{CURVE:e,curveOpts:n,ecdsaOpts:r}=Cze(t),o=Sze(e,n),i=kze(o,r,n);return Aze(t,i)}function Tze(t,e){let n=t.ORDER,r=x6;for(let E=n-gd;E%mv===x6;E/=mv)r+=gd;let o=r,i=mv<<o-gd-gd,a=i*mv,c=(n-gd)/a,u=(c-gd)/mv,d=a-gd,h=i,m=t.pow(e,c),g=t.pow(e,(c+gd)/mv),b=(E,C)=>{let T=m,R=t.pow(C,d),L=t.sqr(R);L=t.mul(L,C);let D=t.mul(E,L);D=t.pow(D,u),D=t.mul(D,R),R=t.mul(D,C),L=t.mul(D,E);let G=t.mul(L,R);D=t.pow(G,h);let W=t.eql(D,t.ONE);R=t.mul(L,g),D=t.mul(G,T),L=t.cmov(R,L,W),G=t.cmov(D,G,W);for(let J=o;J>gd;J--){let ne=J-mv;ne=mv<<ne-gd;let ie=t.pow(G,ne),Z=t.eql(ie,t.ONE);R=t.mul(L,T),T=t.mul(T,T),ie=t.mul(G,T),L=t.cmov(R,L,Z),G=t.cmov(ie,G,Z)}return{isValid:W,value:L}};if(t.ORDER%$Z===nC){let E=(t.ORDER-nC)/$Z,C=t.sqrt(t.neg(e));b=(T,R)=>{let L=t.sqr(R),D=t.mul(T,R);L=t.mul(L,D);let G=t.pow(L,E);G=t.mul(G,D);let W=t.mul(G,C),J=t.mul(t.sqr(G),R),ne=t.eql(J,T),ie=t.cmov(W,G,ne);return{isValid:ne,value:ie}}}return b}function Rpe(t,e){CB(t);let{A:n,B:r,Z:o}=e;if(!t.isValid(n)||!t.isValid(r)||!t.isValid(o))throw new Error(\"mapToCurveSimpleSWU: invalid opts\");let i=Tze(t,o);if(!t.isOdd)throw new Error(\"Field does not have .isOdd()\");return a=>{let c,u,d,h,m,g,b,E;c=t.sqr(a),c=t.mul(c,o),u=t.sqr(c),u=t.add(u,c),d=t.add(u,t.ONE),d=t.mul(d,r),h=t.cmov(o,t.neg(u),!t.eql(u,t.ZERO)),h=t.mul(h,n),u=t.sqr(d),g=t.sqr(h),m=t.mul(g,n),u=t.add(u,m),u=t.mul(u,d),g=t.mul(g,h),m=t.mul(g,r),u=t.add(u,m),b=t.mul(c,d);let{isValid:C,value:T}=i(u,g);E=t.mul(c,a),E=t.mul(E,T),b=t.cmov(b,d,C),E=t.cmov(E,T,C);let R=t.isOdd(a)===t.isOdd(E);E=t.cmov(t.neg(E),E,R);let L=dx(t,[h],!0)[0];return b=t.mul(b,L),{x:b,y:E}}}var VZ,gv,x6,gd,mv,nC,$Z,KZ=ce(()=>{p();ope();y6();WZ();v6();VZ=class extends Error{constructor(e=\"\"){super(e)}},gv={Err:VZ,_tlv:{encode:(t,e)=>{let{Err:n}=gv;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length&1)throw new n(\"tlv.encode: unpadded data\");let r=e.length/2,o=a9(r);if(o.length/2&128)throw new n(\"tlv.encode: long form length too big\");let i=r>127?a9(o.length/2|128):\"\";return a9(t)+i+o+e},decode(t,e){let{Err:n}=gv,r=0;if(t<0||t>256)throw new n(\"tlv.encode: wrong tag\");if(e.length<2||e[r++]!==t)throw new n(\"tlv.decode: wrong tlv\");let o=e[r++],i=!!(o&128),a=0;if(!i)a=o;else{let u=o&127;if(!u)throw new n(\"tlv.decode(long): indefinite length not supported\");if(u>4)throw new n(\"tlv.decode(long): byte length is too big\");let d=e.subarray(r,r+u);if(d.length!==u)throw new n(\"tlv.decode: length bytes not complete\");if(d[0]===0)throw new n(\"tlv.decode(long): zero leftmost byte\");for(let h of d)a=a<<8|h;if(r+=u,a<128)throw new n(\"tlv.decode(long): not minimal encoding\")}let c=e.subarray(r,r+a);if(c.length!==a)throw new n(\"tlv.decode: wrong value length\");return{v:c,l:e.subarray(r+a)}}},_int:{encode(t){let{Err:e}=gv;if(t<x6)throw new e(\"integer: negative integers are not allowed\");let n=a9(t);if(Number.parseInt(n[0],16)&8&&(n=\"00\"+n),n.length&1)throw new e(\"unexpected DER parsing assertion: unpadded hex\");return n},decode(t){let{Err:e}=gv;if(t[0]&128)throw new e(\"invalid signature integer: negative\");if(t[0]===0&&!(t[1]&128))throw new e(\"invalid signature integer: unnecessary leading zero\");return G0(t)}},toSig(t){let{Err:e,_int:n,_tlv:r}=gv,o=Ho(\"signature\",t),{v:i,l:a}=r.decode(48,o);if(a.length)throw new e(\"invalid signature: left bytes after parsing\");let{v:c,l:u}=r.decode(2,i),{v:d,l:h}=r.decode(2,u);if(h.length)throw new e(\"invalid signature: left bytes after parsing\");return{r:n.decode(c),s:n.decode(d)}},hexFromSig(t){let{_tlv:e,_int:n}=gv,r=e.encode(2,n.encode(t.r)),o=e.encode(2,n.encode(t.s)),i=r+o;return e.encode(48,i)}},x6=BigInt(0),gd=BigInt(1),mv=BigInt(2),nC=BigInt(3),$Z=BigInt(4)});function Ipe(t,e){let n=r=>Tpe({...t,hash:r});return{...n(e),create:n}}var Ope=ce(()=>{p();KZ();});function fx(t,e){if(l9(t),l9(e),t<0||t>=1<<8*e)throw new Error(\"invalid I2OSP input: \"+t);let n=Array.from({length:e}).fill(0);for(let r=e-1;r>=0;r--)n[r]=t&255,t>>>=8;return new Uint8Array(n)}function Ize(t,e){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t[r]^e[r];return n}function l9(t){if(!Number.isSafeInteger(t))throw new Error(\"number expected\")}function Oze(t,e,n,r){Zi(t),Zi(e),l9(n),e.length>255&&(e=r(ws(u4(\"H2C-OVERSIZE-DST-\"),e)));let{outputLen:o,blockLen:i}=r,a=Math.ceil(n/o);if(n>65535||a>255)throw new Error(\"expand_message_xmd: invalid lenInBytes\");let c=ws(e,fx(e.length,1)),u=fx(0,i),d=fx(n,2),h=new Array(a),m=r(ws(u,t,d,fx(0,1),c));h[0]=r(ws(m,fx(1,1),c));for(let b=1;b<=a;b++){let E=[Ize(m,h[b-1]),fx(b+1,1),c];h[b]=r(ws(...E))}return ws(...h).slice(0,n)}function Pze(t,e,n,r,o){if(Zi(t),Zi(e),l9(n),e.length>255){let i=Math.ceil(2*r/8);e=o.create({dkLen:i}).update(u4(\"H2C-OVERSIZE-DST-\")).update(e).digest()}if(n>65535||e.length>255)throw new Error(\"expand_message_xof: invalid lenInBytes\");return o.create({dkLen:n}).update(t).update(fx(n,2)).update(e).update(fx(e.length,1)).digest()}function Ppe(t,e,n){Uy(n,{p:\"bigint\",m:\"number\",k:\"number\",hash:\"function\"});let{p:r,k:o,m:i,hash:a,expand:c,DST:u}=n;if(!Bw(u)&&typeof u!=\"string\")throw new Error(\"DST must be string or uint8array\");if(!cpe(n.hash))throw new Error(\"expected valid hash\");Zi(t),l9(e);let d=typeof u==\"string\"?u4(u):u,h=r.toString(2).length,m=Math.ceil((h+o)/8),g=e*i*m,b;if(c===\"xmd\")b=Oze(t,d,g,a);else if(c===\"xof\")b=Pze(t,d,g,o,a);else if(c===\"_internal_pass\")b=t;else throw new Error(\\'expand must be \"xmd\" or \"xof\"\\');let E=new Array(e);for(let C=0;C<e;C++){let T=new Array(i);for(let R=0;R<i;R++){let L=m*(R+C*i),D=b.subarray(L,L+m);T[R]=ui(Rze(D),r)}E[C]=T}return E}function Mpe(t,e){let n=e.map(r=>Array.from(r).reverse());return(r,o)=>{let[i,a,c,u]=n.map(m=>m.reduce((g,b)=>t.add(t.mul(g,r),b))),[d,h]=dx(t,[a,u],!0);return r=t.mul(i,d),o=t.mul(o,t.mul(c,h)),{x:r,y:o}}}function Npe(t,e,n){if(typeof e!=\"function\")throw new Error(\"mapToCurve() must be defined\");function r(i){return t.fromAffine(e(i))}function o(i){let a=i.clearCofactor();return a.equals(t.ZERO)?t.ZERO:(a.assertValidity(),a)}return{defaults:n,hashToCurve(i,a){let c=n.DST?n.DST:{},u=Object.assign({},n,c,a),d=Ppe(i,2,u),h=r(d[0]),m=r(d[1]);return o(h.add(m))},encodeToCurve(i,a){let c=n.encodeDST?n.encodeDST:{},u=Object.assign({},n,c,a),d=Ppe(i,1,u);return o(r(d[0]))},mapToCurve(i){if(!Array.isArray(i))throw new Error(\"expected array of bigints\");for(let a of i)if(typeof a!=\"bigint\")throw new Error(\"expected array of bigints\");return o(r(i))}}}var Rze,Lpe=ce(()=>{p();y6();v6();Rze=G0});var qpe={};ld(qpe,{encodeToCurve:()=>Uze,hashToCurve:()=>Fze,schnorr:()=>Lze,secp256k1:()=>Y0,secp256k1_hasher:()=>eY});function Upe(t){let e=yv.p,n=BigInt(3),r=BigInt(6),o=BigInt(11),i=BigInt(22),a=BigInt(23),c=BigInt(44),u=BigInt(88),d=t*t*t%e,h=d*d*t%e,m=us(h,n,e)*h%e,g=us(m,n,e)*h%e,b=us(g,PB,e)*d%e,E=us(b,o,e)*b%e,C=us(E,i,e)*E%e,T=us(C,c,e)*C%e,R=us(T,u,e)*T%e,L=us(R,c,e)*C%e,D=us(L,n,e)*h%e,G=us(D,a,e)*E%e,W=us(G,r,e)*d%e,J=us(W,PB,e);if(!hx.eql(hx.sqr(J),t))throw new Error(\"Cannot find square root\");return J}function MB(t,...e){let n=Dpe[t];if(n===void 0){let r=_5(Uint8Array.from(t,o=>o.charCodeAt(0)));n=ws(r,r),Dpe[t]=n}return _5(ws(n,...e))}function YZ(t){let e=Y0.utils.normPrivateKeyToScalar(t),n=JZ.fromPrivateKey(e);return{scalar:XZ(n.y)?e:u9(-e),bytes:QZ(n)}}function jpe(t){Fy(\"x\",t,OB,yv.p);let e=GZ(t*t),n=GZ(e*t+BigInt(7)),r=Upe(n);XZ(r)||(r=GZ(-r));let o=JZ.fromAffine({x:t,y:r});return o.assertValidity(),o}function zpe(...t){return u9(rC(MB(\"BIP0340/challenge\",...t)))}function Mze(t){return YZ(t).bytes}function Nze(t,e,n=E5(32)){let r=Ho(\"message\",t),{bytes:o,scalar:i}=YZ(e),a=Ho(\"auxRand\",n,32),c=ZZ(i^rC(MB(\"BIP0340/aux\",a))),u=MB(\"BIP0340/nonce\",c,o,r),d=u9(rC(u));if(d===Fpe)throw new Error(\"sign failed: k is zero\");let{bytes:h,scalar:m}=YZ(d),g=zpe(h,o,r),b=new Uint8Array(64);if(b.set(h,0),b.set(ZZ(u9(m+g*i)),32),!Hpe(b,r,o))throw new Error(\"sign: Invalid signature produced\");return b}function Hpe(t,e,n){let r=Ho(\"signature\",t,64),o=Ho(\"message\",e),i=Ho(\"publicKey\",n,32);try{let a=jpe(rC(i)),c=rC(r.subarray(0,32));if(!c9(c,OB,yv.p))return!1;let u=rC(r.subarray(32,64));if(!c9(u,OB,yv.n))return!1;let d=zpe(ZZ(c),QZ(a),o),h=JZ.BASE.multiplyUnsafe(u).add(a.multiplyUnsafe(u9(-d))),{x:m,y:g}=h.toAffine();return!(h.is0()||!XZ(g)||m!==c)}catch{return!1}}var yv,Fpe,OB,PB,Bpe,hx,Y0,Dpe,QZ,ZZ,GZ,u9,JZ,XZ,rC,Lze,Bze,Dze,eY,Fze,Uze,NB=ce(()=>{p();kL();Jb();Ope();Lpe();v6();KZ();y6();yv={p:BigInt(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\"),n:BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt(\"0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\"),Gy:BigInt(\"0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\")},Fpe=BigInt(0),OB=BigInt(1),PB=BigInt(2),Bpe=(t,e)=>(t+e/PB)/e;hx=Z0(yv.p,void 0,void 0,{sqrt:Upe}),Y0=Ipe({...yv,Fp:hx,lowS:!0,endo:{beta:BigInt(\"0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\"),splitScalar:t=>{let e=yv.n,n=BigInt(\"0x3086d221a7d46bcde86c90e49284eb15\"),r=-OB*BigInt(\"0xe4437ed6010e88286f547fa90abfe4c3\"),o=BigInt(\"0x114ca50f7a8e2f3f657c1108d9d44cfd8\"),i=n,a=BigInt(\"0x100000000000000000000000000000000\"),c=Bpe(i*t,e),u=Bpe(-r*t,e),d=ui(t-c*n-u*o,e),h=ui(-c*r-u*i,e),m=d>a,g=h>a;if(m&&(d=e-d),g&&(h=e-h),d>a||h>a)throw new Error(\"splitScalar: Endomorphism failed, k=\"+t);return{k1neg:m,k1:d,k2neg:g,k2:h}}}},_5),Dpe={};QZ=t=>t.toBytes(!0).slice(1),ZZ=t=>m6(t,32),GZ=t=>ui(t,yv.p),u9=t=>ui(t,yv.n),JZ=Y0.Point,XZ=t=>t%PB===Fpe;rC=G0;Lze={getPublicKey:Mze,sign:Nze,verify:Hpe,utils:{randomPrivateKey:Y0.utils.randomPrivateKey,lift_x:jpe,pointToBytes:QZ,numberToBytesBE:m6,bytesToNumberBE:G0,taggedHash:MB,mod:ui}},Bze=Mpe(hx,[[\"0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7\",\"0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581\",\"0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262\",\"0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c\"],[\"0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b\",\"0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"],[\"0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c\",\"0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3\",\"0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931\",\"0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84\"],[\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b\",\"0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573\",\"0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"]].map(t=>t.map(e=>BigInt(e)))),Dze=Rpe(hx,{A:BigInt(\"0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533\"),B:BigInt(\"1771\"),Z:hx.create(BigInt(\"-11\"))}),eY=Npe(Y0.Point,t=>{let{x:e,y:n}=Dze(hx.create(t[0]));return Bze(e,n)},{DST:\"secp256k1_XMD:SHA-256_SSWU_RO_\",encodeDST:\"secp256k1_XMD:SHA-256_SSWU_NU_\",p:hx.ORDER,m:1,k:128,expand:\"xmd\",hash:_5}),Fze=eY.hashToCurve,Uze=eY.encodeToCurve});async function Vpe({hash:t,signature:e}){let n=da(t)?t:Uo(t),{secp256k1:r}=await Promise.resolve().then(()=>(NB(),qpe));return`0x${(()=>{if(typeof e==\"object\"&&\"r\"in e&&\"s\"in e){let{r:d,s:h,v:m,yParity:g}=e,b=Number(g??m),E=Wpe(b);return new r.Signature(jo(d),jo(h)).addRecoveryBit(E)}let a=da(e)?e:Uo(e);if(Jr(a)!==65)throw new Error(\"invalid signature length\");let c=Ei(`0x${a.slice(130)}`),u=Wpe(c);return r.Signature.fromCompact(a.substring(2,130)).addRecoveryBit(u)})().recoverPublicKey(n.substring(2)).toHex(!1)}`}function Wpe(t){if(t===0||t===1)return t;if(t===27)return 0;if(t===28)return 1;throw new Error(\"Invalid yParityOrV value\")}var $pe=ce(()=>{p();P0();Mp();fc();gn()});async function LB({hash:t,signature:e}){return npe(await Vpe({hash:t,signature:e}))}var tY=ce(()=>{p();rpe();$pe()});function Kpe(t){let{chainId:e,nonce:n,to:r}=t,o=t.contractAddress??t.address,i=Po(fa([\"0x05\",N0([e?Ye(e):\"0x\",o,n?Ye(n):\"0x\"])]));return r===\"bytes\"?Us(i):i}var Gpe=ce(()=>{p();iu();hc();gn();aL();zp()});async function BB(t){let{authorization:e,signature:n}=t;return LB({hash:Kpe(e),signature:n??e})}var nY=ce(()=>{p();tY();Gpe()});function DB(t,{docsPath:e,...n}){let r=(()=>{let o=Zw(t,n);return o instanceof jp?t:o})();return new mL(r,{docsPath:e,...n})}var rY=ce(()=>{p();jw();L0();WR()});function Lt(t,e,n){let r=t[e.name];if(typeof r==\"function\")return r;let o=t[n];return typeof o==\"function\"?o:i=>e(t,i)}var ki=ce(()=>{p()});async function Zp(t){let e=await t.request({method:\"eth_chainId\"},{dedupe:!0});return Ei(e)}var E6=ce(()=>{p();fc()});var FB,px,UB,jB=ce(()=>{p();r4();ir();FB=class extends Be{constructor(){super(\"`baseFeeMultiplier` must be greater than 1.\",{name:\"BaseFeeScalarError\"})}},px=class extends Be{constructor(){super(\"Chain does not support EIP-1559 fees.\",{name:\"Eip1559FeesNotSupportedError\"})}},UB=class extends Be{constructor({maxPriorityFeePerGas:e}){super(`\\\\`maxFeePerGas\\\\` cannot be less than the \\\\`maxPriorityFeePerGas\\\\` (${pc(e)} gwei).`,{name:\"MaxFeePerGasTooLowError\"})}}});var oC,oY=ce(()=>{p();ir();oC=class extends Be{constructor({blockHash:e,blockNumber:n}){let r=\"Block\";e&&(r=`Block at hash \"${e}\"`),n&&(r=`Block at number \"${n}\"`),super(`${r} could not be found.`,{name:\"BlockNotFoundError\"})}}});async function uu(t,{blockHash:e,blockNumber:n,blockTag:r,includeTransactions:o}={}){let i=r??\"latest\",a=o??!1,c=n!==void 0?Ye(n):void 0,u=null;if(e?u=await t.request({method:\"eth_getBlockByHash\",params:[e,a]},{dedupe:!0}):u=await t.request({method:\"eth_getBlockByNumber\",params:[c||i,a]},{dedupe:!!c}),!u)throw new oC({blockHash:e,blockNumber:n});return(t.chain?.formatters?.block?.format||nR)(u)}var S6=ce(()=>{p();oY();gn();rL()});async function iC(t){let e=await t.request({method:\"eth_gasPrice\"});return BigInt(e)}var zB=ce(()=>{p()});async function Zpe(t,e){return iY(t,e)}async function iY(t,e){let{block:n,chain:r=t.chain,request:o}=e||{};try{let i=r?.fees?.maxPriorityFeePerGas??r?.fees?.defaultPriorityFee;if(typeof i==\"function\"){let c=n||await Lt(t,uu,\"getBlock\")({}),u=await i({block:c,client:t,request:o});if(u===null)throw new Error;return u}if(typeof i<\"u\")return i;let a=await t.request({method:\"eth_maxPriorityFeePerGas\"});return jo(a)}catch{let[i,a]=await Promise.all([n?Promise.resolve(n):Lt(t,uu,\"getBlock\")({}),Lt(t,iC,\"getGasPrice\")({})]);if(typeof i.baseFeePerGas!=\"bigint\")throw new px;let c=a-i.baseFeePerGas;return c<0n?0n:c}}var sY=ce(()=>{p();jB();fc();ki();S6();zB()});async function Ype(t,e){return HB(t,e)}async function HB(t,e){let{block:n,chain:r=t.chain,request:o,type:i=\"eip1559\"}=e||{},a=await(async()=>typeof r?.fees?.baseFeeMultiplier==\"function\"?r.fees.baseFeeMultiplier({block:n,client:t,request:o}):r?.fees?.baseFeeMultiplier??1.2)();if(a<1)throw new FB;let u=10**(a.toString().split(\".\")[1]?.length??0),d=g=>g*BigInt(Math.ceil(a*u))/BigInt(u),h=n||await Lt(t,uu,\"getBlock\")({});if(typeof r?.fees?.estimateFeesPerGas==\"function\"){let g=await r.fees.estimateFeesPerGas({block:n,client:t,multiply:d,request:o,type:i});if(g!==null)return g}if(i===\"eip1559\"){if(typeof h.baseFeePerGas!=\"bigint\")throw new px;let g=typeof o?.maxPriorityFeePerGas==\"bigint\"?o.maxPriorityFeePerGas:await iY(t,{block:h,chain:r,request:o}),b=d(h.baseFeePerGas);return{maxFeePerGas:o?.maxFeePerGas??b+g,maxPriorityFeePerGas:g}}return{gasPrice:o?.gasPrice??d(await Lt(t,iC,\"getGasPrice\")({}))}}var aY=ce(()=>{p();jB();ki();sY();S6();zB()});var qB,Qpe=ce(()=>{p();uL();r4();ir();L0();qB=class extends Be{constructor(e,{account:n,docsPath:r,chain:o,data:i,gas:a,gasPrice:c,maxFeePerGas:u,maxPriorityFeePerGas:d,nonce:h,to:m,value:g}){let b=v5({from:n?.address,to:m,value:typeof g<\"u\"&&`${n4(g)} ${o?.nativeCurrency?.symbol||\"ETH\"}`,data:i,gas:a,gasPrice:typeof c<\"u\"&&`${pc(c)} gwei`,maxFeePerGas:typeof u<\"u\"&&`${pc(u)} gwei`,maxPriorityFeePerGas:typeof d<\"u\"&&`${pc(d)} gwei`,nonce:h});super(e.shortMessage,{cause:e,docsPath:r,metaMessages:[...e.metaMessages?[...e.metaMessages,\" \"]:[],\"Estimate Gas Arguments:\",b].filter(Boolean),name:\"EstimateGasExecutionError\"}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=e}}});function Jpe(t,{docsPath:e,...n}){let r=(()=>{let o=Zw(t,n);return o instanceof jp?t:o})();return new qB(r,{docsPath:e,...n})}var Xpe=ce(()=>{p();Qpe();jw();WR()});function eme(t){if(!(!t||t.length===0))return t.reduce((e,{slot:n,value:r})=>{if(n.length!==66)throw new J7({size:n.length,targetSize:66,type:\"hex\"});if(r.length!==66)throw new J7({size:r.length,targetSize:66,type:\"hex\"});return e[n]=r,e},{})}function jze(t){let{balance:e,nonce:n,state:r,stateDiff:o,code:i}=t,a={};if(i!==void 0&&(a.code=i),e!==void 0&&(a.balance=Ye(e)),n!==void 0&&(a.nonce=Ye(n)),r!==void 0&&(a.state=eme(r)),o!==void 0){if(a.state)throw new uB;a.stateDiff=eme(o)}return a}function sC(t){if(!t)return;let e={};for(let{address:n,...r}of t){if(!Kr(n,{strict:!1}))throw new ci({address:n});if(e[n])throw new lB({address:n});e[n]=jze(r)}return e}var WB=ce(()=>{p();D0();eL();cZ();hf();gn()});async function k6(t,{address:e,blockNumber:n,blockTag:r=\"latest\"}){let o=typeof n==\"bigint\"?Ye(n):void 0,i=await t.request({method:\"eth_getBalance\",params:[e,o||r]});return BigInt(i)}var VB=ce(()=>{p();gn()});async function aC(t,e){let{account:n=t.account}=e,r=n?Wn(n):void 0;try{let V=function(F){let{block:_,request:O,rpcStateOverride:z}=F;return t.request({method:\"eth_estimateGas\",params:z?[O,_??\"latest\",z]:_?[O,_]:[O]})},{accessList:o,authorizationList:i,blobs:a,blobVersionedHashes:c,blockNumber:u,blockTag:d,data:h,gas:m,gasPrice:g,maxFeePerBlobGas:b,maxFeePerGas:E,maxPriorityFeePerGas:C,nonce:T,value:R,stateOverride:L,...D}=await mx(t,{...e,parameters:r?.type===\"local\"?void 0:[\"blobVersionedHashes\"]}),W=(typeof u==\"bigint\"?Ye(u):void 0)||d,J=sC(L),ne=await(async()=>{if(D.to)return D.to;if(i&&i.length>0)return await BB({authorization:i[0]}).catch(()=>{throw new Be(\"`to` is required. Could not infer from `authorizationList`\")})})();gf(e);let ie=t.chain?.formatters?.transactionRequest?.format,ae=(ie||Bp)({...Yw(D,{format:ie}),from:r?.address,accessList:o,authorizationList:i,blobs:a,blobVersionedHashes:c,data:h,gas:m,gasPrice:g,maxFeePerBlobGas:b,maxFeePerGas:E,maxPriorityFeePerGas:C,nonce:T,to:ne,value:R}),$=BigInt(await V({block:W,request:ae,rpcStateOverride:J}));if(i){let F=await k6(t,{address:ae.from}),_=await Promise.all(i.map(async O=>{let{address:z}=O,N=await V({block:W,request:{authorizationList:void 0,data:h,from:r?.address,to:z,value:Ye(F)},rpcStateOverride:J}).catch(()=>100000n);return 2n*BigInt(N)}));$+=_.reduce((O,z)=>O+z,0n)}return $}catch(o){throw Jpe(o,{...e,account:r,chain:t.chain})}}var $B=ce(()=>{p();js();ir();nY();gn();Xpe();VR();b5();WB();Qw();d9();VB()});async function cC(t,{address:e,blockTag:n=\"latest\",blockNumber:r}){let o=await t.request({method:\"eth_getTransactionCount\",params:[e,typeof r==\"bigint\"?Ye(r):n]},{dedupe:!!r});return Ei(o)}var KB=ce(()=>{p();fc();gn()});async function mx(t,e){let{account:n=t.account,blobs:r,chain:o,gas:i,kzg:a,nonce:c,nonceManager:u,parameters:d=cY,type:h}=e,m=n&&Wn(n),g={...e,...m?{from:m?.address}:{}},b;async function E(){return b||(b=await Lt(t,uu,\"getBlock\")({blockTag:\"latest\"}),b)}let C;async function T(){return C||(o?o.id:typeof e.chainId<\"u\"?e.chainId:(C=await Lt(t,Zp,\"getChainId\")({}),C))}if(d.includes(\"nonce\")&&typeof c>\"u\"&&m)if(u){let R=await T();g.nonce=await u.consume({address:m.address,chainId:R,client:t})}else g.nonce=await Lt(t,cC,\"getTransactionCount\")({address:m.address,blockTag:\"pending\"});if((d.includes(\"blobVersionedHashes\")||d.includes(\"sidecars\"))&&r&&a){let R=a4({blobs:r,kzg:a});if(d.includes(\"blobVersionedHashes\")){let L=CL({commitments:R,to:\"hex\"});g.blobVersionedHashes=L}if(d.includes(\"sidecars\")){let L=c4({blobs:r,commitments:R,kzg:a}),D=IL({blobs:r,commitments:R,proofs:L,to:\"hex\"});g.sidecars=D}}if(d.includes(\"chainId\")&&(g.chainId=await T()),(d.includes(\"fees\")||d.includes(\"type\"))&&typeof h>\"u\")try{g.type=LL(g)}catch{let R=tme.get(t.uid);typeof R>\"u\"&&(R=typeof(await E())?.baseFeePerGas==\"bigint\",tme.set(t.uid,R)),g.type=R?\"eip1559\":\"legacy\"}if(d.includes(\"fees\"))if(g.type!==\"legacy\"&&g.type!==\"eip2930\"){if(typeof g.maxFeePerGas>\"u\"||typeof g.maxPriorityFeePerGas>\"u\"){let R=await E(),{maxFeePerGas:L,maxPriorityFeePerGas:D}=await HB(t,{block:R,chain:o,request:g});if(typeof e.maxPriorityFeePerGas>\"u\"&&e.maxFeePerGas&&e.maxFeePerGas<D)throw new UB({maxPriorityFeePerGas:D});g.maxPriorityFeePerGas=D,g.maxFeePerGas=L}}else{if(typeof e.maxFeePerGas<\"u\"||typeof e.maxPriorityFeePerGas<\"u\")throw new px;if(typeof e.gasPrice>\"u\"){let R=await E(),{gasPrice:L}=await HB(t,{block:R,chain:o,request:g,type:\"legacy\"});g.gasPrice=L}}return d.includes(\"gas\")&&typeof i>\"u\"&&(g.gas=await Lt(t,aC,\"estimateGas\")({...g,account:m&&{address:m.address,type:\"json-rpc\"}})),gf(g),delete g.parameters,g}var cY,tme,d9=ce(()=>{p();js();aY();$B();S6();KB();jB();yL();bL();FG();jG();ki();Qw();VG();E6();cY=[\"blobVersionedHashes\",\"chainId\",\"fees\",\"gas\",\"nonce\",\"type\"],tme=new Map});async function lC(t,{serializedTransaction:e}){return t.request({method:\"eth_sendRawTransaction\",params:[e]},{retryCount:0})}var GB=ce(()=>{p()});async function Q0(t,e){let{account:n=t.account,chain:r=t.chain,accessList:o,authorizationList:i,blobs:a,data:c,gas:u,gasPrice:d,maxFeePerBlobGas:h,maxFeePerGas:m,maxPriorityFeePerGas:g,nonce:b,type:E,value:C,...T}=e;if(typeof n>\"u\")throw new su({docsPath:\"/docs/actions/wallet/sendTransaction\"});let R=n?Wn(n):null;try{gf(e);let L=await(async()=>{if(e.to)return e.to;if(e.to!==null&&i&&i.length>0)return await BB({authorization:i[0]}).catch(()=>{throw new Be(\"`to` is required. Could not infer from `authorizationList`.\")})})();if(R?.type===\"json-rpc\"||R===null){let D;r!==null&&(D=await Lt(t,Zp,\"getChainId\")({}),BL({currentChainId:D,chain:r}));let G=t.chain?.formatters?.transactionRequest?.format,J=(G||Bp)({...Yw(T,{format:G}),accessList:o,authorizationList:i,blobs:a,chainId:D,data:c,from:R?.address,gas:u,gasPrice:d,maxFeePerBlobGas:h,maxFeePerGas:m,maxPriorityFeePerGas:g,nonce:b,to:L,type:E,value:C}),ne=lY.get(t.uid),ie=ne?\"wallet_sendTransaction\":\"eth_sendTransaction\";try{return await t.request({method:ie,params:[J]},{retryCount:0})}catch(Z){if(ne===!1)throw Z;let ae=Z;if(ae.name===\"InvalidInputRpcError\"||ae.name===\"InvalidParamsRpcError\"||ae.name===\"MethodNotFoundRpcError\"||ae.name===\"MethodNotSupportedRpcError\")return await t.request({method:\"wallet_sendTransaction\",params:[J]},{retryCount:0}).then(V=>(lY.set(t.uid,!0),V)).catch(V=>{let $=V;throw $.name===\"MethodNotFoundRpcError\"||$.name===\"MethodNotSupportedRpcError\"?(lY.set(t.uid,!1),ae):$});throw ae}}if(R?.type===\"local\"){let D=await Lt(t,mx,\"prepareTransactionRequest\")({account:R,accessList:o,authorizationList:i,blobs:a,chain:r,data:c,gas:u,gasPrice:d,maxFeePerBlobGas:h,maxFeePerGas:m,maxPriorityFeePerGas:g,nonce:b,nonceManager:R.nonceManager,parameters:[...cY,\"sidecars\"],type:E,value:C,...T,to:L}),G=r?.serializers?.transaction,W=await R.signTransaction(D,{serializer:G});return await Lt(t,lC,\"sendRawTransaction\")({serializedTransaction:W})}throw R?.type===\"smart\"?new zw({metaMessages:[\"Consider using the `sendUserOperation` Action instead.\"],docsPath:\"/docs/actions/bundler/sendUserOperation\",type:\"smart\"}):new zw({docsPath:\"/docs/actions/wallet/sendTransaction\",type:R?.type})}catch(L){throw L instanceof zw?L:DB(L,{...e,account:R,chain:e.chain||void 0})}}var lY,uC=ce(()=>{p();js();Hw();ir();nY();GG();rY();VR();b5();ki();dR();Qw();E6();d9();GB();lY=new Ay(128)});function nme(t,e){let{abi:n,args:r,bytecode:o,...i}=e,a=h6({abi:n,args:r,bytecode:o});return Q0(t,{...i,...i.authorizationList?{to:null}:{},data:a})}var rme=ce(()=>{p();kB();uC()});var dC,ZB,ome,YB,ime,uY,dY,QB,f9,bv=ce(()=>{p();dC=[{inputs:[{components:[{name:\"target\",type:\"address\"},{name:\"allowFailure\",type:\"bool\"},{name:\"callData\",type:\"bytes\"}],name:\"calls\",type:\"tuple[]\"}],name:\"aggregate3\",outputs:[{components:[{name:\"success\",type:\"bool\"},{name:\"returnData\",type:\"bytes\"}],name:\"returnData\",type:\"tuple[]\"}],stateMutability:\"view\",type:\"function\"}],ZB=[{name:\"query\",type:\"function\",stateMutability:\"view\",inputs:[{type:\"tuple[]\",name:\"queries\",components:[{type:\"address\",name:\"sender\"},{type:\"string[]\",name:\"urls\"},{type:\"bytes\",name:\"data\"}]}],outputs:[{type:\"bool[]\",name:\"failures\"},{type:\"bytes[]\",name:\"responses\"}]},{name:\"HttpError\",type:\"error\",inputs:[{type:\"uint16\",name:\"status\"},{type:\"string\",name:\"message\"}]}],ome=[{inputs:[],name:\"ResolverNotFound\",type:\"error\"},{inputs:[],name:\"ResolverWildcardNotSupported\",type:\"error\"},{inputs:[],name:\"ResolverNotContract\",type:\"error\"},{inputs:[{name:\"returnData\",type:\"bytes\"}],name:\"ResolverError\",type:\"error\"},{inputs:[{components:[{name:\"status\",type:\"uint16\"},{name:\"message\",type:\"string\"}],name:\"errors\",type:\"tuple[]\"}],name:\"HttpError\",type:\"error\"}],YB=[...ome,{name:\"resolve\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"name\",type:\"bytes\"},{name:\"data\",type:\"bytes\"}],outputs:[{name:\"\",type:\"bytes\"},{name:\"address\",type:\"address\"}]},{name:\"resolve\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"name\",type:\"bytes\"},{name:\"data\",type:\"bytes\"},{name:\"gateways\",type:\"string[]\"}],outputs:[{name:\"\",type:\"bytes\"},{name:\"address\",type:\"address\"}]}],ime=[...ome,{name:\"reverse\",type:\"function\",stateMutability:\"view\",inputs:[{type:\"bytes\",name:\"reverseName\"}],outputs:[{type:\"string\",name:\"resolvedName\"},{type:\"address\",name:\"resolvedAddress\"},{type:\"address\",name:\"reverseResolver\"},{type:\"address\",name:\"resolver\"}]},{name:\"reverse\",type:\"function\",stateMutability:\"view\",inputs:[{type:\"bytes\",name:\"reverseName\"},{type:\"string[]\",name:\"gateways\"}],outputs:[{type:\"string\",name:\"resolvedName\"},{type:\"address\",name:\"resolvedAddress\"},{type:\"address\",name:\"reverseResolver\"},{type:\"address\",name:\"resolver\"}]}],uY=[{name:\"text\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"name\",type:\"bytes32\"},{name:\"key\",type:\"string\"}],outputs:[{name:\"\",type:\"string\"}]}],dY=[{name:\"addr\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"name\",type:\"bytes32\"}],outputs:[{name:\"\",type:\"address\"}]},{name:\"addr\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"name\",type:\"bytes32\"},{name:\"coinType\",type:\"uint256\"}],outputs:[{name:\"\",type:\"bytes\"}]}],QB=[{inputs:[{name:\"_signer\",type:\"address\"},{name:\"_hash\",type:\"bytes32\"},{name:\"_signature\",type:\"bytes\"}],stateMutability:\"nonpayable\",type:\"constructor\"},{inputs:[{name:\"_signer\",type:\"address\"},{name:\"_hash\",type:\"bytes32\"},{name:\"_signature\",type:\"bytes\"}],outputs:[{type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\",name:\"isValidSig\"}],f9=[{type:\"event\",name:\"Approval\",inputs:[{indexed:!0,name:\"owner\",type:\"address\"},{indexed:!0,name:\"spender\",type:\"address\"},{indexed:!1,name:\"value\",type:\"uint256\"}]},{type:\"event\",name:\"Transfer\",inputs:[{indexed:!0,name:\"from\",type:\"address\"},{indexed:!0,name:\"to\",type:\"address\"},{indexed:!1,name:\"value\",type:\"uint256\"}]},{type:\"function\",name:\"allowance\",stateMutability:\"view\",inputs:[{name:\"owner\",type:\"address\"},{name:\"spender\",type:\"address\"}],outputs:[{type:\"uint256\"}]},{type:\"function\",name:\"approve\",stateMutability:\"nonpayable\",inputs:[{name:\"spender\",type:\"address\"},{name:\"amount\",type:\"uint256\"}],outputs:[{type:\"bool\"}]},{type:\"function\",name:\"balanceOf\",stateMutability:\"view\",inputs:[{name:\"account\",type:\"address\"}],outputs:[{type:\"uint256\"}]},{type:\"function\",name:\"decimals\",stateMutability:\"view\",inputs:[],outputs:[{type:\"uint8\"}]},{type:\"function\",name:\"name\",stateMutability:\"view\",inputs:[],outputs:[{type:\"string\"}]},{type:\"function\",name:\"symbol\",stateMutability:\"view\",inputs:[],outputs:[{type:\"string\"}]},{type:\"function\",name:\"totalSupply\",stateMutability:\"view\",inputs:[],outputs:[{type:\"uint256\"}]},{type:\"function\",name:\"transfer\",stateMutability:\"nonpayable\",inputs:[{name:\"recipient\",type:\"address\"},{name:\"amount\",type:\"uint256\"}],outputs:[{type:\"bool\"}]},{type:\"function\",name:\"transferFrom\",stateMutability:\"nonpayable\",inputs:[{name:\"sender\",type:\"address\"},{name:\"recipient\",type:\"address\"},{name:\"amount\",type:\"uint256\"}],outputs:[{type:\"bool\"}]}]});function xf(t){let{abi:e,args:n,functionName:r,data:o}=t,i=e[0];if(r){let c=pf({abi:e,args:n,name:r});if(!c)throw new F0(r,{docsPath:fY});i=c}if(i.type!==\"function\")throw new F0(void 0,{docsPath:fY});if(!i.outputs)throw new _4(i.name,{docsPath:fY});let a=H0(i.outputs,o);if(a&&a.length>1)return a;if(a&&a.length===1)return a[0]}var fY,gx=ce(()=>{p();Es();N4();Vw();fY=\"/docs/contract/decodeFunctionResult\"});function ame(t){let{abi:e,args:n,functionName:r}=t,o=e[0];if(r){let i=pf({abi:e,args:n,name:r});if(!i)throw new F0(r,{docsPath:sme});o=i}if(o.type!==\"function\")throw new F0(void 0,{docsPath:sme});return{abi:[o],functionName:Iy(mc(o))}}var sme,cme=ce(()=>{p();Es();O4();rv();Vw();sme=\"/docs/contract/encodeFunctionData\"});function yo(t){let{args:e}=t,{abi:n,functionName:r}=t.abi.length===1&&t.functionName?.startsWith(\"0x\")?t:ame(t),o=n[0],i=r,a=\"inputs\"in o&&o.inputs?vl(o.inputs,e??[]):void 0;return fa([i,a??\"0x\"])}var Ef=ce(()=>{p();iu();Py();cme()});function fC(t,e){if(!(t instanceof Be))return!1;let n=t.walk(r=>r instanceof $w);return n instanceof $w?!!(n.data?.errorName===\"ResolverNotFound\"||n.data?.errorName===\"ResolverWildcardNotSupported\"||n.data?.errorName===\"ResolverNotContract\"||n.data?.errorName===\"ResolverError\"||n.data?.errorName===\"HttpError\"||n.reason?.includes(\"Wildcard on non-extended resolvers is not supported\")||e===\"reverse\"&&n.reason===DL[50]):!1}var JB=ce(()=>{p();yR();ir();ov()});function lme(t){let{abi:e,data:n}=t,r=Hp(n,0,4),o=e.find(i=>i.type===\"function\"&&r===Iy(mc(i)));if(!o)throw new VL(r,{docsPath:\"/docs/contract/decodeFunctionData\"});return{functionName:o.name,args:\"inputs\"in o&&o.inputs&&o.inputs.length>0?H0(o.inputs,Hp(n,4)):void 0}}var ume=ce(()=>{p();Es();nv();O4();N4();rv()});function pY(t){let{abi:e,errorName:n,args:r}=t,o=e[0];if(n){let u=pf({abi:e,args:r,name:n});if(!u)throw new wR(n,{docsPath:hY});o=u}if(o.type!==\"error\")throw new wR(void 0,{docsPath:hY});let i=mc(o),a=Iy(i),c=\"0x\";if(r&&r.length>0){if(!o.inputs)throw new qL(o.name,{docsPath:hY});c=vl(o.inputs,r)}return fa([a,c])}var hY,dme=ce(()=>{p();Es();iu();O4();Py();rv();Vw();hY=\"/docs/contract/encodeErrorResult\"});function fme(t){let{abi:e,functionName:n,result:r}=t,o=e[0];if(n){let a=pf({abi:e,name:n});if(!a)throw new F0(n,{docsPath:mY});o=a}if(o.type!==\"function\")throw new F0(void 0,{docsPath:mY});if(!o.outputs)throw new _4(o.name,{docsPath:mY});let i=(()=>{if(o.outputs.length===0)return[];if(o.outputs.length===1)return[r];if(Array.isArray(r))return r;throw new A4(r)})();return vl(o.outputs,i)}var mY,hme=ce(()=>{p();Es();Py();Vw();mY=\"/docs/contract/encodeFunctionResult\"});async function pme(t){let{data:e,ccipRequest:n}=t,{args:[r]}=lme({abi:ZB,data:e}),o=[],i=[];return await Promise.all(r.map(async(a,c)=>{try{i[c]=await n(a),o[c]=!1}catch(u){o[c]=!0,i[c]=zze(u)}})),fme({abi:ZB,functionName:\"query\",result:[o,i]})}function zze(t){return t.name===\"HttpRequestError\"&&t.status?pY({abi:ZB,errorName:\"HttpError\",args:[t.status,t.shortMessage]}):pY({abi:[FL],errorName:\"Error\",args:[\"shortMessage\"in t?t.shortMessage:t.message]})}var hC,XB=ce(()=>{p();bv();yR();ume();dme();hme();hC=\"x-batch-gateway:true\"});function eD(t){if(t.length!==66||t.indexOf(\"[\")!==0||t.indexOf(\"]\")!==65)return null;let e=`0x${t.slice(1,65)}`;return da(e)?e:null}var gY=ce(()=>{p();P0()});function vv(t){let e=new Uint8Array(32).fill(0);if(!t)return Xr(e);let n=t.split(\".\");for(let r=n.length-1;r>=0;r-=1){let o=eD(n[r]),i=o?Lp(o):Po(M0(n[r]),\"bytes\");e=Po(Da([e,i]),\"bytes\")}return Xr(e)}var tD=ce(()=>{p();iu();hc();gn();zp();gY()});function mme(t){return`[${t.slice(2)}]`}var gme=ce(()=>{p()});function yme(t){let e=new Uint8Array(32).fill(0);return t?eD(t)||Po(M0(t)):Xr(e)}var bme=ce(()=>{p();hc();gn();zp();gY()});function yx(t){let e=t.replace(/^\\\\.|\\\\.$/gm,\"\");if(e.length===0)return new Uint8Array(1);let n=new Uint8Array(M0(e).byteLength+2),r=0,o=e.split(\".\");for(let i=0;i<o.length;i++){let a=M0(o[i]);a.byteLength>255&&(a=M0(mme(yme(o[i])))),n[r]=a.length,n.set(a,r+1),r+=a.length+1}return n.byteLength!==r+1?n.slice(0,r+1):n}var h9=ce(()=>{p();hc();gme();bme()});function wh(t,{abi:e,address:n,args:r,docsPath:o,functionName:i,sender:a}){let c=t instanceof q0?t:t instanceof Be?t.walk(E=>\"data\"in E)||t.walk():{},{code:u,data:d,details:h,message:m,shortMessage:g}=c,b=t instanceof Vp?new jR({functionName:i}):[Hze,My.code].includes(u)&&(d||h||m||g)?new $w({abi:e,data:typeof d==\"object\"?d.data:d,functionName:i,message:c instanceof Kw?h:g??m}):t;return new L5(b,{abi:e,args:r,contractAddress:n,docsPath:o,functionName:i,sender:a})}var Hze,_6=ce(()=>{p();Es();ir();ov();B5();X5();Hze=3});var vme,wme=ce(()=>{p();vme=\"0.1.1\"});function xme(){return vme}var Eme=ce(()=>{p();wme()});function Sme(t,e){return e?.(t)?t:t&&typeof t==\"object\"&&\"cause\"in t&&t.cause?Sme(t.cause,e):e?null:t}var qo,bx=ce(()=>{p();Eme();qo=class t extends Error{constructor(e,n={}){let r=(()=>{if(n.cause instanceof t){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&\"details\"in n.cause&&typeof n.cause.details==\"string\"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),o=n.cause instanceof t&&n.cause.docsPath||n.docsPath,a=`https://oxlib.sh${o??\"\"}`,c=[e||\"An error occurred.\",...n.metaMessages?[\"\",...n.metaMessages]:[],...r||o?[\"\",r?`Details: ${r}`:void 0,o?`See: ${a}`:void 0]:[]].filter(u=>typeof u==\"string\").join(`\\n`);super(c,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docs\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docsPath\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"shortMessage\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"BaseError\"}),Object.defineProperty(this,\"version\",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${xme()}`}),this.cause=n.cause,this.details=r,this.docs=a,this.docsPath=o,this.shortMessage=e}walk(e){return Sme(this,e)}}});function kme(t,e,n){return JSON.stringify(t,(r,o)=>typeof e==\"function\"?e(r,o):typeof o==\"bigint\"?o.toString()+qze:o,n)}var qze,_me=ce(()=>{p();qze=\"#__bigint\"});function Cme(t,e){if(yY(t)>e)throw new nD({givenSize:yY(t),maxSize:e})}function bY(t){if(t>=wv.zero&&t<=wv.nine)return t-wv.zero;if(t>=wv.A&&t<=wv.F)return t-(wv.A-10);if(t>=wv.a&&t<=wv.f)return t-(wv.a-10)}function Ame(t,e={}){let{dir:n,size:r=32}=e;if(r===0)return t;if(t.length>r)throw new rD({size:t.length,targetSize:r,type:\"Bytes\"});let o=new Uint8Array(r);for(let i=0;i<r;i++){let a=n===\"right\";o[a?i:r-i-1]=t[a?i:t.length-i-1]}return o}var wv,Tme=ce(()=>{p();oD();wv={zero:48,nine:57,A:65,F:70,a:97,f:102}});function p9(t,e){if(Nc(t)>e)throw new iD({givenSize:Nc(t),maxSize:e})}function Rme(t,e){if(typeof e==\"number\"&&e>0&&e>Nc(t)-1)throw new m9({offset:e,position:\"start\",size:Nc(t)})}function Ime(t,e,n){if(typeof e==\"number\"&&typeof n==\"number\"&&Nc(t)!==n-e)throw new m9({offset:n,position:\"end\",size:Nc(t)})}function wY(t,e={}){let{dir:n,size:r=32}=e;if(r===0)return t;let o=t.replace(\"0x\",\"\");if(o.length>r*2)throw new sD({size:Math.ceil(o.length/2),targetSize:r,type:\"Hex\"});return`0x${o[n===\"right\"?\"padEnd\":\"padStart\"](r*2,\"0\")}`}var xY=ce(()=>{p();J0()});function Pme(t){return t instanceof Uint8Array?t:typeof t==\"string\"?Gze(t):Kze(t)}function Kze(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function Gze(t,e={}){let{size:n}=e,r=t;n&&(p9(t,n),r=zy(t,n));let o=r.slice(2);o.length%2&&(o=`0${o}`);let i=o.length/2,a=new Uint8Array(i);for(let c=0,u=0;c<i;c++){let d=bY(o.charCodeAt(u++)),h=bY(o.charCodeAt(u++));if(d===void 0||h===void 0)throw new qo(`Invalid byte sequence (\"${o[u-2]}${o[u-1]}\" in \"${o}\").`);a[c]=d*16+h}return a}function Mme(t,e={}){let{size:n}=e,r=$ze.encode(t);return typeof n==\"number\"?(Cme(r,n),Zze(r,n)):r}function Zze(t,e){return Ame(t,{dir:\"right\",size:e})}function yY(t){return t.length}var $ze,nD,rD,oD=ce(()=>{p();bx();J0();Tme();xY();$ze=new TextEncoder;nD=class extends qo{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \\\\`${n}\\\\` bytes. Given size: \\\\`${e}\\\\` bytes.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Bytes.SizeOverflowError\"})}},rD=class extends qo{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\\\\`${e}\\\\`) exceeds padding size (\\\\`${n}\\\\`).`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Bytes.SizeExceedsPaddingSizeError\"})}}});function Jze(t,e={}){let{strict:n=!1}=e;if(!t)throw new aD(t);if(typeof t!=\"string\")throw new aD(t);if(n&&!/^0x[0-9a-fA-F]*$/.test(t))throw new cD(t);if(!t.startsWith(\"0x\"))throw new cD(t)}function Sf(...t){return`0x${t.reduce((e,n)=>e+n.replace(\"0x\",\"\"),\"\")}`}function lD(t,e={}){let n=`0x${Number(t)}`;return typeof e.size==\"number\"?(p9(n,e.size),xv(n,e.size)):n}function pC(t,e={}){let n=\"\";for(let o=0;o<t.length;o++)n+=Qze[t[o]];let r=`0x${n}`;return typeof e.size==\"number\"?(p9(r,e.size),zy(r,e.size)):r}function Ua(t,e={}){let{signed:n,size:r}=e,o=BigInt(t),i;r?n?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof t==\"number\"&&(i=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof i==\"bigint\"&&n?-i-1n:0;if(i&&o>i||o<a){let d=typeof t==\"bigint\"?\"n\":\"\";throw new g9({max:i?`${i}${d}`:void 0,min:`${a}${d}`,signed:n,size:r,value:`${t}${d}`})}let u=`0x${(n&&o<0?(1n<<BigInt(r*8))+BigInt(o):o).toString(16)}`;return r?xv(u,r):u}function mC(t,e={}){return pC(Yze.encode(t),e)}function xv(t,e){return wY(t,{dir:\"left\",size:e})}function zy(t,e){return wY(t,{dir:\"right\",size:e})}function gC(t,e,n,r={}){let{strict:o}=r;Rme(t,e);let i=`0x${t.replace(\"0x\",\"\").slice((e??0)*2,(n??t.length)*2)}`;return o&&Ime(i,e,n),i}function Nc(t){return Math.ceil((t.length-2)/2)}function EY(t,e={}){let{strict:n=!1}=e;try{return Jze(t,{strict:n}),!0}catch{return!1}}var Yze,Qze,g9,aD,cD,iD,m9,sD,J0=ce(()=>{p();bx();_me();xY();Yze=new TextEncoder,Qze=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));g9=class extends qo{constructor({max:e,min:n,signed:r,size:o,value:i}){super(`Number \\\\`${i}\\\\` is not in safe${o?` ${o*8}-bit`:\"\"}${r?\" signed\":\" unsigned\"} integer range ${e?`(\\\\`${n}\\\\` to \\\\`${e}\\\\`)`:`(above \\\\`${n}\\\\`)`}`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.IntegerOutOfRangeError\"})}},aD=class extends qo{constructor(e){super(`Value \\\\`${typeof e==\"object\"?kme(e):e}\\\\` of type \\\\`${typeof e}\\\\` is an invalid hex type.`,{metaMessages:[\\'Hex types must be represented as `\"0x${string}\"`.\\']}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.InvalidHexTypeError\"})}},cD=class extends qo{constructor(e){super(`Value \\\\`${e}\\\\` is an invalid hex value.`,{metaMessages:[\\'Hex values must start with `\"0x\"` and contain only hexadecimal characters (0-9, a-f, A-F).\\']}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.InvalidHexValueError\"})}},iD=class extends qo{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \\\\`${n}\\\\` bytes. Given size: \\\\`${e}\\\\` bytes.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.SizeOverflowError\"})}},m9=class extends qo{constructor({offset:e,position:n,size:r}){super(`Slice ${n===\"start\"?\"starting\":\"ending\"} at offset \\\\`${e}\\\\` is out-of-bounds (size: \\\\`${r}\\\\`).`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.SliceOffsetOutOfBoundsError\"})}},sD=class extends qo{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\\\\`${e}\\\\`) exceeds padding size (\\\\`${n}\\\\`).`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Hex.SizeExceedsPaddingSizeError\"})}}});function Nme(t){return{address:t.address,amount:Ua(t.amount),index:Ua(t.index),validatorIndex:Ua(t.validatorIndex)}}var Lme=ce(()=>{p();J0()});function uD(t){return{...typeof t.baseFeePerGas==\"bigint\"&&{baseFeePerGas:Ua(t.baseFeePerGas)},...typeof t.blobBaseFee==\"bigint\"&&{blobBaseFee:Ua(t.blobBaseFee)},...typeof t.feeRecipient==\"string\"&&{feeRecipient:t.feeRecipient},...typeof t.gasLimit==\"bigint\"&&{gasLimit:Ua(t.gasLimit)},...typeof t.number==\"bigint\"&&{number:Ua(t.number)},...typeof t.prevRandao==\"bigint\"&&{prevRandao:Ua(t.prevRandao)},...typeof t.time==\"bigint\"&&{time:Ua(t.time)},...t.withdrawals&&{withdrawals:t.withdrawals.map(Nme)}}}var SY=ce(()=>{p();J0();Lme()});var Dme,Fme=ce(()=>{p();Dme=\"0x82ad56cb\"});var dD,Ume,jme,fD=ce(()=>{p();dD=\"0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe\",Ume=\"0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe\",jme=\"0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572\"});function yC(){let t=()=>{},e=()=>{};return{promise:new Promise((r,o)=>{t=r,e=o}),resolve:t,reject:e}}var hD=ce(()=>{p()});function pD({fn:t,id:e,shouldSplitBatch:n,wait:r=0,sort:o}){let i=async()=>{let h=u();a();let m=h.map(({args:g})=>g);m.length!==0&&t(m).then(g=>{o&&Array.isArray(g)&&g.sort(o);for(let b=0;b<h.length;b++){let{resolve:E}=h[b];E?.([g[b],g])}}).catch(g=>{for(let b=0;b<h.length;b++){let{reject:E}=h[b];E?.(g)}})},a=()=>kY.delete(e),c=()=>u().map(({args:h})=>h),u=()=>kY.get(e)||[],d=h=>kY.set(e,[...u(),h]);return{flush:a,async schedule(h){let{promise:m,resolve:g,reject:b}=yC();return n?.([...c(),h])&&i(),u().length>0?(d({args:h,resolve:g,reject:b}),m):(d({args:h,resolve:g,reject:b}),setTimeout(i,r),m)}}}var kY,_Y=ce(()=>{p();hD();kY=new Map});var mD,gD,yD,zme=ce(()=>{p();au();ir();dB();mD=class extends Be{constructor({callbackSelector:e,cause:n,data:r,extraData:o,sender:i,urls:a}){super(n.shortMessage||\"An error occurred while fetching for an offchain result.\",{cause:n,metaMessages:[...n.metaMessages||[],n.metaMessages?.length?\"\":[],\"Offchain Gateway Call:\",a&&[\"  Gateway URL(s):\",...a.map(c=>`    ${M5(c)}`)],`  Sender: ${i}`,`  Data: ${r}`,`  Callback selector: ${e}`,`  Extra data: ${o}`].flat(),name:\"OffchainLookupError\"})}},gD=class extends Be{constructor({result:e,url:n}){super(\"Offchain gateway response is malformed. Response data must be a hex value.\",{metaMessages:[`Gateway URL: ${M5(n)}`,`Response: ${qr(e)}`],name:\"OffchainLookupResponseMalformedError\"})}},yD=class extends Be{constructor({sender:e,to:n}){super(\"Reverted sender address does not match target contract address (`to`).\",{metaMessages:[`Contract address: ${n}`,`OffchainLookup sender address: ${e}`],name:\"OffchainLookupSenderMismatchError\"})}}});function Hy(t,e){if(!Kr(t,{strict:!1}))throw new ci({address:t});if(!Kr(e,{strict:!1}))throw new ci({address:e});return t.toLowerCase()===e.toLowerCase()}var bC=ce(()=>{p();D0();hf()});var Wme={};ld(Wme,{ccipRequest:()=>qme,offchainLookup:()=>tHe,offchainLookupAbiItem:()=>Hme,offchainLookupSignature:()=>eHe});async function tHe(t,{blockNumber:e,blockTag:n,data:r,to:o}){let{args:i}=cB({data:r,abi:[Hme]}),[a,c,u,d,h]=i,{ccipRead:m}=t,g=m&&typeof m?.request==\"function\"?m.request:qme;try{if(!Hy(o,a))throw new yD({sender:a,to:o});let b=c.includes(hC)?await pme({data:u,ccipRequest:g}):await g({data:u,sender:a,urls:c}),{data:E}=await xh(t,{blockNumber:e,blockTag:n,data:Da([d,vl([{type:\"bytes\"},{type:\"bytes\"}],[b,h])]),to:o});return E}catch(b){throw new mD({callbackSelector:d,cause:b,data:r,extraData:h,sender:a,urls:c})}}async function qme({data:t,sender:e,urls:n}){let r=new Error(\"An unknown error occurred.\");for(let o=0;o<n.length;o++){let i=n[o],a=i.includes(\"{data}\")?\"GET\":\"POST\",c=a===\"POST\"?{data:t,sender:e}:void 0,u=a===\"POST\"?{\"Content-Type\":\"application/json\"}:{};try{let d=await fetch(i.replace(\"{sender}\",e.toLowerCase()).replace(\"{data}\",t),{body:JSON.stringify(c),headers:u,method:a}),h;if(d.headers.get(\"Content-Type\")?.startsWith(\"application/json\")?h=(await d.json()).data:h=await d.text(),!d.ok){r=new $p({body:c,details:h?.error?qr(h.error):d.statusText,headers:d.headers,status:d.status,url:i});continue}if(!da(h)){r=new gD({result:h,url:i});continue}return h}catch(d){r=new $p({body:c,details:d.message,url:i})}}throw r}var eHe,Hme,Vme=ce(()=>{p();A6();zme();B5();iZ();Py();bC();iu();P0();XB();au();eHe=\"0x556f1830\",Hme={name:\"OffchainLookup\",type:\"error\",inputs:[{name:\"sender\",type:\"address\"},{name:\"urls\",type:\"string[]\"},{name:\"callData\",type:\"bytes\"},{name:\"callbackFunction\",type:\"bytes4\"},{name:\"extraData\",type:\"bytes\"}]}});async function xh(t,e){let{account:n=t.account,authorizationList:r,batch:o=!!t.batch?.multicall,blockNumber:i,blockTag:a=\"latest\",accessList:c,blobs:u,blockOverrides:d,code:h,data:m,factory:g,factoryData:b,gas:E,gasPrice:C,maxFeePerBlobGas:T,maxFeePerGas:R,maxPriorityFeePerGas:L,nonce:D,to:G,value:W,stateOverride:J,...ne}=e,ie=n?Wn(n):void 0;if(h&&(g||b))throw new Be(\"Cannot provide both `code` & `factory`/`factoryData` as parameters.\");if(h&&G)throw new Be(\"Cannot provide both `code` & `to` as parameters.\");let Z=h&&m,ae=g&&b&&G&&m,V=Z||ae,$=Z?oHe({code:h,data:m}):ae?iHe({data:m,factory:g,factoryData:b,to:G}):m;try{gf(e);let _=(typeof i==\"bigint\"?Ye(i):void 0)||a,O=d?uD(d):void 0,z=sC(J),N=t.chain?.formatters?.transactionRequest?.format,j=(N||Bp)({...Yw(ne,{format:N}),from:ie?.address,accessList:c,authorizationList:r,blobs:u,data:$,gas:E,gasPrice:C,maxFeePerBlobGas:T,maxFeePerGas:R,maxPriorityFeePerGas:L,nonce:D,to:V?void 0:G,value:W});if(o&&nHe({request:j})&&!z&&!O)try{return await rHe(t,{...j,blockNumber:i,blockTag:a})}catch(I){if(!(I instanceof lR)&&!(I instanceof A5))throw I}let q=(()=>{let I=[j,_];return z&&O?[...I,z,O]:z?[...I,z]:O?[...I,{},O]:I})(),H=await t.request({method:\"eth_call\",params:q});return H===\"0x\"?{data:void 0}:{data:H}}catch(F){let _=sHe(F),{offchainLookup:O,offchainLookupSignature:z}=await Promise.resolve().then(()=>(Vme(),Wme));if(t.ccipRead!==!1&&_?.slice(0,10)===z&&G)return{data:await O(t,{data:_,to:G})};throw V&&_?.slice(0,10)===\"0x101bb98d\"?new zR({factory:g}):fB(F,{...e,account:ie,chain:t.chain})}}function nHe({request:t}){let{data:e,to:n,...r}=t;return!(!e||e.startsWith(Dme)||!n||Object.values(r).filter(o=>typeof o<\"u\").length>0)}async function rHe(t,e){let{batchSize:n=1024,wait:r=0}=typeof t.batch?.multicall==\"object\"?t.batch.multicall:{},{blockNumber:o,blockTag:i=\"latest\",data:a,multicallAddress:c,to:u}=e,d=c;if(!d){if(!t.chain)throw new lR;d=Wp({blockNumber:o,chain:t.chain,contract:\"multicall3\"})}let m=(typeof o==\"bigint\"?Ye(o):void 0)||i,{schedule:g}=pD({id:`${t.uid}.${m}`,wait:r,shouldSplitBatch(C){return C.reduce((R,{data:L})=>R+(L.length-2),0)>n*2},fn:async C=>{let T=C.map(D=>({allowFailure:!0,callData:D.data,target:D.to})),R=yo({abi:dC,args:[T],functionName:\"aggregate3\"}),L=await t.request({method:\"eth_call\",params:[{data:R,to:d},m]});return xf({abi:dC,args:[T],functionName:\"aggregate3\",data:L||\"0x\"})}}),[{returnData:b,success:E}]=await g({data:a,to:u});if(!E)throw new q0({data:b});return b===\"0x\"?{data:void 0}:{data:b}}function oHe(t){let{code:e,data:n}=t;return h6({abi:P5([\"constructor(bytes, bytes)\"]),bytecode:dD,args:[e,n]})}function iHe(t){let{data:e,factory:n,factoryData:r,to:o}=t;return h6({abi:P5([\"constructor(address, bytes, address, bytes)\"]),bytecode:Ume,args:[o,e,n,r]})}function sHe(t){if(!(t instanceof Be))return;let e=t.walk();return typeof e?.data==\"object\"?e.data?.data:e.data}var A6=ce(()=>{p();DR();SY();js();bv();Fme();fD();ir();uR();ov();gx();kB();Ef();I5();gn();lZ();VR();b5();_Y();WB();Qw()});async function ja(t,e){let{abi:n,address:r,args:o,functionName:i,...a}=e,c=yo({abi:n,args:o,functionName:i});try{let{data:u}=await Lt(t,xh,\"call\")({...a,data:c,to:r});return xf({abi:n,args:o,functionName:i,data:u||\"0x\"})}catch(u){throw wh(u,{abi:n,address:r,args:o,docsPath:\"/docs/contract/readContract\",functionName:i})}}var qy=ce(()=>{p();gx();Ef();_6();ki();A6()});async function $me(t,e){let{blockNumber:n,blockTag:r,coinType:o,name:i,gatewayUrls:a,strict:c}=e,{chain:u}=t,d=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!u)throw new Error(\"client chain not configured. universalResolverAddress is required.\");return Wp({blockNumber:n,chain:u,contract:\"ensUniversalResolver\"})})(),h=u?.ensTlds;if(h&&!h.some(m=>i.endsWith(m)))return null;try{let m=yo({abi:dY,functionName:\"addr\",...o!=null?{args:[vv(i),BigInt(o)]}:{args:[vv(i)]}}),g={address:d,abi:YB,functionName:\"resolve\",args:[Uo(yx(i)),m,a??[hC]],blockNumber:n,blockTag:r},E=await Lt(t,ja,\"readContract\")(g);if(E[0]===\"0x\")return null;let C=xf({abi:dY,args:o!=null?[vv(i),BigInt(o)]:void 0,functionName:\"addr\",data:E[0]});return C===\"0x\"||Fs(C)===\"0x00\"?null:C}catch(m){if(c)throw m;if(fC(m,\"resolve\"))return null;throw m}}var Kme=ce(()=>{p();bv();gx();Ef();I5();Pw();gn();JB();XB();tD();h9();ki();qy()});var bD,vx,vC,vD,Gme=ce(()=>{p();ir();bD=class extends Be{constructor({data:e}){super(\"Unable to extract image from metadata. The metadata may be malformed or invalid.\",{metaMessages:[\"- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.\",\"\",`Provided data: ${JSON.stringify(e)}`],name:\"EnsAvatarInvalidMetadataError\"})}},vx=class extends Be{constructor({reason:e}){super(`ENS NFT avatar URI is invalid. ${e}`,{name:\"EnsAvatarInvalidNftUriError\"})}},vC=class extends Be{constructor({uri:e}){super(`Unable to resolve ENS avatar URI \"${e}\". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:\"EnsAvatarUriResolutionError\"})}},vD=class extends Be{constructor({namespace:e}){super(`ENS NFT avatar namespace \"${e}\" is not supported. Must be \"erc721\" or \"erc1155\".`,{name:\"EnsAvatarUnsupportedNamespaceError\"})}}});async function dHe(t){try{let e=await fetch(t,{method:\"HEAD\"});return e.status===200?e.headers.get(\"content-type\")?.startsWith(\"image/\"):!1}catch(e){return typeof e==\"object\"&&typeof e.response<\"u\"||!globalThis.hasOwnProperty(\"Image\")?!1:new Promise(n=>{let r=new Image;r.onload=()=>{n(!0)},r.onerror=()=>{n(!1)},r.src=t})}}function Zme(t,e){return t?t.endsWith(\"/\")?t.slice(0,-1):t:e}function CY({uri:t,gatewayUrls:e}){let n=lHe.test(t);if(n)return{uri:t,isOnChain:!0,isEncoded:n};let r=Zme(e?.ipfs,\"https://ipfs.io\"),o=Zme(e?.arweave,\"https://arweave.net\"),i=t.match(aHe),{protocol:a,subpath:c,target:u,subtarget:d=\"\"}=i?.groups||{},h=a===\"ipns:/\"||c===\"ipns/\",m=a===\"ipfs:/\"||c===\"ipfs/\"||cHe.test(t);if(t.startsWith(\"http\")&&!h&&!m){let b=t;return e?.arweave&&(b=t.replace(/https:\\\\/\\\\/arweave.net/g,e?.arweave)),{uri:b,isOnChain:!1,isEncoded:!1}}if((h||m)&&u)return{uri:`${r}/${h?\"ipns\":\"ipfs\"}/${u}${d}`,isOnChain:!1,isEncoded:!1};if(a===\"ar:/\"&&u)return{uri:`${o}/${u}${d||\"\"}`,isOnChain:!1,isEncoded:!1};let g=t.replace(uHe,\"\");if(g.startsWith(\"<svg\")&&(g=`data:image/svg+xml;base64,${btoa(g)}`),g.startsWith(\"data:\")||g.startsWith(\"{\"))return{uri:g,isOnChain:!0,isEncoded:!1};throw new vC({uri:t})}function AY(t){if(typeof t!=\"object\"||!(\"image\"in t)&&!(\"image_url\"in t)&&!(\"image_data\"in t))throw new bD({data:t});return t.image||t.image_url||t.image_data}async function Yme({gatewayUrls:t,uri:e}){try{let n=await fetch(e).then(o=>o.json());return await wD({gatewayUrls:t,uri:AY(n)})}catch{throw new vC({uri:e})}}async function wD({gatewayUrls:t,uri:e}){let{uri:n,isOnChain:r}=CY({uri:e,gatewayUrls:t});if(r||await dHe(n))return n;throw new vC({uri:e})}function Qme(t){let e=t;e.startsWith(\"did:nft:\")&&(e=e.replace(\"did:nft:\",\"\").replace(/_/g,\"/\"));let[n,r,o]=e.split(\"/\"),[i,a]=n.split(\":\"),[c,u]=r.split(\":\");if(!i||i.toLowerCase()!==\"eip155\")throw new vx({reason:\"Only EIP-155 supported\"});if(!a)throw new vx({reason:\"Chain ID not found\"});if(!u)throw new vx({reason:\"Contract address not found\"});if(!o)throw new vx({reason:\"Token ID not found\"});if(!c)throw new vx({reason:\"ERC namespace not found\"});return{chainID:Number.parseInt(a),namespace:c.toLowerCase(),contractAddress:u,tokenID:o}}async function Jme(t,{nft:e}){if(e.namespace===\"erc721\")return ja(t,{address:e.contractAddress,abi:[{name:\"tokenURI\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"tokenId\",type:\"uint256\"}],outputs:[{name:\"\",type:\"string\"}]}],functionName:\"tokenURI\",args:[BigInt(e.tokenID)]});if(e.namespace===\"erc1155\")return ja(t,{address:e.contractAddress,abi:[{name:\"uri\",type:\"function\",stateMutability:\"view\",inputs:[{name:\"_id\",type:\"uint256\"}],outputs:[{name:\"\",type:\"string\"}]}],functionName:\"uri\",args:[BigInt(e.tokenID)]});throw new vD({namespace:e.namespace})}var aHe,cHe,lHe,uHe,Xme=ce(()=>{p();qy();Gme();aHe=/(?<protocol>https?:\\\\/\\\\/[^\\\\/]*|ipfs:\\\\/|ipns:\\\\/|ar:\\\\/)?(?<root>\\\\/)?(?<subpath>ipfs\\\\/|ipns\\\\/)?(?<target>[\\\\w\\\\-.]+)(?<subtarget>\\\\/.*)?/,cHe=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\\\\/(?<target>[\\\\w\\\\-.]+))?(?<subtarget>\\\\/.*)?$/,lHe=/^data:([a-zA-Z\\\\-/+]*);base64,([^\"].*)/,uHe=/^data:([a-zA-Z\\\\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/});async function e0e(t,{gatewayUrls:e,record:n}){return/eip155:/i.test(n)?fHe(t,{gatewayUrls:e,record:n}):wD({uri:n,gatewayUrls:e})}async function fHe(t,{gatewayUrls:e,record:n}){let r=Qme(n),o=await Jme(t,{nft:r}),{uri:i,isOnChain:a,isEncoded:c}=CY({uri:o,gatewayUrls:e});if(a&&(i.includes(\"data:application/json;base64,\")||i.startsWith(\"{\"))){let d=c?atob(i.replace(\"data:application/json;base64,\",\"\")):i,h=JSON.parse(d);return wD({uri:AY(h),gatewayUrls:e})}let u=r.tokenID;return r.namespace===\"erc1155\"&&(u=u.replace(\"0x\",\"\").padStart(64,\"0\")),Yme({gatewayUrls:e,uri:i.replace(/(?:0x)?{id}/,u)})}var t0e=ce(()=>{p();Xme()});async function xD(t,e){let{blockNumber:n,blockTag:r,key:o,name:i,gatewayUrls:a,strict:c}=e,{chain:u}=t,d=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!u)throw new Error(\"client chain not configured. universalResolverAddress is required.\");return Wp({blockNumber:n,chain:u,contract:\"ensUniversalResolver\"})})(),h=u?.ensTlds;if(h&&!h.some(m=>i.endsWith(m)))return null;try{let m={address:d,abi:YB,functionName:\"resolve\",args:[Uo(yx(i)),yo({abi:uY,functionName:\"text\",args:[vv(i),o]}),a??[hC]],blockNumber:n,blockTag:r},b=await Lt(t,ja,\"readContract\")(m);if(b[0]===\"0x\")return null;let E=xf({abi:uY,functionName:\"text\",data:b[0]});return E===\"\"?null:E}catch(m){if(c)throw m;if(fC(m,\"resolve\"))return null;throw m}}var TY=ce(()=>{p();bv();gx();Ef();I5();gn();JB();XB();tD();h9();ki();qy()});async function n0e(t,{blockNumber:e,blockTag:n,assetGatewayUrls:r,name:o,gatewayUrls:i,strict:a,universalResolverAddress:c}){let u=await Lt(t,xD,\"getEnsText\")({blockNumber:e,blockTag:n,key:\"avatar\",name:o,universalResolverAddress:c,gatewayUrls:i,strict:a});if(!u)return null;try{return await e0e(t,{record:u,gatewayUrls:r})}catch{return null}}var r0e=ce(()=>{p();t0e();ki();TY()});async function o0e(t,{address:e,blockNumber:n,blockTag:r,gatewayUrls:o,strict:i,universalResolverAddress:a}){let c=a;if(!c){if(!t.chain)throw new Error(\"client chain not configured. universalResolverAddress is required.\");c=Wp({blockNumber:n,chain:t.chain,contract:\"ensUniversalResolver\"})}let u=`${e.toLowerCase().substring(2)}.addr.reverse`;try{let d={address:c,abi:ime,functionName:\"reverse\",args:[Uo(yx(u))],blockNumber:n,blockTag:r},h=Lt(t,ja,\"readContract\"),[m,g]=o?await h({...d,args:[...d.args,o]}):await h(d);return e.toLowerCase()!==g.toLowerCase()?null:m}catch(d){if(i)throw d;if(fC(d,\"reverse\"))return null;throw d}}var i0e=ce(()=>{p();bv();I5();gn();JB();h9();ki();qy()});async function s0e(t,e){let{blockNumber:n,blockTag:r,name:o}=e,{chain:i}=t,a=(()=>{if(e.universalResolverAddress)return e.universalResolverAddress;if(!i)throw new Error(\"client chain not configured. universalResolverAddress is required.\");return Wp({blockNumber:n,chain:i,contract:\"ensUniversalResolver\"})})(),c=i?.ensTlds;if(c&&!c.some(d=>o.endsWith(d)))throw new Error(`${o} is not a valid ENS TLD (${c?.join(\", \")}) for chain \"${i.name}\" (id: ${i.id}).`);let[u]=await Lt(t,ja,\"readContract\")({address:a,abi:[{inputs:[{type:\"bytes\"}],name:\"findResolver\",outputs:[{type:\"address\"},{type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"}],functionName:\"findResolver\",args:[Uo(yx(o))],blockNumber:n,blockTag:r});return u}var a0e=ce(()=>{p();I5();gn();h9();ki();qy()});async function ED(t,e){let{account:n=t.account,blockNumber:r,blockTag:o=\"latest\",blobs:i,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:d,maxFeePerGas:h,maxPriorityFeePerGas:m,to:g,value:b,...E}=e,C=n?Wn(n):void 0;try{gf(e);let R=(typeof r==\"bigint\"?Ye(r):void 0)||o,L=t.chain?.formatters?.transactionRequest?.format,G=(L||Bp)({...Yw(E,{format:L}),from:C?.address,blobs:i,data:a,gas:c,gasPrice:u,maxFeePerBlobGas:d,maxFeePerGas:h,maxPriorityFeePerGas:m,to:g,value:b}),W=await t.request({method:\"eth_createAccessList\",params:[G,R]});return{accessList:W.accessList,gasUsed:BigInt(W.gasUsed)}}catch(T){throw fB(T,{...e,account:C,chain:t.chain})}}var RY=ce(()=>{p();js();gn();lZ();VR();b5();Qw()});function wx(t,{method:e}){let n={};return t.transport.type===\"fallback\"&&t.transport.onResponse?.(({method:r,response:o,status:i,transport:a})=>{i===\"success\"&&e===r&&(n[o]=a.request)}),r=>n[r]||t.request}var y9=ce(()=>{p()});async function c0e(t){let e=wx(t,{method:\"eth_newBlockFilter\"}),n=await t.request({method:\"eth_newBlockFilter\"});return{id:n,request:e(n),type:\"block\"}}var l0e=ce(()=>{p();y9()});var SD,u0e=ce(()=>{p();ir();SD=class extends Be{constructor(e){super(`Filter type \"${e}\" is not supported.`,{name:\"FilterTypeNotSupportedError\"})}}});function Wy(t){let{abi:e,eventName:n,args:r}=t,o=e[0];if(n){let u=pf({abi:e,name:n});if(!u)throw new xR(n,{docsPath:d0e});o=u}if(o.type!==\"event\")throw new xR(void 0,{docsPath:d0e});let i=mc(o),a=Ww(i),c=[];if(r&&\"inputs\"in o){let u=o.inputs?.filter(h=>\"indexed\"in h&&h.indexed),d=Array.isArray(r)?r:Object.values(r).length>0?u?.map(h=>r[h.name])??[]:[];d.length>0&&(c=u?.map((h,m)=>Array.isArray(d[m])?d[m].map((g,b)=>f0e({param:h,value:d[m][b]})):typeof d[m]<\"u\"&&d[m]!==null?f0e({param:h,value:d[m]}):null)??[])}return[a,...c]}function f0e({param:t,value:e}){if(t.type===\"string\"||t.type===\"bytes\")return Po(Lp(e));if(t.type===\"tuple\"||t.type.match(/^(.*)\\\\[(\\\\d+)?\\\\]$/))throw new SD(t.type);return vl([t],[e])}var d0e,wC=ce(()=>{p();Es();u0e();hc();zp();UR();Py();rv();Vw();d0e=\"/docs/contract/encodeEventTopics\"});async function kD(t,e){let{address:n,abi:r,args:o,eventName:i,fromBlock:a,strict:c,toBlock:u}=e,d=wx(t,{method:\"eth_newFilter\"}),h=i?Wy({abi:r,args:o,eventName:i}):void 0,m=await t.request({method:\"eth_newFilter\",params:[{address:n,fromBlock:typeof a==\"bigint\"?Ye(a):a,toBlock:typeof u==\"bigint\"?Ye(u):u,topics:h}]});return{abi:r,args:o,eventName:i,id:m,request:d(m),strict:!!c,type:\"event\"}}var IY=ce(()=>{p();wC();gn();y9()});async function _D(t,{address:e,args:n,event:r,events:o,fromBlock:i,strict:a,toBlock:c}={}){let u=o??(r?[r]:void 0),d=wx(t,{method:\"eth_newFilter\"}),h=[];u&&(h=[u.flatMap(b=>Wy({abi:[b],eventName:b.name,args:n}))],r&&(h=h[0]));let m=await t.request({method:\"eth_newFilter\",params:[{address:e,fromBlock:typeof i==\"bigint\"?Ye(i):i,toBlock:typeof c==\"bigint\"?Ye(c):c,...h.length?{topics:h}:{}}]});return{abi:u,args:n,eventName:r?r.name:void 0,fromBlock:i,id:m,request:d(m),strict:!!a,toBlock:c,type:\"event\"}}var OY=ce(()=>{p();wC();gn();y9()});async function CD(t){let e=wx(t,{method:\"eth_newPendingTransactionFilter\"}),n=await t.request({method:\"eth_newPendingTransactionFilter\"});return{id:n,request:e(n),type:\"transaction\"}}var PY=ce(()=>{p();y9()});async function h0e(t,e){let{abi:n,address:r,args:o,functionName:i,dataSuffix:a,...c}=e,u=yo({abi:n,args:o,functionName:i});try{return await Lt(t,aC,\"estimateGas\")({data:`${u}${a?a.replace(\"0x\",\"\"):\"\"}`,to:r,...c})}catch(d){let h=c.account?Wn(c.account):void 0;throw wh(d,{abi:n,address:r,args:o,docsPath:\"/docs/contract/estimateContractGas\",functionName:i,sender:h?.address})}}var p0e=ce(()=>{p();js();Ef();_6();ki();$B()});async function m0e(t){let e=await t.request({method:\"eth_blobBaseFee\"});return BigInt(e)}var g0e=ce(()=>{p()});function y0e(t){let e=(o,i)=>({clear:()=>i.delete(o),get:()=>i.get(o),set:a=>i.set(o,a)}),n=e(t,hHe),r=e(t,pHe);return{clear:()=>{n.clear(),r.clear()},promise:n,response:r}}async function b0e(t,{cacheKey:e,cacheTime:n=Number.POSITIVE_INFINITY}){let r=y0e(e),o=r.response.get();if(o&&n>0&&new Date().getTime()-o.created.getTime()<n)return o.data;let i=r.promise.get();i||(i=t(),r.promise.set(i));try{let a=await i;return r.response.set({created:new Date,data:a}),a}finally{r.promise.clear()}}var hHe,pHe,v0e=ce(()=>{p();hHe=new Map,pHe=new Map});async function Vy(t,{cacheTime:e=t.cacheTime}={}){let n=await b0e(()=>t.request({method:\"eth_blockNumber\"}),{cacheKey:mHe(t.uid),cacheTime:e});return BigInt(n)}var mHe,xC=ce(()=>{p();v0e();mHe=t=>`blockNumber.${t}`});async function w0e(t,{blockHash:e,blockNumber:n,blockTag:r=\"latest\"}={}){let o=n!==void 0?Ye(n):void 0,i;return e?i=await t.request({method:\"eth_getBlockTransactionCountByHash\",params:[e]},{dedupe:!0}):i=await t.request({method:\"eth_getBlockTransactionCountByNumber\",params:[o||r]},{dedupe:!!o}),Ei(i)}var x0e=ce(()=>{p();fc();gn()});async function MY(t,{address:e,blockNumber:n,blockTag:r=\"latest\"}){let o=n!==void 0?Ye(n):void 0,i=await t.request({method:\"eth_getCode\",params:[e,o||r]},{dedupe:!!o});if(i!==\"0x\")return i}var E0e=ce(()=>{p();gn()});function EC(t){let{abi:e,data:n,strict:r,topics:o}=t,i=r??!0,[a,...c]=o;if(!a)throw new WL({docsPath:S0e});let u=e.find(C=>C.type===\"event\"&&a===Ww(mc(C)));if(!(u&&\"name\"in u)||u.type!==\"event\")throw new k4(a,{docsPath:S0e});let{name:d,inputs:h}=u,m=h?.some(C=>!(\"name\"in C&&C.name)),g=m?[]:{},b=h.map((C,T)=>[C,T]).filter(([C])=>\"indexed\"in C&&C.indexed);for(let C=0;C<b.length;C++){let[T,R]=b[C],L=c[C];if(!L)throw new Ry({abiItem:u,param:T});g[m?R:T.name||R]=gHe({param:T,value:L})}let E=h.filter(C=>!(\"indexed\"in C&&C.indexed));if(E.length>0){if(n&&n!==\"0x\")try{let C=H0(E,n);if(C)if(m)for(let T=0;T<h.length;T++)g[T]=g[T]??C.shift();else for(let T=0;T<E.length;T++)g[E[T].name]=C[T]}catch(C){if(i)throw C instanceof x4||C instanceof e4?new U0({abiItem:u,data:n,params:E,size:Jr(n)}):C}else if(i)throw new U0({abiItem:u,data:\"0x\",params:E,size:0})}return{eventName:d,args:Object.values(g).length>0?g:void 0}}function gHe({param:t,value:e}){return t.type===\"string\"||t.type===\"bytes\"||t.type===\"tuple\"||t.type.match(/^(.*)\\\\[(\\\\d+)?\\\\]$/)?e:(H0([t],e)||[])[0]}var S0e,AD=ce(()=>{p();Es();Mp();UR();AG();N4();rv();S0e=\"/docs/contract/decodeEventLog\"});function SC(t){let{abi:e,args:n,logs:r,strict:o=!0}=t,i=(()=>{if(t.eventName)return Array.isArray(t.eventName)?t.eventName:[t.eventName]})();return r.map(a=>{try{let c=e.find(d=>d.type===\"event\"&&a.topics[0]===Ww(d));if(!c)return null;let u=EC({...a,abi:[c],strict:o});return i&&!i.includes(u.eventName)||!yHe({args:u.args,inputs:c.inputs,matchArgs:n})?null:{...u,...a}}catch(c){let u,d;if(c instanceof k4)return null;if(c instanceof U0||c instanceof Ry){if(o)return null;u=c.abiItem.name,d=c.abiItem.inputs?.some(h=>!(\"name\"in h&&h.name))}return{...a,args:d?[]:{},eventName:u}}}).filter(Boolean)}function yHe(t){let{args:e,inputs:n,matchArgs:r}=t;if(!r)return!0;if(!e)return!1;function o(i,a,c){try{return i.type===\"address\"?Hy(a,c):i.type===\"string\"||i.type===\"bytes\"?Po(Lp(a))===c:a===c}catch{return!1}}return Array.isArray(e)&&Array.isArray(r)?r.every((i,a)=>{if(i==null)return!0;let c=n[a];return c?(Array.isArray(i)?i:[i]).some(d=>o(c,d,e[a])):!1}):typeof e==\"object\"&&!Array.isArray(e)&&typeof r==\"object\"&&!Array.isArray(r)?Object.entries(r).every(([i,a])=>{if(a==null)return!0;let c=n.find(d=>d.name===i);return c?(Array.isArray(a)?a:[a]).some(d=>o(c,d,e[i])):!1}):!1}var TD=ce(()=>{p();Es();bC();hc();zp();UR();AD()});async function kC(t,{address:e,blockHash:n,fromBlock:r,toBlock:o,event:i,events:a,args:c,strict:u}={}){let d=u??!1,h=a??(i?[i]:void 0),m=[];h&&(m=[h.flatMap(C=>Wy({abi:[C],eventName:C.name,args:a?void 0:c}))],i&&(m=m[0]));let g;n?g=await t.request({method:\"eth_getLogs\",params:[{address:e,topics:m,blockHash:n}]}):g=await t.request({method:\"eth_getLogs\",params:[{address:e,topics:m,fromBlock:typeof r==\"bigint\"?Ye(r):r,toBlock:typeof o==\"bigint\"?Ye(o):o}]});let b=g.map(E=>ou(E));return h?SC({abi:h,args:c,logs:b,strict:d}):b}var RD=ce(()=>{p();wC();TD();gn();Mw()});async function ID(t,e){let{abi:n,address:r,args:o,blockHash:i,eventName:a,fromBlock:c,toBlock:u,strict:d}=e,h=a?pf({abi:n,name:a}):void 0,m=h?void 0:n.filter(g=>g.type===\"event\");return Lt(t,kC,\"getLogs\")({address:r,args:o,blockHash:i,event:h,events:m,fromBlock:c,toBlock:u,strict:d})}var NY=ce(()=>{p();Vw();ki();RD()});var OD,k0e=ce(()=>{p();ir();OD=class extends Be{constructor({address:e}){super(`No EIP-712 domain found on contract \"${e}\".`,{metaMessages:[\"Ensure that:\",`- The contract is deployed at the address \"${e}\".`,\"- `eip712Domain()` function exists on the contract.\",\"- `eip712Domain()` function matches signature to ERC-5267 specification.\"],name:\"Eip712DomainNotFoundError\"})}}});async function _0e(t,e){let{address:n,factory:r,factoryData:o}=e;try{let[i,a,c,u,d,h,m]=await Lt(t,ja,\"readContract\")({abi:bHe,address:n,functionName:\"eip712Domain\",factory:r,factoryData:o});return{domain:{name:a,version:c,chainId:Number(u),verifyingContract:d,salt:h},extensions:m,fields:i}}catch(i){let a=i;throw a.name===\"ContractFunctionExecutionError\"&&a.cause.name===\"ContractFunctionZeroDataError\"?new OD({address:n}):a}}var bHe,C0e=ce(()=>{p();k0e();ki();qy();bHe=[{inputs:[],name:\"eip712Domain\",outputs:[{name:\"fields\",type:\"bytes1\"},{name:\"name\",type:\"string\"},{name:\"version\",type:\"string\"},{name:\"chainId\",type:\"uint256\"},{name:\"verifyingContract\",type:\"address\"},{name:\"salt\",type:\"bytes32\"},{name:\"extensions\",type:\"uint256[]\"}],stateMutability:\"view\",type:\"function\"}]});function A0e(t){return{baseFeePerGas:t.baseFeePerGas.map(e=>BigInt(e)),gasUsedRatio:t.gasUsedRatio,oldestBlock:BigInt(t.oldestBlock),reward:t.reward?.map(e=>e.map(n=>BigInt(n)))}}var T0e=ce(()=>{p()});async function R0e(t,{blockCount:e,blockNumber:n,blockTag:r=\"latest\",rewardPercentiles:o}){let i=typeof n==\"bigint\"?Ye(n):void 0,a=await t.request({method:\"eth_feeHistory\",params:[Ye(e),i||r,o]},{dedupe:!!i});return A0e(a)}var I0e=ce(()=>{p();gn();T0e()});async function xx(t,{filter:e}){let n=\"strict\"in e&&e.strict,r=await e.request({method:\"eth_getFilterChanges\",params:[e.id]});if(typeof r[0]==\"string\")return r;let o=r.map(i=>ou(i));return!(\"abi\"in e)||!e.abi?o:SC({abi:e.abi,logs:o,strict:n})}var b9=ce(()=>{p();TD();Mw()});async function O0e(t,{filter:e}){let n=e.strict??!1,o=(await e.request({method:\"eth_getFilterLogs\",params:[e.id]})).map(i=>ou(i));return e.abi?SC({abi:e.abi,logs:o,strict:n}):o}var P0e=ce(()=>{p();TD();Mw()});async function M0e(t,{address:e,blockNumber:n,blockTag:r=\"latest\",slot:o}){let i=n!==void 0?Ye(n):void 0;return await t.request({method:\"eth_getStorageAt\",params:[e,o,i||r]})}var N0e=ce(()=>{p();gn()});async function Ev(t,{blockHash:e,blockNumber:n,blockTag:r,hash:o,index:i}){let a=r||\"latest\",c=n!==void 0?Ye(n):void 0,u=null;if(o?u=await t.request({method:\"eth_getTransactionByHash\",params:[o]},{dedupe:!0}):e?u=await t.request({method:\"eth_getTransactionByBlockHashAndIndex\",params:[e,Ye(i)]},{dedupe:!0}):(c||a)&&(u=await t.request({method:\"eth_getTransactionByBlockNumberAndIndex\",params:[c||a,Ye(i)]},{dedupe:!!c})),!u)throw new o4({blockHash:e,blockNumber:n,blockTag:a,hash:o,index:i});return(t.chain?.formatters?.transaction?.format||y5)(u)}var v9=ce(()=>{p();L0();gn();tR()});async function L0e(t,{hash:e,transactionReceipt:n}){let[r,o]=await Promise.all([Lt(t,Vy,\"getBlockNumber\")({}),e?Lt(t,Ev,\"getTransaction\")({hash:e}):void 0]),i=n?.blockNumber||o?.blockNumber;return i?r-i+1n:0n}var B0e=ce(()=>{p();ki();xC();v9()});async function w9(t,{hash:e}){let n=await t.request({method:\"eth_getTransactionReceipt\",params:[e]},{dedupe:!0});if(!n)throw new i4({hash:e});return(t.chain?.formatters?.transactionReceipt?.format||_G)(n)}var LY=ce(()=>{p();L0();oL()});async function x9(t,e){let{account:n,allowFailure:r=!0,batchSize:o,blockNumber:i,blockTag:a,multicallAddress:c,stateOverride:u}=e,d=e.contracts,h=o??(typeof t.batch?.multicall==\"object\"&&t.batch.multicall.batchSize||1024),m=c;if(!m){if(!t.chain)throw new Error(\"client chain not configured. multicallAddress is required.\");m=Wp({blockNumber:i,chain:t.chain,contract:\"multicall3\"})}let g=[[]],b=0,E=0;for(let R=0;R<d.length;R++){let{abi:L,address:D,args:G,functionName:W}=d[R];try{let J=yo({abi:L,args:G,functionName:W});E+=(J.length-2)/2,h>0&&E>h&&g[b].length>0&&(b++,E=(J.length-2)/2,g[b]=[]),g[b]=[...g[b],{allowFailure:!0,callData:J,target:D}]}catch(J){let ne=wh(J,{abi:L,address:D,args:G,docsPath:\"/docs/contract/multicall\",functionName:W,sender:n});if(!r)throw ne;g[b]=[...g[b],{allowFailure:!0,callData:\"0x\",target:D}]}}let C=await Promise.allSettled(g.map(R=>Lt(t,ja,\"readContract\")({abi:dC,account:n,address:m,args:[R],blockNumber:i,blockTag:a,functionName:\"aggregate3\",stateOverride:u}))),T=[];for(let R=0;R<C.length;R++){let L=C[R];if(L.status===\"rejected\"){if(!r)throw L.reason;for(let G=0;G<g[R].length;G++)T.push({status:\"failure\",error:L.reason,result:void 0});continue}let D=L.value;for(let G=0;G<D.length;G++){let{returnData:W,success:J}=D[G],{callData:ne}=g[R][G],{abi:ie,address:Z,functionName:ae,args:V}=d[T.length];try{if(ne===\"0x\")throw new Vp;if(!J)throw new q0({data:W});let $=xf({abi:ie,args:V,data:W,functionName:ae});T.push(r?{result:$,status:\"success\"}:$)}catch($){let F=wh($,{abi:ie,address:Z,args:V,docsPath:\"/docs/contract/multicall\",functionName:ae});if(!r)throw F;T.push({error:F,result:void 0,status:\"failure\"})}}}if(T.length!==d.length)throw new Be(\"multicall results mismatch\");return T}var BY=ce(()=>{p();bv();Es();ir();ov();gx();Ef();I5();_6();ki();qy()});async function E9(t,e){let{blockNumber:n,blockTag:r=\"latest\",blocks:o,returnFullTransactions:i,traceTransfers:a,validation:c}=e;try{let u=[];for(let g of o){let b=g.blockOverrides?uD(g.blockOverrides):void 0,E=g.calls.map(T=>{let R=T,L=R.account?Wn(R.account):void 0,D=R.abi?yo(R):R.data,G={...R,data:R.dataSuffix?Da([D||\"0x\",R.dataSuffix]):D,from:R.from??L?.address};return gf(G),Bp(G)}),C=g.stateOverrides?sC(g.stateOverrides):void 0;u.push({blockOverrides:b,calls:E,stateOverrides:C})}let h=(typeof n==\"bigint\"?Ye(n):void 0)||r;return(await t.request({method:\"eth_simulateV1\",params:[{blockStateCalls:u,returnFullTransactions:i,traceTransfers:a,validation:c},h]})).map((g,b)=>({...nR(g),calls:g.calls.map((E,C)=>{let{abi:T,args:R,functionName:L,to:D}=o[b].calls[C],G=E.error?.data??E.returnData,W=BigInt(E.gasUsed),J=E.logs?.map(ae=>ou(ae)),ne=E.status===\"0x1\"?\"success\":\"failure\",ie=T&&ne===\"success\"&&G!==\"0x\"?xf({abi:T,data:G,functionName:L}):null,Z=(()=>{if(ne===\"success\")return;let ae;if(E.error?.data===\"0x\"?ae=new Vp:E.error&&(ae=new q0(E.error)),!!ae)return wh(ae,{abi:T??[],address:D??\"0x\",args:R,functionName:L??\"<unknown>\"})})();return{data:G,gasUsed:W,logs:J,status:ne,...ne===\"success\"?{result:ie}:{error:Z}}})}))}catch(u){let d=u,h=Zw(d,{});throw h instanceof jp?d:h}}var DY=ce(()=>{p();SY();js();Es();ov();jw();gx();Ef();iu();gn();_6();WR();rL();Mw();b5();WB();Qw()});function PD(t,e={}){let{as:n=typeof t==\"string\"?\"Hex\":\"Bytes\"}=e,r=R5(Pme(t));return n===\"Bytes\"?r:pC(r)}var FY=ce(()=>{p();ML();oD();J0()});var MD,F0e=ce(()=>{p();MD=class extends Map{constructor(e){super(),Object.defineProperty(this,\"maxSize\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let n=super.get(e);return super.has(e)&&n!==void 0&&(this.delete(e),super.set(e,n)),n}set(e,n){if(super.set(e,n),this.maxSize&&this.size>this.maxSize){let r=this.keys().next().value;r&&this.delete(r)}return this}}});var vHe,ND,U0e=ce(()=>{p();F0e();vHe={checksum:new MD(8192)},ND=vHe.checksum});function _C(t,e={}){let{strict:n=!0}=e;if(!xHe.test(t))throw new LD({address:t,cause:new UY});if(n){if(t.toLowerCase()===t)return;if(j0e(t)!==t)throw new LD({address:t,cause:new jY})}}function j0e(t){if(ND.has(t))return ND.get(t);_C(t,{strict:!1});let e=t.substring(2).toLowerCase(),n=PD(Mme(e),{as:\"Bytes\"}),r=e.split(\"\");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(n[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());let o=`0x${r.join(\"\")}`;return ND.set(t,o),o}function BD(t,e={}){let{strict:n=!0}=e??{};try{return _C(t,{strict:n}),!0}catch{return!1}}var xHe,LD,UY,jY,DD=ce(()=>{p();oD();U0e();bx();FY();xHe=/^0x[a-fA-F0-9]{40}$/;LD=class extends qo{constructor({address:e,cause:n}){super(`Address \"${e}\" is invalid.`,{cause:n}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Address.InvalidAddressError\"})}},UY=class extends qo{constructor(){super(\"Address is not a 20 byte (40 hexadecimal character) value.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Address.InvalidInputError\"})}},jY=class extends qo{constructor(){super(\"Address does not match its checksum counterpart.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Address.InvalidChecksumError\"})}}});function UD(t){let e=!0,n=\"\",r=0,o=\"\",i=!1;for(let a=0;a<t.length;a++){let c=t[a];if([\"(\",\")\",\",\"].includes(c)&&(e=!0),c===\"(\"&&r++,c===\")\"&&r--,!!e){if(r===0){if(c===\" \"&&[\"event\",\"function\",\"error\",\"\"].includes(o))o=\"\";else if(o+=c,c===\")\"){i=!0;break}continue}if(c===\" \"){t[a-1]!==\",\"&&n!==\",\"&&n!==\",(\"&&(n=\"\",e=!1);continue}o+=c,n+=c}}if(!i)throw new qo(\"Unable to normalize signature.\");return o}function FD(t,e){let n=typeof t,r=e.type;switch(r){case\"address\":return BD(t,{strict:!1});case\"bool\":return n===\"boolean\";case\"function\":return n===\"string\";case\"string\":return n===\"string\";default:return r===\"tuple\"&&\"components\"in e?Object.values(e.components).every((o,i)=>FD(Object.values(t)[i],o)):/^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)?$/.test(r)?n===\"number\"||n===\"bigint\":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?n===\"string\"||t instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\\\\[[0-9]{0,}\\\\])+$/.test(r)?Array.isArray(t)&&t.every(o=>FD(o,{...e,type:r.replace(/(\\\\[[0-9]{0,}\\\\])$/,\"\")})):!1}}function HY(t,e,n){for(let r in t){let o=t[r],i=e[r];if(o.type===\"tuple\"&&i.type===\"tuple\"&&\"components\"in o&&\"components\"in i)return HY(o.components,i.components,n[r]);let a=[o.type,i.type];if(a.includes(\"address\")&&a.includes(\"bytes20\")?!0:a.includes(\"address\")&&a.includes(\"string\")?BD(n[r],{strict:!1}):a.includes(\"address\")&&a.includes(\"bytes\")?BD(n[r],{strict:!1}):!1)return a}}var z0e=ce(()=>{p();DD();bx()});function jD(t,e={}){let{prepare:n=!0}=e,r=Array.isArray(t)?BR(t):typeof t==\"string\"?BR(t):t;return{...r,...n?{hash:CC(r)}:{}}}function H0e(t,e,n){let{args:r=[],prepare:o=!0}=n??{},i=EY(e,{strict:!1}),a=t.filter(d=>i?d.type===\"function\"||d.type===\"error\"?WY(d)===gC(e,0,4):d.type===\"event\"?CC(d)===e:!1:\"name\"in d&&d.name===e);if(a.length===0)throw new T6({name:e});if(a.length===1)return{...a[0],...o?{hash:CC(a[0])}:{}};let c;for(let d of a){if(!(\"inputs\"in d))continue;if(!r||r.length===0){if(!d.inputs||d.inputs.length===0)return{...d,...o?{hash:CC(d)}:{}};continue}if(!d.inputs||d.inputs.length===0||d.inputs.length!==r.length)continue;if(r.every((m,g)=>{let b=\"inputs\"in d&&d.inputs[g];return b?FD(m,b):!1})){if(c&&\"inputs\"in c&&c.inputs){let m=HY(d.inputs,c.inputs,r);if(m)throw new qY({abiItem:d,type:m[0]},{abiItem:c,type:m[1]})}c=d}}let u=(()=>{if(c)return c;let[d,...h]=a;return{...d,overloads:h}})();if(!u)throw new T6({name:e});return{...u,...o?{hash:CC(u)}:{}}}function WY(t){return gC(CC(t),0,4)}function SHe(t){let e=typeof t==\"string\"?t:O5(t);return UD(e)}function CC(t){return typeof t!=\"string\"&&\"hash\"in t&&t.hash?t.hash:PD(mC(SHe(t)))}var qY,T6,VY=ce(()=>{p();DR();bx();FY();J0();z0e();qY=class extends qo{constructor(e,n){super(\"Found ambiguous types in overloaded ABI Items.\",{metaMessages:[`\\\\`${e.type}\\\\` in \\\\`${UD(O5(e.abiItem))}\\\\`, and`,`\\\\`${n.type}\\\\` in \\\\`${UD(O5(n.abiItem))}\\\\``,\"\",\"These types encode differently and cannot be distinguished at runtime.\",\"Remove one of the ambiguous items in the ABI.\"]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiItem.AmbiguityError\"})}},T6=class extends qo{constructor({name:e,data:n,type:r=\"item\"}){let o=e?` with name \"${e}\"`:n?` with data \"${n}\"`:\"\";super(`ABI ${r}${o} not found.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiItem.NotFoundError\"})}}});var W0e,V0e,zD,XNt,eLt,tLt,nLt,rLt,oLt,iLt,sLt,aLt,cLt,lLt,uLt,dLt,fLt,hLt,pLt,mLt,gLt,yLt,bLt,vLt,wLt,xLt,ELt,SLt,kLt,_Lt,CLt,ALt,TLt,RLt,ILt,OLt,PLt,MLt,NLt,LLt,BLt,DLt,FLt,ULt,jLt,zLt,HLt,qLt,WLt,VLt,$Lt,KLt,GLt,ZLt,YLt,QLt,JLt,XLt,eBt,tBt,nBt,rBt,oBt,iBt,sBt,aBt,cBt,lBt,uBt,dBt,fBt,hBt,pBt,mBt,gBt,yBt,bBt,vBt,wBt,xBt,EBt,SBt,kBt,_Bt,CBt,ABt,TBt,RBt,IBt,OBt,PBt,MBt,NBt,LBt,BBt,DBt,FBt,UBt,jBt,$Y=ce(()=>{p();W0e=/^(.*)\\\\[([0-9]*)\\\\]$/,V0e=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,zD=/^(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)?$/,XNt=2n**(8n-1n)-1n,eLt=2n**(16n-1n)-1n,tLt=2n**(24n-1n)-1n,nLt=2n**(32n-1n)-1n,rLt=2n**(40n-1n)-1n,oLt=2n**(48n-1n)-1n,iLt=2n**(56n-1n)-1n,sLt=2n**(64n-1n)-1n,aLt=2n**(72n-1n)-1n,cLt=2n**(80n-1n)-1n,lLt=2n**(88n-1n)-1n,uLt=2n**(96n-1n)-1n,dLt=2n**(104n-1n)-1n,fLt=2n**(112n-1n)-1n,hLt=2n**(120n-1n)-1n,pLt=2n**(128n-1n)-1n,mLt=2n**(136n-1n)-1n,gLt=2n**(144n-1n)-1n,yLt=2n**(152n-1n)-1n,bLt=2n**(160n-1n)-1n,vLt=2n**(168n-1n)-1n,wLt=2n**(176n-1n)-1n,xLt=2n**(184n-1n)-1n,ELt=2n**(192n-1n)-1n,SLt=2n**(200n-1n)-1n,kLt=2n**(208n-1n)-1n,_Lt=2n**(216n-1n)-1n,CLt=2n**(224n-1n)-1n,ALt=2n**(232n-1n)-1n,TLt=2n**(240n-1n)-1n,RLt=2n**(248n-1n)-1n,ILt=2n**(256n-1n)-1n,OLt=-(2n**(8n-1n)),PLt=-(2n**(16n-1n)),MLt=-(2n**(24n-1n)),NLt=-(2n**(32n-1n)),LLt=-(2n**(40n-1n)),BLt=-(2n**(48n-1n)),DLt=-(2n**(56n-1n)),FLt=-(2n**(64n-1n)),ULt=-(2n**(72n-1n)),jLt=-(2n**(80n-1n)),zLt=-(2n**(88n-1n)),HLt=-(2n**(96n-1n)),qLt=-(2n**(104n-1n)),WLt=-(2n**(112n-1n)),VLt=-(2n**(120n-1n)),$Lt=-(2n**(128n-1n)),KLt=-(2n**(136n-1n)),GLt=-(2n**(144n-1n)),ZLt=-(2n**(152n-1n)),YLt=-(2n**(160n-1n)),QLt=-(2n**(168n-1n)),JLt=-(2n**(176n-1n)),XLt=-(2n**(184n-1n)),eBt=-(2n**(192n-1n)),tBt=-(2n**(200n-1n)),nBt=-(2n**(208n-1n)),rBt=-(2n**(216n-1n)),oBt=-(2n**(224n-1n)),iBt=-(2n**(232n-1n)),sBt=-(2n**(240n-1n)),aBt=-(2n**(248n-1n)),cBt=-(2n**(256n-1n)),lBt=2n**8n-1n,uBt=2n**16n-1n,dBt=2n**24n-1n,fBt=2n**32n-1n,hBt=2n**40n-1n,pBt=2n**48n-1n,mBt=2n**56n-1n,gBt=2n**64n-1n,yBt=2n**72n-1n,bBt=2n**80n-1n,vBt=2n**88n-1n,wBt=2n**96n-1n,xBt=2n**104n-1n,EBt=2n**112n-1n,SBt=2n**120n-1n,kBt=2n**128n-1n,_Bt=2n**136n-1n,CBt=2n**144n-1n,ABt=2n**152n-1n,TBt=2n**160n-1n,RBt=2n**168n-1n,IBt=2n**176n-1n,OBt=2n**184n-1n,PBt=2n**192n-1n,MBt=2n**200n-1n,NBt=2n**208n-1n,LBt=2n**216n-1n,BBt=2n**224n-1n,DBt=2n**232n-1n,FBt=2n**240n-1n,UBt=2n**248n-1n,jBt=2n**256n-1n});function $0e({checksumAddress:t,parameters:e,values:n}){let r=[];for(let o=0;o<e.length;o++)r.push(KY({checksumAddress:t,parameter:e[o],value:n[o]}));return r}function KY({checksumAddress:t=!1,parameter:e,value:n}){let r=e,o=PHe(r.type);if(o){let[i,a]=o;return CHe(n,{checksumAddress:t,length:i,parameter:{...r,type:a}})}if(r.type===\"tuple\")return OHe(n,{checksumAddress:t,parameter:r});if(r.type===\"address\")return _He(n,{checksum:t});if(r.type===\"bool\")return THe(n);if(r.type.startsWith(\"uint\")||r.type.startsWith(\"int\")){let i=r.type.startsWith(\"int\"),[,,a=\"256\"]=zD.exec(r.type)??[];return RHe(n,{signed:i,size:Number(a)})}if(r.type.startsWith(\"bytes\"))return AHe(n,{type:r.type});if(r.type===\"string\")return IHe(n);throw new k9(r.type)}function HD(t){let e=0;for(let i=0;i<t.length;i++){let{dynamic:a,encoded:c}=t[i];a?e+=32:e+=Nc(c)}let n=[],r=[],o=0;for(let i=0;i<t.length;i++){let{dynamic:a,encoded:c}=t[i];a?(n.push(Ua(e+o,{size:32})),r.push(c),o+=Nc(c)):n.push(c)}return Sf(...n,...r)}function _He(t,e){let{checksum:n=!1}=e;return _C(t,{strict:n}),{dynamic:!1,encoded:xv(t.toLowerCase())}}function CHe(t,e){let{checksumAddress:n,length:r,parameter:o}=e,i=r===null;if(!Array.isArray(t))throw new WD(t);if(!i&&t.length!==r)throw new qD({expectedLength:r,givenLength:t.length,type:`${o.type}[${r}]`});let a=!1,c=[];for(let u=0;u<t.length;u++){let d=KY({checksumAddress:n,parameter:o,value:t[u]});d.dynamic&&(a=!0),c.push(d)}if(i||a){let u=HD(c);if(i){let d=Ua(c.length,{size:32});return{dynamic:!0,encoded:c.length>0?Sf(d,u):d}}if(a)return{dynamic:!0,encoded:u}}return{dynamic:!1,encoded:Sf(...c.map(({encoded:u})=>u))}}function AHe(t,{type:e}){let[,n]=e.split(\"bytes\"),r=Nc(t);if(!n){let o=t;return r%32!==0&&(o=zy(o,Math.ceil((t.length-2)/2/32)*32)),{dynamic:!0,encoded:Sf(xv(Ua(r,{size:32})),o)}}if(r!==Number.parseInt(n))throw new S9({expectedSize:Number.parseInt(n),value:t});return{dynamic:!1,encoded:zy(t)}}function THe(t){if(typeof t!=\"boolean\")throw new qo(`Invalid boolean value: \"${t}\" (type: ${typeof t}). Expected: \\\\`true\\\\` or \\\\`false\\\\`.`);return{dynamic:!1,encoded:xv(lD(t))}}function RHe(t,{signed:e,size:n}){if(typeof n==\"number\"){let r=2n**(BigInt(n)-(e?1n:0n))-1n,o=e?-r-1n:0n;if(t>r||t<o)throw new g9({max:r.toString(),min:o.toString(),signed:e,size:n/8,value:t.toString()})}return{dynamic:!1,encoded:Ua(t,{size:32,signed:e})}}function IHe(t){let e=mC(t),n=Math.ceil(Nc(e)/32),r=[];for(let o=0;o<n;o++)r.push(zy(gC(e,o*32,(o+1)*32)));return{dynamic:!0,encoded:Sf(zy(Ua(Nc(e),{size:32})),...r)}}function OHe(t,e){let{checksumAddress:n,parameter:r}=e,o=!1,i=[];for(let a=0;a<r.components.length;a++){let c=r.components[a],u=Array.isArray(t)?a:c.name,d=KY({checksumAddress:n,parameter:c,value:t[u]});i.push(d),d.dynamic&&(o=!0)}return{dynamic:o,encoded:o?HD(i):Sf(...i.map(({encoded:a})=>a))}}function PHe(t){let e=t.match(/^(.*)\\\\[(\\\\d+)?\\\\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}var K0e=ce(()=>{p();VD();DD();bx();J0();$Y()});function KD(t,e,n){let{checksumAddress:r=!1}=n??{};if(t.length!==e.length)throw new $D({expectedLength:t.length,givenLength:e.length});let o=$0e({checksumAddress:r,parameters:t,values:e}),i=HD(o);return i.length===0?\"0x\":i}function ZY(t,e){if(t.length!==e.length)throw new $D({expectedLength:t.length,givenLength:e.length});let n=[];for(let r=0;r<t.length;r++){let o=t[r],i=e[r];n.push(ZY.encode(o,i))}return Sf(...n)}var qD,S9,$D,WD,k9,VD=ce(()=>{p();DD();bx();J0();$Y();K0e();(function(t){function e(n,r,o=!1){if(n===\"address\"){let u=r;return _C(u),xv(u.toLowerCase(),o?32:0)}if(n===\"string\")return mC(r);if(n===\"bytes\")return r;if(n===\"bool\")return xv(lD(r),o?32:1);let i=n.match(zD);if(i){let[u,d,h=\"256\"]=i,m=Number.parseInt(h)/8;return Ua(r,{size:o?32:m,signed:d===\"int\"})}let a=n.match(V0e);if(a){let[u,d]=a;if(Number.parseInt(d)!==(r.length-2)/2)throw new S9({expectedSize:Number.parseInt(d),value:r});return zy(r,o?32:0)}let c=n.match(W0e);if(c&&Array.isArray(r)){let[u,d]=c,h=[];for(let m=0;m<r.length;m++)h.push(e(d,r[m],!0));return h.length===0?\"0x\":Sf(...h)}throw new k9(n)}t.encode=e})(ZY||(ZY={}));qD=class extends qo{constructor({expectedLength:e,givenLength:n,type:r}){super(`Array length mismatch for type \\\\`${r}\\\\`. Expected: \\\\`${e}\\\\`. Given: \\\\`${n}\\\\`.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiParameters.ArrayLengthMismatchError\"})}},S9=class extends qo{constructor({expectedSize:e,value:n}){super(`Size of bytes \"${n}\" (bytes${Nc(n)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiParameters.BytesSizeMismatchError\"})}},$D=class extends qo{constructor({expectedLength:e,givenLength:n}){super([\"ABI encoding parameters/values length mismatch.\",`Expected length (parameters): ${e}`,`Given length (values): ${n}`].join(`\\n`)),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiParameters.LengthMismatchError\"})}},WD=class extends qo{constructor(e){super(`Value \\\\`${e}\\\\` is not a valid array.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiParameters.InvalidArrayError\"})}},k9=class extends qo{constructor(e){super(`Type \\\\`${e}\\\\` is not a valid ABI Type.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"AbiParameters.InvalidTypeError\"})}}});function G0e(t,e){let{bytecode:n,args:r}=e;return Sf(n,t.inputs?.length&&r?.length?KD(t.inputs,r):\"0x\")}function Z0e(t){return jD(t)}var Y0e=ce(()=>{p();VY();VD();J0()});function Q0e(t,...e){let{overloads:n}=t,r=n?BHe([t,...n],t.name,{args:e[0]}):t,o=DHe(r),i=e.length>0?KD(r.inputs,e[0]):void 0;return i?Sf(o,i):o}function R6(t,e={}){return jD(t,e)}function BHe(t,e,n){let r=H0e(t,e,n);if(r.type!==\"function\")throw new T6({name:e,type:\"function\"});return r}function DHe(t){return WY(t)}var J0e=ce(()=>{p();VY();VD();J0()});var X0e,X0,ege=ce(()=>{p();X0e=\"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\",X0=\"0x0000000000000000000000000000000000000000\"});function tge(t,{enabled:e=!0,id:n}){if(!e||!n)return t();if(GD.get(n))return GD.get(n);let r=t().finally(()=>GD.delete(n));return GD.set(n,r),r}var GD,nge=ce(()=>{p();dR();GD=new Ay(8192)});async function _9(t){return new Promise(e=>setTimeout(e,t))}var YY=ce(()=>{p()});function eg(t,{delay:e=100,retryCount:n=2,shouldRetry:r=()=>!0}={}){return new Promise((o,i)=>{let a=async({count:c=0}={})=>{let u=async({error:d})=>{let h=typeof e==\"function\"?e({count:c,error:d}):e;h&&await _9(h),a({count:c+1})};try{let d=await t();o(d)}catch(d){if(c<n&&await r({count:c,error:d}))return u({error:d});i(d)}};a()})}var ZD=ce(()=>{p();YY()});function rge(t,e={}){return async(n,r={})=>{let{dedupe:o=!1,methods:i,retryDelay:a=150,retryCount:c=3,uid:u}={...e,...r},{method:d}=n;if(i?.exclude?.includes(d))throw new iv(new Error(\"method not supported\"),{method:d});if(i?.include&&!i.include.includes(d))throw new iv(new Error(\"method not supported\"),{method:d});let h=o?gh(`${u}.${qr(n)}`):void 0;return tge(()=>eg(async()=>{try{return await t(n)}catch(m){let g=m;switch(g.code){case D5.code:throw new D5(g);case F5.code:throw new F5(g);case U5.code:throw new U5(g,{method:n.method});case j5.code:throw new j5(g);case My.code:throw new My(g);case W0.code:throw new W0(g);case z5.code:throw new z5(g);case mf.code:throw new mf(g);case H5.code:throw new H5(g);case iv.code:throw new iv(g,{method:n.method});case Gw.code:throw new Gw(g);case q5.code:throw new q5(g);case oo.code:throw new oo(g);case W5.code:throw new W5(g);case V5.code:throw new V5(g);case $5.code:throw new $5(g);case K5.code:throw new K5(g);case ha.code:throw new ha(g);case sv.code:throw new sv(g);case G5.code:throw new G5(g);case Z5.code:throw new Z5(g);case Y5.code:throw new Y5(g);case Q5.code:throw new Q5(g);case J5.code:throw new J5(g);case av.code:throw new av(g);case 5e3:throw new oo(g);default:throw m instanceof Be?m:new qR(g)}}},{delay:({count:m,error:g})=>{if(g&&g instanceof $p){let b=g?.headers?.get(\"Retry-After\");if(b?.match(/\\\\d/))return Number.parseInt(b)*1e3}return~~(1<<m)*a},retryCount:c,shouldRetry:({error:m})=>UHe(m)}),{enabled:o,id:h})}}function UHe(t){return\"code\"in t&&typeof t.code==\"number\"?t.code===-1||t.code===Gw.code||t.code===My.code:t instanceof $p&&t.status?t.status===403||t.status===408||t.status===413||t.status===429||t.status===500||t.status===502||t.status===503||t.status===504:!0}var oge=ce(()=>{p();ir();B5();X5();gn();nge();ZD();au()});function I6(t,{errorInstance:e=new Error(\"timed out\"),timeout:n,signal:r}){return new Promise((o,i)=>{(async()=>{let a;try{let c=new AbortController;n>0&&(a=setTimeout(()=>{r?c.abort():i(e)},n)),o(await t({signal:c?.signal||null}))}catch(c){c?.name===\"AbortError\"&&i(e),i(c)}finally{clearTimeout(a)}})()})}var QY=ce(()=>{p()});function jHe(){return{current:0,take(){return this.current++},reset(){this.current=0}}}var JY,ige=ce(()=>{p();JY=jHe()});function sge(t,e={}){return{async request(n){let{body:r,onRequest:o=e.onRequest,onResponse:i=e.onResponse,timeout:a=e.timeout??1e4}=n,c={...e.fetchOptions??{},...n.fetchOptions??{}},{headers:u,method:d,signal:h}=c;try{let m=await I6(async({signal:b})=>{let E={...c,body:Array.isArray(r)?qr(r.map(L=>({jsonrpc:\"2.0\",id:L.id??JY.take(),...L}))):qr({jsonrpc:\"2.0\",id:r.id??JY.take(),...r}),headers:{\"Content-Type\":\"application/json\",...u},method:d||\"POST\",signal:h||(a>0?b:null)},C=new Request(t,E),T=await o?.(C,E)??{...E,url:t};return await fetch(T.url??t,T)},{errorInstance:new HR({body:r,url:t}),timeout:a,signal:!0});i&&await i(m);let g;if(m.headers.get(\"Content-Type\")?.startsWith(\"application/json\"))g=await m.json();else{g=await m.text();try{g=JSON.parse(g||\"{}\")}catch(b){if(m.ok)throw b;g={error:g}}}if(!m.ok)throw new $p({body:r,details:qr(g.error)||m.statusText,headers:m.headers,status:m.status,url:t});return g}catch(m){throw m instanceof $p||m instanceof HR?m:new $p({body:r,cause:m,url:t})}}}}var age=ce(()=>{p();B5();QY();au();ige()});var YD,QD,JD,cge=ce(()=>{p();au();ir();YD=class extends Be{constructor({domain:e}){super(`Invalid domain \"${qr(e)}\".`,{metaMessages:[\"Must be a valid EIP-712 domain.\"]})}},QD=class extends Be{constructor({primaryType:e,types:n}){super(`Invalid primary type \\\\`${e}\\\\` must be one of \\\\`${JSON.stringify(Object.keys(n))}\\\\`.`,{docsPath:\"/api/glossary/Errors#typeddatainvalidprimarytypeerror\",metaMessages:[\"Check that the primary type is a key in `types`.\"]})}},JD=class extends Be{constructor({type:e}){super(`Struct type \"${e}\" is invalid.`,{metaMessages:[\"Struct type must not be a Solidity type.\"],name:\"InvalidStructTypeError\"})}}});function lge(t){let{domain:e={},message:n,primaryType:r}=t,o={EIP712Domain:eF({domain:e}),...t.types};XD({domain:e,message:n,primaryType:r,types:o});let i=[\"0x1901\"];return e&&i.push(zHe({domain:e,types:o})),r!==\"EIP712Domain\"&&i.push(uge({data:n,primaryType:r,types:o})),Po(Da(i))}function zHe({domain:t,types:e}){return uge({data:t,primaryType:\"EIP712Domain\",types:e})}function uge({data:t,primaryType:e,types:n}){let r=dge({data:t,primaryType:e,types:n});return Po(r)}function dge({data:t,primaryType:e,types:n}){let r=[{type:\"bytes32\"}],o=[HHe({primaryType:e,types:n})];for(let i of n[e]){let[a,c]=hge({types:n,name:i.name,type:i.type,value:t[i.name]});r.push(a),o.push(c)}return vl(r,o)}function HHe({primaryType:t,types:e}){let n=Uo(qHe({primaryType:t,types:e}));return Po(n)}function qHe({primaryType:t,types:e}){let n=\"\",r=fge({primaryType:t,types:e});r.delete(t);let o=[t,...Array.from(r).sort()];for(let i of o)n+=`${i}(${e[i].map(({name:a,type:c})=>`${c} ${a}`).join(\",\")})`;return n}function fge({primaryType:t,types:e},n=new Set){let o=t.match(/^\\\\w*/u)?.[0];if(n.has(o)||e[o]===void 0)return n;n.add(o);for(let i of e[o])fge({primaryType:i.type,types:e},n);return n}function hge({types:t,name:e,type:n,value:r}){if(t[n]!==void 0)return[{type:\"bytes32\"},Po(dge({data:r,primaryType:n,types:t}))];if(n===\"bytes\")return r=`0x${(r.length%2?\"0\":\"\")+r.slice(2)}`,[{type:\"bytes32\"},Po(r)];if(n===\"string\")return[{type:\"bytes32\"},Po(Uo(r))];if(n.lastIndexOf(\"]\")===n.length-1){let o=n.slice(0,n.lastIndexOf(\"[\")),i=r.map(a=>hge({name:e,type:o,types:t,value:a}));return[{type:\"bytes32\"},Po(vl(i.map(([a])=>a),i.map(([,a])=>a)))]}return[{type:n},r]}var pge=ce(()=>{p();Py();iu();gn();zp();XY()});function mge(t){let{domain:e,message:n,primaryType:r,types:o}=t,i=(u,d)=>{let h={...d};for(let m of u){let{name:g,type:b}=m;b===\"address\"&&(h[g]=h[g].toLowerCase())}return h},a=o.EIP712Domain?e?i(o.EIP712Domain,e):{}:{},c=(()=>{if(r!==\"EIP712Domain\")return i(o[r],n)})();return qr({domain:a,message:c,primaryType:r,types:o})}function XD(t){let{domain:e,message:n,primaryType:r,types:o}=t,i=(a,c)=>{for(let u of a){let{name:d,type:h}=u,m=c[d],g=h.match(P4);if(g&&(typeof m==\"number\"||typeof m==\"bigint\")){let[C,T,R]=g;Ye(m,{signed:T===\"int\",size:Number.parseInt(R)/8})}if(h===\"address\"&&typeof m==\"string\"&&!Kr(m))throw new ci({address:m});let b=h.match(iB);if(b){let[C,T]=b;if(T&&Jr(m)!==Number.parseInt(T))throw new C4({expectedSize:Number.parseInt(T),givenSize:Jr(m)})}let E=o[h];E&&(WHe(h),i(E,m))}};if(o.EIP712Domain&&e){if(typeof e!=\"object\")throw new YD({domain:e});i(o.EIP712Domain,e)}if(r!==\"EIP712Domain\")if(o[r])i(o[r],n);else throw new QD({primaryType:r,types:o})}function eF({domain:t}){return[typeof t?.name==\"string\"&&{name:\"name\",type:\"string\"},t?.version&&{name:\"version\",type:\"string\"},(typeof t?.chainId==\"number\"||typeof t?.chainId==\"bigint\")&&{name:\"chainId\",type:\"uint256\"},t?.verifyingContract&&{name:\"verifyingContract\",type:\"address\"},t?.salt&&{name:\"salt\",type:\"bytes32\"}].filter(Boolean)}function WHe(t){if(t===\"address\"||t===\"bool\"||t===\"string\"||t.startsWith(\"bytes\")||t.startsWith(\"uint\")||t.startsWith(\"int\"))throw new JD({type:t})}var XY=ce(()=>{p();Es();D0();cge();hf();Mp();gn();sB();au()});function eQ(t,e){if(t.length!==e.length)throw new E4({expectedLength:t.length,givenLength:e.length});let n=[];for(let r=0;r<t.length;r++){let o=t[r],i=e[r];n.push(gge(o,i))}return fa(n)}function gge(t,e,n=!1){if(t===\"address\"){let a=e;if(!Kr(a))throw new ci({address:a});return Np(a.toLowerCase(),{size:n?32:null})}if(t===\"string\")return gh(e);if(t===\"bytes\")return e;if(t===\"bool\")return Np(Q_(e),{size:n?32:1});let r=t.match(P4);if(r){let[a,c,u=\"256\"]=r,d=Number.parseInt(u)/8;return Ye(e,{size:n?32:d,signed:c===\"int\"})}let o=t.match(iB);if(o){let[a,c]=o;if(Number.parseInt(c)!==(e.length-2)/2)throw new C4({expectedSize:Number.parseInt(c),givenSize:(e.length-2)/2});return Np(e,{dir:\"right\",size:n?32:null})}let i=t.match(the);if(i&&Array.isArray(e)){let[a,c]=i,u=[];for(let d=0;d<e.length;d++)u.push(gge(c,e[d],!0));return u.length===0?\"0x\":fa(u)}throw new ZL(t)}var yge=ce(()=>{p();Es();D0();hf();iu();X7();gn();sB()});var bge,vge=ce(()=>{p();bge=`\\u0019Ethereum Signed Message:\\n`});function wge(t){let e=typeof t==\"string\"?gh(t):typeof t.raw==\"string\"?t.raw:Xr(t.raw),n=gh(`${bge}${Jr(e)}`);return Da([n,e])}var xge=ce(()=>{p();vge();iu();Mp();gn()});function tF(t,e){return Po(wge(t),e)}var tQ=ce(()=>{p();zp();xge()});var nF,nQ=ce(()=>{p();nF=\"0x6492649264926492649264926492649264926492649264926492649264926492\"});function rF(t){return w4(t,-32)===nF}var rQ=ce(()=>{p();nQ();nv()});function oQ(t){if(!rF(t))return{signature:t};let[e,n,r]=H0([{type:\"address\"},{type:\"bytes\"},{type:\"bytes\"}],t);return{address:e,data:n,signature:r}}var Ege=ce(()=>{p();N4();rQ()});function Sge(t){let{address:e,data:n,signature:r,to:o=\"hex\"}=t,i=fa([vl([{type:\"address\"},{type:\"bytes\"},{type:\"bytes\"}],[e,n,r]),nF]);return o===\"hex\"?i:Us(i)}var kge=ce(()=>{p();nQ();Py();iu();hc()});var oF,_ge=ce(()=>{p();ir();oF=class extends Be{constructor({value:e}){super(`Number \\\\`${e}\\\\` is not a valid decimal number.`,{name:\"InvalidDecimalNumberError\"})}}});function AC(t,e){if(!/^(-?)([0-9]*)\\\\.?([0-9]*)$/.test(t))throw new oF({value:t});let[n,r=\"0\"]=t.split(\".\"),o=n.startsWith(\"-\");if(o&&(n=n.slice(1)),r=r.replace(/(0+)$/,\"\"),e===0)Math.round(+`.${r}`)===1&&(n=`${BigInt(n)+1n}`),r=\"\";else if(r.length>e){let[i,a,c]=[r.slice(0,e-1),r.slice(e-1,e),r.slice(e)],u=Math.round(+`${a}.${c}`);u>9?r=`${BigInt(i)+BigInt(1)}0`.padStart(i.length+1,\"0\"):r=`${i}${u}`,r.length>e&&(r=r.slice(1),n=`${BigInt(n)+1n}`),r=r.slice(0,e)}else r=r.padEnd(e,\"0\");return BigInt(`${o?\"-\":\"\"}${n}${r}`)}var Cge=ce(()=>{p();_ge()});var C9=ce(()=>{p();Ef();js();tv();fc()});async function Age(t,e){let{blockNumber:n,blockTag:r,calls:o,stateOverrides:i,traceAssetChanges:a,traceTransfers:c,validation:u}=e,d=e.account?Wn(e.account):void 0;if(a&&!d)throw new Be(\"`account` is required when `traceAssetChanges` is true\");let h=d?G0e(Z0e(\"constructor(bytes, bytes)\"),{bytecode:dD,args:[VHe,Q0e(R6(\"function getBalance(address)\"),[d.address])]}):void 0,m=a?await Promise.all(e.calls.map(async B=>{if(!B.data&&!B.abi)return;let{accessList:j}=await ED(t,{account:d.address,...B,data:B.abi?yo(B):B.data});return j.map(({address:q,storageKeys:H})=>H.length>0?q:null)})).then(B=>B.flat().filter(Boolean)):[],g=await E9(t,{blockNumber:n,blockTag:r,blocks:[...a?[{calls:[{data:h}],stateOverrides:i},{calls:m.map((B,j)=>({abi:[R6(\"function balanceOf(address) returns (uint256)\")],functionName:\"balanceOf\",args:[d.address],to:B,from:X0,nonce:j})),stateOverrides:[{address:X0,nonce:0}]}]:[],{calls:[...o,{}].map(B=>({...B,from:d?.address})),stateOverrides:i},...a?[{calls:[{data:h}]},{calls:m.map((B,j)=>({abi:[R6(\"function balanceOf(address) returns (uint256)\")],functionName:\"balanceOf\",args:[d.address],to:B,from:X0,nonce:j})),stateOverrides:[{address:X0,nonce:0}]},{calls:m.map((B,j)=>({to:B,abi:[R6(\"function decimals() returns (uint256)\")],functionName:\"decimals\",from:X0,nonce:j})),stateOverrides:[{address:X0,nonce:0}]},{calls:m.map((B,j)=>({to:B,abi:[R6(\"function tokenURI(uint256) returns (string)\")],functionName:\"tokenURI\",args:[0n],from:X0,nonce:j})),stateOverrides:[{address:X0,nonce:0}]},{calls:m.map((B,j)=>({to:B,abi:[R6(\"function symbol() returns (string)\")],functionName:\"symbol\",from:X0,nonce:j})),stateOverrides:[{address:X0,nonce:0}]}]:[]],traceTransfers:c,validation:u}),b=a?g[2]:g[0],[E,C,,T,R,L,D,G]=a?g:[],{calls:W,...J}=b,ne=W.slice(0,-1)??[],ie=E?.calls??[],Z=C?.calls??[],ae=[...ie,...Z].map(B=>B.status===\"success\"?jo(B.data):null),V=T?.calls??[],$=R?.calls??[],F=[...V,...$].map(B=>B.status===\"success\"?jo(B.data):null),_=(L?.calls??[]).map(B=>B.status===\"success\"?B.result:null),O=(G?.calls??[]).map(B=>B.status===\"success\"?B.result:null),z=(D?.calls??[]).map(B=>B.status===\"success\"?B.result:null),N=[];for(let[B,j]of F.entries()){let q=ae[B];if(typeof j!=\"bigint\"||typeof q!=\"bigint\")continue;let H=_[B-1],I=O[B-1],U=z[B-1],X=B===0?{address:X0e,decimals:18,symbol:\"ETH\"}:{address:m[B-1],decimals:U||H?Number(H??1):void 0,symbol:I??void 0};N.some(ee=>ee.token.address===X.address)||N.push({token:X,value:{pre:q,post:j,diff:j-q}})}return{assetChanges:N,block:J,results:ne}}var VHe,Tge=ce(()=>{p();Y0e();J0e();js();ege();fD();ir();Ef();C9();RY();DY();VHe=\"0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033\"});function du(t,e,n){let r=++$He,o=()=>iQ.get(t)||[],i=()=>{let h=o();iQ.set(t,h.filter(m=>m.id!==r))},a=()=>{let h=o();if(!h.some(g=>g.id===r))return;let m=Rge.get(t);if(h.length===1&&m){let g=m();g instanceof Promise&&g.catch(()=>{})}i()},c=o();if(iQ.set(t,[...c,{id:r,fns:e}]),c&&c.length>0)return a;let u={};for(let h in e)u[h]=(...m)=>{let g=o();if(g.length!==0)for(let b of g)b.fns[h]?.(...m)};let d=n(u);return typeof d==\"function\"&&Rge.set(t,d),a}var iQ,Rge,$He,Ex=ce(()=>{p();iQ=new Map,Rge=new Map,$He=0});function Yp(t,{emitOnBegin:e,initialWaitTime:n,interval:r}){let o=!0,i=()=>o=!1;return(async()=>{let c;e&&(c=await t({unpoll:i}));let u=await n?.(c)??r;await _9(u);let d=async()=>{o&&(await t({unpoll:i}),await _9(r),d())};d()})(),i}var O6=ce(()=>{p();YY()});function Ige(t,{blockTag:e=\"latest\",emitMissed:n=!1,emitOnBegin:r=!1,onBlock:o,onError:i,includeTransactions:a,poll:c,pollingInterval:u=t.pollingInterval}){let d=typeof c<\"u\"?c:!(t.transport.type===\"webSocket\"||t.transport.type===\"ipc\"||t.transport.type===\"fallback\"&&(t.transport.transports[0].config.type===\"webSocket\"||t.transport.transports[0].config.type===\"ipc\")),h=a??!1,m;return d?(()=>{let E=qr([\"watchBlocks\",t.uid,e,n,r,h,u]);return du(E,{onBlock:o,onError:i},C=>Yp(async()=>{try{let T=await Lt(t,uu,\"getBlock\")({blockTag:e,includeTransactions:h});if(T.number!==null&&m?.number!=null){if(T.number===m.number)return;if(T.number-m.number>1&&n)for(let R=m?.number+1n;R<T.number;R++){let L=await Lt(t,uu,\"getBlock\")({blockNumber:R,includeTransactions:h});C.onBlock(L,m),m=L}}(m?.number==null||e===\"pending\"&&T?.number==null||T.number!==null&&T.number>m.number)&&(C.onBlock(T,m),m=T)}catch(T){C.onError?.(T)}},{emitOnBegin:r,interval:u}))})():(()=>{let E=!0,C=!0,T=()=>E=!1;return(async()=>{try{r&&Lt(t,uu,\"getBlock\")({blockTag:e,includeTransactions:h}).then(D=>{E&&C&&(o(D,void 0),C=!1)}).catch(i);let R=(()=>{if(t.transport.type===\"fallback\"){let D=t.transport.transports.find(G=>G.config.type===\"webSocket\"||G.config.type===\"ipc\");return D?D.value:t.transport}return t.transport})(),{unsubscribe:L}=await R.subscribe({params:[\"newHeads\"],async onData(D){if(!E)return;let G=await Lt(t,uu,\"getBlock\")({blockNumber:D.result?.number,includeTransactions:h}).catch(()=>{});E&&(o(G,m),C=!1,m=G)},onError(D){i?.(D)}});T=L,E||T()}catch(R){i?.(R)}})(),()=>T()})()}var Oge=ce(()=>{p();ki();Ex();O6();au();S6()});function iF(t,{emitOnBegin:e=!1,emitMissed:n=!1,onBlockNumber:r,onError:o,poll:i,pollingInterval:a=t.pollingInterval}){let c=typeof i<\"u\"?i:!(t.transport.type===\"webSocket\"||t.transport.type===\"ipc\"||t.transport.type===\"fallback\"&&(t.transport.transports[0].config.type===\"webSocket\"||t.transport.transports[0].config.type===\"ipc\")),u;return c?(()=>{let m=qr([\"watchBlockNumber\",t.uid,e,n,a]);return du(m,{onBlockNumber:r,onError:o},g=>Yp(async()=>{try{let b=await Lt(t,Vy,\"getBlockNumber\")({cacheTime:0});if(u){if(b===u)return;if(b-u>1&&n)for(let E=u+1n;E<b;E++)g.onBlockNumber(E,u),u=E}(!u||b>u)&&(g.onBlockNumber(b,u),u=b)}catch(b){g.onError?.(b)}},{emitOnBegin:e,interval:a}))})():(()=>{let m=qr([\"watchBlockNumber\",t.uid,e,n]);return du(m,{onBlockNumber:r,onError:o},g=>{let b=!0,E=()=>b=!1;return(async()=>{try{let C=(()=>{if(t.transport.type===\"fallback\"){let R=t.transport.transports.find(L=>L.config.type===\"webSocket\"||L.config.type===\"ipc\");return R?R.value:t.transport}return t.transport})(),{unsubscribe:T}=await C.subscribe({params:[\"newHeads\"],onData(R){if(!b)return;let L=jo(R.result?.number);g.onBlockNumber(L,u),u=L},onError(R){g.onError?.(R)}});E=T,b||E()}catch(C){o?.(C)}})(),()=>E()})})()}var sQ=ce(()=>{p();fc();ki();Ex();O6();au();xC()});async function Sx(t,{filter:e}){return e.request({method:\"eth_uninstallFilter\",params:[e.id]})}var A9=ce(()=>{p()});function Pge(t,{address:e,args:n,batch:r=!0,event:o,events:i,fromBlock:a,onError:c,onLogs:u,poll:d,pollingInterval:h=t.pollingInterval,strict:m}){let g=typeof d<\"u\"?d:typeof a==\"bigint\"?!0:!(t.transport.type===\"webSocket\"||t.transport.type===\"ipc\"||t.transport.type===\"fallback\"&&(t.transport.transports[0].config.type===\"webSocket\"||t.transport.transports[0].config.type===\"ipc\")),b=m??!1;return g?(()=>{let T=qr([\"watchEvent\",e,n,r,t.uid,o,h,a]);return du(T,{onLogs:u,onError:c},R=>{let L;a!==void 0&&(L=a-1n);let D,G=!1,W=Yp(async()=>{if(!G){try{D=await Lt(t,_D,\"createEventFilter\")({address:e,args:n,event:o,events:i,strict:b,fromBlock:a})}catch{}G=!0;return}try{let J;if(D)J=await Lt(t,xx,\"getFilterChanges\")({filter:D});else{let ne=await Lt(t,Vy,\"getBlockNumber\")({});L&&L!==ne?J=await Lt(t,kC,\"getLogs\")({address:e,args:n,event:o,events:i,fromBlock:L+1n,toBlock:ne}):J=[],L=ne}if(J.length===0)return;if(r)R.onLogs(J);else for(let ne of J)R.onLogs([ne])}catch(J){D&&J instanceof W0&&(G=!1),R.onError?.(J)}},{emitOnBegin:!0,interval:h});return async()=>{D&&await Lt(t,Sx,\"uninstallFilter\")({filter:D}),W()}})})():(()=>{let T=!0,R=()=>T=!1;return(async()=>{try{let L=(()=>{if(t.transport.type===\"fallback\"){let J=t.transport.transports.find(ne=>ne.config.type===\"webSocket\"||ne.config.type===\"ipc\");return J?J.value:t.transport}return t.transport})(),D=i??(o?[o]:void 0),G=[];D&&(G=[D.flatMap(ne=>Wy({abi:[ne],eventName:ne.name,args:n}))],o&&(G=G[0]));let{unsubscribe:W}=await L.subscribe({params:[\"logs\",{address:e,topics:G}],onData(J){if(!T)return;let ne=J.result;try{let{eventName:ie,args:Z}=EC({abi:D??[],data:ne.data,topics:ne.topics,strict:b}),ae=ou(ne,{args:Z,eventName:ie});u([ae])}catch(ie){let Z,ae;if(ie instanceof U0||ie instanceof Ry){if(m)return;Z=ie.abiItem.name,ae=ie.abiItem.inputs?.some($=>!(\"name\"in $&&$.name))}let V=ou(ne,{args:ae?[]:{},eventName:Z});u([V])}},onError(J){c?.(J)}});R=W,T||R()}catch(L){c?.(L)}})(),()=>R()})()}var Mge=ce(()=>{p();wC();Ex();O6();au();Es();X5();AD();Mw();ki();OY();xC();b9();RD();A9()});function Nge(t,{batch:e=!0,onError:n,onTransactions:r,poll:o,pollingInterval:i=t.pollingInterval}){return(typeof o<\"u\"?o:t.transport.type!==\"webSocket\"&&t.transport.type!==\"ipc\")?(()=>{let d=qr([\"watchPendingTransactions\",t.uid,e,i]);return du(d,{onTransactions:r,onError:n},h=>{let m,g=Yp(async()=>{try{if(!m)try{m=await Lt(t,CD,\"createPendingTransactionFilter\")({});return}catch(E){throw g(),E}let b=await Lt(t,xx,\"getFilterChanges\")({filter:m});if(b.length===0)return;if(e)h.onTransactions(b);else for(let E of b)h.onTransactions([E])}catch(b){h.onError?.(b)}},{emitOnBegin:!0,interval:i});return async()=>{m&&await Lt(t,Sx,\"uninstallFilter\")({filter:m}),g()}})})():(()=>{let d=!0,h=()=>d=!1;return(async()=>{try{let{unsubscribe:m}=await t.transport.subscribe({params:[\"newPendingTransactions\"],onData(g){if(!d)return;let b=g.result;r([b])},onError(g){n?.(g)}});h=m,d||h()}catch(m){n?.(m)}})(),()=>h()})()}var Lge=ce(()=>{p();ki();Ex();O6();au();PY();b9();A9()});async function Bge(t){return t.account?.type===\"local\"?[t.account.address]:(await t.request({method:\"eth_accounts\"},{dedupe:!0})).map(n=>Ty(n))}var Dge=ce(()=>{p();tv()});async function Fge(t){return await t.request({method:\"wallet_getPermissions\"},{dedupe:!0})}var Uge=ce(()=>{p()});async function T9(t,e={}){let{account:n=t.account,chainId:r}=e,o=n?Wn(n):void 0,i=r?[o?.address,[Ye(r)]]:[o?.address],a=await t.request({method:\"wallet_getCapabilities\",params:i}),c={};for(let[u,d]of Object.entries(a)){c[Number(u)]={};for(let[h,m]of Object.entries(d))h===\"addSubAccount\"&&(h=\"unstable_addSubAccount\"),c[Number(u)][h]=m}return typeof r==\"number\"?c[r]:c}var aQ=ce(()=>{p();js();gn()});async function R9(t,e){let{account:n=t.account,capabilities:r,chain:o=t.chain,experimental_fallback:i,experimental_fallbackDelay:a=32,forceAtomic:c=!1,id:u,version:d=\"2.0.0\"}=e,h=n?Wn(n):null,m=e.calls.map(g=>{let b=g,E=b.abi?yo({abi:b.abi,functionName:b.functionName,args:b.args}):b.data;return{data:b.dataSuffix&&E?Da([E,b.dataSuffix]):E,to:b.to,value:b.value?Ye(b.value):void 0}});try{let g=await t.request({method:\"wallet_sendCalls\",params:[{atomicRequired:c,calls:m,capabilities:r,chainId:Ye(o.id),from:h?.address,id:u,version:d}]},{retryCount:0});return typeof g==\"string\"?{id:g}:g}catch(g){let b=g;if(i&&(b.name===\"MethodNotFoundRpcError\"||b.name===\"MethodNotSupportedRpcError\"||b.name===\"UnknownRpcError\"||b.details.toLowerCase().includes(\"does not exist / is not available\")||b.details.toLowerCase().includes(\"missing or invalid. request()\")||b.details.toLowerCase().includes(\"did not match any variant of untagged enum\")||b.details.toLowerCase().includes(\"account upgraded to unsupported contract\")||b.details.toLowerCase().includes(\"eip-7702 not supported\")||b.details.toLowerCase().includes(\"unsupported wc_ method\"))){if(r&&Object.values(r).some(L=>!L.optional)){let L=\"non-optional `capabilities` are not supported on fallback to `eth_sendTransaction`.\";throw new sv(new Be(L,{details:L}))}if(c&&m.length>1){let R=\"`forceAtomic` is not supported on fallback to `eth_sendTransaction`.\";throw new av(new Be(R,{details:R}))}let E=[];for(let R of m){let L=Q0(t,{account:h,chain:o,data:R.data,to:R.to,value:R.value?jo(R.value):void 0});E.push(L),a>0&&await new Promise(D=>setTimeout(D,a))}let C=await Promise.allSettled(E);if(C.every(R=>R.status===\"rejected\"))throw C[0].reason;let T=C.map(R=>R.status===\"fulfilled\"?R.value:lQ);return{id:Da([...T,Ye(o.id,{size:32}),cQ])}}throw DB(g,{...e,account:h,chain:e.chain})}}var cQ,lQ,sF=ce(()=>{p();js();ir();X5();Ef();iu();fc();gn();rY();uC();cQ=\"0x5792579257925792579257925792579257925792579257925792579257925792\",lQ=Ye(0,{size:32})});async function P6(t,e){async function n(h){if(h.endsWith(cQ.slice(2))){let g=Fs(w4(h,-64,-32)),b=w4(h,0,-64).slice(2).match(/.{1,64}/g),E=await Promise.all(b.map(T=>lQ.slice(2)!==T?t.request({method:\"eth_getTransactionReceipt\",params:[`0x${T}`]},{dedupe:!0}):void 0)),C=E.some(T=>T===null)?100:E.every(T=>T?.status===\"0x1\")?200:E.every(T=>T?.status===\"0x0\")?500:600;return{atomic:!1,chainId:Ei(g),receipts:E.filter(Boolean),status:C,version:\"2.0.0\"}}return t.request({method:\"wallet_getCallsStatus\",params:[h]})}let{atomic:r=!1,chainId:o,receipts:i,version:a=\"2.0.0\",...c}=await n(e.id),[u,d]=(()=>{let h=c.status;return h>=100&&h<200?[\"pending\",h]:h>=200&&h<300?[\"success\",h]:h>=300&&h<700?[\"failure\",h]:h===\"CONFIRMED\"?[\"success\",200]:h===\"PENDING\"?[\"pending\",100]:[void 0,h]})();return{...c,atomic:r,chainId:o?Ei(o):void 0,receipts:i?.map(h=>({...h,blockNumber:jo(h.blockNumber),gasUsed:jo(h.gasUsed),status:kG[h.status]}))??[],statusCode:d,status:u,version:a}}var aF=ce(()=>{p();nv();Pw();fc();oL();sF()});async function I9(t,e){let{id:n}=e;await t.request({method:\"wallet_showCallsStatus\",params:[n]})}var uQ=ce(()=>{p()});async function jge(t,e){let{id:n,pollingInterval:r=t.pollingInterval,status:o=({statusCode:g})=>g>=200,timeout:i=6e4}=e,a=qr([\"waitForCallsStatus\",t.uid,n]),{promise:c,resolve:u,reject:d}=yC(),h,m=du(a,{resolve:u,reject:d},g=>{let b=Yp(async()=>{let E=C=>{clearTimeout(h),b(),C(),m()};try{let C=await P6(t,{id:n});if(!o(C))return;E(()=>g.resolve(C))}catch(C){E(()=>g.reject(C))}},{interval:r,emitOnBegin:!0});return b});return h=i?setTimeout(()=>{m(),clearTimeout(h),d(new dQ({id:n}))},i):void 0,await c}var dQ,zge=ce(()=>{p();ir();Ex();O6();hD();au();aF();dQ=class extends Be{constructor({id:e}){super(`Timed out while waiting for call bundle with id \"${e}\" to be confirmed.`,{name:\"WaitForCallsStatusTimeoutError\"})}}});function KHe(t){return t.map(e=>({...e,value:BigInt(e.value)}))}function Hge(t){return{...t,balance:t.balance?BigInt(t.balance):void 0,nonce:t.nonce?Ei(t.nonce):void 0,storageProof:t.storageProof?KHe(t.storageProof):void 0}}var qge=ce(()=>{p();C9()});async function Wge(t,{address:e,blockNumber:n,blockTag:r,storageKeys:o}){let i=r??\"latest\",a=n!==void 0?Ye(n):void 0,c=await t.request({method:\"eth_getProof\",params:[e,o,a||i]});return Hge(c)}var Vge=ce(()=>{p();gn();qge()});async function O9(t,{confirmations:e=1,hash:n,onReplaced:r,pollingInterval:o=t.pollingInterval,retryCount:i=6,retryDelay:a=({count:u})=>~~(1<<u)*200,timeout:c=18e4}){let u=qr([\"waitForTransactionReceipt\",t.uid,n]),d,h,m,g=!1,b,E,{promise:C,resolve:T,reject:R}=yC(),L=c?setTimeout(()=>{E(),b(),R(new gL({hash:n}))},c):void 0;return b=du(u,{onReplaced:r,resolve:T,reject:R},D=>{E=Lt(t,iF,\"watchBlockNumber\")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:o,async onBlockNumber(G){let W=ne=>{clearTimeout(L),E(),ne(),b()},J=G;if(!g)try{if(m){if(e>1&&(!m.blockNumber||J-m.blockNumber+1n<e))return;W(()=>D.resolve(m));return}if(d||(g=!0,await eg(async()=>{d=await Lt(t,Ev,\"getTransaction\")({hash:n}),d.blockNumber&&(J=d.blockNumber)},{delay:a,retryCount:i}),g=!1),m=await Lt(t,w9,\"getTransactionReceipt\")({hash:n}),e>1&&(!m.blockNumber||J-m.blockNumber+1n<e))return;W(()=>D.resolve(m))}catch(ne){if(ne instanceof o4||ne instanceof i4){if(!d){g=!1;return}try{h=d,g=!0;let ie=await eg(()=>Lt(t,uu,\"getBlock\")({blockNumber:J,includeTransactions:!0}),{delay:a,retryCount:i,shouldRetry:({error:V})=>V instanceof oC});g=!1;let Z=ie.transactions.find(({from:V,nonce:$})=>V===h.from&&$===h.nonce);if(!Z||(m=await Lt(t,w9,\"getTransactionReceipt\")({hash:Z.hash}),e>1&&(!m.blockNumber||J-m.blockNumber+1n<e)))return;let ae=\"replaced\";Z.to===h.to&&Z.value===h.value&&Z.input===h.input?ae=\"repriced\":Z.from===Z.to&&Z.value===0n&&(ae=\"cancelled\"),W(()=>{D.onReplaced?.({reason:ae,replacedTransaction:h,transaction:Z,transactionReceipt:m}),D.resolve(m)})}catch(ie){W(()=>D.reject(ie))}}else W(()=>D.reject(ne))}}})}),C}var fQ=ce(()=>{p();oY();L0();ki();Ex();hD();ZD();au();S6();v9();LY();sQ()});async function $ge(t){return(await t.request({method:\"eth_requestAccounts\"},{dedupe:!0,retryCount:0})).map(n=>Fr(n))}var Kge=ce(()=>{p();tv()});async function Gge(t,e){return t.request({method:\"wallet_requestPermissions\",params:[e]},{retryCount:0})}var Zge=ce(()=>{p()});async function cF(t,e){let{account:n=t.account,chainId:r,nonce:o}=e;if(!n)throw new su({docsPath:\"/docs/eip7702/prepareAuthorization\"});let i=Wn(n),a=(()=>{if(e.executor)return e.executor===\"self\"?e.executor:Wn(e.executor)})(),c={address:e.contractAddress??e.address,chainId:r,nonce:o};return typeof c.chainId>\"u\"&&(c.chainId=t.chain?.id??await Lt(t,Zp,\"getChainId\")({})),typeof c.nonce>\"u\"&&(c.nonce=await Lt(t,cC,\"getTransactionCount\")({address:i.address,blockTag:\"pending\"}),(a===\"self\"||a?.address&&Hy(a.address,i.address))&&(c.nonce+=1)),c}var hQ=ce(()=>{p();js();Hw();bC();ki();E6();KB()});async function Yge(t,e){let{account:n=t.account}=e;if(!n)throw new su({docsPath:\"/docs/eip7702/signAuthorization\"});let r=Wn(n);if(!r.signAuthorization)throw new zw({docsPath:\"/docs/eip7702/signAuthorization\",metaMessages:[\"The `signAuthorization` Action does not support JSON-RPC Accounts.\"],type:r.type});let o=await cF(t,e);return r.signAuthorization(o)}var Qge=ce(()=>{p();js();Hw();hQ()});async function Jge(t,e){let{account:n=t.account,chain:r=t.chain,...o}=e;if(!n)throw new su({docsPath:\"/docs/actions/wallet/signTransaction\"});let i=Wn(n);gf({account:i,...e});let a=await Lt(t,Zp,\"getChainId\")({});r!==null&&BL({currentChainId:a,chain:r});let u=(r?.formatters||t.chain?.formatters)?.transactionRequest?.format||Bp;return i.signTransaction?i.signTransaction({...o,chainId:a},{serializer:t.chain?.serializers?.transaction}):await t.request({method:\"eth_signTransaction\",params:[{...u(o),chainId:Ye(a),from:i.address}]},{retryCount:0})}var Xge=ce(()=>{p();js();Hw();GG();gn();b5();ki();Qw();E6()});async function eye(t,{account:e=t.account,message:n}){if(!e)throw new su({docsPath:\"/docs/actions/wallet/signMessage\"});let r=Wn(e);if(r.signMessage)return r.signMessage({message:n});let o=typeof n==\"string\"?gh(n):n.raw instanceof Uint8Array?Uo(n.raw):n.raw;return t.request({method:\"personal_sign\",params:[o,r.address]},{retryCount:0})}var tye=ce(()=>{p();js();Hw();gn()});async function nye(t,e){let{account:n=t.account,domain:r,message:o,primaryType:i}=e;if(!n)throw new su({docsPath:\"/docs/actions/wallet/signTypedData\"});let a=Wn(n),c={EIP712Domain:eF({domain:r}),...e.types};if(XD({domain:r,message:o,primaryType:i,types:c}),a.signTypedData)return a.signTypedData({domain:r,message:o,primaryType:i,types:c});let u=mge({domain:r,message:o,primaryType:i,types:c});return t.request({method:\"eth_signTypedData_v4\",params:[a.address,u]},{retryCount:0})}var rye=ce(()=>{p();js();Hw();XY()});async function oye(t,e){let{abi:n,address:r,args:o,dataSuffix:i,functionName:a,...c}=e,u=c.account?Wn(c.account):t.account,d=yo({abi:n,args:o,functionName:a});try{let{data:h}=await Lt(t,xh,\"call\")({batch:!1,data:`${d}${i?i.replace(\"0x\",\"\"):\"\"}`,to:r,...c,account:u}),m=xf({abi:n,args:o,functionName:a,data:h||\"0x\"}),g=n.filter(b=>\"name\"in b&&b.name===e.functionName);return{result:m,request:{abi:g,address:r,args:o,dataSuffix:i,functionName:a,...c,account:u}}}catch(h){throw wh(h,{abi:n,address:r,args:o,docsPath:\"/docs/contract/simulateContract\",functionName:a,sender:u?.address})}}var iye=ce(()=>{p();js();gx();Ef();_6();ki();A6()});async function sye(t,{id:e}){await t.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(e)}]},{retryCount:0})}var aye=ce(()=>{p();gn()});function cye({r:t,s:e,to:n=\"hex\",v:r,yParity:o}){let i=(()=>{if(o===0||o===1)return o;if(r&&(r===27n||r===28n||r>=35n))return r%2n===0n?1:0;throw new Error(\"Invalid `v` or `yParity` value\")})(),a=`0x${new Y0.Signature(jo(t),jo(e)).toCompactHex()}${i===0?\"1b\":\"1c\"}`;return n===\"hex\"?a:Us(a)}var lye=ce(()=>{p();NB();fc();hc()});async function TC(t,e){let{address:n,factory:r,factoryData:o,hash:i,signature:a,universalSignatureVerifierAddress:c=t.chain?.contracts?.universalSignatureVerifier?.address,...u}=e,d=da(a)?a:typeof a==\"object\"&&\"r\"in a&&\"s\"in a?cye(a):Xr(a),h=await(async()=>!r&&!o||rF(d)?d:Sge({address:r,data:o,signature:d}))();try{let m=c?{to:c,data:yo({abi:QB,functionName:\"isValidSig\",args:[n,i,h]}),...u}:{data:h6({abi:QB,args:[n,i,h],bytecode:jme}),...u},{data:g}=await Lt(t,xh,\"call\")(m);return eR(g??\"0x0\")}catch(m){try{if(Hy(Fr(n),await LB({hash:i,signature:a})))return!0}catch{}if(m instanceof N5)return!1;throw m}}var lF=ce(()=>{p();bv();fD();ov();kB();tv();bC();P0();gn();ki();C9();rQ();tY();kge();lye();A6()});async function uye(t,{address:e,message:n,factory:r,factoryData:o,signature:i,...a}){let c=tF(n);return TC(t,{address:e,factory:r,factoryData:o,hash:c,signature:i,...a})}var dye=ce(()=>{p();tQ();lF()});async function fye(t,e){let{address:n,factory:r,factoryData:o,signature:i,message:a,primaryType:c,types:u,domain:d,...h}=e,m=lge({message:a,primaryType:c,types:u,domain:d});return TC(t,{address:n,factory:r,factoryData:o,hash:m,signature:i,...h})}var hye=ce(()=>{p();pge();lF()});async function pye(t,e){return await t.request({method:\"wallet_watchAsset\",params:e},{retryCount:0})}var mye=ce(()=>{p()});function gye(t,e){let{abi:n,address:r,args:o,batch:i=!0,eventName:a,fromBlock:c,onError:u,onLogs:d,poll:h,pollingInterval:m=t.pollingInterval,strict:g}=e;return(typeof h<\"u\"?h:typeof c==\"bigint\"?!0:!(t.transport.type===\"webSocket\"||t.transport.type===\"ipc\"||t.transport.type===\"fallback\"&&(t.transport.transports[0].config.type===\"webSocket\"||t.transport.transports[0].config.type===\"ipc\")))?(()=>{let T=g??!1,R=qr([\"watchContractEvent\",r,o,i,t.uid,a,m,T,c]);return du(R,{onLogs:d,onError:u},L=>{let D;c!==void 0&&(D=c-1n);let G,W=!1,J=Yp(async()=>{if(!W){try{G=await Lt(t,kD,\"createContractEventFilter\")({abi:n,address:r,args:o,eventName:a,strict:T,fromBlock:c})}catch{}W=!0;return}try{let ne;if(G)ne=await Lt(t,xx,\"getFilterChanges\")({filter:G});else{let ie=await Lt(t,Vy,\"getBlockNumber\")({});D&&D<ie?ne=await Lt(t,ID,\"getContractEvents\")({abi:n,address:r,args:o,eventName:a,fromBlock:D+1n,toBlock:ie,strict:T}):ne=[],D=ie}if(ne.length===0)return;if(i)L.onLogs(ne);else for(let ie of ne)L.onLogs([ie])}catch(ne){G&&ne instanceof W0&&(W=!1),L.onError?.(ne)}},{emitOnBegin:!0,interval:m});return async()=>{G&&await Lt(t,Sx,\"uninstallFilter\")({filter:G}),J()}})})():(()=>{let T=g??!1,R=qr([\"watchContractEvent\",r,o,i,t.uid,a,m,T]),L=!0,D=()=>L=!1;return du(R,{onLogs:d,onError:u},G=>((async()=>{try{let W=(()=>{if(t.transport.type===\"fallback\"){let ie=t.transport.transports.find(Z=>Z.config.type===\"webSocket\"||Z.config.type===\"ipc\");return ie?ie.value:t.transport}return t.transport})(),J=a?Wy({abi:n,eventName:a,args:o}):[],{unsubscribe:ne}=await W.subscribe({params:[\"logs\",{address:r,topics:J}],onData(ie){if(!L)return;let Z=ie.result;try{let{eventName:ae,args:V}=EC({abi:n,data:Z.data,topics:Z.topics,strict:g}),$=ou(Z,{args:V,eventName:ae});G.onLogs([$])}catch(ae){let V,$;if(ae instanceof U0||ae instanceof Ry){if(g)return;V=ae.abiItem.name,$=ae.abiItem.inputs?.some(_=>!(\"name\"in _&&_.name))}let F=ou(Z,{args:$?[]:{},eventName:V});G.onLogs([F])}},onError(ie){G.onError?.(ie)}});D=ne,L||D()}catch(W){u?.(W)}})(),()=>D()))})()}var yye=ce(()=>{p();Es();X5();AD();wC();Mw();ki();Ex();O6();au();IY();xC();NY();b9();A9()});async function bye(t,e){let{abi:n,account:r=t.account,address:o,args:i,dataSuffix:a,functionName:c,...u}=e;if(typeof r>\"u\")throw new su({docsPath:\"/docs/contract/writeContract\"});let d=r?Wn(r):null,h=yo({abi:n,args:i,functionName:c});try{return await Lt(t,Q0,\"sendTransaction\")({data:`${h}${a?a.replace(\"0x\",\"\"):\"\"}`,to:o,account:d,...u})}catch(m){throw wh(m,{abi:n,address:o,args:i,docsPath:\"/docs/contract/writeContract\",functionName:c,sender:d?.address})}}var vye=ce(()=>{p();js();Hw();Ef();_6();ki();uC()});function hF(t=11){if(!fF||dF+t>256*2){fF=\"\",dF=0;for(let e=0;e<256;e++)fF+=(256+Math.random()*256|0).toString(16).substring(1)}return fF.substring(dF,dF+++t)}var dF,fF,pQ=ce(()=>{p();dF=256});function M6(t){let{batch:e,chain:n,ccipRead:r,key:o=\"base\",name:i=\"Base Client\",type:a=\"base\"}=t,c=n?.blockTime??12e3,u=Math.min(Math.max(Math.floor(c/2),500),4e3),d=t.pollingInterval??u,h=t.cacheTime??d,m=t.account?Wn(t.account):void 0,{config:g,request:b,value:E}=t.transport({chain:n,pollingInterval:d}),C={...g,...E},T={account:m,batch:e,cacheTime:h,ccipRead:r,chain:n,key:o,name:i,pollingInterval:d,request:b,transport:C,type:a,uid:hF()};function R(L){return D=>{let G=D(L);for(let J in T)delete G[J];let W={...L,...G};return Object.assign(W,{extend:R(W)})}}return Object.assign(T,{extend:R(T)})}var mQ=ce(()=>{p();js();pQ()});function pF({key:t,methods:e,name:n,request:r,retryCount:o=3,retryDelay:i=150,timeout:a,type:c},u){let d=hF();return{config:{key:t,methods:e,name:n,request:r,retryCount:o,retryDelay:i,timeout:a,type:c},request:rge(r,{methods:e,retryCount:o,retryDelay:i,uid:d}),value:u}}var gQ=ce(()=>{p();oge();pQ()});function P9(t,e={}){let{key:n=\"custom\",methods:r,name:o=\"Custom Provider\",retryDelay:i}=e;return({retryCount:a})=>pF({key:n,methods:r,name:o,request:t.request.bind(t),retryCount:e.retryCount??a,retryDelay:i,type:\"custom\"})}var kye=ce(()=>{p();gQ()});var mF,_ye=ce(()=>{p();ir();mF=class extends Be{constructor(){super(\"No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.\",{docsPath:\"/docs/clients/intro\",name:\"UrlRequiredError\"})}}});function Eh(t,e={}){let{batch:n,fetchOptions:r,key:o=\"http\",methods:i,name:a=\"HTTP JSON-RPC\",onFetchRequest:c,onFetchResponse:u,retryDelay:d,raw:h}=e;return({chain:m,retryCount:g,timeout:b})=>{let{batchSize:E=1e3,wait:C=0}=typeof n==\"object\"?n:{},T=e.retryCount??g,R=b??e.timeout??1e4,L=t||m?.rpcUrls.default.http[0];if(!L)throw new mF;let D=sge(L,{fetchOptions:r,onRequest:c,onResponse:u,timeout:R});return pF({key:o,methods:i,name:a,async request({method:G,params:W}){let J={method:G,params:W},{schedule:ne}=pD({id:L,wait:C,shouldSplitBatch(V){return V.length>E},fn:V=>D.request({body:V}),sort:(V,$)=>V.id-$.id}),ie=async V=>n?ne(V):[await D.request({body:V})],[{error:Z,result:ae}]=await ie(J);if(h)return{error:Z,result:ae};if(Z)throw new Kw({body:J,error:Z,url:L});return ae},retryCount:T,retryDelay:d,timeout:R,type:\"http\"},{fetchOptions:r,url:L})}}var Cye=ce(()=>{p();B5();_ye();_Y();age();gQ()});function Aye(t){let{scheme:e,statement:n,...r}=t.match(GHe)?.groups??{},{chainId:o,expirationTime:i,issuedAt:a,notBefore:c,requestId:u,...d}=t.match(ZHe)?.groups??{},h=t.split(\"Resources:\")[1]?.split(`\\n- `).slice(1);return{...r,...d,...o?{chainId:Number(o)}:{},...i?{expirationTime:new Date(i)}:{},...a?{issuedAt:new Date(a)}:{},...c?{notBefore:new Date(c)}:{},...u?{requestId:u}:{},...h?{resources:h}:{},...e?{scheme:e}:{},...n?{statement:n}:{}}}var GHe,ZHe,Tye=ce(()=>{p();GHe=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\\\\/\\\\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\\\n)(?<address>0x[a-fA-F0-9]{40})\\\\n\\\\n(?:(?<statement>.*)\\\\n\\\\n)?/,ZHe=/(?:URI: (?<uri>.+))\\\\n(?:Version: (?<version>.+))\\\\n(?:Chain ID: (?<chainId>\\\\d+))\\\\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\\\\n(?:Issued At: (?<issuedAt>.+))(?:\\\\nExpiration Time: (?<expirationTime>.+))?(?:\\\\nNot Before: (?<notBefore>.+))?(?:\\\\nRequest ID: (?<requestId>.+))?/});function Rye(t){let{address:e,domain:n,message:r,nonce:o,scheme:i,time:a=new Date}=t;if(n&&r.domain!==n||o&&r.nonce!==o||i&&r.scheme!==i||r.expirationTime&&a>=r.expirationTime||r.notBefore&&a<r.notBefore)return!1;try{if(!r.address||!Kr(r.address,{strict:!1})||e&&!Hy(r.address,e))return!1}catch{return!1}return!0}var Iye=ce(()=>{p();hf();bC()});async function Oye(t,e){let{address:n,domain:r,message:o,nonce:i,scheme:a,signature:c,time:u=new Date,...d}=e,h=Aye(o);if(!h.address||!Rye({address:n,domain:r,message:h,nonce:i,scheme:a,time:u}))return!1;let g=tF(o);return TC(t,{address:h.address,hash:g,signature:c,...d})}var Pye=ce(()=>{p();tQ();Tye();Iye();lF()});function NC(t){return{call:e=>xh(t,e),createAccessList:e=>ED(t,e),createBlockFilter:()=>c0e(t),createContractEventFilter:e=>kD(t,e),createEventFilter:e=>_D(t,e),createPendingTransactionFilter:()=>CD(t),estimateContractGas:e=>h0e(t,e),estimateGas:e=>aC(t,e),getBalance:e=>k6(t,e),getBlobBaseFee:()=>m0e(t),getBlock:e=>uu(t,e),getBlockNumber:e=>Vy(t,e),getBlockTransactionCount:e=>w0e(t,e),getBytecode:e=>MY(t,e),getChainId:()=>Zp(t),getCode:e=>MY(t,e),getContractEvents:e=>ID(t,e),getEip712Domain:e=>_0e(t,e),getEnsAddress:e=>$me(t,e),getEnsAvatar:e=>n0e(t,e),getEnsName:e=>o0e(t,e),getEnsResolver:e=>s0e(t,e),getEnsText:e=>xD(t,e),getFeeHistory:e=>R0e(t,e),estimateFeesPerGas:e=>Ype(t,e),getFilterChanges:e=>xx(t,e),getFilterLogs:e=>O0e(t,e),getGasPrice:()=>iC(t),getLogs:e=>kC(t,e),getProof:e=>Wge(t,e),estimateMaxPriorityFeePerGas:e=>Zpe(t,e),getStorageAt:e=>M0e(t,e),getTransaction:e=>Ev(t,e),getTransactionConfirmations:e=>L0e(t,e),getTransactionCount:e=>cC(t,e),getTransactionReceipt:e=>w9(t,e),multicall:e=>x9(t,e),prepareTransactionRequest:e=>mx(t,e),readContract:e=>ja(t,e),sendRawTransaction:e=>lC(t,e),simulate:e=>E9(t,e),simulateBlocks:e=>E9(t,e),simulateCalls:e=>Age(t,e),simulateContract:e=>oye(t,e),verifyMessage:e=>uye(t,e),verifySiweMessage:e=>Oye(t,e),verifyTypedData:e=>fye(t,e),uninstallFilter:e=>Sx(t,e),waitForTransactionReceipt:e=>O9(t,e),watchBlocks:e=>Ige(t,e),watchBlockNumber:e=>iF(t,e),watchContractEvent:e=>gye(t,e),watchEvent:e=>Pge(t,e),watchPendingTransactions:e=>Nge(t,e)}}var yQ=ce(()=>{p();Kme();r0e();i0e();a0e();TY();A6();RY();l0e();IY();OY();PY();p0e();aY();$B();sY();VB();g0e();S6();xC();x0e();E6();E0e();NY();C0e();I0e();b9();P0e();zB();RD();Vge();N0e();v9();B0e();KB();LY();BY();qy();DY();Tge();iye();A9();dye();hye();fQ();sQ();Oge();yye();Mge();Lge();Pye();d9();GB()});function M9(t){let{key:e=\"public\",name:n=\"Public Client\"}=t;return M6({...t,key:e,name:n,type:\"publicClient\"}).extend(NC)}var Mye=ce(()=>{p();mQ();yQ()});function bQ(t){return{addChain:e=>epe(t,e),deployContract:e=>nme(t,e),getAddresses:()=>Bge(t),getCallsStatus:e=>P6(t,e),getCapabilities:e=>T9(t,e),getChainId:()=>Zp(t),getPermissions:()=>Fge(t),prepareAuthorization:e=>cF(t,e),prepareTransactionRequest:e=>mx(t,e),requestAddresses:()=>$ge(t),requestPermissions:e=>Gge(t,e),sendCalls:e=>R9(t,e),sendRawTransaction:e=>lC(t,e),sendTransaction:e=>Q0(t,e),showCallsStatus:e=>I9(t,e),signAuthorization:e=>Yge(t,e),signMessage:e=>eye(t,e),signTransaction:e=>Jge(t,e),signTypedData:e=>nye(t,e),switchChain:e=>sye(t,e),waitForCallsStatus:e=>jge(t,e),watchAsset:e=>pye(t,e),writeContract:e=>bye(t,e)}}var Nye=ce(()=>{p();E6();tpe();rme();Dge();aF();aQ();Uge();hQ();d9();Kge();Zge();sF();GB();uC();uQ();Qge();tye();Xge();rye();aye();zge();mye();vye()});var bo=ce(()=>{p();DR();mQ();kye();Cye();Mye();yQ();Nye();bv();cL();ov();X5();tD();Ef();Ege();gn();yge();ZD();QY();lL();fc();tv();hf();zp();DG();Cge();Pw()});var IQ=be((gGt,RQ)=>{\"use strict\";p();var eqe=Object.prototype.hasOwnProperty,bd=\"~\";function L9(){}Object.create&&(L9.prototype=Object.create(null),new L9().__proto__||(bd=!1));function tqe(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function Jye(t,e,n,r,o){if(typeof n!=\"function\")throw new TypeError(\"The listener must be a function\");var i=new tqe(n,r||t,o),a=bd?bd+e:e;return t._events[a]?t._events[a].fn?t._events[a]=[t._events[a],i]:t._events[a].push(i):(t._events[a]=i,t._eventsCount++),t}function SF(t,e){--t._eventsCount===0?t._events=new L9:delete t._events[e]}function hu(){this._events=new L9,this._eventsCount=0}hu.prototype.eventNames=function(){var e=[],n,r;if(this._eventsCount===0)return e;for(r in n=this._events)eqe.call(n,r)&&e.push(bd?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(n)):e};hu.prototype.listeners=function(e){var n=bd?bd+e:e,r=this._events[n];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,i=r.length,a=new Array(i);o<i;o++)a[o]=r[o].fn;return a};hu.prototype.listenerCount=function(e){var n=bd?bd+e:e,r=this._events[n];return r?r.fn?1:r.length:0};hu.prototype.emit=function(e,n,r,o,i,a){var c=bd?bd+e:e;if(!this._events[c])return!1;var u=this._events[c],d=arguments.length,h,m;if(u.fn){switch(u.once&&this.removeListener(e,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,n),!0;case 3:return u.fn.call(u.context,n,r),!0;case 4:return u.fn.call(u.context,n,r,o),!0;case 5:return u.fn.call(u.context,n,r,o,i),!0;case 6:return u.fn.call(u.context,n,r,o,i,a),!0}for(m=1,h=new Array(d-1);m<d;m++)h[m-1]=arguments[m];u.fn.apply(u.context,h)}else{var g=u.length,b;for(m=0;m<g;m++)switch(u[m].once&&this.removeListener(e,u[m].fn,void 0,!0),d){case 1:u[m].fn.call(u[m].context);break;case 2:u[m].fn.call(u[m].context,n);break;case 3:u[m].fn.call(u[m].context,n,r);break;case 4:u[m].fn.call(u[m].context,n,r,o);break;default:if(!h)for(b=1,h=new Array(d-1);b<d;b++)h[b-1]=arguments[b];u[m].fn.apply(u[m].context,h)}}return!0};hu.prototype.on=function(e,n,r){return Jye(this,e,n,r,!1)};hu.prototype.once=function(e,n,r){return Jye(this,e,n,r,!0)};hu.prototype.removeListener=function(e,n,r,o){var i=bd?bd+e:e;if(!this._events[i])return this;if(!n)return SF(this,i),this;var a=this._events[i];if(a.fn)a.fn===n&&(!o||a.once)&&(!r||a.context===r)&&SF(this,i);else{for(var c=0,u=[],d=a.length;c<d;c++)(a[c].fn!==n||o&&!a[c].once||r&&a[c].context!==r)&&u.push(a[c]);u.length?this._events[i]=u.length===1?u[0]:u:SF(this,i)}return this};hu.prototype.removeAllListeners=function(e){var n;return e?(n=bd?bd+e:e,this._events[n]&&SF(this,n)):(this._events=new L9,this._eventsCount=0),this};hu.prototype.off=hu.prototype.removeListener;hu.prototype.addListener=hu.prototype.on;hu.prefixed=bd;hu.EventEmitter=hu;typeof RQ<\"u\"&&(RQ.exports=hu)});var kv,Xye,DC=ce(()=>{p();kv=he(IQ(),1),Xye=kv.default});var u1e=be(l1e=>{\"use strict\";p();(function(){function t(b,E){return b===E&&(b!==0||1/b===1/E)||b!==b&&E!==E}function e(b,E){h||o.startTransition===void 0||(h=!0,console.error(\"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"));var C=E();if(!m){var T=E();i(C,T)||(console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\"),m=!0)}T=a({inst:{value:C,getSnapshot:E}});var R=T[0].inst,L=T[1];return u(function(){R.value=C,R.getSnapshot=E,n(R)&&L({inst:R})},[b,C,E]),c(function(){return n(R)&&L({inst:R}),b(function(){n(R)&&L({inst:R})})},[b]),d(C),C}function n(b){var E=b.getSnapshot;b=b.value;try{var C=E();return!i(b,C)}catch{return!0}}function r(b,E){return E()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=et(),i=typeof Object.is==\"function\"?Object.is:t,a=o.useState,c=o.useEffect,u=o.useLayoutEffect,d=o.useDebugValue,h=!1,m=!1,g=typeof window>\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"?r:e;l1e.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:g,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var f1e=be((ZZt,d1e)=>{\"use strict\";p();d1e.exports=u1e()});var p1e=be(h1e=>{\"use strict\";p();(function(){function t(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var e=et(),n=f1e(),r=typeof Object.is==\"function\"?Object.is:t,o=n.useSyncExternalStore,i=e.useRef,a=e.useEffect,c=e.useMemo,u=e.useDebugValue;h1e.useSyncExternalStoreWithSelector=function(d,h,m,g,b){var E=i(null);if(E.current===null){var C={hasValue:!1,value:null};E.current=C}else C=E.current;E=c(function(){function R(J){if(!L){if(L=!0,D=J,J=g(J),b!==void 0&&C.hasValue){var ne=C.value;if(b(ne,J))return G=ne}return G=J}if(ne=G,r(D,J))return ne;var ie=g(J);return b!==void 0&&b(ne,ie)?(D=J,ne):(D=J,G=ie)}var L=!1,D,G,W=m===void 0?null:m;return[function(){return R(h())},W===null?void 0:function(){return R(W())}]},[h,m,g,b]);var T=o(d,E[0],E[1]);return a(function(){C.hasValue=!0,C.value=T},[T]),u(T),T},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==\"function\"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var g1e=be((XZt,m1e)=>{\"use strict\";p();m1e.exports=p1e()});var N1e,L1e=ce(()=>{p();N1e=(t,e)=>{let n;switch(t){case\"standard\":return n=e,`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 1024 1024\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E %3Crect width=\\'1024\\' height=\\'1024\\' fill=\\'%230052FF\\'/%3E %3Cpath fill-rule=\\'evenodd\\' clip-rule=\\'evenodd\\' d=\\'M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z\\' fill=\\'white\\'/%3E %3C/svg%3E `;case\"circle\":return n=e,`data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 999.81 999.81\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3Cpath class=\\'cls-2\\' d=\\'M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3Cpath class=\\'cls-3\\' d=\\'M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3C/svg%3E`;case\"text\":return n=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 528.15 53.64\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class=\\'cls-1\\' d=\\'M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z\\'/%3E%3C/svg%3E`;case\"textWithLogo\":return n=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 308.44 77.61\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z\\'/%3E%3C/svg%3E`;case\"textLight\":return n=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 528.15 53.64\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class=\\'cls-1\\' d=\\'M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z\\'/%3E%3C/svg%3E`;case\"textWithLogoLight\":return n=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 308.44 77.61\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z\\'/%3E%3C/svg%3E`;default:return n=e,`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 1024 1024\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E %3Crect width=\\'1024\\' height=\\'1024\\' fill=\\'%230052FF\\'/%3E %3Cpath fill-rule=\\'evenodd\\' clip-rule=\\'evenodd\\' d=\\'M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z\\' fill=\\'white\\'/%3E %3C/svg%3E `}}});var Bc,_v=ce(()=>{p();Bc=class t{constructor(e,n){this.scope=e,this.module=n}storeObject(e,n){this.setItem(e,JSON.stringify(n))}loadObject(e){let n=this.getItem(e);return n?JSON.parse(n):void 0}setItem(e,n){localStorage.setItem(this.scopedKey(e),n)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){let e=this.scopedKey(\"\"),n=[];for(let r=0;r<localStorage.length;r++){let o=localStorage.key(r);typeof o==\"string\"&&o.startsWith(e)&&n.push(o)}n.forEach(r=>localStorage.removeItem(r))}scopedKey(e){return`-${this.scope}${this.module?`:${this.module}`:\"\"}:${e}`}static clearAll(){new t(\"CBWSDK\").clear(),new t(\"walletlink\").clear()}}});var Yi,LF,W9=ce(()=>{p();Yi={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901,unsupportedChain:4902}},LF={\"-32700\":{standard:\"JSON RPC 2.0\",message:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"},\"-32600\":{standard:\"JSON RPC 2.0\",message:\"The JSON sent is not a valid Request object.\"},\"-32601\":{standard:\"JSON RPC 2.0\",message:\"The method does not exist / is not available.\"},\"-32602\":{standard:\"JSON RPC 2.0\",message:\"Invalid method parameter(s).\"},\"-32603\":{standard:\"JSON RPC 2.0\",message:\"Internal JSON-RPC error.\"},\"-32000\":{standard:\"EIP-1474\",message:\"Invalid input.\"},\"-32001\":{standard:\"EIP-1474\",message:\"Resource not found.\"},\"-32002\":{standard:\"EIP-1474\",message:\"Resource unavailable.\"},\"-32003\":{standard:\"EIP-1474\",message:\"Transaction rejected.\"},\"-32004\":{standard:\"EIP-1474\",message:\"Method not supported.\"},\"-32005\":{standard:\"EIP-1474\",message:\"Request limit exceeded.\"},4001:{standard:\"EIP-1193\",message:\"User rejected the request.\"},4100:{standard:\"EIP-1193\",message:\"The requested account and/or method has not been authorized by the user.\"},4200:{standard:\"EIP-1193\",message:\"The requested method is not supported by this Ethereum provider.\"},4900:{standard:\"EIP-1193\",message:\"The provider is disconnected from all chains.\"},4901:{standard:\"EIP-1193\",message:\"The provider is disconnected from the specified chain.\"},4902:{standard:\"EIP-3085\",message:\"Unrecognized chain ID.\"}}});function BF(t,e=F1e){if(t&&Number.isInteger(t)){let n=t.toString();if(oJ(LF,n))return LF[n].message;if(j1e(t))return cqe}return e}function lqe(t){if(!Number.isInteger(t))return!1;let e=t.toString();return!!(LF[e]||j1e(t))}function U1e(t,{shouldIncludeStack:e=!1}={}){let n={};if(t&&typeof t==\"object\"&&!Array.isArray(t)&&oJ(t,\"code\")&&lqe(t.code)){let r=t;n.code=r.code,r.message&&typeof r.message==\"string\"?(n.message=r.message,oJ(r,\"data\")&&(n.data=r.data)):(n.message=BF(n.code),n.data={originalError:B1e(t)})}else n.code=Yi.rpc.internal,n.message=D1e(t,\"message\")?t.message:F1e,n.data={originalError:B1e(t)};return e&&(n.stack=D1e(t,\"stack\")?t.stack:void 0),n}function j1e(t){return t>=-32099&&t<=-32e3}function B1e(t){return t&&typeof t==\"object\"&&!Array.isArray(t)?Object.assign({},t):t}function oJ(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function D1e(t,e){return typeof t==\"object\"&&t!==null&&e in t&&typeof t[e]==\"string\"}var F1e,cqe,iJ=ce(()=>{p();W9();F1e=\"Unspecified error message.\",cqe=\"Unspecified server error.\"});function rm(t,e){let[n,r]=z1e(e);return new DF(t,n||BF(t),r)}function UC(t,e){let[n,r]=z1e(e);return new FF(t,n||BF(t),r)}function z1e(t){if(t){if(typeof t==\"string\")return[t];if(typeof t==\"object\"&&!Array.isArray(t)){let{message:e,data:n}=t;if(e&&typeof e!=\"string\")throw new Error(\"Must specify string message.\");return[e||void 0,n]}}return[]}function uqe(t){return Number.isInteger(t)&&t>=1e3&&t<=4999}var sr,DF,FF,Cv=ce(()=>{p();W9();iJ();sr={rpc:{parse:t=>rm(Yi.rpc.parse,t),invalidRequest:t=>rm(Yi.rpc.invalidRequest,t),invalidParams:t=>rm(Yi.rpc.invalidParams,t),methodNotFound:t=>rm(Yi.rpc.methodNotFound,t),internal:t=>rm(Yi.rpc.internal,t),server:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");let{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error(\\'\"code\" must be an integer such that: -32099 <= code <= -32005\\');return rm(e,t)},invalidInput:t=>rm(Yi.rpc.invalidInput,t),resourceNotFound:t=>rm(Yi.rpc.resourceNotFound,t),resourceUnavailable:t=>rm(Yi.rpc.resourceUnavailable,t),transactionRejected:t=>rm(Yi.rpc.transactionRejected,t),methodNotSupported:t=>rm(Yi.rpc.methodNotSupported,t),limitExceeded:t=>rm(Yi.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>UC(Yi.provider.userRejectedRequest,t),unauthorized:t=>UC(Yi.provider.unauthorized,t),unsupportedMethod:t=>UC(Yi.provider.unsupportedMethod,t),disconnected:t=>UC(Yi.provider.disconnected,t),chainDisconnected:t=>UC(Yi.provider.chainDisconnected,t),unsupportedChain:t=>UC(Yi.provider.unsupportedChain,t),custom:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");let{code:e,message:n,data:r}=t;if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string\\');return new FF(e,n,r)}}};DF=class extends Error{constructor(e,n,r){if(!Number.isInteger(e))throw new Error(\\'\"code\" must be an integer.\\');if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string.\\');super(n),this.code=e,r!==void 0&&(this.data=r)}},FF=class extends DF{constructor(e,n,r){if(!uqe(e))throw new Error(\\'\"code\" must be an integer such that: 1000 <= code <= 4999\\');super(e,n,r)}}});function UF(){return t=>t}function tg(t){return Math.floor(t)}var jC,H1e,q1e,dqe,sJ=ce(()=>{p();jC=UF(),H1e=UF(),q1e=UF();dqe=UF()});function Av(t){return V9(crypto.getRandomValues(new Uint8Array(t)))}function V9(t){return[...t].map(e=>e.toString(16).padStart(2,\"0\")).join(\"\")}function zC(t){return new Uint8Array(t.match(/.{1,2}/g).map(e=>Number.parseInt(e,16)))}function B6(t,e=!1){let n=t.toString(\"hex\");return jC(e?`0x${n}`:n)}function jF(t){return B6(HF(t),!0)}function ng(t){return q1e(t.toString(10))}function rg(t){return jC(`0x${BigInt(t).toString(16)}`)}function $1e(t){return t.startsWith(\"0x\")||t.startsWith(\"0X\")}function aJ(t){return $1e(t)?t.slice(2):t}function cJ(t){return $1e(t)?`0x${t.slice(2)}`:`0x${t}`}function zF(t){if(typeof t!=\"string\")return!1;let e=aJ(t).toLowerCase();return V1e.test(e)}function fqe(t,e=!1){if(typeof t==\"string\"){let n=aJ(t).toLowerCase();if(V1e.test(n))return jC(e?`0x${n}`:n)}throw sr.rpc.invalidParams(`\"${String(t)}\" is not a hexadecimal string`)}function lJ(t,e=!1){let n=fqe(t,!1);return n.length%2===1&&(n=jC(`0${n}`)),e?jC(`0x${n}`):n}function Tv(t){if(typeof t==\"string\"){let e=aJ(t).toLowerCase();if(zF(e)&&e.length===40)return H1e(cJ(e))}throw sr.rpc.invalidParams(`Invalid Ethereum address: ${String(t)}`)}function HF(t){if(globalThis.Buffer.isBuffer(t))return t;if(typeof t==\"string\"){if(zF(t)){let e=lJ(t,!1);return globalThis.Buffer.from(e,\"hex\")}return globalThis.Buffer.from(t,\"utf8\")}throw sr.rpc.invalidParams(`Not binary data: ${String(t)}`)}function D6(t){if(typeof t==\"number\"&&Number.isInteger(t))return tg(t);if(typeof t==\"string\"){if(W1e.test(t))return tg(Number(t));if(zF(t))return tg(Number(BigInt(lJ(t,!0))))}throw sr.rpc.invalidParams(`Not an integer: ${String(t)}`)}function HC(t){if(t!==null&&(typeof t==\"bigint\"||hqe(t)))return BigInt(t.toString(10));if(typeof t==\"number\")return BigInt(D6(t));if(typeof t==\"string\"){if(W1e.test(t))return BigInt(t);if(zF(t))return BigInt(lJ(t,!0))}throw sr.rpc.invalidParams(`Not an integer: ${String(t)}`)}function K1e(t){if(typeof t==\"string\")return JSON.parse(t);if(typeof t==\"object\")return t;throw sr.rpc.invalidParams(`Not a JSON string or an object: ${String(t)}`)}function hqe(t){if(t==null||typeof t.constructor!=\"function\")return!1;let{constructor:e}=t;return typeof e.config==\"function\"&&typeof e.EUCLID==\"number\"}function G1e(){let t=document.querySelector(\\'link[sizes=\"192x192\"]\\')||document.querySelector(\\'link[sizes=\"180x180\"]\\')||document.querySelector(\\'link[rel=\"icon\"]\\')||document.querySelector(\\'link[rel=\"shortcut icon\"]\\'),{protocol:e,host:n}=document.location,r=t?t.getAttribute(\"href\"):null;return!r||r.startsWith(\"javascript:\")||r.startsWith(\"vbscript:\")?`${e}//${n}/favicon.ico`:r.startsWith(\"http://\")||r.startsWith(\"https://\")||r.startsWith(\"data:\")?r:r.startsWith(\"//\")?e+r:`${e}//${n}${r}`}var W1e,V1e,$y=ce(()=>{p();Cv();sJ();W1e=/^[0-9]*$/,V1e=/^[a-f0-9]*$/});async function Z1e(){return crypto.subtle.generateKey({name:\"ECDH\",namedCurve:\"P-256\"},!0,[\"deriveKey\"])}async function Y1e(t,e){return crypto.subtle.deriveKey({name:\"ECDH\",public:e},t,{name:\"AES-GCM\",length:256},!1,[\"encrypt\",\"decrypt\"])}async function pqe(t,e){let n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.encrypt({name:\"AES-GCM\",iv:n},t,new TextEncoder().encode(e));return{iv:n,cipherText:r}}async function mqe(t,{iv:e,cipherText:n}){let r=await crypto.subtle.decrypt({name:\"AES-GCM\",iv:e},t,n);return new TextDecoder().decode(r)}function Q1e(t){switch(t){case\"public\":return\"spki\";case\"private\":return\"pkcs8\"}}async function qF(t,e){let n=Q1e(t),r=await crypto.subtle.exportKey(n,e);return V9(new Uint8Array(r))}async function WF(t,e){let n=Q1e(t),r=zC(e).buffer;return await crypto.subtle.importKey(n,new Uint8Array(r),{name:\"ECDH\",namedCurve:\"P-256\"},!0,t===\"private\"?[\"deriveKey\"]:[])}async function J1e(t,e){let n=JSON.stringify(t,(r,o)=>{if(!(o instanceof Error))return o;let i=o;return Object.assign(Object.assign({},i.code?{code:i.code}:{}),{message:i.message})});return pqe(e,n)}async function X1e(t,e){return JSON.parse(await mqe(e,t))}var uJ=ce(()=>{p();$y()});var dJ,fJ,hJ,VF,ebe=ce(()=>{p();_v();uJ();dJ={storageKey:\"ownPrivateKey\",keyType:\"private\"},fJ={storageKey:\"ownPublicKey\",keyType:\"public\"},hJ={storageKey:\"peerPublicKey\",keyType:\"public\"},VF=class{constructor(){this.storage=new Bc(\"CBWSDK\",\"SCWKeyManager\"),this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null}async getOwnPublicKey(){return await this.loadKeysIfNeeded(),this.ownPublicKey}async getSharedSecret(){return await this.loadKeysIfNeeded(),this.sharedSecret}async setPeerPublicKey(e){this.sharedSecret=null,this.peerPublicKey=e,await this.storeKey(hJ,e),await this.loadKeysIfNeeded()}async clear(){this.ownPrivateKey=null,this.ownPublicKey=null,this.peerPublicKey=null,this.sharedSecret=null,this.storage.removeItem(fJ.storageKey),this.storage.removeItem(dJ.storageKey),this.storage.removeItem(hJ.storageKey)}async generateKeyPair(){let e=await Z1e();this.ownPrivateKey=e.privateKey,this.ownPublicKey=e.publicKey,await this.storeKey(dJ,e.privateKey),await this.storeKey(fJ,e.publicKey)}async loadKeysIfNeeded(){if(this.ownPrivateKey===null&&(this.ownPrivateKey=await this.loadKey(dJ)),this.ownPublicKey===null&&(this.ownPublicKey=await this.loadKey(fJ)),(this.ownPrivateKey===null||this.ownPublicKey===null)&&await this.generateKeyPair(),this.peerPublicKey===null&&(this.peerPublicKey=await this.loadKey(hJ)),this.sharedSecret===null){if(this.ownPrivateKey===null||this.peerPublicKey===null)return;this.sharedSecret=await Y1e(this.ownPrivateKey,this.peerPublicKey)}}async loadKey(e){let n=this.storage.getItem(e.storageKey);return n?WF(e.keyType,n):null}async storeKey(e,n){let r=await qF(e.keyType,n);this.storage.setItem(e.storageKey,r)}}});var om,$F,F6=ce(()=>{p();om=\"4.3.3\",$F=\"@coinbase/wallet-sdk\"});async function qC(t,e){let n=Object.assign(Object.assign({},t),{jsonrpc:\"2.0\",id:crypto.randomUUID()}),r=await window.fetch(e,{method:\"POST\",body:JSON.stringify(n),mode:\"cors\",headers:{\"Content-Type\":\"application/json\",\"X-Cbw-Sdk-Version\":om,\"X-Cbw-Sdk-Platform\":$F}}),{result:o,error:i}=await r.json();if(i)throw i;return o}function gqe(){return globalThis.coinbaseWalletExtension}function yqe(){var t,e;try{let n=globalThis;return(t=n.ethereum)!==null&&t!==void 0?t:(e=n.top)===null||e===void 0?void 0:e.ethereum}catch{return}}function KF({metadata:t,preference:e}){var n,r;let{appName:o,appLogoUrl:i,appChainIds:a}=t;if(e.options!==\"smartWalletOnly\"){let u=gqe();if(u)return(n=u.setAppInfo)===null||n===void 0||n.call(u,o,i,a,e),u}let c=yqe();if(c?.isCoinbaseBrowser)return(r=c.setAppInfo)===null||r===void 0||r.call(c,o,i,a,e),c}function tbe(t){if(!t||typeof t!=\"object\"||Array.isArray(t))throw sr.rpc.invalidParams({message:\"Expected a single, non-array, object argument.\",data:t});let{method:e,params:n}=t;if(typeof e!=\"string\"||e.length===0)throw sr.rpc.invalidParams({message:\"\\'args.method\\' must be a non-empty string.\",data:t});if(n!==void 0&&!Array.isArray(n)&&(typeof n!=\"object\"||n===null))throw sr.rpc.invalidParams({message:\"\\'args.params\\' must be an object or array if provided.\",data:t});switch(e){case\"eth_sign\":case\"eth_signTypedData_v2\":case\"eth_subscribe\":case\"eth_unsubscribe\":throw sr.provider.unsupportedMethod()}}var WC=ce(()=>{p();F6();Cv()});var nbe,rbe,obe,ibe,GF,sbe=ce(()=>{p();ebe();Cv();_v();$y();uJ();WC();nbe=\"accounts\",rbe=\"activeChain\",obe=\"availableChains\",ibe=\"walletCapabilities\",GF=class{constructor(e){var n,r,o;this.metadata=e.metadata,this.communicator=e.communicator,this.callback=e.callback,this.keyManager=new VF,this.storage=new Bc(\"CBWSDK\",\"SCWStateManager\"),this.accounts=(n=this.storage.loadObject(nbe))!==null&&n!==void 0?n:[],this.chain=this.storage.loadObject(rbe)||{id:(o=(r=e.metadata.appChainIds)===null||r===void 0?void 0:r[0])!==null&&o!==void 0?o:1},this.handshake=this.handshake.bind(this),this.request=this.request.bind(this),this.createRequestMessage=this.createRequestMessage.bind(this),this.decryptResponseMessage=this.decryptResponseMessage.bind(this)}async handshake(e){var n,r,o,i;await((r=(n=this.communicator).waitForPopupLoaded)===null||r===void 0?void 0:r.call(n));let a=await this.createRequestMessage({handshake:{method:e.method,params:Object.assign({},this.metadata,(o=e.params)!==null&&o!==void 0?o:{})}}),c=await this.communicator.postRequestAndWaitForResponse(a);if(\"failure\"in c.content)throw c.content.failure;let u=await WF(\"public\",c.sender);await this.keyManager.setPeerPublicKey(u);let h=(await this.decryptResponseMessage(c)).result;if(\"error\"in h)throw h.error;switch(e.method){case\"eth_requestAccounts\":{let m=h.value;this.accounts=m,this.storage.storeObject(nbe,m),(i=this.callback)===null||i===void 0||i.call(this,\"accountsChanged\",m);break}}}async request(e){var n;if(this.accounts.length===0)switch(e.method){case\"wallet_sendCalls\":return this.sendRequestToPopup(e);default:throw sr.provider.unauthorized()}switch(e.method){case\"eth_requestAccounts\":return(n=this.callback)===null||n===void 0||n.call(this,\"connect\",{chainId:rg(this.chain.id)}),this.accounts;case\"eth_accounts\":return this.accounts;case\"eth_coinbase\":return this.accounts[0];case\"net_version\":return this.chain.id;case\"eth_chainId\":return rg(this.chain.id);case\"wallet_getCapabilities\":return this.storage.loadObject(ibe);case\"wallet_switchEthereumChain\":return this.handleSwitchChainRequest(e);case\"eth_ecRecover\":case\"personal_sign\":case\"wallet_sign\":case\"personal_ecRecover\":case\"eth_signTransaction\":case\"eth_sendTransaction\":case\"eth_signTypedData_v1\":case\"eth_signTypedData_v3\":case\"eth_signTypedData_v4\":case\"eth_signTypedData\":case\"wallet_addEthereumChain\":case\"wallet_watchAsset\":case\"wallet_sendCalls\":case\"wallet_showCallsStatus\":case\"wallet_grantPermissions\":return this.sendRequestToPopup(e);default:if(!this.chain.rpcUrl)throw sr.rpc.internal(\"No RPC URL set for chain\");return qC(e,this.chain.rpcUrl)}}async sendRequestToPopup(e){var n,r;await((r=(n=this.communicator).waitForPopupLoaded)===null||r===void 0?void 0:r.call(n));let o=await this.sendEncryptedRequest(e),a=(await this.decryptResponseMessage(o)).result;if(\"error\"in a)throw a.error;return a.value}async cleanup(){var e,n;this.storage.clear(),await this.keyManager.clear(),this.accounts=[],this.chain={id:(n=(e=this.metadata.appChainIds)===null||e===void 0?void 0:e[0])!==null&&n!==void 0?n:1}}async handleSwitchChainRequest(e){var n;let r=e.params;if(!r||!(!((n=r[0])===null||n===void 0)&&n.chainId))throw sr.rpc.invalidParams();let o=D6(r[0].chainId);if(this.updateChain(o))return null;let a=await this.sendRequestToPopup(e);return a===null&&this.updateChain(o),a}async sendEncryptedRequest(e){let n=await this.keyManager.getSharedSecret();if(!n)throw sr.provider.unauthorized(\"No valid session found, try requestAccounts before other methods\");let r=await J1e({action:e,chainId:this.chain.id},n),o=await this.createRequestMessage({encrypted:r});return this.communicator.postRequestAndWaitForResponse(o)}async createRequestMessage(e){let n=await qF(\"public\",await this.keyManager.getOwnPublicKey());return{id:crypto.randomUUID(),sender:n,content:e,timestamp:new Date}}async decryptResponseMessage(e){var n,r;let o=e.content;if(\"failure\"in o)throw o.failure;let i=await this.keyManager.getSharedSecret();if(!i)throw sr.provider.unauthorized(\"Invalid session\");let a=await X1e(o.encrypted,i),c=(n=a.data)===null||n===void 0?void 0:n.chains;if(c){let d=Object.entries(c).map(([h,m])=>({id:Number(h),rpcUrl:m}));this.storage.storeObject(obe,d),this.updateChain(this.chain.id,d)}let u=(r=a.data)===null||r===void 0?void 0:r.capabilities;return u&&this.storage.storeObject(ibe,u),a}updateChain(e,n){var r;let o=n??this.storage.loadObject(obe),i=o?.find(a=>a.id===e);return i?(i!==this.chain&&(this.chain=i,this.storage.storeObject(rbe,i),(r=this.callback)===null||r===void 0||r.call(this,\"chainChanged\",rg(i.id))),!0):!1}}});var Tbe=be(Vn=>{\"use strict\";p();Object.defineProperty(Vn,\"__esModule\",{value:!0});Vn.toBig=Vn.shrSL=Vn.shrSH=Vn.rotrSL=Vn.rotrSH=Vn.rotrBL=Vn.rotrBH=Vn.rotr32L=Vn.rotr32H=Vn.rotlSL=Vn.rotlSH=Vn.rotlBL=Vn.rotlBH=Vn.add5L=Vn.add5H=Vn.add4L=Vn.add4H=Vn.add3L=Vn.add3H=void 0;Vn.add=xbe;Vn.fromBig=mJ;Vn.split=abe;var ZF=BigInt(2**32-1),pJ=BigInt(32);function mJ(t,e=!1){return e?{h:Number(t&ZF),l:Number(t>>pJ&ZF)}:{h:Number(t>>pJ&ZF)|0,l:Number(t&ZF)|0}}function abe(t,e=!1){let n=t.length,r=new Uint32Array(n),o=new Uint32Array(n);for(let i=0;i<n;i++){let{h:a,l:c}=mJ(t[i],e);[r[i],o[i]]=[a,c]}return[r,o]}var cbe=(t,e)=>BigInt(t>>>0)<<pJ|BigInt(e>>>0);Vn.toBig=cbe;var lbe=(t,e,n)=>t>>>n;Vn.shrSH=lbe;var ube=(t,e,n)=>t<<32-n|e>>>n;Vn.shrSL=ube;var dbe=(t,e,n)=>t>>>n|e<<32-n;Vn.rotrSH=dbe;var fbe=(t,e,n)=>t<<32-n|e>>>n;Vn.rotrSL=fbe;var hbe=(t,e,n)=>t<<64-n|e>>>n-32;Vn.rotrBH=hbe;var pbe=(t,e,n)=>t>>>n-32|e<<64-n;Vn.rotrBL=pbe;var mbe=(t,e)=>e;Vn.rotr32H=mbe;var gbe=(t,e)=>t;Vn.rotr32L=gbe;var ybe=(t,e,n)=>t<<n|e>>>32-n;Vn.rotlSH=ybe;var bbe=(t,e,n)=>e<<n|t>>>32-n;Vn.rotlSL=bbe;var vbe=(t,e,n)=>e<<n-32|t>>>64-n;Vn.rotlBH=vbe;var wbe=(t,e,n)=>t<<n-32|e>>>64-n;Vn.rotlBL=wbe;function xbe(t,e,n,r){let o=(e>>>0)+(r>>>0);return{h:t+n+(o/2**32|0)|0,l:o|0}}var Ebe=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0);Vn.add3L=Ebe;var Sbe=(t,e,n,r)=>e+n+r+(t/2**32|0)|0;Vn.add3H=Sbe;var kbe=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0);Vn.add4L=kbe;var _be=(t,e,n,r,o)=>e+n+r+o+(t/2**32|0)|0;Vn.add4H=_be;var Cbe=(t,e,n,r,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(o>>>0);Vn.add5L=Cbe;var Abe=(t,e,n,r,o,i)=>e+n+r+o+i+(t/2**32|0)|0;Vn.add5H=Abe;var bqe={fromBig:mJ,split:abe,toBig:cbe,shrSH:lbe,shrSL:ube,rotrSH:dbe,rotrSL:fbe,rotrBH:hbe,rotrBL:pbe,rotr32H:mbe,rotr32L:gbe,rotlSH:ybe,rotlSL:bbe,rotlBH:vbe,rotlBL:wbe,add:xbe,add3L:Ebe,add3H:Sbe,add4L:kbe,add4H:_be,add5H:Abe,add5L:Cbe};Vn.default=bqe});var Rbe=be(YF=>{\"use strict\";p();Object.defineProperty(YF,\"__esModule\",{value:!0});YF.crypto=void 0;YF.crypto=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0});var Dbe=be(Cn=>{\"use strict\";p();Object.defineProperty(Cn,\"__esModule\",{value:!0});Cn.wrapXOFConstructorWithOpts=Cn.wrapConstructorWithOpts=Cn.wrapConstructor=Cn.Hash=Cn.nextTick=Cn.swap32IfBE=Cn.byteSwapIfBE=Cn.swap8IfBE=Cn.isLE=void 0;Cn.isBytes=Obe;Cn.anumber=gJ;Cn.abytes=$C;Cn.ahash=vqe;Cn.aexists=wqe;Cn.aoutput=xqe;Cn.u8=Eqe;Cn.u32=Sqe;Cn.clean=kqe;Cn.createView=_qe;Cn.rotr=Cqe;Cn.rotl=Aqe;Cn.byteSwap=bJ;Cn.byteSwap32=Pbe;Cn.bytesToHex=Rqe;Cn.hexToBytes=Iqe;Cn.asyncLoop=Pqe;Cn.utf8ToBytes=vJ;Cn.bytesToUtf8=Mqe;Cn.toBytes=QF;Cn.kdfInputToBytes=Nqe;Cn.concatBytes=Lqe;Cn.checkOpts=Bqe;Cn.createHasher=Nbe;Cn.createOptHasher=Lbe;Cn.createXOFer=Bbe;Cn.randomBytes=Dqe;var VC=Rbe();function Obe(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name===\"Uint8Array\"}function gJ(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(\"positive integer expected, got \"+t)}function $C(t,...e){if(!Obe(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(\"Uint8Array expected of length \"+e+\", got length=\"+t.length)}function vqe(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.createHasher\");gJ(t.outputLen),gJ(t.blockLen)}function wqe(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function xqe(t,e){$C(t);let n=e.outputLen;if(t.length<n)throw new Error(\"digestInto() expects output buffer of length at least \"+n)}function Eqe(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function Sqe(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function kqe(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function _qe(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function Cqe(t,e){return t<<32-e|t>>>e}function Aqe(t,e){return t<<e|t>>>32-e>>>0}Cn.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function bJ(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}Cn.swap8IfBE=Cn.isLE?t=>t:t=>bJ(t);Cn.byteSwapIfBE=Cn.swap8IfBE;function Pbe(t){for(let e=0;e<t.length;e++)t[e]=bJ(t[e]);return t}Cn.swap32IfBE=Cn.isLE?t=>t:Pbe;var Mbe=typeof Uint8Array.from([]).toHex==\"function\"&&typeof Uint8Array.fromHex==\"function\",Tqe=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));function Rqe(t){if($C(t),Mbe)return t.toHex();let e=\"\";for(let n=0;n<t.length;n++)e+=Tqe[t[n]];return e}var Rv={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ibe(t){if(t>=Rv._0&&t<=Rv._9)return t-Rv._0;if(t>=Rv.A&&t<=Rv.F)return t-(Rv.A-10);if(t>=Rv.a&&t<=Rv.f)return t-(Rv.a-10)}function Iqe(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);if(Mbe)return Uint8Array.fromHex(t);let e=t.length,n=e/2;if(e%2)throw new Error(\"hex string expected, got unpadded hex of length \"+e);let r=new Uint8Array(n);for(let o=0,i=0;o<n;o++,i+=2){let a=Ibe(t.charCodeAt(i)),c=Ibe(t.charCodeAt(i+1));if(a===void 0||c===void 0){let u=t[i]+t[i+1];throw new Error(\\'hex string expected, got non-hex character \"\\'+u+\\'\" at index \\'+i)}r[o]=a*16+c}return r}var Oqe=async()=>{};Cn.nextTick=Oqe;async function Pqe(t,e,n){let r=Date.now();for(let o=0;o<t;o++){n(o);let i=Date.now()-r;i>=0&&i<e||(await(0,Cn.nextTick)(),r+=i)}}function vJ(t){if(typeof t!=\"string\")throw new Error(\"string expected\");return new Uint8Array(new TextEncoder().encode(t))}function Mqe(t){return new TextDecoder().decode(t)}function QF(t){return typeof t==\"string\"&&(t=vJ(t)),$C(t),t}function Nqe(t){return typeof t==\"string\"&&(t=vJ(t)),$C(t),t}function Lqe(...t){let e=0;for(let r=0;r<t.length;r++){let o=t[r];$C(o),e+=o.length}let n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){let i=t[r];n.set(i,o),o+=i.length}return n}function Bqe(t,e){if(e!==void 0&&{}.toString.call(e)!==\"[object Object]\")throw new Error(\"options should be object or undefined\");return Object.assign(t,e)}var yJ=class{};Cn.Hash=yJ;function Nbe(t){let e=r=>t().update(QF(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Lbe(t){let e=(r,o)=>t(o).update(QF(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}function Bbe(t){let e=(r,o)=>t(o).update(QF(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}Cn.wrapConstructor=Nbe;Cn.wrapConstructorWithOpts=Lbe;Cn.wrapXOFConstructorWithOpts=Bbe;function Dqe(t=32){if(VC.crypto&&typeof VC.crypto.getRandomValues==\"function\")return VC.crypto.getRandomValues(new Uint8Array(t));if(VC.crypto&&typeof VC.crypto.randomBytes==\"function\")return Uint8Array.from(VC.crypto.randomBytes(t));throw new Error(\"crypto.getRandomValues must be defined\")}});var $be=be(Qi=>{\"use strict\";p();Object.defineProperty(Qi,\"__esModule\",{value:!0});Qi.shake256=Qi.shake128=Qi.keccak_512=Qi.keccak_384=Qi.keccak_256=Qi.keccak_224=Qi.sha3_512=Qi.sha3_384=Qi.sha3_256=Qi.sha3_224=Qi.Keccak=void 0;Qi.keccakP=Wbe;var K9=Tbe(),pu=Dbe(),Fqe=BigInt(0),$9=BigInt(1),Uqe=BigInt(2),jqe=BigInt(7),zqe=BigInt(256),Hqe=BigInt(113),jbe=[],zbe=[],Hbe=[];for(let t=0,e=$9,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],jbe.push(2*(5*r+n)),zbe.push((t+1)*(t+2)/2%64);let o=Fqe;for(let i=0;i<7;i++)e=(e<<$9^(e>>jqe)*Hqe)%zqe,e&Uqe&&(o^=$9<<($9<<BigInt(i))-$9);Hbe.push(o)}var qbe=(0,K9.split)(Hbe,!0),qqe=qbe[0],Wqe=qbe[1],Fbe=(t,e,n)=>n>32?(0,K9.rotlBH)(t,e,n):(0,K9.rotlSH)(t,e,n),Ube=(t,e,n)=>n>32?(0,K9.rotlBL)(t,e,n):(0,K9.rotlSL)(t,e,n);function Wbe(t,e=24){let n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let a=0;a<10;a++)n[a]=t[a]^t[a+10]^t[a+20]^t[a+30]^t[a+40];for(let a=0;a<10;a+=2){let c=(a+8)%10,u=(a+2)%10,d=n[u],h=n[u+1],m=Fbe(d,h,1)^n[c],g=Ube(d,h,1)^n[c+1];for(let b=0;b<50;b+=10)t[a+b]^=m,t[a+b+1]^=g}let o=t[2],i=t[3];for(let a=0;a<24;a++){let c=zbe[a],u=Fbe(o,i,c),d=Ube(o,i,c),h=jbe[a];o=t[h],i=t[h+1],t[h]=u,t[h+1]=d}for(let a=0;a<50;a+=10){for(let c=0;c<10;c++)n[c]=t[a+c];for(let c=0;c<10;c++)t[a+c]^=~n[(c+2)%10]&n[(c+4)%10]}t[0]^=qqe[r],t[1]^=Wqe[r]}(0,pu.clean)(n)}var G9=class t extends pu.Hash{constructor(e,n,r,o=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=o,this.rounds=i,(0,pu.anumber)(r),!(0<e&&e<200))throw new Error(\"only keccak-f1600 function is supported\");this.state=new Uint8Array(200),this.state32=(0,pu.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,pu.swap32IfBE)(this.state32),Wbe(this.state32,this.rounds),(0,pu.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(e){(0,pu.aexists)(this),e=(0,pu.toBytes)(e),(0,pu.abytes)(e);let{blockLen:n,state:r}=this,o=e.length;for(let i=0;i<o;){let a=Math.min(n-this.pos,o-i);for(let c=0;c<a;c++)r[this.pos++]^=e[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:n,pos:r,blockLen:o}=this;e[r]^=n,(n&128)!==0&&r===o-1&&this.keccak(),e[o-1]^=128,this.keccak()}writeInto(e){(0,pu.aexists)(this,!1),(0,pu.abytes)(e),this.finish();let n=this.state,{blockLen:r}=this;for(let o=0,i=e.length;o<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-o);e.set(n.subarray(this.posOut,this.posOut+a),o),this.posOut+=a,o+=a}return e}xofInto(e){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(e)}xof(e){return(0,pu.anumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,pu.aoutput)(e,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,pu.clean)(this.state)}_cloneInto(e){let{blockLen:n,suffix:r,outputLen:o,rounds:i,enableXOF:a}=this;return e||(e=new t(n,r,o,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=o,e.enableXOF=a,e.destroyed=this.destroyed,e}};Qi.Keccak=G9;var kx=(t,e,n)=>(0,pu.createHasher)(()=>new G9(e,t,n));Qi.sha3_224=kx(6,144,224/8);Qi.sha3_256=kx(6,136,256/8);Qi.sha3_384=kx(6,104,384/8);Qi.sha3_512=kx(6,72,512/8);Qi.keccak_224=kx(1,144,224/8);Qi.keccak_256=kx(1,136,256/8);Qi.keccak_384=kx(1,104,384/8);Qi.keccak_512=kx(1,72,512/8);var Vbe=(t,e,n)=>(0,pu.createXOFer)((r={})=>new G9(e,t,r.dkLen===void 0?n:r.dkLen,!0));Qi.shake128=Vbe(31,168,128/8);Qi.shake256=Vbe(31,136,256/8)});var wJ=be((pen,Jbe)=>{p();var{keccak_256:Vqe}=$be();function Kbe(t){return globalThis.Buffer.allocUnsafe(t).fill(0)}function $qe(t){return t.toString(2).length}function Gbe(t,e){let n=t.toString(16);n.length%2!==0&&(n=\"0\"+n);let r=n.match(/.{1,2}/g).map(o=>parseInt(o,16));for(;r.length<e;)r.unshift(0);return globalThis.Buffer.from(r)}function Kqe(t,e){let n=t<0n,r;if(n){let o=(1n<<BigInt(e))-1n;r=(~t&o)+1n}else r=t;return r&=(1n<<BigInt(e))-1n,r}function Zbe(t,e,n){let r=Kbe(e);return t=JF(t),n?t.length<e?(t.copy(r),r):t.slice(0,e):t.length<e?(t.copy(r,e-t.length),r):t.slice(-e)}function Gqe(t,e){return Zbe(t,e,!0)}function JF(t){if(!globalThis.Buffer.isBuffer(t))if(Array.isArray(t))t=globalThis.Buffer.from(t);else if(typeof t==\"string\")Ybe(t)?t=globalThis.Buffer.from(Qqe(Qbe(t)),\"hex\"):t=globalThis.Buffer.from(t);else if(typeof t==\"number\")t=intToBuffer(t);else if(t==null)t=globalThis.Buffer.allocUnsafe(0);else if(typeof t==\"bigint\")t=Gbe(t);else if(t.toArray)t=globalThis.Buffer.from(t.toArray());else throw new Error(\"invalid type\");return t}function Zqe(t){return t=JF(t),\"0x\"+t.toString(\"hex\")}function Yqe(t,e){if(t=JF(t),e||(e=256),e!==256)throw new Error(\"unsupported\");return globalThis.Buffer.from(Vqe(new Uint8Array(t)))}function Qqe(t){return t.length%2?\"0\"+t:t}function Ybe(t){return typeof t==\"string\"&&t.match(/^0x[0-9A-Fa-f]*$/)}function Qbe(t){return typeof t==\"string\"&&t.startsWith(\"0x\")?t.slice(2):t}Jbe.exports={zeros:Kbe,setLength:Zbe,setLengthRight:Gqe,isHexString:Ybe,stripHexPrefix:Qbe,toBuffer:JF,bufferToHex:Zqe,keccak:Yqe,bitLengthFromBigInt:$qe,bufferBEFromBigInt:Gbe,twosFromBigInt:Kqe}});var ove=be((gen,rve)=>{p();var vd=wJ();function eve(t){return t.startsWith(\"int[\")?\"int256\"+t.slice(3):t===\"int\"?\"int256\":t.startsWith(\"uint[\")?\"uint256\"+t.slice(4):t===\"uint\"?\"uint256\":t.startsWith(\"fixed[\")?\"fixed128x128\"+t.slice(5):t===\"fixed\"?\"fixed128x128\":t.startsWith(\"ufixed[\")?\"ufixed128x128\"+t.slice(6):t===\"ufixed\"?\"ufixed128x128\":t}function KC(t){return Number.parseInt(/^\\\\D+(\\\\d+)$/.exec(t)[1],10)}function Xbe(t){var e=/^\\\\D+(\\\\d+)x(\\\\d+)$/.exec(t);return[Number.parseInt(e[1],10),Number.parseInt(e[2],10)]}function tve(t){var e=t.match(/(.*)\\\\[(.*?)\\\\]$/);return e?e[2]===\"\"?\"dynamic\":Number.parseInt(e[2],10):null}function U6(t){var e=typeof t;if(e===\"string\"||e===\"number\")return BigInt(t);if(e===\"bigint\")return t;throw new Error(\"Argument is not a number\")}function Ky(t,e){var n,r,o,i;if(t===\"address\")return Ky(\"uint160\",U6(e));if(t===\"bool\")return Ky(\"uint8\",e?1:0);if(t===\"string\")return Ky(\"bytes\",new globalThis.Buffer(e,\"utf8\"));if(Xqe(t)){if(typeof e.length>\"u\")throw new Error(\"Not an array?\");if(n=tve(t),n!==\"dynamic\"&&n!==0&&e.length>n)throw new Error(\"Elements exceed array size: \"+n);o=[],t=t.slice(0,t.lastIndexOf(\"[\")),typeof e==\"string\"&&(e=JSON.parse(e));for(i in e)o.push(Ky(t,e[i]));if(n===\"dynamic\"){var a=Ky(\"uint256\",e.length);o.unshift(a)}return globalThis.Buffer.concat(o)}else{if(t===\"bytes\")return e=new globalThis.Buffer(e),o=globalThis.Buffer.concat([Ky(\"uint256\",e.length),e]),e.length%32!==0&&(o=globalThis.Buffer.concat([o,vd.zeros(32-e.length%32)])),o;if(t.startsWith(\"bytes\")){if(n=KC(t),n<1||n>32)throw new Error(\"Invalid bytes<N> width: \"+n);return vd.setLengthRight(e,32)}else if(t.startsWith(\"uint\")){if(n=KC(t),n%8||n<8||n>256)throw new Error(\"Invalid uint<N> width: \"+n);r=U6(e);let c=vd.bitLengthFromBigInt(r);if(c>n)throw new Error(\"Supplied uint exceeds width: \"+n+\" vs \"+c);if(r<0)throw new Error(\"Supplied uint is negative\");return vd.bufferBEFromBigInt(r,32)}else if(t.startsWith(\"int\")){if(n=KC(t),n%8||n<8||n>256)throw new Error(\"Invalid int<N> width: \"+n);r=U6(e);let c=vd.bitLengthFromBigInt(r);if(c>n)throw new Error(\"Supplied int exceeds width: \"+n+\" vs \"+c);let u=vd.twosFromBigInt(r,256);return vd.bufferBEFromBigInt(u,32)}else if(t.startsWith(\"ufixed\")){if(n=Xbe(t),r=U6(e),r<0)throw new Error(\"Supplied ufixed is negative\");return Ky(\"uint256\",r*BigInt(2)**BigInt(n[1]))}else if(t.startsWith(\"fixed\"))return n=Xbe(t),Ky(\"int256\",U6(e)*BigInt(2)**BigInt(n[1]))}throw new Error(\"Unsupported or invalid type: \"+t)}function Jqe(t){return t===\"string\"||t===\"bytes\"||tve(t)===\"dynamic\"}function Xqe(t){return t.lastIndexOf(\"]\")===t.length-1}function eWe(t,e){var n=[],r=[],o=32*t.length;for(var i in t){var a=eve(t[i]),c=e[i],u=Ky(a,c);Jqe(a)?(n.push(Ky(\"uint256\",o)),r.push(u),o+=u.length):n.push(u)}return globalThis.Buffer.concat(n.concat(r))}function nve(t,e){if(t.length!==e.length)throw new Error(\"Number of types are not matching the values\");for(var n,r,o=[],i=0;i<t.length;i++){var a=eve(t[i]),c=e[i];if(a===\"bytes\")o.push(c);else if(a===\"string\")o.push(new globalThis.Buffer(c,\"utf8\"));else if(a===\"bool\")o.push(new globalThis.Buffer(c?\"01\":\"00\",\"hex\"));else if(a===\"address\")o.push(vd.setLength(c,20));else if(a.startsWith(\"bytes\")){if(n=KC(a),n<1||n>32)throw new Error(\"Invalid bytes<N> width: \"+n);o.push(vd.setLengthRight(c,n))}else if(a.startsWith(\"uint\")){if(n=KC(a),n%8||n<8||n>256)throw new Error(\"Invalid uint<N> width: \"+n);r=U6(c);let u=vd.bitLengthFromBigInt(r);if(u>n)throw new Error(\"Supplied uint exceeds width: \"+n+\" vs \"+u);o.push(vd.bufferBEFromBigInt(r,n/8))}else if(a.startsWith(\"int\")){if(n=KC(a),n%8||n<8||n>256)throw new Error(\"Invalid int<N> width: \"+n);r=U6(c);let u=vd.bitLengthFromBigInt(r);if(u>n)throw new Error(\"Supplied int exceeds width: \"+n+\" vs \"+u);let d=vd.twosFromBigInt(r,n);o.push(vd.bufferBEFromBigInt(d,n/8))}else throw new Error(\"Unsupported or invalid type: \"+a)}return globalThis.Buffer.concat(o)}function tWe(t,e){return vd.keccak(nve(t,e))}rve.exports={rawEncode:eWe,solidityPack:nve,soliditySHA3:tWe}});var ave=be((ben,sve)=>{p();var og=wJ(),Z9=ove(),ive={type:\"object\",properties:{types:{type:\"object\",additionalProperties:{type:\"array\",items:{type:\"object\",properties:{name:{type:\"string\"},type:{type:\"string\"}},required:[\"name\",\"type\"]}}},primaryType:{type:\"string\"},domain:{type:\"object\"},message:{type:\"object\"}},required:[\"types\",\"primaryType\",\"domain\",\"message\"]},xJ={encodeData(t,e,n,r=!0){let o=[\"bytes32\"],i=[this.hashType(t,n)];if(r){let a=(c,u,d)=>{if(n[u]!==void 0)return[\"bytes32\",d==null?\"0x0000000000000000000000000000000000000000000000000000000000000000\":og.keccak(this.encodeData(u,d,n,r))];if(d===void 0)throw new Error(`missing value for field ${c} of type ${u}`);if(u===\"bytes\")return[\"bytes32\",og.keccak(d)];if(u===\"string\")return typeof d==\"string\"&&(d=globalThis.Buffer.from(d,\"utf8\")),[\"bytes32\",og.keccak(d)];if(u.lastIndexOf(\"]\")===u.length-1){let h=u.slice(0,u.lastIndexOf(\"[\")),m=d.map(g=>a(c,h,g));return[\"bytes32\",og.keccak(Z9.rawEncode(m.map(([g])=>g),m.map(([,g])=>g)))]}return[u,d]};for(let c of n[t]){let[u,d]=a(c.name,c.type,e[c.name]);o.push(u),i.push(d)}}else for(let a of n[t]){let c=e[a.name];if(c!==void 0)if(a.type===\"bytes\")o.push(\"bytes32\"),c=og.keccak(c),i.push(c);else if(a.type===\"string\")o.push(\"bytes32\"),typeof c==\"string\"&&(c=globalThis.Buffer.from(c,\"utf8\")),c=og.keccak(c),i.push(c);else if(n[a.type]!==void 0)o.push(\"bytes32\"),c=og.keccak(this.encodeData(a.type,c,n,r)),i.push(c);else{if(a.type.lastIndexOf(\"]\")===a.type.length-1)throw new Error(\"Arrays currently unimplemented in encodeData\");o.push(a.type),i.push(c)}}return Z9.rawEncode(o,i)},encodeType(t,e){let n=\"\",r=this.findTypeDependencies(t,e).filter(o=>o!==t);r=[t].concat(r.sort());for(let o of r){if(!e[o])throw new Error(\"No type definition specified: \"+o);n+=o+\"(\"+e[o].map(({name:a,type:c})=>c+\" \"+a).join(\",\")+\")\"}return n},findTypeDependencies(t,e,n=[]){if(t=t.match(/^\\\\w*/)[0],n.includes(t)||e[t]===void 0)return n;n.push(t);for(let r of e[t])for(let o of this.findTypeDependencies(r.type,e,n))!n.includes(o)&&n.push(o);return n},hashStruct(t,e,n,r=!0){return og.keccak(this.encodeData(t,e,n,r))},hashType(t,e){return og.keccak(this.encodeType(t,e))},sanitizeData(t){let e={};for(let n in ive.properties)t[n]&&(e[n]=t[n]);return e.types&&(e.types=Object.assign({EIP712Domain:[]},e.types)),e},hash(t,e=!0){let n=this.sanitizeData(t),r=[globalThis.Buffer.from(\"1901\",\"hex\")];return r.push(this.hashStruct(\"EIP712Domain\",n.domain,n.types,e)),n.primaryType!==\"EIP712Domain\"&&r.push(this.hashStruct(n.primaryType,n.message,n.types,e)),og.keccak(globalThis.Buffer.concat(r))}};sve.exports={TYPED_MESSAGE_SCHEMA:ive,TypedDataUtils:xJ,hashForSignTypedDataLegacy:function(t){return nWe(t.data)},hashForSignTypedData_v3:function(t){return xJ.hash(t.data,!1)},hashForSignTypedData_v4:function(t){return xJ.hash(t.data)}};function nWe(t){let e=new Error(\"Expect argument to be non-empty array\");if(typeof t!=\"object\"||!t.length)throw e;let n=t.map(function(i){return i.type===\"bytes\"?og.toBuffer(i.value):i.value}),r=t.map(function(i){return i.type}),o=t.map(function(i){if(!i.name)throw e;return i.type+\" \"+i.name});return Z9.soliditySHA3([\"bytes32\",\"bytes32\"],[Z9.soliditySHA3(new Array(t.length).fill(\"string\"),o),Z9.soliditySHA3(r,n)])}});var cve,Y9,lve,XF=ce(()=>{p();cve=\"walletUsername\",Y9=\"Addresses\",lve=\"AppVersion\"});function za(t){return t.errorMessage!==void 0}var eU=ce(()=>{p()});var tU,uve=ce(()=>{p();$y();tU=class{constructor(e){this.secret=e}async encrypt(e){let n=this.secret;if(n.length!==64)throw Error(\"secret must be 256 bits\");let r=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.importKey(\"raw\",zC(n),{name:\"aes-gcm\"},!1,[\"encrypt\",\"decrypt\"]),i=new TextEncoder,a=await window.crypto.subtle.encrypt({name:\"AES-GCM\",iv:r},o,i.encode(e)),c=16,u=a.slice(a.byteLength-c),d=a.slice(0,a.byteLength-c),h=new Uint8Array(u),m=new Uint8Array(d),g=new Uint8Array([...r,...h,...m]);return V9(g)}async decrypt(e){let n=this.secret;if(n.length!==64)throw Error(\"secret must be 256 bits\");return new Promise((r,o)=>{(async function(){let i=await crypto.subtle.importKey(\"raw\",zC(n),{name:\"aes-gcm\"},!1,[\"encrypt\",\"decrypt\"]),a=zC(e),c=a.slice(0,12),u=a.slice(12,28),d=a.slice(28),h=new Uint8Array([...d,...u]),m={name:\"AES-GCM\",iv:new Uint8Array(c)};try{let g=await window.crypto.subtle.decrypt(m,i,h),b=new TextDecoder;r(b.decode(g))}catch(g){o(g)}})()})}}});var nU,dve=ce(()=>{p();nU=class{constructor(e,n,r){this.linkAPIUrl=e,this.sessionId=n;let o=`${n}:${r}`;this.auth=`Basic ${btoa(o)}`}async markUnseenEventsAsSeen(e){return Promise.all(e.map(n=>fetch(`${this.linkAPIUrl}/events/${n.eventId}/seen`,{method:\"POST\",headers:{Authorization:this.auth}}))).catch(n=>console.error(\"Unabled to mark event as failed:\",n))}async fetchUnseenEvents(){var e;let n=await fetch(`${this.linkAPIUrl}/events?unseen=true`,{headers:{Authorization:this.auth}});if(n.ok){let{events:r,error:o}=await n.json();if(o)throw new Error(`Check unseen events failed: ${o}`);let i=(e=r?.filter(a=>a.event===\"Web3Response\").map(a=>({type:\"Event\",sessionId:this.sessionId,eventId:a.id,event:a.event,data:a.data})))!==null&&e!==void 0?e:[];return this.markUnseenEventsAsSeen(i),i}throw new Error(`Check unseen events failed: ${n.status}`)}}});var Gy,rU,fve=ce(()=>{p();(function(t){t[t.DISCONNECTED=0]=\"DISCONNECTED\",t[t.CONNECTING=1]=\"CONNECTING\",t[t.CONNECTED=2]=\"CONNECTED\"})(Gy||(Gy={}));rU=class{setConnectionStateListener(e){this.connectionStateListener=e}setIncomingDataListener(e){this.incomingDataListener=e}constructor(e,n=WebSocket){this.WebSocketClass=n,this.webSocket=null,this.pendingData=[],this.url=e.replace(/^http/,\"ws\")}async connect(){if(this.webSocket)throw new Error(\"webSocket object is not null\");return new Promise((e,n)=>{var r;let o;try{this.webSocket=o=new this.WebSocketClass(this.url)}catch(i){n(i);return}(r=this.connectionStateListener)===null||r===void 0||r.call(this,Gy.CONNECTING),o.onclose=i=>{var a;this.clearWebSocket(),n(new Error(`websocket error ${i.code}: ${i.reason}`)),(a=this.connectionStateListener)===null||a===void 0||a.call(this,Gy.DISCONNECTED)},o.onopen=i=>{var a;e(),(a=this.connectionStateListener)===null||a===void 0||a.call(this,Gy.CONNECTED),this.pendingData.length>0&&([...this.pendingData].forEach(u=>this.sendData(u)),this.pendingData=[])},o.onmessage=i=>{var a,c;if(i.data===\"h\")(a=this.incomingDataListener)===null||a===void 0||a.call(this,{type:\"Heartbeat\"});else try{let u=JSON.parse(i.data);(c=this.incomingDataListener)===null||c===void 0||c.call(this,u)}catch{}}})}disconnect(){var e;let{webSocket:n}=this;if(n){this.clearWebSocket(),(e=this.connectionStateListener)===null||e===void 0||e.call(this,Gy.DISCONNECTED),this.connectionStateListener=void 0,this.incomingDataListener=void 0;try{n.close()}catch{}}}sendData(e){let{webSocket:n}=this;if(!n){this.pendingData.push(e),this.connect();return}n.send(e)}clearWebSocket(){let{webSocket:e}=this;e&&(this.webSocket=null,e.onclose=null,e.onerror=null,e.onmessage=null,e.onopen=null)}}});var iWe,rWe,oWe,oU,hve=ce(()=>{p();sJ();XF();uve();dve();fve();iWe={},rWe=1e4,oWe=6e4,oU=class{constructor({session:e,linkAPIUrl:n,listener:r}){this.destroyed=!1,this.lastHeartbeatResponse=0,this.nextReqId=tg(1),this._connected=!1,this._linked=!1,this.shouldFetchUnseenEventsOnConnect=!1,this.requestResolutions=new Map,this.handleSessionMetadataUpdated=i=>{if(!i)return;new Map([[\"__destroyed\",this.handleDestroyed],[\"EthereumAddress\",this.handleAccountUpdated],[\"WalletUsername\",this.handleWalletUsernameUpdated],[\"AppVersion\",this.handleAppVersionUpdated],[\"ChainId\",c=>i.JsonRpcUrl&&this.handleChainUpdated(c,i.JsonRpcUrl)]]).forEach((c,u)=>{let d=i[u];d!==void 0&&c(d)})},this.handleDestroyed=i=>{var a;i===\"1\"&&((a=this.listener)===null||a===void 0||a.resetAndReload())},this.handleAccountUpdated=async i=>{var a;let c=await this.cipher.decrypt(i);(a=this.listener)===null||a===void 0||a.accountUpdated(c)},this.handleMetadataUpdated=async(i,a)=>{var c;let u=await this.cipher.decrypt(a);(c=this.listener)===null||c===void 0||c.metadataUpdated(i,u)},this.handleWalletUsernameUpdated=async i=>{this.handleMetadataUpdated(cve,i)},this.handleAppVersionUpdated=async i=>{this.handleMetadataUpdated(lve,i)},this.handleChainUpdated=async(i,a)=>{var c;let u=await this.cipher.decrypt(i),d=await this.cipher.decrypt(a);(c=this.listener)===null||c===void 0||c.chainUpdated(u,d)},this.session=e,this.cipher=new tU(e.secret),this.listener=r;let o=new rU(`${n}/rpc`,WebSocket);o.setConnectionStateListener(async i=>{let a=!1;switch(i){case Gy.DISCONNECTED:if(this.stopHeartbeat(),!this.destroyed){let c=async()=>{await new Promise(u=>setTimeout(u,5e3)),this.destroyed||o.connect().catch(()=>{c()})};c()}break;case Gy.CONNECTED:a=await this.handleConnected(),this.updateLastHeartbeat(),this.startHeartbeat(),this.shouldFetchUnseenEventsOnConnect&&this.fetchUnseenEventsAPI();break;case Gy.CONNECTING:break}this.connected!==a&&(this.connected=a)}),o.setIncomingDataListener(i=>{var a;switch(i.type){case\"Heartbeat\":this.updateLastHeartbeat();return;case\"IsLinkedOK\":case\"Linked\":{let c=i.type===\"IsLinkedOK\"?i.linked:void 0;this.linked=c||i.onlineGuests>0;break}case\"GetSessionConfigOK\":case\"SessionConfigUpdated\":{this.handleSessionMetadataUpdated(i.metadata);break}case\"Event\":{this.handleIncomingEvent(i);break}}i.id!==void 0&&((a=this.requestResolutions.get(i.id))===null||a===void 0||a(i))}),this.ws=o,this.http=new nU(n,e.id,e.key)}connect(){if(this.destroyed)throw new Error(\"instance is destroyed\");this.ws.connect()}async destroy(){this.destroyed||(await this.makeRequest({type:\"SetSessionConfig\",id:tg(this.nextReqId++),sessionId:this.session.id,metadata:{__destroyed:\"1\"}},{timeout:1e3}),this.destroyed=!0,this.stopHeartbeat(),this.ws.disconnect(),this.listener=void 0)}get connected(){return this._connected}set connected(e){this._connected=e}get linked(){return this._linked}set linked(e){var n,r;this._linked=e,e&&((n=this.onceLinked)===null||n===void 0||n.call(this)),(r=this.listener)===null||r===void 0||r.linkedUpdated(e)}setOnceLinked(e){return new Promise(n=>{this.linked?e().then(n):this.onceLinked=()=>{e().then(n),this.onceLinked=void 0}})}async handleIncomingEvent(e){var n;if(e.type!==\"Event\"||e.event!==\"Web3Response\")return;let r=await this.cipher.decrypt(e.data),o=JSON.parse(r);if(o.type!==\"WEB3_RESPONSE\")return;let{id:i,response:a}=o;(n=this.listener)===null||n===void 0||n.handleWeb3ResponseMessage(i,a)}async checkUnseenEvents(){if(!this.connected){this.shouldFetchUnseenEventsOnConnect=!0;return}await new Promise(e=>setTimeout(e,250));try{await this.fetchUnseenEventsAPI()}catch(e){console.error(\"Unable to check for unseen events\",e)}}async fetchUnseenEventsAPI(){this.shouldFetchUnseenEventsOnConnect=!1,(await this.http.fetchUnseenEvents()).forEach(n=>this.handleIncomingEvent(n))}async publishEvent(e,n,r=!1){let o=await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({},n),{origin:location.origin,location:location.href,relaySource:\"coinbaseWalletExtension\"in window&&window.coinbaseWalletExtension?\"injected_sdk\":\"sdk\"}))),i={type:\"PublishEvent\",id:tg(this.nextReqId++),sessionId:this.session.id,event:e,data:o,callWebhook:r};return this.setOnceLinked(async()=>{let a=await this.makeRequest(i);if(a.type===\"Fail\")throw new Error(a.error||\"failed to publish event\");return a.eventId})}sendData(e){this.ws.sendData(JSON.stringify(e))}updateLastHeartbeat(){this.lastHeartbeatResponse=Date.now()}startHeartbeat(){this.heartbeatWorker&&this.heartbeatWorker.terminate();try{let e=new URL(\"./HeartbeatWorker.js\",iWe.url);this.heartbeatWorker=new Worker(e,{type:\"module\"}),this.setupWorkerListeners(),this.heartbeatWorker.postMessage({type:\"start\"})}catch(e){console.warn(\"Failed to create external heartbeat worker\",e)}}setupWorkerListeners(){this.heartbeatWorker&&(this.heartbeatWorker.addEventListener(\"message\",e=>{let{type:n}=e.data;switch(n){case\"heartbeat\":this.heartbeat();break;case\"started\":case\"stopped\":break}}),this.heartbeatWorker.addEventListener(\"error\",e=>{console.error(\"Heartbeat worker error:\",e)}))}stopHeartbeat(){this.heartbeatWorker&&(this.heartbeatWorker.postMessage({type:\"stop\"}),this.heartbeatWorker.terminate(),this.heartbeatWorker=void 0)}heartbeat(){if(Date.now()-this.lastHeartbeatResponse>rWe*2){this.ws.disconnect();return}try{this.ws.sendData(\"h\")}catch{}}async makeRequest(e,n={timeout:oWe}){let r=e.id;this.sendData(e);let o;return Promise.race([new Promise((i,a)=>{o=window.setTimeout(()=>{a(new Error(`request ${r} timed out`))},n.timeout)}),new Promise(i=>{this.requestResolutions.set(r,a=>{clearTimeout(o),i(a),this.requestResolutions.delete(r)})})])}async handleConnected(){return(await this.makeRequest({type:\"HostSession\",id:tg(this.nextReqId++),sessionId:this.session.id,sessionKey:this.session.key})).type===\"Fail\"?!1:(this.sendData({type:\"IsLinked\",id:tg(this.nextReqId++),sessionId:this.session.id}),this.sendData({type:\"GetSessionConfig\",id:tg(this.nextReqId++),sessionId:this.session.id}),!0)}}});var iU,pve=ce(()=>{p();$y();iU=class{constructor(){this._nextRequestId=0,this.callbacks=new Map}makeRequestId(){this._nextRequestId=(this._nextRequestId+1)%2147483647;let e=this._nextRequestId,n=cJ(e.toString(16));return this.callbacks.get(n)&&this.callbacks.delete(n),e}}});var mve,gve,yve,GC,bve=ce(()=>{p();_L();Jb();$y();mve=\"session:id\",gve=\"session:secret\",yve=\"session:linked\",GC=class t{constructor(e,n,r,o=!1){this.storage=e,this.id=n,this.secret=r,this.key=Fp(C5(`${n}, ${r} WalletLink`)),this._linked=!!o}static create(e){let n=Av(16),r=Av(32);return new t(e,n,r).save()}static load(e){let n=e.getItem(mve),r=e.getItem(yve),o=e.getItem(gve);return n&&o?new t(e,n,o,r===\"1\"):null}get linked(){return this._linked}set linked(e){this._linked=e,this.persistLinked()}save(){return this.storage.setItem(mve,this.id),this.storage.setItem(gve,this.secret),this.persistLinked(),this}persistLinked(){this.storage.setItem(yve,this._linked?\"1\":\"0\")}}});function sWe(){try{return window.frameElement!==null}catch{return!1}}function vve(){try{return sWe()&&window.top?window.top.location:window.location}catch{return window.location}}function wve(){var t;return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((t=window?.navigator)===null||t===void 0?void 0:t.userAgent)}function sU(){var t,e;return(e=(t=window?.matchMedia)===null||t===void 0?void 0:t.call(window,\"(prefers-color-scheme: dark)\").matches)!==null&&e!==void 0?e:!1}var Q9=ce(()=>{p()});var xve,Eve=ce(()=>{p();xve=\\'@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\\\\\201C\" \"\\\\\\\\201D\" \"\\\\\\\\2018\" \"\\\\\\\\2019\";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}\\'});function aU(){let t=document.createElement(\"style\");t.type=\"text/css\",t.appendChild(document.createTextNode(xve)),document.documentElement.appendChild(t)}var EJ=ce(()=>{p();Eve()});var ZC={};ld(ZC,{clsx:()=>Iv,default:()=>aWe});function Sve(t){var e,n,r=\"\";if(typeof t==\"string\"||typeof t==\"number\")r+=t;else if(typeof t==\"object\")if(Array.isArray(t))for(e=0;e<t.length;e++)t[e]&&(n=Sve(t[e]))&&(r&&(r+=\" \"),r+=n);else for(e in t)t[e]&&(r&&(r+=\" \"),r+=e);return r}function Iv(){for(var t,e,n=0,r=\"\";n<arguments.length;)(t=arguments[n++])&&(e=Sve(t))&&(r&&(r+=\" \"),r+=e);return r}var aWe,_x=ce(()=>{p();aWe=Iv});var wd={};ld(wd,{Component:()=>X9,Fragment:()=>rI,cloneElement:()=>pWe,createContext:()=>mWe,createElement:()=>Mo,createRef:()=>lWe,h:()=>Mo,hydrate:()=>zve,isValidElement:()=>Tve,options:()=>_i,render:()=>z6,toChildArray:()=>Dve});function Zy(t,e){for(var n in e)t[n]=e[n];return t}function AJ(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Mo(t,e,n){var r,o,i,a={};for(i in e)i==\"key\"?r=e[i]:i==\"ref\"?o=e[i]:a[i]=e[i];if(arguments.length>2&&(a.children=arguments.length>3?tI.call(arguments,2):n),typeof t==\"function\"&&t.defaultProps!=null)for(i in t.defaultProps)a[i]===void 0&&(a[i]=t.defaultProps[i]);return J9(t,a,r,o,null)}function J9(t,e,n,r,o){var i={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++Ave,__i:-1,__u:0};return o==null&&_i.vnode!=null&&_i.vnode(i),i}function lWe(){return{current:null}}function rI(t){return t.children}function X9(t,e){this.props=t,this.context=e}function YC(t,e){if(e==null)return t.__?YC(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type==\"function\"?YC(t):null}function Nve(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return Nve(t)}}function _J(t){(!t.__d&&(t.__d=!0)&&j6.push(t)&&!lU.__r++||kve!=_i.debounceRendering)&&((kve=_i.debounceRendering)||Rve)(lU)}function lU(){for(var t,e,n,r,o,i,a,c=1;j6.length;)j6.length>c&&j6.sort(Ive),t=j6.shift(),c=j6.length,t.__d&&(n=void 0,o=(r=(e=t).__v).__e,i=[],a=[],e.__P&&((n=Zy({},r)).__v=r.__v+1,_i.vnode&&_i.vnode(n),TJ(e.__P,n,r,e.__n,e.__P.namespaceURI,32&r.__u?[o]:null,i,o??YC(r),!!(32&r.__u),a),n.__v=r.__v,n.__.__k[n.__i]=n,Fve(i,n,a),n.__e!=o&&Nve(n)));lU.__r=0}function Lve(t,e,n,r,o,i,a,c,u,d,h){var m,g,b,E,C,T,R=r&&r.__k||Mve,L=e.length;for(u=uWe(n,e,R,u,L),m=0;m<L;m++)(b=n.__k[m])!=null&&(g=b.__i==-1?eI:R[b.__i]||eI,b.__i=m,T=TJ(t,b,g,o,i,a,c,u,d,h),E=b.__e,b.ref&&g.ref!=b.ref&&(g.ref&&RJ(g.ref,null,b),h.push(b.ref,b.__c||E,b)),C==null&&E!=null&&(C=E),4&b.__u||g.__k===b.__k?u=Bve(b,u,t):typeof b.type==\"function\"&&T!==void 0?u=T:E&&(u=E.nextSibling),b.__u&=-7);return n.__e=C,u}function uWe(t,e,n,r,o){var i,a,c,u,d,h=n.length,m=h,g=0;for(t.__k=new Array(o),i=0;i<o;i++)(a=e[i])!=null&&typeof a!=\"boolean\"&&typeof a!=\"function\"?(u=i+g,(a=t.__k[i]=typeof a==\"string\"||typeof a==\"number\"||typeof a==\"bigint\"||a.constructor==String?J9(null,a,null,null,null):nI(a)?J9(rI,{children:a},null,null,null):a.constructor==null&&a.__b>0?J9(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):a).__=t,a.__b=t.__b+1,c=null,(d=a.__i=dWe(a,n,u,m))!=-1&&(m--,(c=n[d])&&(c.__u|=2)),c==null||c.__v==null?(d==-1&&(o>h?g--:o<h&&g++),typeof a.type!=\"function\"&&(a.__u|=4)):d!=u&&(d==u-1?g--:d==u+1?g++:(d>u?g--:g++,a.__u|=4))):t.__k[i]=null;if(m)for(i=0;i<h;i++)(c=n[i])!=null&&(2&c.__u)==0&&(c.__e==r&&(r=YC(c)),jve(c,c));return r}function Bve(t,e,n){var r,o;if(typeof t.type==\"function\"){for(r=t.__k,o=0;r&&o<r.length;o++)r[o]&&(r[o].__=t,e=Bve(r[o],e,n));return e}t.__e!=e&&(e&&t.type&&!n.contains(e)&&(e=YC(t)),n.insertBefore(t.__e,e||null),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function Dve(t,e){return e=e||[],t==null||typeof t==\"boolean\"||(nI(t)?t.some(function(n){Dve(n,e)}):e.push(t)),e}function dWe(t,e,n,r){var o,i,a=t.key,c=t.type,u=e[n];if(u===null&&t.key==null||u&&a==u.key&&c==u.type&&(2&u.__u)==0)return n;if(r>(u!=null&&(2&u.__u)==0?1:0))for(o=n-1,i=n+1;o>=0||i<e.length;){if(o>=0){if((u=e[o])&&(2&u.__u)==0&&a==u.key&&c==u.type)return o;o--}if(i<e.length){if((u=e[i])&&(2&u.__u)==0&&a==u.key&&c==u.type)return i;i++}}return-1}function _ve(t,e,n){e[0]==\"-\"?t.setProperty(e,n??\"\"):t[e]=n==null?\"\":typeof n!=\"number\"||cWe.test(e)?n:n+\"px\"}function cU(t,e,n,r,o){var i,a;e:if(e==\"style\")if(typeof n==\"string\")t.style.cssText=n;else{if(typeof r==\"string\"&&(t.style.cssText=r=\"\"),r)for(e in r)n&&e in n||_ve(t.style,e,\"\");if(n)for(e in n)r&&n[e]==r[e]||_ve(t.style,e,n[e])}else if(e[0]==\"o\"&&e[1]==\"n\")i=e!=(e=e.replace(Ove,\"$1\")),a=e.toLowerCase(),e=a in t||e==\"onFocusOut\"||e==\"onFocusIn\"?a.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+i]=n,n?r?n.u=r.u:(n.u=CJ,t.addEventListener(e,i?kJ:SJ,i)):t.removeEventListener(e,i?kJ:SJ,i);else{if(o==\"http://www.w3.org/2000/svg\")e=e.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(e!=\"width\"&&e!=\"height\"&&e!=\"href\"&&e!=\"list\"&&e!=\"form\"&&e!=\"tabIndex\"&&e!=\"download\"&&e!=\"rowSpan\"&&e!=\"colSpan\"&&e!=\"role\"&&e!=\"popover\"&&e in t)try{t[e]=n??\"\";break e}catch{}typeof n==\"function\"||(n==null||n===!1&&e[4]!=\"-\"?t.removeAttribute(e):t.setAttribute(e,e==\"popover\"&&n==1?\"\":n))}}function Cve(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=CJ++;else if(e.t<n.u)return;return n(_i.event?_i.event(e):e)}}}function TJ(t,e,n,r,o,i,a,c,u,d){var h,m,g,b,E,C,T,R,L,D,G,W,J,ne,ie,Z,ae,V=e.type;if(e.constructor!=null)return null;128&n.__u&&(u=!!(32&n.__u),i=[c=e.__e=n.__e]),(h=_i.__b)&&h(e);e:if(typeof V==\"function\")try{if(R=e.props,L=\"prototype\"in V&&V.prototype.render,D=(h=V.contextType)&&r[h.__c],G=h?D?D.props.value:h.__:r,n.__c?T=(m=e.__c=n.__c).__=m.__E:(L?e.__c=m=new V(R,G):(e.__c=m=new X9(R,G),m.constructor=V,m.render=hWe),D&&D.sub(m),m.props=R,m.state||(m.state={}),m.context=G,m.__n=r,g=m.__d=!0,m.__h=[],m._sb=[]),L&&m.__s==null&&(m.__s=m.state),L&&V.getDerivedStateFromProps!=null&&(m.__s==m.state&&(m.__s=Zy({},m.__s)),Zy(m.__s,V.getDerivedStateFromProps(R,m.__s))),b=m.props,E=m.state,m.__v=e,g)L&&V.getDerivedStateFromProps==null&&m.componentWillMount!=null&&m.componentWillMount(),L&&m.componentDidMount!=null&&m.__h.push(m.componentDidMount);else{if(L&&V.getDerivedStateFromProps==null&&R!==b&&m.componentWillReceiveProps!=null&&m.componentWillReceiveProps(R,G),!m.__e&&m.shouldComponentUpdate!=null&&m.shouldComponentUpdate(R,m.__s,G)===!1||e.__v==n.__v){for(e.__v!=n.__v&&(m.props=R,m.state=m.__s,m.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function($){$&&($.__=e)}),W=0;W<m._sb.length;W++)m.__h.push(m._sb[W]);m._sb=[],m.__h.length&&a.push(m);break e}m.componentWillUpdate!=null&&m.componentWillUpdate(R,m.__s,G),L&&m.componentDidUpdate!=null&&m.__h.push(function(){m.componentDidUpdate(b,E,C)})}if(m.context=G,m.props=R,m.__P=t,m.__e=!1,J=_i.__r,ne=0,L){for(m.state=m.__s,m.__d=!1,J&&J(e),h=m.render(m.props,m.state,m.context),ie=0;ie<m._sb.length;ie++)m.__h.push(m._sb[ie]);m._sb=[]}else do m.__d=!1,J&&J(e),h=m.render(m.props,m.state,m.context),m.state=m.__s;while(m.__d&&++ne<25);m.state=m.__s,m.getChildContext!=null&&(r=Zy(Zy({},r),m.getChildContext())),L&&!g&&m.getSnapshotBeforeUpdate!=null&&(C=m.getSnapshotBeforeUpdate(b,E)),Z=h,h!=null&&h.type===rI&&h.key==null&&(Z=Uve(h.props.children)),c=Lve(t,nI(Z)?Z:[Z],e,n,r,o,i,a,c,u,d),m.base=e.__e,e.__u&=-161,m.__h.length&&a.push(m),T&&(m.__E=m.__=null)}catch($){if(e.__v=null,u||i!=null)if($.then){for(e.__u|=u?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;i[i.indexOf(c)]=null,e.__e=c}else for(ae=i.length;ae--;)AJ(i[ae]);else e.__e=n.__e,e.__k=n.__k;_i.__e($,e,n)}else i==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):c=e.__e=fWe(n.__e,e,n,r,o,i,a,u,d);return(h=_i.diffed)&&h(e),128&e.__u?void 0:c}function Fve(t,e,n){for(var r=0;r<n.length;r++)RJ(n[r],n[++r],n[++r]);_i.__c&&_i.__c(e,t),t.some(function(o){try{t=o.__h,o.__h=[],t.some(function(i){i.call(o)})}catch(i){_i.__e(i,o.__v)}})}function Uve(t){return typeof t!=\"object\"||t==null||t.__b&&t.__b>0?t:nI(t)?t.map(Uve):Zy({},t)}function fWe(t,e,n,r,o,i,a,c,u){var d,h,m,g,b,E,C,T=n.props,R=e.props,L=e.type;if(L==\"svg\"?o=\"http://www.w3.org/2000/svg\":L==\"math\"?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),i!=null){for(d=0;d<i.length;d++)if((b=i[d])&&\"setAttribute\"in b==!!L&&(L?b.localName==L:b.nodeType==3)){t=b,i[d]=null;break}}if(t==null){if(L==null)return document.createTextNode(R);t=document.createElementNS(o,L,R.is&&R),c&&(_i.__m&&_i.__m(e,i),c=!1),i=null}if(L==null)T===R||c&&t.data==R||(t.data=R);else{if(i=i&&tI.call(t.childNodes),T=n.props||eI,!c&&i!=null)for(T={},d=0;d<t.attributes.length;d++)T[(b=t.attributes[d]).name]=b.value;for(d in T)if(b=T[d],d!=\"children\"){if(d==\"dangerouslySetInnerHTML\")m=b;else if(!(d in R)){if(d==\"value\"&&\"defaultValue\"in R||d==\"checked\"&&\"defaultChecked\"in R)continue;cU(t,d,null,b,o)}}for(d in R)b=R[d],d==\"children\"?g=b:d==\"dangerouslySetInnerHTML\"?h=b:d==\"value\"?E=b:d==\"checked\"?C=b:c&&typeof b!=\"function\"||T[d]===b||cU(t,d,b,T[d],o);if(h)c||m&&(h.__html==m.__html||h.__html==t.innerHTML)||(t.innerHTML=h.__html),e.__k=[];else if(m&&(t.innerHTML=\"\"),Lve(e.type==\"template\"?t.content:t,nI(g)?g:[g],e,n,r,L==\"foreignObject\"?\"http://www.w3.org/1999/xhtml\":o,i,a,i?i[0]:n.__k&&YC(n,0),c,u),i!=null)for(d=i.length;d--;)AJ(i[d]);c||(d=\"value\",L==\"progress\"&&E==null?t.removeAttribute(\"value\"):E!=null&&(E!==t[d]||L==\"progress\"&&!E||L==\"option\"&&E!=T[d])&&cU(t,d,E,T[d],o),d=\"checked\",C!=null&&C!=t[d]&&cU(t,d,C,T[d],o))}return t}function RJ(t,e,n){try{if(typeof t==\"function\"){var r=typeof t.__u==\"function\";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(o){_i.__e(o,n)}}function jve(t,e,n){var r,o;if(_i.unmount&&_i.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||RJ(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(i){_i.__e(i,e)}r.base=r.__P=null}if(r=t.__k)for(o=0;o<r.length;o++)r[o]&&jve(r[o],e,n||typeof t.type!=\"function\");n||AJ(t.__e),t.__c=t.__=t.__e=void 0}function hWe(t,e,n){return this.constructor(t,n)}function z6(t,e,n){var r,o,i,a;e==document&&(e=document.documentElement),_i.__&&_i.__(t,e),o=(r=typeof n==\"function\")?null:n&&n.__k||e.__k,i=[],a=[],TJ(e,t=(!r&&n||e).__k=Mo(rI,null,[t]),o||eI,eI,e.namespaceURI,!r&&n?[n]:o?null:e.firstChild?tI.call(e.childNodes):null,i,!r&&n?n:o?o.__e:e.firstChild,r,a),Fve(i,t,a)}function zve(t,e){z6(t,e,zve)}function pWe(t,e,n){var r,o,i,a,c=Zy({},t.props);for(i in t.type&&t.type.defaultProps&&(a=t.type.defaultProps),e)i==\"key\"?r=e[i]:i==\"ref\"?o=e[i]:c[i]=e[i]===void 0&&a!=null?a[i]:e[i];return arguments.length>2&&(c.children=arguments.length>3?tI.call(arguments,2):n),J9(t.type,c,r||t.key,o||t.ref,null)}function mWe(t){function e(n){var r,o;return this.getChildContext||(r=new Set,(o={})[e.__c]=this,this.getChildContext=function(){return o},this.componentWillUnmount=function(){r=null},this.shouldComponentUpdate=function(i){this.props.value!=i.value&&r.forEach(function(a){a.__e=!0,_J(a)})},this.sub=function(i){r.add(i);var a=i.componentWillUnmount;i.componentWillUnmount=function(){r&&r.delete(i),a&&a.call(i)}}),n.children}return e.__c=\"__cC\"+Pve++,e.__=t,e.Provider=e.__l=(e.Consumer=function(n,r){return n.children(r)}).contextType=e,e}var tI,_i,Ave,Tve,j6,kve,Rve,Ive,Ove,CJ,SJ,kJ,Pve,eI,Mve,cWe,nI,Dc=ce(()=>{p();eI={},Mve=[],cWe=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,nI=Array.isArray;tI=Mve.slice,_i={__e:function(t,e,n,r){for(var o,i,a;e=e.__;)if((o=e.__c)&&!o.__)try{if((i=o.constructor)&&i.getDerivedStateFromError!=null&&(o.setState(i.getDerivedStateFromError(t)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(t,r||{}),a=o.__d),a)return o.__E=o}catch(c){t=c}throw t}},Ave=0,Tve=function(t){return t!=null&&t.constructor==null},X9.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Zy({},this.state),typeof t==\"function\"&&(t=t(Zy({},n),this.props)),t&&Zy(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),_J(this))},X9.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),_J(this))},X9.prototype.render=rI,j6=[],Rve=typeof Promise==\"function\"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ive=function(t,e){return t.__v.__b-e.__v.__b},lU.__r=0,Ove=/(PointerCapture)$|Capture$/i,CJ=0,SJ=Cve(!1),kJ=Cve(!0),Pve=0});var iI={};ld(iI,{useCallback:()=>bWe,useContext:()=>vWe,useDebugValue:()=>wWe,useEffect:()=>PJ,useErrorBoundary:()=>xWe,useId:()=>EWe,useImperativeHandle:()=>yWe,useLayoutEffect:()=>Jve,useMemo:()=>MJ,useReducer:()=>Qve,useRef:()=>gWe,useState:()=>oI});function H6(t,e){Ss.__h&&Ss.__h(Ci,t,QC||e),QC=0;var n=Ci.__H||(Ci.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function oI(t){return QC=1,Qve(Xve,t)}function Qve(t,e,n){var r=H6(Ov++,2);if(r.t=t,!r.__c&&(r.__=[n?n(e):Xve(void 0,e),function(c){var u=r.__N?r.__N[0]:r.__[0],d=r.t(u,c);u!==d&&(r.__N=[d,r.__[1]],r.__c.setState({}))}],r.__c=Ci,!Ci.__f)){var o=function(c,u,d){if(!r.__c.__H)return!0;var h=r.__c.__H.__.filter(function(g){return!!g.__c});if(h.every(function(g){return!g.__N}))return!i||i.call(this,c,u,d);var m=r.__c.props!==c;return h.forEach(function(g){if(g.__N){var b=g.__[0];g.__=g.__N,g.__N=void 0,b!==g.__[0]&&(m=!0)}}),i&&i.call(this,c,u,d)||m};Ci.__f=!0;var i=Ci.shouldComponentUpdate,a=Ci.componentWillUpdate;Ci.componentWillUpdate=function(c,u,d){if(this.__e){var h=i;i=void 0,o(c,u,d),i=h}a&&a.call(this,c,u,d)},Ci.shouldComponentUpdate=o}return r.__N||r.__}function PJ(t,e){var n=H6(Ov++,3);!Ss.__s&&NJ(n.__H,e)&&(n.__=t,n.u=e,Ci.__H.__h.push(n))}function Jve(t,e){var n=H6(Ov++,4);!Ss.__s&&NJ(n.__H,e)&&(n.__=t,n.u=e,Ci.__h.push(n))}function gWe(t){return QC=5,MJ(function(){return{current:t}},[])}function yWe(t,e,n){QC=6,Jve(function(){if(typeof t==\"function\"){var r=t(e());return function(){t(null),r&&typeof r==\"function\"&&r()}}if(t)return t.current=e(),function(){return t.current=null}},n==null?n:n.concat(t))}function MJ(t,e){var n=H6(Ov++,7);return NJ(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function bWe(t,e){return QC=8,MJ(function(){return t},e)}function vWe(t){var e=Ci.context[t.__c],n=H6(Ov++,9);return n.c=t,e?(n.__==null&&(n.__=!0,e.sub(Ci)),e.props.value):t.__}function wWe(t,e){Ss.useDebugValue&&Ss.useDebugValue(e?e(t):t)}function xWe(t){var e=H6(Ov++,10),n=oI();return e.__=t,Ci.componentDidCatch||(Ci.componentDidCatch=function(r,o){e.__&&e.__(r,o),n[1](r)}),[n[0],function(){n[1](void 0)}]}function EWe(){var t=H6(Ov++,11);if(!t.__){for(var e=Ci.__v;e!==null&&!e.__m&&e.__!==null;)e=e.__;var n=e.__m||(e.__m=[0,0]);t.__=\"P\"+n[0]+\"-\"+n[1]++}return t.__}function SWe(){for(var t;t=Yve.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(uU),t.__H.__h.forEach(OJ),t.__H.__h=[]}catch(e){t.__H.__h=[],Ss.__e(e,t.__v)}}function kWe(t){var e,n=function(){clearTimeout(r),Zve&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,35);Zve&&(e=requestAnimationFrame(n))}function uU(t){var e=Ci,n=t.__c;typeof n==\"function\"&&(t.__c=void 0,n()),Ci=e}function OJ(t){var e=Ci;t.__c=t.__(),Ci=e}function NJ(t,e){return!t||t.length!==e.length||e.some(function(n,r){return n!==t[r]})}function Xve(t,e){return typeof e==\"function\"?e(t):e}var Ov,Ci,IJ,Hve,QC,Yve,Ss,qve,Wve,Vve,$ve,Kve,Gve,Zve,JC=ce(()=>{p();Dc();QC=0,Yve=[],Ss=_i,qve=Ss.__b,Wve=Ss.__r,Vve=Ss.diffed,$ve=Ss.__c,Kve=Ss.unmount,Gve=Ss.__;Ss.__b=function(t){Ci=null,qve&&qve(t)},Ss.__=function(t,e){t&&e.__k&&e.__k.__m&&(t.__m=e.__k.__m),Gve&&Gve(t,e)},Ss.__r=function(t){Wve&&Wve(t),Ov=0;var e=(Ci=t.__c).__H;e&&(IJ===Ci?(e.__h=[],Ci.__h=[],e.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(e.__h.forEach(uU),e.__h.forEach(OJ),e.__h=[],Ov=0)),IJ=Ci},Ss.diffed=function(t){Vve&&Vve(t);var e=t.__c;e&&e.__H&&(e.__H.__h.length&&(Yve.push(e)!==1&&Hve===Ss.requestAnimationFrame||((Hve=Ss.requestAnimationFrame)||kWe)(SWe)),e.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),IJ=Ci=null},Ss.__c=function(t,e){e.some(function(n){try{n.__h.forEach(uU),n.__h=n.__h.filter(function(r){return!r.__||OJ(r)})}catch(r){e.some(function(o){o.__h&&(o.__h=[])}),e=[],Ss.__e(r,n.__v)}}),$ve&&$ve(t,e)},Ss.unmount=function(t){Kve&&Kve(t);var e,n=t.__c;n&&n.__H&&(n.__H.__.forEach(function(r){try{uU(r)}catch(o){e=o}}),n.__H=void 0,e&&Ss.__e(e,n.__v))};Zve=typeof requestAnimationFrame==\"function\"});var e2e,t2e=ce(()=>{p();e2e=\".-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}\"});var _We,CWe,XC,LJ,AWe,dU=ce(()=>{p();_x();Dc();JC();Q9();t2e();_We=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+\",CWe=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=\",XC=class{constructor(){this.items=new Map,this.nextItemKey=0,this.root=null,this.darkMode=sU()}attach(e){this.root=document.createElement(\"div\"),this.root.className=\"-cbwsdk-snackbar-root\",e.appendChild(this.root),this.render()}presentItem(e){let n=this.nextItemKey++;return this.items.set(n,e),this.render(),()=>{this.items.delete(n),this.render()}}clear(){this.items.clear(),this.render()}render(){this.root&&z6(Mo(\"div\",null,Mo(LJ,{darkMode:this.darkMode},Array.from(this.items.entries()).map(([e,n])=>Mo(AWe,Object.assign({},n,{key:e}))))),this.root)}},LJ=t=>Mo(\"div\",{class:Iv(\"-cbwsdk-snackbar-container\")},Mo(\"style\",null,e2e),Mo(\"div\",{class:\"-cbwsdk-snackbar\"},t.children)),AWe=({autoExpand:t,message:e,menuItems:n})=>{let[r,o]=oI(!0),[i,a]=oI(t??!1);PJ(()=>{let u=[window.setTimeout(()=>{o(!1)},1),window.setTimeout(()=>{a(!0)},1e4)];return()=>{u.forEach(window.clearTimeout)}});let c=()=>{a(!i)};return Mo(\"div\",{class:Iv(\"-cbwsdk-snackbar-instance\",r&&\"-cbwsdk-snackbar-instance-hidden\",i&&\"-cbwsdk-snackbar-instance-expanded\")},Mo(\"div\",{class:\"-cbwsdk-snackbar-instance-header\",onClick:c},Mo(\"img\",{src:_We,class:\"-cbwsdk-snackbar-instance-header-cblogo\"}),\" \",Mo(\"div\",{class:\"-cbwsdk-snackbar-instance-header-message\"},e),Mo(\"div\",{class:\"-gear-container\"},!i&&Mo(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},Mo(\"circle\",{cx:\"12\",cy:\"12\",r:\"12\",fill:\"#F5F7F8\"})),Mo(\"img\",{src:CWe,class:\"-gear-icon\",title:\"Expand\"}))),n&&n.length>0&&Mo(\"div\",{class:\"-cbwsdk-snackbar-instance-menu\"},n.map((u,d)=>Mo(\"div\",{class:Iv(\"-cbwsdk-snackbar-instance-menu-item\",u.isRed&&\"-cbwsdk-snackbar-instance-menu-item-is-red\"),onClick:u.onClick,key:d},Mo(\"svg\",{width:u.svgWidth,height:u.svgHeight,viewBox:\"0 0 10 11\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},Mo(\"path\",{\"fill-rule\":u.defaultFillRule,\"clip-rule\":u.defaultClipRule,d:u.path,fill:\"#AAAAAA\"})),Mo(\"span\",{class:Iv(\"-cbwsdk-snackbar-instance-menu-item-info\",u.isRed&&\"-cbwsdk-snackbar-instance-menu-item-info-is-red\")},u.info)))))}});var BJ,fU,DJ=ce(()=>{p();EJ();dU();BJ=\"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",fU=class{constructor(){this.attached=!1,this.snackbar=new XC}attach(){if(this.attached)throw new Error(\"Coinbase Wallet SDK UI is already attached\");let e=document.documentElement,n=document.createElement(\"div\");n.className=\"-cbwsdk-css-reset\",e.appendChild(n),this.snackbar.attach(n),this.attached=!0,aU()}showConnecting(e){let n;return e.isUnlinkedErrorState?n={autoExpand:!0,message:\"Connection lost\",menuItems:[{isRed:!1,info:\"Reset connection\",svgWidth:\"10\",svgHeight:\"11\",path:\"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",defaultFillRule:\"evenodd\",defaultClipRule:\"evenodd\",onClick:e.onResetConnection}]}:n={message:\"Confirm on phone\",menuItems:[{isRed:!0,info:\"Cancel transaction\",svgWidth:\"11\",svgHeight:\"11\",path:\"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",defaultFillRule:\"inherit\",defaultClipRule:\"inherit\",onClick:e.onCancel},{isRed:!1,info:\"Reset connection\",svgWidth:\"10\",svgHeight:\"11\",path:BJ,defaultFillRule:\"evenodd\",defaultClipRule:\"evenodd\",onClick:e.onResetConnection}]},this.snackbar.presentItem(n)}}});var n2e,r2e=ce(()=>{p();n2e=\".-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}\"});var hU,TWe,o2e=ce(()=>{p();_x();Dc();EJ();dU();Q9();r2e();hU=class{constructor(){this.root=null,this.darkMode=sU()}attach(){let e=document.documentElement;this.root=document.createElement(\"div\"),this.root.className=\"-cbwsdk-css-reset\",e.appendChild(this.root),aU()}present(e){this.render(e)}clear(){this.render(null)}render(e){this.root&&(z6(null,this.root),e&&z6(Mo(TWe,Object.assign({},e,{onDismiss:()=>{this.clear()},darkMode:this.darkMode})),this.root))}},TWe=({title:t,buttonText:e,darkMode:n,onButtonClick:r,onDismiss:o})=>{let i=n?\"dark\":\"light\";return Mo(LJ,{darkMode:n},Mo(\"div\",{class:\"-cbwsdk-redirect-dialog\"},Mo(\"style\",null,n2e),Mo(\"div\",{class:\"-cbwsdk-redirect-dialog-backdrop\",onClick:o}),Mo(\"div\",{class:Iv(\"-cbwsdk-redirect-dialog-box\",i)},Mo(\"p\",null,t),Mo(\"button\",{onClick:r},e))))}});var i2e,s2e,FJ,a2e,sI=ce(()=>{p();i2e=\"https://keys.coinbase.com/connect\",s2e=\"https://rpc.wallet.coinbase.com\",FJ=\"https://www.walletlink.org\",a2e=\"https://go.cb-w.com/walletlink\"});var aI,c2e=ce(()=>{p();o2e();Q9();sI();aI=class{constructor(){this.attached=!1,this.redirectDialog=new hU}attach(){if(this.attached)throw new Error(\"Coinbase Wallet SDK UI is already attached\");this.redirectDialog.attach(),this.attached=!0}redirectToCoinbaseWallet(e){let n=new URL(a2e);n.searchParams.append(\"redirect_url\",vve().href),e&&n.searchParams.append(\"wl_url\",e);let r=document.createElement(\"a\");r.target=\"cbw-opener\",r.href=n.href,r.rel=\"noreferrer noopener\",r.click()}openCoinbaseWalletDeeplink(e){this.redirectDialog.present({title:\"Redirecting to Coinbase Wallet...\",buttonText:\"Open\",onButtonClick:()=>{this.redirectToCoinbaseWallet(e)}}),setTimeout(()=>{this.redirectToCoinbaseWallet(e)},99)}showConnecting(e){return()=>{this.redirectDialog.clear()}}}});var cI,l2e=ce(()=>{p();hve();XF();pve();bve();eU();Q9();DJ();c2e();Cv();_v();$y();cI=class t{constructor(e){this.chainCallbackParams={chainId:\"\",jsonRpcUrl:\"\"},this.isMobileWeb=wve(),this.linkedUpdated=i=>{this.isLinked=i;let a=this.storage.getItem(Y9);if(i&&(this._session.linked=i),this.isUnlinkedErrorState=!1,a){let c=a.split(\" \"),u=this.storage.getItem(\"IsStandaloneSigning\")===\"true\";c[0]!==\"\"&&!i&&this._session.linked&&!u&&(this.isUnlinkedErrorState=!0)}},this.metadataUpdated=(i,a)=>{this.storage.setItem(i,a)},this.chainUpdated=(i,a)=>{this.chainCallbackParams.chainId===i&&this.chainCallbackParams.jsonRpcUrl===a||(this.chainCallbackParams={chainId:i,jsonRpcUrl:a},this.chainCallback&&this.chainCallback(a,Number.parseInt(i,10)))},this.accountUpdated=i=>{this.accountsCallback&&this.accountsCallback([i]),t.accountRequestCallbackIds.size>0&&(Array.from(t.accountRequestCallbackIds.values()).forEach(a=>{this.invokeCallback(a,{method:\"requestEthereumAccounts\",result:[i]})}),t.accountRequestCallbackIds.clear())},this.resetAndReload=this.resetAndReload.bind(this),this.linkAPIUrl=e.linkAPIUrl,this.storage=e.storage,this.metadata=e.metadata,this.accountsCallback=e.accountsCallback,this.chainCallback=e.chainCallback;let{session:n,ui:r,connection:o}=this.subscribe();this._session=n,this.connection=o,this.relayEventManager=new iU,this.ui=r,this.ui.attach()}subscribe(){let e=GC.load(this.storage)||GC.create(this.storage),{linkAPIUrl:n}=this,r=new oU({session:e,linkAPIUrl:n,listener:this}),o=this.isMobileWeb?new aI:new fU;return r.connect(),{session:e,ui:o,connection:r}}resetAndReload(){this.connection.destroy().then(()=>{let e=GC.load(this.storage);e?.id===this._session.id&&Bc.clearAll(),document.location.reload()}).catch(e=>{})}signEthereumTransaction(e){return this.sendRequest({method:\"signEthereumTransaction\",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:ng(e.weiValue),data:B6(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?ng(e.gasPriceInWei):null,maxFeePerGas:e.gasPriceInWei?ng(e.gasPriceInWei):null,maxPriorityFeePerGas:e.gasPriceInWei?ng(e.gasPriceInWei):null,gasLimit:e.gasLimit?ng(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!1}})}signAndSubmitEthereumTransaction(e){return this.sendRequest({method:\"signEthereumTransaction\",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:ng(e.weiValue),data:B6(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?ng(e.gasPriceInWei):null,maxFeePerGas:e.maxFeePerGas?ng(e.maxFeePerGas):null,maxPriorityFeePerGas:e.maxPriorityFeePerGas?ng(e.maxPriorityFeePerGas):null,gasLimit:e.gasLimit?ng(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!0}})}submitEthereumTransaction(e,n){return this.sendRequest({method:\"submitEthereumTransaction\",params:{signedTransaction:B6(e,!0),chainId:n}})}getWalletLinkSession(){return this._session}sendRequest(e){let n=null,r=Av(8),o=i=>{this.publishWeb3RequestCanceledEvent(r),this.handleErrorResponse(r,e.method,i),n?.()};return new Promise((i,a)=>{n=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:o,onResetConnection:this.resetAndReload}),this.relayEventManager.callbacks.set(r,c=>{if(n?.(),za(c))return a(new Error(c.errorMessage));i(c)}),this.publishWeb3RequestEvent(r,e)})}publishWeb3RequestEvent(e,n){let r={type:\"WEB3_REQUEST\",id:e,request:n};this.publishEvent(\"Web3Request\",r,!0).then(o=>{}).catch(o=>{this.handleWeb3ResponseMessage(r.id,{method:n.method,errorMessage:o.message})}),this.isMobileWeb&&this.openCoinbaseWalletDeeplink(n.method)}openCoinbaseWalletDeeplink(e){if(this.ui instanceof aI)switch(e){case\"requestEthereumAccounts\":case\"switchEthereumChain\":return;default:window.addEventListener(\"blur\",()=>{window.addEventListener(\"focus\",()=>{this.connection.checkUnseenEvents()},{once:!0})},{once:!0}),this.ui.openCoinbaseWalletDeeplink();break}}publishWeb3RequestCanceledEvent(e){let n={type:\"WEB3_REQUEST_CANCELED\",id:e};this.publishEvent(\"Web3RequestCanceled\",n,!1).then()}publishEvent(e,n,r){return this.connection.publishEvent(e,n,r)}handleWeb3ResponseMessage(e,n){if(n.method===\"requestEthereumAccounts\"){t.accountRequestCallbackIds.forEach(r=>this.invokeCallback(r,n)),t.accountRequestCallbackIds.clear();return}this.invokeCallback(e,n)}handleErrorResponse(e,n,r){var o;let i=(o=r?.message)!==null&&o!==void 0?o:\"Unspecified error message.\";this.handleWeb3ResponseMessage(e,{method:n,errorMessage:i})}invokeCallback(e,n){let r=this.relayEventManager.callbacks.get(e);r&&(r(n),this.relayEventManager.callbacks.delete(e))}requestEthereumAccounts(){let{appName:e,appLogoUrl:n}=this.metadata,r={method:\"requestEthereumAccounts\",params:{appName:e,appLogoUrl:n}},o=null,i=Av(8);return new Promise((a,c)=>{this.relayEventManager.callbacks.set(i,u=>{if(o?.(),za(u))return c(new Error(u.errorMessage));a(u)}),t.accountRequestCallbackIds.add(i),this.publishWeb3RequestEvent(i,r)})}watchAsset(e,n,r,o,i,a){let c={method:\"watchAsset\",params:{type:e,options:{address:n,symbol:r,decimals:o,image:i},chainId:a}},u=null,d=Av(8),h=m=>{this.publishWeb3RequestCanceledEvent(d),this.handleErrorResponse(d,c.method,m),u?.()};return u=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:h,onResetConnection:this.resetAndReload}),new Promise((m,g)=>{this.relayEventManager.callbacks.set(d,b=>{if(u?.(),za(b))return g(new Error(b.errorMessage));m(b)}),this.publishWeb3RequestEvent(d,c)})}addEthereumChain(e,n,r,o,i,a){let c={method:\"addEthereumChain\",params:{chainId:e,rpcUrls:n,blockExplorerUrls:o,chainName:i,iconUrls:r,nativeCurrency:a}},u=null,d=Av(8),h=m=>{this.publishWeb3RequestCanceledEvent(d),this.handleErrorResponse(d,c.method,m),u?.()};return u=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:h,onResetConnection:this.resetAndReload}),new Promise((m,g)=>{this.relayEventManager.callbacks.set(d,b=>{if(u?.(),za(b))return g(new Error(b.errorMessage));m(b)}),this.publishWeb3RequestEvent(d,c)})}switchEthereumChain(e,n){let r={method:\"switchEthereumChain\",params:Object.assign({chainId:e},{address:n})},o=null,i=Av(8),a=c=>{this.publishWeb3RequestCanceledEvent(i),this.handleErrorResponse(i,r.method,c),o?.()};return o=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:a,onResetConnection:this.resetAndReload}),new Promise((c,u)=>{this.relayEventManager.callbacks.set(i,d=>{if(o?.(),za(d)&&d.errorCode)return u(sr.provider.custom({code:d.errorCode,message:\"Unrecognized chain ID. Try adding the chain using addEthereumChain first.\"}));if(za(d))return u(new Error(d.errorMessage));c(d)}),this.publishWeb3RequestEvent(i,r)})}};cI.accountRequestCallbackIds=new Set});var lI,u2e,d2e,uI,f2e=ce(()=>{p();lI=he(ave(),1);XF();eU();l2e();sI();Cv();_v();$y();WC();u2e=\"DefaultChainId\",d2e=\"DefaultJsonRpcUrl\",uI=class{constructor(e){this._relay=null,this._addresses=[],this.metadata=e.metadata,this._storage=new Bc(\"walletlink\",FJ),this.callback=e.callback||null;let n=this._storage.getItem(Y9);if(n){let r=n.split(\" \");r[0]!==\"\"&&(this._addresses=r.map(o=>Tv(o)))}this.initializeRelay()}getSession(){let e=this.initializeRelay(),{id:n,secret:r}=e.getWalletLinkSession();return{id:n,secret:r}}async handshake(){await this._eth_requestAccounts()}get selectedAddress(){return this._addresses[0]||void 0}get jsonRpcUrl(){var e;return(e=this._storage.getItem(d2e))!==null&&e!==void 0?e:void 0}set jsonRpcUrl(e){this._storage.setItem(d2e,e)}updateProviderInfo(e,n){var r;this.jsonRpcUrl=e;let o=this.getChainId();this._storage.setItem(u2e,n.toString(10)),D6(n)!==o&&((r=this.callback)===null||r===void 0||r.call(this,\"chainChanged\",rg(n)))}async watchAsset(e){let n=Array.isArray(e)?e[0]:e;if(!n.type)throw sr.rpc.invalidParams(\"Type is required\");if(n?.type!==\"ERC20\")throw sr.rpc.invalidParams(`Asset of type \\'${n.type}\\' is not supported`);if(!n?.options)throw sr.rpc.invalidParams(\"Options are required\");if(!n?.options.address)throw sr.rpc.invalidParams(\"Address is required\");let r=this.getChainId(),{address:o,symbol:i,image:a,decimals:c}=n.options,d=await this.initializeRelay().watchAsset(n.type,o,i,c,a,r?.toString());return za(d)?!1:!!d.result}async addEthereumChain(e){var n,r;let o=e[0];if(((n=o.rpcUrls)===null||n===void 0?void 0:n.length)===0)throw sr.rpc.invalidParams(\"please pass in at least 1 rpcUrl\");if(!o.chainName||o.chainName.trim()===\"\")throw sr.rpc.invalidParams(\"chainName is a required field\");if(!o.nativeCurrency)throw sr.rpc.invalidParams(\"nativeCurrency is a required field\");let i=Number.parseInt(o.chainId,16);if(i===this.getChainId())return!1;let a=this.initializeRelay(),{rpcUrls:c=[],blockExplorerUrls:u=[],chainName:d,iconUrls:h=[],nativeCurrency:m}=o,g=await a.addEthereumChain(i.toString(),c,h,u,d,m);if(za(g))return!1;if(((r=g.result)===null||r===void 0?void 0:r.isApproved)===!0)return this.updateProviderInfo(c[0],i),null;throw sr.rpc.internal(\"unable to add ethereum chain\")}async switchEthereumChain(e){let n=e[0],r=Number.parseInt(n.chainId,16),i=await this.initializeRelay().switchEthereumChain(r.toString(10),this.selectedAddress||void 0);if(za(i))throw i;let a=i.result;return a.isApproved&&a.rpcUrl.length>0&&this.updateProviderInfo(a.rpcUrl,r),null}async cleanup(){this.callback=null,this._relay&&this._relay.resetAndReload(),this._storage.clear()}_setAddresses(e,n){var r;if(!Array.isArray(e))throw new Error(\"addresses is not an array\");let o=e.map(i=>Tv(i));JSON.stringify(o)!==JSON.stringify(this._addresses)&&(this._addresses=o,(r=this.callback)===null||r===void 0||r.call(this,\"accountsChanged\",o),this._storage.setItem(Y9,o.join(\" \")))}async request(e){let n=e.params||[];switch(e.method){case\"eth_accounts\":return[...this._addresses];case\"eth_coinbase\":return this.selectedAddress||null;case\"net_version\":return this.getChainId().toString(10);case\"eth_chainId\":return rg(this.getChainId());case\"eth_requestAccounts\":return this._eth_requestAccounts();case\"eth_ecRecover\":case\"personal_ecRecover\":return this.ecRecover(e);case\"personal_sign\":return this.personalSign(e);case\"eth_signTransaction\":return this._eth_signTransaction(n);case\"eth_sendRawTransaction\":return this._eth_sendRawTransaction(n);case\"eth_sendTransaction\":return this._eth_sendTransaction(n);case\"eth_signTypedData_v1\":case\"eth_signTypedData_v3\":case\"eth_signTypedData_v4\":case\"eth_signTypedData\":return this.signTypedData(e);case\"wallet_addEthereumChain\":return this.addEthereumChain(n);case\"wallet_switchEthereumChain\":return this.switchEthereumChain(n);case\"wallet_watchAsset\":return this.watchAsset(n);default:if(!this.jsonRpcUrl)throw sr.rpc.internal(\"No RPC URL set for chain\");return qC(e,this.jsonRpcUrl)}}_ensureKnownAddress(e){let n=Tv(e);if(!this._addresses.map(o=>Tv(o)).includes(n))throw new Error(\"Unknown Ethereum address\")}_prepareTransactionParams(e){let n=e.from?Tv(e.from):this.selectedAddress;if(!n)throw new Error(\"Ethereum address is unavailable\");this._ensureKnownAddress(n);let r=e.to?Tv(e.to):null,o=e.value!=null?HC(e.value):BigInt(0),i=e.data?HF(e.data):globalThis.Buffer.alloc(0),a=e.nonce!=null?D6(e.nonce):null,c=e.gasPrice!=null?HC(e.gasPrice):null,u=e.maxFeePerGas!=null?HC(e.maxFeePerGas):null,d=e.maxPriorityFeePerGas!=null?HC(e.maxPriorityFeePerGas):null,h=e.gas!=null?HC(e.gas):null,m=e.chainId?D6(e.chainId):this.getChainId();return{fromAddress:n,toAddress:r,weiValue:o,data:i,nonce:a,gasPriceInWei:c,maxFeePerGas:u,maxPriorityFeePerGas:d,gasLimit:h,chainId:m}}async ecRecover(e){let{method:n,params:r}=e;if(!Array.isArray(r))throw sr.rpc.invalidParams();let i=await this.initializeRelay().sendRequest({method:\"ethereumAddressFromSignedMessage\",params:{message:jF(r[0]),signature:jF(r[1]),addPrefix:n===\"personal_ecRecover\"}});if(za(i))throw i;return i.result}getChainId(){var e;return Number.parseInt((e=this._storage.getItem(u2e))!==null&&e!==void 0?e:\"1\",10)}async _eth_requestAccounts(){var e,n;if(this._addresses.length>0)return(e=this.callback)===null||e===void 0||e.call(this,\"connect\",{chainId:rg(this.getChainId())}),this._addresses;let o=await this.initializeRelay().requestEthereumAccounts();if(za(o))throw o;if(!o.result)throw new Error(\"accounts received is empty\");return this._setAddresses(o.result),(n=this.callback)===null||n===void 0||n.call(this,\"connect\",{chainId:rg(this.getChainId())}),this._addresses}async personalSign({params:e}){if(!Array.isArray(e))throw sr.rpc.invalidParams();let n=e[1],r=e[0];this._ensureKnownAddress(n);let i=await this.initializeRelay().sendRequest({method:\"signEthereumMessage\",params:{address:Tv(n),message:jF(r),addPrefix:!0,typedDataJson:null}});if(za(i))throw i;return i.result}async _eth_signTransaction(e){let n=this._prepareTransactionParams(e[0]||{}),o=await this.initializeRelay().signEthereumTransaction(n);if(za(o))throw o;return o.result}async _eth_sendRawTransaction(e){let n=HF(e[0]),o=await this.initializeRelay().submitEthereumTransaction(n,this.getChainId());if(za(o))throw o;return o.result}async _eth_sendTransaction(e){let n=this._prepareTransactionParams(e[0]||{}),o=await this.initializeRelay().signAndSubmitEthereumTransaction(n);if(za(o))throw o;return o.result}async signTypedData(e){let{method:n,params:r}=e;if(!Array.isArray(r))throw sr.rpc.invalidParams();let o=d=>{let h={eth_signTypedData_v1:lI.default.hashForSignTypedDataLegacy,eth_signTypedData_v3:lI.default.hashForSignTypedData_v3,eth_signTypedData_v4:lI.default.hashForSignTypedData_v4,eth_signTypedData:lI.default.hashForSignTypedData_v4};return B6(h[n]({data:K1e(d)}),!0)},i=r[n===\"eth_signTypedData_v1\"?1:0],a=r[n===\"eth_signTypedData_v1\"?0:1];this._ensureKnownAddress(i);let u=await this.initializeRelay().sendRequest({method:\"signEthereumMessage\",params:{address:Tv(i),message:o(a),typedDataJson:JSON.stringify(a,null,2),addPrefix:!1}});if(za(u))throw u;return u.result}initializeRelay(){return this._relay||(this._relay=new cI({linkAPIUrl:FJ,storage:this._storage,metadata:this.metadata,accountsCallback:this._setAddresses.bind(this),chainCallback:this.updateProviderInfo.bind(this)})),this._relay}}});function m2e(){return p2e.getItem(h2e)}function g2e(t){p2e.setItem(h2e,t)}async function y2e(t){let{communicator:e,metadata:n,handshakeRequest:r,callback:o}=t;RWe(e,n,o).catch(()=>{});let i={id:crypto.randomUUID(),event:\"selectSignerType\",data:Object.assign(Object.assign({},t.preference),{handshakeRequest:r})},{data:a}=await e.postRequestAndWaitForResponse(i);return a}function b2e(t){let{signerType:e,metadata:n,communicator:r,callback:o}=t;switch(e){case\"scw\":return new GF({metadata:n,callback:o,communicator:r});case\"walletlink\":return new uI({metadata:n,callback:o})}}async function RWe(t,e,n){await t.onMessage(({event:o})=>o===\"WalletLinkSessionRequest\");let r=new uI({metadata:e,callback:n});t.postMessage({event:\"WalletLinkUpdate\",data:{session:r.getSession()}}),await r.handshake(),t.postMessage({event:\"WalletLinkUpdate\",data:{connected:!0}})}var h2e,p2e,v2e=ce(()=>{p();sbe();f2e();_v();h2e=\"SignerType\",p2e=new Bc(\"CBWSDK\",\"SignerConfigurator\")});var IWe,OWe,pU,w2e,mU=ce(()=>{p();IWe=`Coinbase Wallet SDK requires the Cross-Origin-Opener-Policy header to not be set to \\'same-origin\\'. This is to ensure that the SDK can communicate with the Coinbase Smart Wallet app.\\n\\nPlease see https://www.smartwallet.dev/guides/tips/popup-tips#cross-origin-opener-policy for more information.`,OWe=()=>{let t;return{getCrossOriginOpenerPolicy:()=>t===void 0?\"undefined\":t,checkCrossOriginOpenerPolicy:async()=>{if(typeof window>\"u\"){t=\"non-browser-env\";return}try{let e=`${window.location.origin}${window.location.pathname}`,n=await fetch(e,{method:\"HEAD\"});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let r=n.headers.get(\"Cross-Origin-Opener-Policy\");t=r??\"null\",t===\"same-origin\"&&console.error(IWe)}catch(e){console.error(\"Error checking Cross-Origin-Opener-Policy:\",e.message),t=\"error\"}}}},{checkCrossOriginOpenerPolicy:pU,getCrossOriginOpenerPolicy:w2e}=OWe()});function S2e(t){let e=(window.innerWidth-x2e)/2+window.screenX,n=(window.innerHeight-E2e)/2+window.screenY;NWe(t);function r(){let i=`wallet_${crypto.randomUUID()}`,a=window.open(t,i,`width=${x2e}, height=${E2e}, left=${e}, top=${n}`);return a?.focus(),a||null}let o=r();if(!o){let i=LWe();return new Promise((a,c)=>{i.presentItem({autoExpand:!0,message:MWe,menuItems:[Object.assign(Object.assign({},PWe),{onClick:()=>{o=r(),o?a(o):c(sr.rpc.internal(\"Popup window was blocked\")),i.clear()}})]})})}return Promise.resolve(o)}function k2e(t){t&&!t.closed&&t.close()}function NWe(t){let e={sdkName:$F,sdkVersion:om,origin:window.location.origin,coop:w2e()};for(let[n,r]of Object.entries(e))t.searchParams.append(n,r.toString())}function LWe(){if(!gU){let t=document.createElement(\"div\");t.className=\"-cbwsdk-css-reset\",document.body.appendChild(t),gU=new XC,gU.attach(t)}return gU}var x2e,E2e,PWe,MWe,gU,_2e=ce(()=>{p();F6();mU();Cv();dU();DJ();x2e=420,E2e=540,PWe={isRed:!1,info:\"Retry\",svgWidth:\"10\",svgHeight:\"11\",path:BJ,defaultFillRule:\"evenodd\",defaultClipRule:\"evenodd\"},MWe=\"Popup was blocked. Try again.\",gU=null});var yU,C2e=ce(()=>{p();F6();sI();Cv();_2e();yU=class{constructor({url:e=i2e,metadata:n,preference:r}){this.popup=null,this.listeners=new Map,this.postMessage=async o=>{(await this.waitForPopupLoaded()).postMessage(o,this.url.origin)},this.postRequestAndWaitForResponse=async o=>{let i=this.onMessage(({requestId:a})=>a===o.id);return this.postMessage(o),await i},this.onMessage=async o=>new Promise((i,a)=>{let c=u=>{if(u.origin!==this.url.origin)return;let d=u.data;o(d)&&(i(d),window.removeEventListener(\"message\",c),this.listeners.delete(c))};window.addEventListener(\"message\",c),this.listeners.set(c,{reject:a})}),this.disconnect=()=>{k2e(this.popup),this.popup=null,this.listeners.forEach(({reject:o},i)=>{o(sr.provider.userRejectedRequest(\"Request rejected\")),window.removeEventListener(\"message\",i)}),this.listeners.clear()},this.waitForPopupLoaded=async()=>this.popup&&!this.popup.closed?(this.popup.focus(),this.popup):(this.popup=await S2e(this.url),this.onMessage(({event:o})=>o===\"PopupUnload\").then(this.disconnect).catch(()=>{}),this.onMessage(({event:o})=>o===\"PopupLoaded\").then(o=>{this.postMessage({requestId:o.id,data:{version:om,metadata:this.metadata,preference:this.preference,location:window.location.toString()}})}).then(()=>{if(!this.popup)throw sr.rpc.internal();return this.popup})),this.url=new URL(e),this.metadata=n,this.preference=r}}});function A2e(t){let e=U1e(BWe(t),{shouldIncludeStack:!0}),n=new URL(\"https://docs.cloud.coinbase.com/wallet-sdk/docs/errors\");return n.searchParams.set(\"version\",om),n.searchParams.set(\"code\",e.code.toString()),n.searchParams.set(\"message\",e.message),Object.assign(Object.assign({},e),{docUrl:n.href})}function BWe(t){var e;if(typeof t==\"string\")return{message:t,code:Yi.rpc.internal};if(za(t)){let n=t.errorMessage,r=(e=t.errorCode)!==null&&e!==void 0?e:n.match(/(denied|rejected)/i)?Yi.provider.userRejectedRequest:void 0;return Object.assign(Object.assign({},t),{message:n,code:r,data:{method:t.method}})}return t}var T2e=ce(()=>{p();F6();eU();W9();iJ()});var bU,R2e=ce(()=>{p();DC();bU=class extends kv.default{}});var DWe,e8,UJ=ce(()=>{p();v2e();C2e();sI();W9();Cv();T2e();R2e();_v();$y();WC();DWe=function(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,r=Object.getOwnPropertySymbols(t);o<r.length;o++)e.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(n[r[o]]=t[r[o]]);return n},e8=class extends bU{constructor(e){var{metadata:n}=e,r=e.preference,{keysUrl:o}=r,i=DWe(r,[\"keysUrl\"]);super(),this.signer=null,this.isCoinbaseWallet=!0,this.metadata=n,this.preference=i,this.communicator=new yU({url:o,metadata:n,preference:i});let a=m2e();a&&(this.signer=this.initSigner(a))}async request(e){try{if(tbe(e),!this.signer)switch(e.method){case\"eth_requestAccounts\":{let n=await this.requestSignerSelection(e),r=this.initSigner(n);await r.handshake(e),this.signer=r,g2e(n);break}case\"wallet_sendCalls\":{let n=this.initSigner(\"scw\");await n.handshake({method:\"handshake\"});let r=await n.request(e);return await n.cleanup(),r}case\"wallet_getCallsStatus\":return qC(e,s2e);case\"net_version\":return 1;case\"eth_chainId\":return rg(1);default:throw sr.provider.unauthorized(\"Must call \\'eth_requestAccounts\\' before other methods\")}return await this.signer.request(e)}catch(n){let{code:r}=n;return r===Yi.provider.unauthorized&&this.disconnect(),Promise.reject(A2e(n))}}async enable(){return console.warn(\\'.enable() has been deprecated. Please use .request({ method: \"eth_requestAccounts\" }) instead.\\'),await this.request({method:\"eth_requestAccounts\"})}async disconnect(){var e;await((e=this.signer)===null||e===void 0?void 0:e.cleanup()),this.signer=null,Bc.clearAll(),this.emit(\"disconnect\",sr.provider.disconnected(\"User initiated disconnection\"))}requestSignerSelection(e){return y2e({communicator:this.communicator,preference:this.preference,metadata:this.metadata,handshakeRequest:e,callback:this.emit.bind(this)})}initSigner(e){return b2e({signerType:e,metadata:this.metadata,communicator:this.communicator,callback:this.emit.bind(this)})}}});function vU(t){if(t){if(![\"all\",\"smartWalletOnly\",\"eoaOnly\"].includes(t.options))throw new Error(`Invalid options: ${t.options}`);if(t.attribution&&t.attribution.auto!==void 0&&t.attribution.dataSuffix!==void 0)throw new Error(\"Attribution cannot contain both auto and dataSuffix properties\")}}var jJ=ce(()=>{p()});var t8,zJ=ce(()=>{p();L1e();UJ();F6();_v();$y();mU();WC();jJ();t8=class{constructor(e){this.metadata={appName:e.appName||\"Dapp\",appLogoUrl:e.appLogoUrl||G1e(),appChainIds:e.appChainIds||[]},this.storeLatestVersion(),pU()}makeWeb3Provider(e={options:\"all\"}){var n;vU(e);let r={metadata:this.metadata,preference:e};return(n=KF(r))!==null&&n!==void 0?n:new e8(r)}getCoinbaseWalletLogo(e,n=240){return N1e(e,n)}storeLatestVersion(){new Bc(\"CBWSDK\").setItem(\"VERSION\",om)}}});function I2e(t){var e;let n={metadata:t.metadata,preference:t.preference};return(e=KF(n))!==null&&e!==void 0?e:new e8(n)}var O2e=ce(()=>{p();UJ();WC()});function P2e(t){var e;new Bc(\"CBWSDK\").setItem(\"VERSION\",om),pU();let r={metadata:{appName:t.appName||\"Dapp\",appLogoUrl:t.appLogoUrl||\"\",appChainIds:t.appChainIds||[]},preference:Object.assign(FWe,(e=t.preference)!==null&&e!==void 0?e:{})};vU(r.preference);let o=null;return{getProvider:()=>(o||(o=I2e(r)),o)}}var FWe,M2e=ce(()=>{p();O2e();F6();_v();mU();jJ();FWe={options:\"all\"}});var N2e={};ld(N2e,{CoinbaseWalletSDK:()=>t8,createCoinbaseWalletSDK:()=>P2e,default:()=>UWe});var UWe,L2e=ce(()=>{p();zJ();zJ();M2e();UWe=t8});var B2e=be(wU=>{\"use strict\";p();Object.defineProperty(wU,\"__esModule\",{value:!0});wU.walletLogo=void 0;var jWe=(t,e)=>{let n;switch(t){case\"standard\":return n=e,`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 1024 1024\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E %3Crect width=\\'1024\\' height=\\'1024\\' fill=\\'%230052FF\\'/%3E %3Cpath fill-rule=\\'evenodd\\' clip-rule=\\'evenodd\\' d=\\'M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z\\' fill=\\'white\\'/%3E %3C/svg%3E `;case\"circle\":return n=e,`data:image/svg+xml,%3Csvg xmlns=\\'http://www.w3.org/2000/svg\\' width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 999.81 999.81\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3Cpath class=\\'cls-2\\' d=\\'M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3Cpath class=\\'cls-3\\' d=\\'M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z\\' transform=\\'translate(-183.1 115.9)\\'/%3E%3C/svg%3E`;case\"text\":return n=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 528.15 53.64\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class=\\'cls-1\\' d=\\'M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z\\'/%3E%3C/svg%3E`;case\"textWithLogo\":return n=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 308.44 77.61\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z\\'/%3E%3C/svg%3E`;case\"textLight\":return n=(.1*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 528.15 53.64\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class=\\'cls-1\\' d=\\'M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z\\'/%3E%3C/svg%3E`;case\"textWithLogoLight\":return n=(.25*e).toFixed(2),`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' xmlns=\\'http://www.w3.org/2000/svg\\' viewBox=\\'0 0 308.44 77.61\\'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class=\\'cls-1\\' d=\\'M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z\\'/%3E%3C/svg%3E`;default:return n=e,`data:image/svg+xml,%3Csvg width=\\'${e}\\' height=\\'${n}\\' viewBox=\\'0 0 1024 1024\\' fill=\\'none\\' xmlns=\\'http://www.w3.org/2000/svg\\'%3E %3Crect width=\\'1024\\' height=\\'1024\\' fill=\\'%230052FF\\'/%3E %3Cpath fill-rule=\\'evenodd\\' clip-rule=\\'evenodd\\' d=\\'M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z\\' fill=\\'white\\'/%3E %3C/svg%3E `}};wU.walletLogo=jWe});var D2e=be(xU=>{\"use strict\";p();Object.defineProperty(xU,\"__esModule\",{value:!0});xU.LINK_API_URL=void 0;xU.LINK_API_URL=\"https://www.walletlink.org\"});var F2e=be(()=>{p()});var q6=be((U2e,HJ)=>{p();(function(t,e){\"use strict\";function n(F,_){if(!F)throw new Error(_||\"Assertion failed\")}function r(F,_){F.super_=_;var O=function(){};O.prototype=_.prototype,F.prototype=new O,F.prototype.constructor=F}function o(F,_,O){if(o.isBN(F))return F;this.negative=0,this.words=null,this.length=0,this.red=null,F!==null&&((_===\"le\"||_===\"be\")&&(O=_,_=10),this._init(F||0,_||10,O||\"be\"))}typeof t==\"object\"?t.exports=o:e.BN=o,o.BN=o,o.wordSize=26;var i;try{typeof window<\"u\"&&typeof window.Buffer<\"u\"?i=window.Buffer:i=F2e().Buffer}catch{}o.isBN=function(_){return _ instanceof o?!0:_!==null&&typeof _==\"object\"&&_.constructor.wordSize===o.wordSize&&Array.isArray(_.words)},o.max=function(_,O){return _.cmp(O)>0?_:O},o.min=function(_,O){return _.cmp(O)<0?_:O},o.prototype._init=function(_,O,z){if(typeof _==\"number\")return this._initNumber(_,O,z);if(typeof _==\"object\")return this._initArray(_,O,z);O===\"hex\"&&(O=16),n(O===(O|0)&&O>=2&&O<=36),_=_.toString().replace(/\\\\s+/g,\"\");var N=0;_[0]===\"-\"&&(N++,this.negative=1),N<_.length&&(O===16?this._parseHex(_,N,z):(this._parseBase(_,O,N),z===\"le\"&&this._initArray(this.toArray(),O,z)))},o.prototype._initNumber=function(_,O,z){_<0&&(this.negative=1,_=-_),_<67108864?(this.words=[_&67108863],this.length=1):_<4503599627370496?(this.words=[_&67108863,_/67108864&67108863],this.length=2):(n(_<9007199254740992),this.words=[_&67108863,_/67108864&67108863,1],this.length=3),z===\"le\"&&this._initArray(this.toArray(),O,z)},o.prototype._initArray=function(_,O,z){if(n(typeof _.length==\"number\"),_.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(_.length/3),this.words=new Array(this.length);for(var N=0;N<this.length;N++)this.words[N]=0;var B,j,q=0;if(z===\"be\")for(N=_.length-1,B=0;N>=0;N-=3)j=_[N]|_[N-1]<<8|_[N-2]<<16,this.words[B]|=j<<q&67108863,this.words[B+1]=j>>>26-q&67108863,q+=24,q>=26&&(q-=26,B++);else if(z===\"le\")for(N=0,B=0;N<_.length;N+=3)j=_[N]|_[N+1]<<8|_[N+2]<<16,this.words[B]|=j<<q&67108863,this.words[B+1]=j>>>26-q&67108863,q+=24,q>=26&&(q-=26,B++);return this._strip()};function a(F,_){var O=F.charCodeAt(_);if(O>=48&&O<=57)return O-48;if(O>=65&&O<=70)return O-55;if(O>=97&&O<=102)return O-87;n(!1,\"Invalid character in \"+F)}function c(F,_,O){var z=a(F,O);return O-1>=_&&(z|=a(F,O-1)<<4),z}o.prototype._parseHex=function(_,O,z){this.length=Math.ceil((_.length-O)/6),this.words=new Array(this.length);for(var N=0;N<this.length;N++)this.words[N]=0;var B=0,j=0,q;if(z===\"be\")for(N=_.length-1;N>=O;N-=2)q=c(_,O,N)<<B,this.words[j]|=q&67108863,B>=18?(B-=18,j+=1,this.words[j]|=q>>>26):B+=8;else{var H=_.length-O;for(N=H%2===0?O+1:O;N<_.length;N+=2)q=c(_,O,N)<<B,this.words[j]|=q&67108863,B>=18?(B-=18,j+=1,this.words[j]|=q>>>26):B+=8}this._strip()};function u(F,_,O,z){for(var N=0,B=0,j=Math.min(F.length,O),q=_;q<j;q++){var H=F.charCodeAt(q)-48;N*=z,H>=49?B=H-49+10:H>=17?B=H-17+10:B=H,n(H>=0&&B<z,\"Invalid character\"),N+=B}return N}o.prototype._parseBase=function(_,O,z){this.words=[0],this.length=1;for(var N=0,B=1;B<=67108863;B*=O)N++;N--,B=B/O|0;for(var j=_.length-z,q=j%N,H=Math.min(j,j-q)+z,I=0,U=z;U<H;U+=N)I=u(_,U,U+N,O),this.imuln(B),this.words[0]+I<67108864?this.words[0]+=I:this._iaddn(I);if(q!==0){var X=1;for(I=u(_,U,_.length,O),U=0;U<q;U++)X*=O;this.imuln(X),this.words[0]+I<67108864?this.words[0]+=I:this._iaddn(I)}this._strip()},o.prototype.copy=function(_){_.words=new Array(this.length);for(var O=0;O<this.length;O++)_.words[O]=this.words[O];_.length=this.length,_.negative=this.negative,_.red=this.red};function d(F,_){F.words=_.words,F.length=_.length,F.negative=_.negative,F.red=_.red}if(o.prototype._move=function(_){d(_,this)},o.prototype.clone=function(){var _=new o(null);return this.copy(_),_},o.prototype._expand=function(_){for(;this.length<_;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},o.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<\"u\"&&typeof Symbol.for==\"function\")try{o.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=h}catch{o.prototype.inspect=h}else o.prototype.inspect=h;function h(){return(this.red?\"<BN-R: \":\"<BN: \")+this.toString(16)+\">\"}var m=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],g=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],b=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(_,O){_=_||10,O=O|0||1;var z;if(_===16||_===\"hex\"){z=\"\";for(var N=0,B=0,j=0;j<this.length;j++){var q=this.words[j],H=((q<<N|B)&16777215).toString(16);B=q>>>24-N&16777215,N+=2,N>=26&&(N-=26,j--),B!==0||j!==this.length-1?z=m[6-H.length]+H+z:z=H+z}for(B!==0&&(z=B.toString(16)+z);z.length%O!==0;)z=\"0\"+z;return this.negative!==0&&(z=\"-\"+z),z}if(_===(_|0)&&_>=2&&_<=36){var I=g[_],U=b[_];z=\"\";var X=this.clone();for(X.negative=0;!X.isZero();){var ee=X.modrn(U).toString(_);X=X.idivn(U),X.isZero()?z=ee+z:z=m[I-ee.length]+ee+z}for(this.isZero()&&(z=\"0\"+z);z.length%O!==0;)z=\"0\"+z;return this.negative!==0&&(z=\"-\"+z),z}n(!1,\"Base should be between 2 and 36\")},o.prototype.toNumber=function(){var _=this.words[0];return this.length===2?_+=this.words[1]*67108864:this.length===3&&this.words[2]===1?_+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,\"Number can only safely store up to 53 bits\"),this.negative!==0?-_:_},o.prototype.toJSON=function(){return this.toString(16,2)},i&&(o.prototype.toBuffer=function(_,O){return this.toArrayLike(i,_,O)}),o.prototype.toArray=function(_,O){return this.toArrayLike(Array,_,O)};var E=function(_,O){return _.allocUnsafe?_.allocUnsafe(O):new _(O)};o.prototype.toArrayLike=function(_,O,z){this._strip();var N=this.byteLength(),B=z||Math.max(1,N);n(N<=B,\"byte array longer than desired length\"),n(B>0,\"Requested array length <= 0\");var j=E(_,B),q=O===\"le\"?\"LE\":\"BE\";return this[\"_toArrayLike\"+q](j,N),j},o.prototype._toArrayLikeLE=function(_,O){for(var z=0,N=0,B=0,j=0;B<this.length;B++){var q=this.words[B]<<j|N;_[z++]=q&255,z<_.length&&(_[z++]=q>>8&255),z<_.length&&(_[z++]=q>>16&255),j===6?(z<_.length&&(_[z++]=q>>24&255),N=0,j=0):(N=q>>>24,j+=2)}if(z<_.length)for(_[z++]=N;z<_.length;)_[z++]=0},o.prototype._toArrayLikeBE=function(_,O){for(var z=_.length-1,N=0,B=0,j=0;B<this.length;B++){var q=this.words[B]<<j|N;_[z--]=q&255,z>=0&&(_[z--]=q>>8&255),z>=0&&(_[z--]=q>>16&255),j===6?(z>=0&&(_[z--]=q>>24&255),N=0,j=0):(N=q>>>24,j+=2)}if(z>=0)for(_[z--]=N;z>=0;)_[z--]=0},Math.clz32?o.prototype._countBits=function(_){return 32-Math.clz32(_)}:o.prototype._countBits=function(_){var O=_,z=0;return O>=4096&&(z+=13,O>>>=13),O>=64&&(z+=7,O>>>=7),O>=8&&(z+=4,O>>>=4),O>=2&&(z+=2,O>>>=2),z+O},o.prototype._zeroBits=function(_){if(_===0)return 26;var O=_,z=0;return(O&8191)===0&&(z+=13,O>>>=13),(O&127)===0&&(z+=7,O>>>=7),(O&15)===0&&(z+=4,O>>>=4),(O&3)===0&&(z+=2,O>>>=2),(O&1)===0&&z++,z},o.prototype.bitLength=function(){var _=this.words[this.length-1],O=this._countBits(_);return(this.length-1)*26+O};function C(F){for(var _=new Array(F.bitLength()),O=0;O<_.length;O++){var z=O/26|0,N=O%26;_[O]=F.words[z]>>>N&1}return _}o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var _=0,O=0;O<this.length;O++){var z=this._zeroBits(this.words[O]);if(_+=z,z!==26)break}return _},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(_){return this.negative!==0?this.abs().inotn(_).iaddn(1):this.clone()},o.prototype.fromTwos=function(_){return this.testn(_-1)?this.notn(_).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return this.negative!==0},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(_){for(;this.length<_.length;)this.words[this.length++]=0;for(var O=0;O<_.length;O++)this.words[O]=this.words[O]|_.words[O];return this._strip()},o.prototype.ior=function(_){return n((this.negative|_.negative)===0),this.iuor(_)},o.prototype.or=function(_){return this.length>_.length?this.clone().ior(_):_.clone().ior(this)},o.prototype.uor=function(_){return this.length>_.length?this.clone().iuor(_):_.clone().iuor(this)},o.prototype.iuand=function(_){var O;this.length>_.length?O=_:O=this;for(var z=0;z<O.length;z++)this.words[z]=this.words[z]&_.words[z];return this.length=O.length,this._strip()},o.prototype.iand=function(_){return n((this.negative|_.negative)===0),this.iuand(_)},o.prototype.and=function(_){return this.length>_.length?this.clone().iand(_):_.clone().iand(this)},o.prototype.uand=function(_){return this.length>_.length?this.clone().iuand(_):_.clone().iuand(this)},o.prototype.iuxor=function(_){var O,z;this.length>_.length?(O=this,z=_):(O=_,z=this);for(var N=0;N<z.length;N++)this.words[N]=O.words[N]^z.words[N];if(this!==O)for(;N<O.length;N++)this.words[N]=O.words[N];return this.length=O.length,this._strip()},o.prototype.ixor=function(_){return n((this.negative|_.negative)===0),this.iuxor(_)},o.prototype.xor=function(_){return this.length>_.length?this.clone().ixor(_):_.clone().ixor(this)},o.prototype.uxor=function(_){return this.length>_.length?this.clone().iuxor(_):_.clone().iuxor(this)},o.prototype.inotn=function(_){n(typeof _==\"number\"&&_>=0);var O=Math.ceil(_/26)|0,z=_%26;this._expand(O),z>0&&O--;for(var N=0;N<O;N++)this.words[N]=~this.words[N]&67108863;return z>0&&(this.words[N]=~this.words[N]&67108863>>26-z),this._strip()},o.prototype.notn=function(_){return this.clone().inotn(_)},o.prototype.setn=function(_,O){n(typeof _==\"number\"&&_>=0);var z=_/26|0,N=_%26;return this._expand(z+1),O?this.words[z]=this.words[z]|1<<N:this.words[z]=this.words[z]&~(1<<N),this._strip()},o.prototype.iadd=function(_){var O;if(this.negative!==0&&_.negative===0)return this.negative=0,O=this.isub(_),this.negative^=1,this._normSign();if(this.negative===0&&_.negative!==0)return _.negative=0,O=this.isub(_),_.negative=1,O._normSign();var z,N;this.length>_.length?(z=this,N=_):(z=_,N=this);for(var B=0,j=0;j<N.length;j++)O=(z.words[j]|0)+(N.words[j]|0)+B,this.words[j]=O&67108863,B=O>>>26;for(;B!==0&&j<z.length;j++)O=(z.words[j]|0)+B,this.words[j]=O&67108863,B=O>>>26;if(this.length=z.length,B!==0)this.words[this.length]=B,this.length++;else if(z!==this)for(;j<z.length;j++)this.words[j]=z.words[j];return this},o.prototype.add=function(_){var O;return _.negative!==0&&this.negative===0?(_.negative=0,O=this.sub(_),_.negative^=1,O):_.negative===0&&this.negative!==0?(this.negative=0,O=_.sub(this),this.negative=1,O):this.length>_.length?this.clone().iadd(_):_.clone().iadd(this)},o.prototype.isub=function(_){if(_.negative!==0){_.negative=0;var O=this.iadd(_);return _.negative=1,O._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(_),this.negative=1,this._normSign();var z=this.cmp(_);if(z===0)return this.negative=0,this.length=1,this.words[0]=0,this;var N,B;z>0?(N=this,B=_):(N=_,B=this);for(var j=0,q=0;q<B.length;q++)O=(N.words[q]|0)-(B.words[q]|0)+j,j=O>>26,this.words[q]=O&67108863;for(;j!==0&&q<N.length;q++)O=(N.words[q]|0)+j,j=O>>26,this.words[q]=O&67108863;if(j===0&&q<N.length&&N!==this)for(;q<N.length;q++)this.words[q]=N.words[q];return this.length=Math.max(this.length,q),N!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(_){return this.clone().isub(_)};function T(F,_,O){O.negative=_.negative^F.negative;var z=F.length+_.length|0;O.length=z,z=z-1|0;var N=F.words[0]|0,B=_.words[0]|0,j=N*B,q=j&67108863,H=j/67108864|0;O.words[0]=q;for(var I=1;I<z;I++){for(var U=H>>>26,X=H&67108863,ee=Math.min(I,_.length-1),se=Math.max(0,I-F.length+1);se<=ee;se++){var pe=I-se|0;N=F.words[pe]|0,B=_.words[se]|0,j=N*B+X,U+=j/67108864|0,X=j&67108863}O.words[I]=X|0,H=U|0}return H!==0?O.words[I]=H|0:O.length--,O._strip()}var R=function(_,O,z){var N=_.words,B=O.words,j=z.words,q=0,H,I,U,X=N[0]|0,ee=X&8191,se=X>>>13,pe=N[1]|0,ye=pe&8191,xe=pe>>>13,_e=N[2]|0,Me=_e&8191,qe=_e>>>13,wt=N[3]|0,Ge=wt&8191,ht=wt>>>13,Ct=N[4]|0,dt=Ct&8191,Ze=Ct>>>13,rn=N[5]|0,zt=rn&8191,Bt=rn>>>13,Mt=N[6]|0,qt=Mt&8191,Wt=Mt>>>13,zn=N[7]|0,Mn=zn&8191,br=zn>>>13,Zs=N[8]|0,Pr=Zs&8191,vr=Zs>>>13,hi=N[9]|0,er=hi&8191,wr=hi>>>13,Ri=B[0]|0,le=Ri&8191,Te=Ri>>>13,xt=B[1]|0,tt=xt&8191,It=xt>>>13,hn=B[2]|0,Dt=hn&8191,sn=hn>>>13,bn=B[3]|0,Fn=bn&8191,en=bn>>>13,ni=B[4]|0,jr=ni&8191,Eo=ni>>>13,zu=B[5]|0,tr=zu&8191,dr=zu>>>13,Bl=B[6]|0,vn=Bl&8191,zr=Bl>>>13,Dd=B[7]|0,Mr=Dd&8191,So=Dd>>>13,jt=B[8]|0,xr=jt&8191,En=jt>>>13,Hu=B[9]|0,Zr=Hu&8191,Cr=Hu>>>13;z.negative=_.negative^O.negative,z.length=19,H=Math.imul(ee,le),I=Math.imul(ee,Te),I=I+Math.imul(se,le)|0,U=Math.imul(se,Te);var Ys=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Ys>>>26)|0,Ys&=67108863,H=Math.imul(ye,le),I=Math.imul(ye,Te),I=I+Math.imul(xe,le)|0,U=Math.imul(xe,Te),H=H+Math.imul(ee,tt)|0,I=I+Math.imul(ee,It)|0,I=I+Math.imul(se,tt)|0,U=U+Math.imul(se,It)|0;var Zc=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Zc>>>26)|0,Zc&=67108863,H=Math.imul(Me,le),I=Math.imul(Me,Te),I=I+Math.imul(qe,le)|0,U=Math.imul(qe,Te),H=H+Math.imul(ye,tt)|0,I=I+Math.imul(ye,It)|0,I=I+Math.imul(xe,tt)|0,U=U+Math.imul(xe,It)|0,H=H+Math.imul(ee,Dt)|0,I=I+Math.imul(ee,sn)|0,I=I+Math.imul(se,Dt)|0,U=U+Math.imul(se,sn)|0;var Zo=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Zo>>>26)|0,Zo&=67108863,H=Math.imul(Ge,le),I=Math.imul(Ge,Te),I=I+Math.imul(ht,le)|0,U=Math.imul(ht,Te),H=H+Math.imul(Me,tt)|0,I=I+Math.imul(Me,It)|0,I=I+Math.imul(qe,tt)|0,U=U+Math.imul(qe,It)|0,H=H+Math.imul(ye,Dt)|0,I=I+Math.imul(ye,sn)|0,I=I+Math.imul(xe,Dt)|0,U=U+Math.imul(xe,sn)|0,H=H+Math.imul(ee,Fn)|0,I=I+Math.imul(ee,en)|0,I=I+Math.imul(se,Fn)|0,U=U+Math.imul(se,en)|0;var qu=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(qu>>>26)|0,qu&=67108863,H=Math.imul(dt,le),I=Math.imul(dt,Te),I=I+Math.imul(Ze,le)|0,U=Math.imul(Ze,Te),H=H+Math.imul(Ge,tt)|0,I=I+Math.imul(Ge,It)|0,I=I+Math.imul(ht,tt)|0,U=U+Math.imul(ht,It)|0,H=H+Math.imul(Me,Dt)|0,I=I+Math.imul(Me,sn)|0,I=I+Math.imul(qe,Dt)|0,U=U+Math.imul(qe,sn)|0,H=H+Math.imul(ye,Fn)|0,I=I+Math.imul(ye,en)|0,I=I+Math.imul(xe,Fn)|0,U=U+Math.imul(xe,en)|0,H=H+Math.imul(ee,jr)|0,I=I+Math.imul(ee,Eo)|0,I=I+Math.imul(se,jr)|0,U=U+Math.imul(se,Eo)|0;var ts=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(ts>>>26)|0,ts&=67108863,H=Math.imul(zt,le),I=Math.imul(zt,Te),I=I+Math.imul(Bt,le)|0,U=Math.imul(Bt,Te),H=H+Math.imul(dt,tt)|0,I=I+Math.imul(dt,It)|0,I=I+Math.imul(Ze,tt)|0,U=U+Math.imul(Ze,It)|0,H=H+Math.imul(Ge,Dt)|0,I=I+Math.imul(Ge,sn)|0,I=I+Math.imul(ht,Dt)|0,U=U+Math.imul(ht,sn)|0,H=H+Math.imul(Me,Fn)|0,I=I+Math.imul(Me,en)|0,I=I+Math.imul(qe,Fn)|0,U=U+Math.imul(qe,en)|0,H=H+Math.imul(ye,jr)|0,I=I+Math.imul(ye,Eo)|0,I=I+Math.imul(xe,jr)|0,U=U+Math.imul(xe,Eo)|0,H=H+Math.imul(ee,tr)|0,I=I+Math.imul(ee,dr)|0,I=I+Math.imul(se,tr)|0,U=U+Math.imul(se,dr)|0;var Wu=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Wu>>>26)|0,Wu&=67108863,H=Math.imul(qt,le),I=Math.imul(qt,Te),I=I+Math.imul(Wt,le)|0,U=Math.imul(Wt,Te),H=H+Math.imul(zt,tt)|0,I=I+Math.imul(zt,It)|0,I=I+Math.imul(Bt,tt)|0,U=U+Math.imul(Bt,It)|0,H=H+Math.imul(dt,Dt)|0,I=I+Math.imul(dt,sn)|0,I=I+Math.imul(Ze,Dt)|0,U=U+Math.imul(Ze,sn)|0,H=H+Math.imul(Ge,Fn)|0,I=I+Math.imul(Ge,en)|0,I=I+Math.imul(ht,Fn)|0,U=U+Math.imul(ht,en)|0,H=H+Math.imul(Me,jr)|0,I=I+Math.imul(Me,Eo)|0,I=I+Math.imul(qe,jr)|0,U=U+Math.imul(qe,Eo)|0,H=H+Math.imul(ye,tr)|0,I=I+Math.imul(ye,dr)|0,I=I+Math.imul(xe,tr)|0,U=U+Math.imul(xe,dr)|0,H=H+Math.imul(ee,vn)|0,I=I+Math.imul(ee,zr)|0,I=I+Math.imul(se,vn)|0,U=U+Math.imul(se,zr)|0;var Yc=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Yc>>>26)|0,Yc&=67108863,H=Math.imul(Mn,le),I=Math.imul(Mn,Te),I=I+Math.imul(br,le)|0,U=Math.imul(br,Te),H=H+Math.imul(qt,tt)|0,I=I+Math.imul(qt,It)|0,I=I+Math.imul(Wt,tt)|0,U=U+Math.imul(Wt,It)|0,H=H+Math.imul(zt,Dt)|0,I=I+Math.imul(zt,sn)|0,I=I+Math.imul(Bt,Dt)|0,U=U+Math.imul(Bt,sn)|0,H=H+Math.imul(dt,Fn)|0,I=I+Math.imul(dt,en)|0,I=I+Math.imul(Ze,Fn)|0,U=U+Math.imul(Ze,en)|0,H=H+Math.imul(Ge,jr)|0,I=I+Math.imul(Ge,Eo)|0,I=I+Math.imul(ht,jr)|0,U=U+Math.imul(ht,Eo)|0,H=H+Math.imul(Me,tr)|0,I=I+Math.imul(Me,dr)|0,I=I+Math.imul(qe,tr)|0,U=U+Math.imul(qe,dr)|0,H=H+Math.imul(ye,vn)|0,I=I+Math.imul(ye,zr)|0,I=I+Math.imul(xe,vn)|0,U=U+Math.imul(xe,zr)|0,H=H+Math.imul(ee,Mr)|0,I=I+Math.imul(ee,So)|0,I=I+Math.imul(se,Mr)|0,U=U+Math.imul(se,So)|0;var Ya=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Ya>>>26)|0,Ya&=67108863,H=Math.imul(Pr,le),I=Math.imul(Pr,Te),I=I+Math.imul(vr,le)|0,U=Math.imul(vr,Te),H=H+Math.imul(Mn,tt)|0,I=I+Math.imul(Mn,It)|0,I=I+Math.imul(br,tt)|0,U=U+Math.imul(br,It)|0,H=H+Math.imul(qt,Dt)|0,I=I+Math.imul(qt,sn)|0,I=I+Math.imul(Wt,Dt)|0,U=U+Math.imul(Wt,sn)|0,H=H+Math.imul(zt,Fn)|0,I=I+Math.imul(zt,en)|0,I=I+Math.imul(Bt,Fn)|0,U=U+Math.imul(Bt,en)|0,H=H+Math.imul(dt,jr)|0,I=I+Math.imul(dt,Eo)|0,I=I+Math.imul(Ze,jr)|0,U=U+Math.imul(Ze,Eo)|0,H=H+Math.imul(Ge,tr)|0,I=I+Math.imul(Ge,dr)|0,I=I+Math.imul(ht,tr)|0,U=U+Math.imul(ht,dr)|0,H=H+Math.imul(Me,vn)|0,I=I+Math.imul(Me,zr)|0,I=I+Math.imul(qe,vn)|0,U=U+Math.imul(qe,zr)|0,H=H+Math.imul(ye,Mr)|0,I=I+Math.imul(ye,So)|0,I=I+Math.imul(xe,Mr)|0,U=U+Math.imul(xe,So)|0,H=H+Math.imul(ee,xr)|0,I=I+Math.imul(ee,En)|0,I=I+Math.imul(se,xr)|0,U=U+Math.imul(se,En)|0;var Qa=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Qa>>>26)|0,Qa&=67108863,H=Math.imul(er,le),I=Math.imul(er,Te),I=I+Math.imul(wr,le)|0,U=Math.imul(wr,Te),H=H+Math.imul(Pr,tt)|0,I=I+Math.imul(Pr,It)|0,I=I+Math.imul(vr,tt)|0,U=U+Math.imul(vr,It)|0,H=H+Math.imul(Mn,Dt)|0,I=I+Math.imul(Mn,sn)|0,I=I+Math.imul(br,Dt)|0,U=U+Math.imul(br,sn)|0,H=H+Math.imul(qt,Fn)|0,I=I+Math.imul(qt,en)|0,I=I+Math.imul(Wt,Fn)|0,U=U+Math.imul(Wt,en)|0,H=H+Math.imul(zt,jr)|0,I=I+Math.imul(zt,Eo)|0,I=I+Math.imul(Bt,jr)|0,U=U+Math.imul(Bt,Eo)|0,H=H+Math.imul(dt,tr)|0,I=I+Math.imul(dt,dr)|0,I=I+Math.imul(Ze,tr)|0,U=U+Math.imul(Ze,dr)|0,H=H+Math.imul(Ge,vn)|0,I=I+Math.imul(Ge,zr)|0,I=I+Math.imul(ht,vn)|0,U=U+Math.imul(ht,zr)|0,H=H+Math.imul(Me,Mr)|0,I=I+Math.imul(Me,So)|0,I=I+Math.imul(qe,Mr)|0,U=U+Math.imul(qe,So)|0,H=H+Math.imul(ye,xr)|0,I=I+Math.imul(ye,En)|0,I=I+Math.imul(xe,xr)|0,U=U+Math.imul(xe,En)|0,H=H+Math.imul(ee,Zr)|0,I=I+Math.imul(ee,Cr)|0,I=I+Math.imul(se,Zr)|0,U=U+Math.imul(se,Cr)|0;var ya=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(ya>>>26)|0,ya&=67108863,H=Math.imul(er,tt),I=Math.imul(er,It),I=I+Math.imul(wr,tt)|0,U=Math.imul(wr,It),H=H+Math.imul(Pr,Dt)|0,I=I+Math.imul(Pr,sn)|0,I=I+Math.imul(vr,Dt)|0,U=U+Math.imul(vr,sn)|0,H=H+Math.imul(Mn,Fn)|0,I=I+Math.imul(Mn,en)|0,I=I+Math.imul(br,Fn)|0,U=U+Math.imul(br,en)|0,H=H+Math.imul(qt,jr)|0,I=I+Math.imul(qt,Eo)|0,I=I+Math.imul(Wt,jr)|0,U=U+Math.imul(Wt,Eo)|0,H=H+Math.imul(zt,tr)|0,I=I+Math.imul(zt,dr)|0,I=I+Math.imul(Bt,tr)|0,U=U+Math.imul(Bt,dr)|0,H=H+Math.imul(dt,vn)|0,I=I+Math.imul(dt,zr)|0,I=I+Math.imul(Ze,vn)|0,U=U+Math.imul(Ze,zr)|0,H=H+Math.imul(Ge,Mr)|0,I=I+Math.imul(Ge,So)|0,I=I+Math.imul(ht,Mr)|0,U=U+Math.imul(ht,So)|0,H=H+Math.imul(Me,xr)|0,I=I+Math.imul(Me,En)|0,I=I+Math.imul(qe,xr)|0,U=U+Math.imul(qe,En)|0,H=H+Math.imul(ye,Zr)|0,I=I+Math.imul(ye,Cr)|0,I=I+Math.imul(xe,Zr)|0,U=U+Math.imul(xe,Cr)|0;var Dl=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Dl>>>26)|0,Dl&=67108863,H=Math.imul(er,Dt),I=Math.imul(er,sn),I=I+Math.imul(wr,Dt)|0,U=Math.imul(wr,sn),H=H+Math.imul(Pr,Fn)|0,I=I+Math.imul(Pr,en)|0,I=I+Math.imul(vr,Fn)|0,U=U+Math.imul(vr,en)|0,H=H+Math.imul(Mn,jr)|0,I=I+Math.imul(Mn,Eo)|0,I=I+Math.imul(br,jr)|0,U=U+Math.imul(br,Eo)|0,H=H+Math.imul(qt,tr)|0,I=I+Math.imul(qt,dr)|0,I=I+Math.imul(Wt,tr)|0,U=U+Math.imul(Wt,dr)|0,H=H+Math.imul(zt,vn)|0,I=I+Math.imul(zt,zr)|0,I=I+Math.imul(Bt,vn)|0,U=U+Math.imul(Bt,zr)|0,H=H+Math.imul(dt,Mr)|0,I=I+Math.imul(dt,So)|0,I=I+Math.imul(Ze,Mr)|0,U=U+Math.imul(Ze,So)|0,H=H+Math.imul(Ge,xr)|0,I=I+Math.imul(Ge,En)|0,I=I+Math.imul(ht,xr)|0,U=U+Math.imul(ht,En)|0,H=H+Math.imul(Me,Zr)|0,I=I+Math.imul(Me,Cr)|0,I=I+Math.imul(qe,Zr)|0,U=U+Math.imul(qe,Cr)|0;var Ja=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Ja>>>26)|0,Ja&=67108863,H=Math.imul(er,Fn),I=Math.imul(er,en),I=I+Math.imul(wr,Fn)|0,U=Math.imul(wr,en),H=H+Math.imul(Pr,jr)|0,I=I+Math.imul(Pr,Eo)|0,I=I+Math.imul(vr,jr)|0,U=U+Math.imul(vr,Eo)|0,H=H+Math.imul(Mn,tr)|0,I=I+Math.imul(Mn,dr)|0,I=I+Math.imul(br,tr)|0,U=U+Math.imul(br,dr)|0,H=H+Math.imul(qt,vn)|0,I=I+Math.imul(qt,zr)|0,I=I+Math.imul(Wt,vn)|0,U=U+Math.imul(Wt,zr)|0,H=H+Math.imul(zt,Mr)|0,I=I+Math.imul(zt,So)|0,I=I+Math.imul(Bt,Mr)|0,U=U+Math.imul(Bt,So)|0,H=H+Math.imul(dt,xr)|0,I=I+Math.imul(dt,En)|0,I=I+Math.imul(Ze,xr)|0,U=U+Math.imul(Ze,En)|0,H=H+Math.imul(Ge,Zr)|0,I=I+Math.imul(Ge,Cr)|0,I=I+Math.imul(ht,Zr)|0,U=U+Math.imul(ht,Cr)|0;var Fl=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Fl>>>26)|0,Fl&=67108863,H=Math.imul(er,jr),I=Math.imul(er,Eo),I=I+Math.imul(wr,jr)|0,U=Math.imul(wr,Eo),H=H+Math.imul(Pr,tr)|0,I=I+Math.imul(Pr,dr)|0,I=I+Math.imul(vr,tr)|0,U=U+Math.imul(vr,dr)|0,H=H+Math.imul(Mn,vn)|0,I=I+Math.imul(Mn,zr)|0,I=I+Math.imul(br,vn)|0,U=U+Math.imul(br,zr)|0,H=H+Math.imul(qt,Mr)|0,I=I+Math.imul(qt,So)|0,I=I+Math.imul(Wt,Mr)|0,U=U+Math.imul(Wt,So)|0,H=H+Math.imul(zt,xr)|0,I=I+Math.imul(zt,En)|0,I=I+Math.imul(Bt,xr)|0,U=U+Math.imul(Bt,En)|0,H=H+Math.imul(dt,Zr)|0,I=I+Math.imul(dt,Cr)|0,I=I+Math.imul(Ze,Zr)|0,U=U+Math.imul(Ze,Cr)|0;var Fd=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Fd>>>26)|0,Fd&=67108863,H=Math.imul(er,tr),I=Math.imul(er,dr),I=I+Math.imul(wr,tr)|0,U=Math.imul(wr,dr),H=H+Math.imul(Pr,vn)|0,I=I+Math.imul(Pr,zr)|0,I=I+Math.imul(vr,vn)|0,U=U+Math.imul(vr,zr)|0,H=H+Math.imul(Mn,Mr)|0,I=I+Math.imul(Mn,So)|0,I=I+Math.imul(br,Mr)|0,U=U+Math.imul(br,So)|0,H=H+Math.imul(qt,xr)|0,I=I+Math.imul(qt,En)|0,I=I+Math.imul(Wt,xr)|0,U=U+Math.imul(Wt,En)|0,H=H+Math.imul(zt,Zr)|0,I=I+Math.imul(zt,Cr)|0,I=I+Math.imul(Bt,Zr)|0,U=U+Math.imul(Bt,Cr)|0;var Cg=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Cg>>>26)|0,Cg&=67108863,H=Math.imul(er,vn),I=Math.imul(er,zr),I=I+Math.imul(wr,vn)|0,U=Math.imul(wr,zr),H=H+Math.imul(Pr,Mr)|0,I=I+Math.imul(Pr,So)|0,I=I+Math.imul(vr,Mr)|0,U=U+Math.imul(vr,So)|0,H=H+Math.imul(Mn,xr)|0,I=I+Math.imul(Mn,En)|0,I=I+Math.imul(br,xr)|0,U=U+Math.imul(br,En)|0,H=H+Math.imul(qt,Zr)|0,I=I+Math.imul(qt,Cr)|0,I=I+Math.imul(Wt,Zr)|0,U=U+Math.imul(Wt,Cr)|0;var ri=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(ri>>>26)|0,ri&=67108863,H=Math.imul(er,Mr),I=Math.imul(er,So),I=I+Math.imul(wr,Mr)|0,U=Math.imul(wr,So),H=H+Math.imul(Pr,xr)|0,I=I+Math.imul(Pr,En)|0,I=I+Math.imul(vr,xr)|0,U=U+Math.imul(vr,En)|0,H=H+Math.imul(Mn,Zr)|0,I=I+Math.imul(Mn,Cr)|0,I=I+Math.imul(br,Zr)|0,U=U+Math.imul(br,Cr)|0;var bc=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(bc>>>26)|0,bc&=67108863,H=Math.imul(er,xr),I=Math.imul(er,En),I=I+Math.imul(wr,xr)|0,U=Math.imul(wr,En),H=H+Math.imul(Pr,Zr)|0,I=I+Math.imul(Pr,Cr)|0,I=I+Math.imul(vr,Zr)|0,U=U+Math.imul(vr,Cr)|0;var Qc=(q+H|0)+((I&8191)<<13)|0;q=(U+(I>>>13)|0)+(Qc>>>26)|0,Qc&=67108863,H=Math.imul(er,Zr),I=Math.imul(er,Cr),I=I+Math.imul(wr,Zr)|0,U=Math.imul(wr,Cr);var Vh=(q+H|0)+((I&8191)<<13)|0;return q=(U+(I>>>13)|0)+(Vh>>>26)|0,Vh&=67108863,j[0]=Ys,j[1]=Zc,j[2]=Zo,j[3]=qu,j[4]=ts,j[5]=Wu,j[6]=Yc,j[7]=Ya,j[8]=Qa,j[9]=ya,j[10]=Dl,j[11]=Ja,j[12]=Fl,j[13]=Fd,j[14]=Cg,j[15]=ri,j[16]=bc,j[17]=Qc,j[18]=Vh,q!==0&&(j[19]=q,z.length++),z};Math.imul||(R=T);function L(F,_,O){O.negative=_.negative^F.negative,O.length=F.length+_.length;for(var z=0,N=0,B=0;B<O.length-1;B++){var j=N;N=0;for(var q=z&67108863,H=Math.min(B,_.length-1),I=Math.max(0,B-F.length+1);I<=H;I++){var U=B-I,X=F.words[U]|0,ee=_.words[I]|0,se=X*ee,pe=se&67108863;j=j+(se/67108864|0)|0,pe=pe+q|0,q=pe&67108863,j=j+(pe>>>26)|0,N+=j>>>26,j&=67108863}O.words[B]=q,z=j,j=N}return z!==0?O.words[B]=z:O.length--,O._strip()}function D(F,_,O){return L(F,_,O)}o.prototype.mulTo=function(_,O){var z,N=this.length+_.length;return this.length===10&&_.length===10?z=R(this,_,O):N<63?z=T(this,_,O):N<1024?z=L(this,_,O):z=D(this,_,O),z};function G(F,_){this.x=F,this.y=_}G.prototype.makeRBT=function(_){for(var O=new Array(_),z=o.prototype._countBits(_)-1,N=0;N<_;N++)O[N]=this.revBin(N,z,_);return O},G.prototype.revBin=function(_,O,z){if(_===0||_===z-1)return _;for(var N=0,B=0;B<O;B++)N|=(_&1)<<O-B-1,_>>=1;return N},G.prototype.permute=function(_,O,z,N,B,j){for(var q=0;q<j;q++)N[q]=O[_[q]],B[q]=z[_[q]]},G.prototype.transform=function(_,O,z,N,B,j){this.permute(j,_,O,z,N,B);for(var q=1;q<B;q<<=1)for(var H=q<<1,I=Math.cos(2*Math.PI/H),U=Math.sin(2*Math.PI/H),X=0;X<B;X+=H)for(var ee=I,se=U,pe=0;pe<q;pe++){var ye=z[X+pe],xe=N[X+pe],_e=z[X+pe+q],Me=N[X+pe+q],qe=ee*_e-se*Me;Me=ee*Me+se*_e,_e=qe,z[X+pe]=ye+_e,N[X+pe]=xe+Me,z[X+pe+q]=ye-_e,N[X+pe+q]=xe-Me,pe!==H&&(qe=I*ee-U*se,se=I*se+U*ee,ee=qe)}},G.prototype.guessLen13b=function(_,O){var z=Math.max(O,_)|1,N=z&1,B=0;for(z=z/2|0;z;z=z>>>1)B++;return 1<<B+1+N},G.prototype.conjugate=function(_,O,z){if(!(z<=1))for(var N=0;N<z/2;N++){var B=_[N];_[N]=_[z-N-1],_[z-N-1]=B,B=O[N],O[N]=-O[z-N-1],O[z-N-1]=-B}},G.prototype.normalize13b=function(_,O){for(var z=0,N=0;N<O/2;N++){var B=Math.round(_[2*N+1]/O)*8192+Math.round(_[2*N]/O)+z;_[N]=B&67108863,B<67108864?z=0:z=B/67108864|0}return _},G.prototype.convert13b=function(_,O,z,N){for(var B=0,j=0;j<O;j++)B=B+(_[j]|0),z[2*j]=B&8191,B=B>>>13,z[2*j+1]=B&8191,B=B>>>13;for(j=2*O;j<N;++j)z[j]=0;n(B===0),n((B&-8192)===0)},G.prototype.stub=function(_){for(var O=new Array(_),z=0;z<_;z++)O[z]=0;return O},G.prototype.mulp=function(_,O,z){var N=2*this.guessLen13b(_.length,O.length),B=this.makeRBT(N),j=this.stub(N),q=new Array(N),H=new Array(N),I=new Array(N),U=new Array(N),X=new Array(N),ee=new Array(N),se=z.words;se.length=N,this.convert13b(_.words,_.length,q,N),this.convert13b(O.words,O.length,U,N),this.transform(q,j,H,I,N,B),this.transform(U,j,X,ee,N,B);for(var pe=0;pe<N;pe++){var ye=H[pe]*X[pe]-I[pe]*ee[pe];I[pe]=H[pe]*ee[pe]+I[pe]*X[pe],H[pe]=ye}return this.conjugate(H,I,N),this.transform(H,I,se,j,N,B),this.conjugate(se,j,N),this.normalize13b(se,N),z.negative=_.negative^O.negative,z.length=_.length+O.length,z._strip()},o.prototype.mul=function(_){var O=new o(null);return O.words=new Array(this.length+_.length),this.mulTo(_,O)},o.prototype.mulf=function(_){var O=new o(null);return O.words=new Array(this.length+_.length),D(this,_,O)},o.prototype.imul=function(_){return this.clone().mulTo(_,this)},o.prototype.imuln=function(_){var O=_<0;O&&(_=-_),n(typeof _==\"number\"),n(_<67108864);for(var z=0,N=0;N<this.length;N++){var B=(this.words[N]|0)*_,j=(B&67108863)+(z&67108863);z>>=26,z+=B/67108864|0,z+=j>>>26,this.words[N]=j&67108863}return z!==0&&(this.words[N]=z,this.length++),this.length=_===0?1:this.length,O?this.ineg():this},o.prototype.muln=function(_){return this.clone().imuln(_)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(_){var O=C(_);if(O.length===0)return new o(1);for(var z=this,N=0;N<O.length&&O[N]===0;N++,z=z.sqr());if(++N<O.length)for(var B=z.sqr();N<O.length;N++,B=B.sqr())O[N]!==0&&(z=z.mul(B));return z},o.prototype.iushln=function(_){n(typeof _==\"number\"&&_>=0);var O=_%26,z=(_-O)/26,N=67108863>>>26-O<<26-O,B;if(O!==0){var j=0;for(B=0;B<this.length;B++){var q=this.words[B]&N,H=(this.words[B]|0)-q<<O;this.words[B]=H|j,j=q>>>26-O}j&&(this.words[B]=j,this.length++)}if(z!==0){for(B=this.length-1;B>=0;B--)this.words[B+z]=this.words[B];for(B=0;B<z;B++)this.words[B]=0;this.length+=z}return this._strip()},o.prototype.ishln=function(_){return n(this.negative===0),this.iushln(_)},o.prototype.iushrn=function(_,O,z){n(typeof _==\"number\"&&_>=0);var N;O?N=(O-O%26)/26:N=0;var B=_%26,j=Math.min((_-B)/26,this.length),q=67108863^67108863>>>B<<B,H=z;if(N-=j,N=Math.max(0,N),H){for(var I=0;I<j;I++)H.words[I]=this.words[I];H.length=j}if(j!==0)if(this.length>j)for(this.length-=j,I=0;I<this.length;I++)this.words[I]=this.words[I+j];else this.words[0]=0,this.length=1;var U=0;for(I=this.length-1;I>=0&&(U!==0||I>=N);I--){var X=this.words[I]|0;this.words[I]=U<<26-B|X>>>B,U=X&q}return H&&U!==0&&(H.words[H.length++]=U),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(_,O,z){return n(this.negative===0),this.iushrn(_,O,z)},o.prototype.shln=function(_){return this.clone().ishln(_)},o.prototype.ushln=function(_){return this.clone().iushln(_)},o.prototype.shrn=function(_){return this.clone().ishrn(_)},o.prototype.ushrn=function(_){return this.clone().iushrn(_)},o.prototype.testn=function(_){n(typeof _==\"number\"&&_>=0);var O=_%26,z=(_-O)/26,N=1<<O;if(this.length<=z)return!1;var B=this.words[z];return!!(B&N)},o.prototype.imaskn=function(_){n(typeof _==\"number\"&&_>=0);var O=_%26,z=(_-O)/26;if(n(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=z)return this;if(O!==0&&z++,this.length=Math.min(z,this.length),O!==0){var N=67108863^67108863>>>O<<O;this.words[this.length-1]&=N}return this._strip()},o.prototype.maskn=function(_){return this.clone().imaskn(_)},o.prototype.iaddn=function(_){return n(typeof _==\"number\"),n(_<67108864),_<0?this.isubn(-_):this.negative!==0?this.length===1&&(this.words[0]|0)<=_?(this.words[0]=_-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(_),this.negative=1,this):this._iaddn(_)},o.prototype._iaddn=function(_){this.words[0]+=_;for(var O=0;O<this.length&&this.words[O]>=67108864;O++)this.words[O]-=67108864,O===this.length-1?this.words[O+1]=1:this.words[O+1]++;return this.length=Math.max(this.length,O+1),this},o.prototype.isubn=function(_){if(n(typeof _==\"number\"),n(_<67108864),_<0)return this.iaddn(-_);if(this.negative!==0)return this.negative=0,this.iaddn(_),this.negative=1,this;if(this.words[0]-=_,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var O=0;O<this.length&&this.words[O]<0;O++)this.words[O]+=67108864,this.words[O+1]-=1;return this._strip()},o.prototype.addn=function(_){return this.clone().iaddn(_)},o.prototype.subn=function(_){return this.clone().isubn(_)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(_,O,z){var N=_.length+z,B;this._expand(N);var j,q=0;for(B=0;B<_.length;B++){j=(this.words[B+z]|0)+q;var H=(_.words[B]|0)*O;j-=H&67108863,q=(j>>26)-(H/67108864|0),this.words[B+z]=j&67108863}for(;B<this.length-z;B++)j=(this.words[B+z]|0)+q,q=j>>26,this.words[B+z]=j&67108863;if(q===0)return this._strip();for(n(q===-1),q=0,B=0;B<this.length;B++)j=-(this.words[B]|0)+q,q=j>>26,this.words[B]=j&67108863;return this.negative=1,this._strip()},o.prototype._wordDiv=function(_,O){var z=this.length-_.length,N=this.clone(),B=_,j=B.words[B.length-1]|0,q=this._countBits(j);z=26-q,z!==0&&(B=B.ushln(z),N.iushln(z),j=B.words[B.length-1]|0);var H=N.length-B.length,I;if(O!==\"mod\"){I=new o(null),I.length=H+1,I.words=new Array(I.length);for(var U=0;U<I.length;U++)I.words[U]=0}var X=N.clone()._ishlnsubmul(B,1,H);X.negative===0&&(N=X,I&&(I.words[H]=1));for(var ee=H-1;ee>=0;ee--){var se=(N.words[B.length+ee]|0)*67108864+(N.words[B.length+ee-1]|0);for(se=Math.min(se/j|0,67108863),N._ishlnsubmul(B,se,ee);N.negative!==0;)se--,N.negative=0,N._ishlnsubmul(B,1,ee),N.isZero()||(N.negative^=1);I&&(I.words[ee]=se)}return I&&I._strip(),N._strip(),O!==\"div\"&&z!==0&&N.iushrn(z),{div:I||null,mod:N}},o.prototype.divmod=function(_,O,z){if(n(!_.isZero()),this.isZero())return{div:new o(0),mod:new o(0)};var N,B,j;return this.negative!==0&&_.negative===0?(j=this.neg().divmod(_,O),O!==\"mod\"&&(N=j.div.neg()),O!==\"div\"&&(B=j.mod.neg(),z&&B.negative!==0&&B.iadd(_)),{div:N,mod:B}):this.negative===0&&_.negative!==0?(j=this.divmod(_.neg(),O),O!==\"mod\"&&(N=j.div.neg()),{div:N,mod:j.mod}):(this.negative&_.negative)!==0?(j=this.neg().divmod(_.neg(),O),O!==\"div\"&&(B=j.mod.neg(),z&&B.negative!==0&&B.isub(_)),{div:j.div,mod:B}):_.length>this.length||this.cmp(_)<0?{div:new o(0),mod:this}:_.length===1?O===\"div\"?{div:this.divn(_.words[0]),mod:null}:O===\"mod\"?{div:null,mod:new o(this.modrn(_.words[0]))}:{div:this.divn(_.words[0]),mod:new o(this.modrn(_.words[0]))}:this._wordDiv(_,O)},o.prototype.div=function(_){return this.divmod(_,\"div\",!1).div},o.prototype.mod=function(_){return this.divmod(_,\"mod\",!1).mod},o.prototype.umod=function(_){return this.divmod(_,\"mod\",!0).mod},o.prototype.divRound=function(_){var O=this.divmod(_);if(O.mod.isZero())return O.div;var z=O.div.negative!==0?O.mod.isub(_):O.mod,N=_.ushrn(1),B=_.andln(1),j=z.cmp(N);return j<0||B===1&&j===0?O.div:O.div.negative!==0?O.div.isubn(1):O.div.iaddn(1)},o.prototype.modrn=function(_){var O=_<0;O&&(_=-_),n(_<=67108863);for(var z=(1<<26)%_,N=0,B=this.length-1;B>=0;B--)N=(z*N+(this.words[B]|0))%_;return O?-N:N},o.prototype.modn=function(_){return this.modrn(_)},o.prototype.idivn=function(_){var O=_<0;O&&(_=-_),n(_<=67108863);for(var z=0,N=this.length-1;N>=0;N--){var B=(this.words[N]|0)+z*67108864;this.words[N]=B/_|0,z=B%_}return this._strip(),O?this.ineg():this},o.prototype.divn=function(_){return this.clone().idivn(_)},o.prototype.egcd=function(_){n(_.negative===0),n(!_.isZero());var O=this,z=_.clone();O.negative!==0?O=O.umod(_):O=O.clone();for(var N=new o(1),B=new o(0),j=new o(0),q=new o(1),H=0;O.isEven()&&z.isEven();)O.iushrn(1),z.iushrn(1),++H;for(var I=z.clone(),U=O.clone();!O.isZero();){for(var X=0,ee=1;(O.words[0]&ee)===0&&X<26;++X,ee<<=1);if(X>0)for(O.iushrn(X);X-- >0;)(N.isOdd()||B.isOdd())&&(N.iadd(I),B.isub(U)),N.iushrn(1),B.iushrn(1);for(var se=0,pe=1;(z.words[0]&pe)===0&&se<26;++se,pe<<=1);if(se>0)for(z.iushrn(se);se-- >0;)(j.isOdd()||q.isOdd())&&(j.iadd(I),q.isub(U)),j.iushrn(1),q.iushrn(1);O.cmp(z)>=0?(O.isub(z),N.isub(j),B.isub(q)):(z.isub(O),j.isub(N),q.isub(B))}return{a:j,b:q,gcd:z.iushln(H)}},o.prototype._invmp=function(_){n(_.negative===0),n(!_.isZero());var O=this,z=_.clone();O.negative!==0?O=O.umod(_):O=O.clone();for(var N=new o(1),B=new o(0),j=z.clone();O.cmpn(1)>0&&z.cmpn(1)>0;){for(var q=0,H=1;(O.words[0]&H)===0&&q<26;++q,H<<=1);if(q>0)for(O.iushrn(q);q-- >0;)N.isOdd()&&N.iadd(j),N.iushrn(1);for(var I=0,U=1;(z.words[0]&U)===0&&I<26;++I,U<<=1);if(I>0)for(z.iushrn(I);I-- >0;)B.isOdd()&&B.iadd(j),B.iushrn(1);O.cmp(z)>=0?(O.isub(z),N.isub(B)):(z.isub(O),B.isub(N))}var X;return O.cmpn(1)===0?X=N:X=B,X.cmpn(0)<0&&X.iadd(_),X},o.prototype.gcd=function(_){if(this.isZero())return _.abs();if(_.isZero())return this.abs();var O=this.clone(),z=_.clone();O.negative=0,z.negative=0;for(var N=0;O.isEven()&&z.isEven();N++)O.iushrn(1),z.iushrn(1);do{for(;O.isEven();)O.iushrn(1);for(;z.isEven();)z.iushrn(1);var B=O.cmp(z);if(B<0){var j=O;O=z,z=j}else if(B===0||z.cmpn(1)===0)break;O.isub(z)}while(!0);return z.iushln(N)},o.prototype.invm=function(_){return this.egcd(_).a.umod(_)},o.prototype.isEven=function(){return(this.words[0]&1)===0},o.prototype.isOdd=function(){return(this.words[0]&1)===1},o.prototype.andln=function(_){return this.words[0]&_},o.prototype.bincn=function(_){n(typeof _==\"number\");var O=_%26,z=(_-O)/26,N=1<<O;if(this.length<=z)return this._expand(z+1),this.words[z]|=N,this;for(var B=N,j=z;B!==0&&j<this.length;j++){var q=this.words[j]|0;q+=B,B=q>>>26,q&=67108863,this.words[j]=q}return B!==0&&(this.words[j]=B,this.length++),this},o.prototype.isZero=function(){return this.length===1&&this.words[0]===0},o.prototype.cmpn=function(_){var O=_<0;if(this.negative!==0&&!O)return-1;if(this.negative===0&&O)return 1;this._strip();var z;if(this.length>1)z=1;else{O&&(_=-_),n(_<=67108863,\"Number is too big\");var N=this.words[0]|0;z=N===_?0:N<_?-1:1}return this.negative!==0?-z|0:z},o.prototype.cmp=function(_){if(this.negative!==0&&_.negative===0)return-1;if(this.negative===0&&_.negative!==0)return 1;var O=this.ucmp(_);return this.negative!==0?-O|0:O},o.prototype.ucmp=function(_){if(this.length>_.length)return 1;if(this.length<_.length)return-1;for(var O=0,z=this.length-1;z>=0;z--){var N=this.words[z]|0,B=_.words[z]|0;if(N!==B){N<B?O=-1:N>B&&(O=1);break}}return O},o.prototype.gtn=function(_){return this.cmpn(_)===1},o.prototype.gt=function(_){return this.cmp(_)===1},o.prototype.gten=function(_){return this.cmpn(_)>=0},o.prototype.gte=function(_){return this.cmp(_)>=0},o.prototype.ltn=function(_){return this.cmpn(_)===-1},o.prototype.lt=function(_){return this.cmp(_)===-1},o.prototype.lten=function(_){return this.cmpn(_)<=0},o.prototype.lte=function(_){return this.cmp(_)<=0},o.prototype.eqn=function(_){return this.cmpn(_)===0},o.prototype.eq=function(_){return this.cmp(_)===0},o.red=function(_){return new V(_)},o.prototype.toRed=function(_){return n(!this.red,\"Already a number in reduction context\"),n(this.negative===0,\"red works only with positives\"),_.convertTo(this)._forceRed(_)},o.prototype.fromRed=function(){return n(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},o.prototype._forceRed=function(_){return this.red=_,this},o.prototype.forceRed=function(_){return n(!this.red,\"Already a number in reduction context\"),this._forceRed(_)},o.prototype.redAdd=function(_){return n(this.red,\"redAdd works only with red numbers\"),this.red.add(this,_)},o.prototype.redIAdd=function(_){return n(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,_)},o.prototype.redSub=function(_){return n(this.red,\"redSub works only with red numbers\"),this.red.sub(this,_)},o.prototype.redISub=function(_){return n(this.red,\"redISub works only with red numbers\"),this.red.isub(this,_)},o.prototype.redShl=function(_){return n(this.red,\"redShl works only with red numbers\"),this.red.shl(this,_)},o.prototype.redMul=function(_){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,_),this.red.mul(this,_)},o.prototype.redIMul=function(_){return n(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,_),this.red.imul(this,_)},o.prototype.redSqr=function(){return n(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return n(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return n(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return n(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return n(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(_){return n(this.red&&!_.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,_)};var W={k256:null,p224:null,p192:null,p25519:null};function J(F,_){this.name=F,this.p=new o(_,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}J.prototype._tmp=function(){var _=new o(null);return _.words=new Array(Math.ceil(this.n/13)),_},J.prototype.ireduce=function(_){var O=_,z;do this.split(O,this.tmp),O=this.imulK(O),O=O.iadd(this.tmp),z=O.bitLength();while(z>this.n);var N=z<this.n?-1:O.ucmp(this.p);return N===0?(O.words[0]=0,O.length=1):N>0?O.isub(this.p):O.strip!==void 0?O.strip():O._strip(),O},J.prototype.split=function(_,O){_.iushrn(this.n,0,O)},J.prototype.imulK=function(_){return _.imul(this.k)};function ne(){J.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}r(ne,J),ne.prototype.split=function(_,O){for(var z=4194303,N=Math.min(_.length,9),B=0;B<N;B++)O.words[B]=_.words[B];if(O.length=N,_.length<=9){_.words[0]=0,_.length=1;return}var j=_.words[9];for(O.words[O.length++]=j&z,B=10;B<_.length;B++){var q=_.words[B]|0;_.words[B-10]=(q&z)<<4|j>>>22,j=q}j>>>=22,_.words[B-10]=j,j===0&&_.length>10?_.length-=10:_.length-=9},ne.prototype.imulK=function(_){_.words[_.length]=0,_.words[_.length+1]=0,_.length+=2;for(var O=0,z=0;z<_.length;z++){var N=_.words[z]|0;O+=N*977,_.words[z]=O&67108863,O=N*64+(O/67108864|0)}return _.words[_.length-1]===0&&(_.length--,_.words[_.length-1]===0&&_.length--),_};function ie(){J.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}r(ie,J);function Z(){J.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}r(Z,J);function ae(){J.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}r(ae,J),ae.prototype.imulK=function(_){for(var O=0,z=0;z<_.length;z++){var N=(_.words[z]|0)*19+O,B=N&67108863;N>>>=26,_.words[z]=B,O=N}return O!==0&&(_.words[_.length++]=O),_},o._prime=function(_){if(W[_])return W[_];var O;if(_===\"k256\")O=new ne;else if(_===\"p224\")O=new ie;else if(_===\"p192\")O=new Z;else if(_===\"p25519\")O=new ae;else throw new Error(\"Unknown prime \"+_);return W[_]=O,O};function V(F){if(typeof F==\"string\"){var _=o._prime(F);this.m=_.p,this.prime=_}else n(F.gtn(1),\"modulus must be greater than 1\"),this.m=F,this.prime=null}V.prototype._verify1=function(_){n(_.negative===0,\"red works only with positives\"),n(_.red,\"red works only with red numbers\")},V.prototype._verify2=function(_,O){n((_.negative|O.negative)===0,\"red works only with positives\"),n(_.red&&_.red===O.red,\"red works only with red numbers\")},V.prototype.imod=function(_){return this.prime?this.prime.ireduce(_)._forceRed(this):(d(_,_.umod(this.m)._forceRed(this)),_)},V.prototype.neg=function(_){return _.isZero()?_.clone():this.m.sub(_)._forceRed(this)},V.prototype.add=function(_,O){this._verify2(_,O);var z=_.add(O);return z.cmp(this.m)>=0&&z.isub(this.m),z._forceRed(this)},V.prototype.iadd=function(_,O){this._verify2(_,O);var z=_.iadd(O);return z.cmp(this.m)>=0&&z.isub(this.m),z},V.prototype.sub=function(_,O){this._verify2(_,O);var z=_.sub(O);return z.cmpn(0)<0&&z.iadd(this.m),z._forceRed(this)},V.prototype.isub=function(_,O){this._verify2(_,O);var z=_.isub(O);return z.cmpn(0)<0&&z.iadd(this.m),z},V.prototype.shl=function(_,O){return this._verify1(_),this.imod(_.ushln(O))},V.prototype.imul=function(_,O){return this._verify2(_,O),this.imod(_.imul(O))},V.prototype.mul=function(_,O){return this._verify2(_,O),this.imod(_.mul(O))},V.prototype.isqr=function(_){return this.imul(_,_.clone())},V.prototype.sqr=function(_){return this.mul(_,_)},V.prototype.sqrt=function(_){if(_.isZero())return _.clone();var O=this.m.andln(3);if(n(O%2===1),O===3){var z=this.m.add(new o(1)).iushrn(2);return this.pow(_,z)}for(var N=this.m.subn(1),B=0;!N.isZero()&&N.andln(1)===0;)B++,N.iushrn(1);n(!N.isZero());var j=new o(1).toRed(this),q=j.redNeg(),H=this.m.subn(1).iushrn(1),I=this.m.bitLength();for(I=new o(2*I*I).toRed(this);this.pow(I,H).cmp(q)!==0;)I.redIAdd(q);for(var U=this.pow(I,N),X=this.pow(_,N.addn(1).iushrn(1)),ee=this.pow(_,N),se=B;ee.cmp(j)!==0;){for(var pe=ee,ye=0;pe.cmp(j)!==0;ye++)pe=pe.redSqr();n(ye<se);var xe=this.pow(U,new o(1).iushln(se-ye-1));X=X.redMul(xe),U=xe.redSqr(),ee=ee.redMul(U),se=ye}return X},V.prototype.invm=function(_){var O=_._invmp(this.m);return O.negative!==0?(O.negative=0,this.imod(O).redNeg()):this.imod(O)},V.prototype.pow=function(_,O){if(O.isZero())return new o(1).toRed(this);if(O.cmpn(1)===0)return _.clone();var z=4,N=new Array(1<<z);N[0]=new o(1).toRed(this),N[1]=_;for(var B=2;B<N.length;B++)N[B]=this.mul(N[B-1],_);var j=N[0],q=0,H=0,I=O.bitLength()%26;for(I===0&&(I=26),B=O.length-1;B>=0;B--){for(var U=O.words[B],X=I-1;X>=0;X--){var ee=U>>X&1;if(j!==N[0]&&(j=this.sqr(j)),ee===0&&q===0){H=0;continue}q<<=1,q|=ee,H++,!(H!==z&&(B!==0||X!==0))&&(j=this.mul(j,N[q]),H=0,q=0)}I=26}return j},V.prototype.convertTo=function(_){var O=_.umod(this.m);return O===_?O.clone():O},V.prototype.convertFrom=function(_){var O=_.clone();return O.red=null,O},o.mont=function(_){return new $(_)};function $(F){V.call(this,F),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}r($,V),$.prototype.convertTo=function(_){return this.imod(_.ushln(this.shift))},$.prototype.convertFrom=function(_){var O=this.imod(_.mul(this.rinv));return O.red=null,O},$.prototype.imul=function(_,O){if(_.isZero()||O.isZero())return _.words[0]=0,_.length=1,_;var z=_.imul(O),N=z.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=z.isub(N).iushrn(this.shift),j=B;return B.cmp(this.m)>=0?j=B.isub(this.m):B.cmpn(0)<0&&(j=B.iadd(this.m)),j._forceRed(this)},$.prototype.mul=function(_,O){if(_.isZero()||O.isZero())return new o(0)._forceRed(this);var z=_.mul(O),N=z.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),B=z.isub(N).iushrn(this.shift),j=B;return B.cmp(this.m)>=0?j=B.isub(this.m):B.cmpn(0)<0&&(j=B.iadd(this.m)),j._forceRed(this)},$.prototype.invm=function(_){var O=this.imod(_._invmp(this.m).mul(this.r2));return O._forceRed(this)}})(typeof HJ>\"u\"||HJ,U2e)});var dI=be(n8=>{\"use strict\";p();Object.defineProperty(n8,\"__esModule\",{value:!0});n8.errorValues=n8.standardErrorCodes=void 0;n8.standardErrorCodes={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901,unsupportedChain:4902}};n8.errorValues={\"-32700\":{standard:\"JSON RPC 2.0\",message:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"},\"-32600\":{standard:\"JSON RPC 2.0\",message:\"The JSON sent is not a valid Request object.\"},\"-32601\":{standard:\"JSON RPC 2.0\",message:\"The method does not exist / is not available.\"},\"-32602\":{standard:\"JSON RPC 2.0\",message:\"Invalid method parameter(s).\"},\"-32603\":{standard:\"JSON RPC 2.0\",message:\"Internal JSON-RPC error.\"},\"-32000\":{standard:\"EIP-1474\",message:\"Invalid input.\"},\"-32001\":{standard:\"EIP-1474\",message:\"Resource not found.\"},\"-32002\":{standard:\"EIP-1474\",message:\"Resource unavailable.\"},\"-32003\":{standard:\"EIP-1474\",message:\"Transaction rejected.\"},\"-32004\":{standard:\"EIP-1474\",message:\"Method not supported.\"},\"-32005\":{standard:\"EIP-1474\",message:\"Request limit exceeded.\"},4001:{standard:\"EIP-1193\",message:\"User rejected the request.\"},4100:{standard:\"EIP-1193\",message:\"The requested account and/or method has not been authorized by the user.\"},4200:{standard:\"EIP-1193\",message:\"The requested method is not supported by this Ethereum provider.\"},4900:{standard:\"EIP-1193\",message:\"The provider is disconnected from all chains.\"},4901:{standard:\"EIP-1193\",message:\"The provider is disconnected from the specified chain.\"},4902:{standard:\"EIP-3085\",message:\"Unrecognized chain ID.\"}}});var SU=be(kh=>{\"use strict\";p();Object.defineProperty(kh,\"__esModule\",{value:!0});kh.serialize=kh.getErrorCode=kh.isValidCode=kh.getMessageFromCode=kh.JSON_RPC_SERVER_ERROR_MESSAGE=void 0;var EU=dI(),H2e=\"Unspecified error message.\";kh.JSON_RPC_SERVER_ERROR_MESSAGE=\"Unspecified server error.\";function q2e(t,e=H2e){if(t&&Number.isInteger(t)){let n=t.toString();if(qJ(EU.errorValues,n))return EU.errorValues[n].message;if(V2e(t))return kh.JSON_RPC_SERVER_ERROR_MESSAGE}return e}kh.getMessageFromCode=q2e;function W2e(t){if(!Number.isInteger(t))return!1;let e=t.toString();return!!(EU.errorValues[e]||V2e(t))}kh.isValidCode=W2e;function zWe(t){var e;if(typeof t==\"number\")return t;if(HWe(t))return(e=t.code)!==null&&e!==void 0?e:t.errorCode}kh.getErrorCode=zWe;function HWe(t){return typeof t==\"object\"&&t!==null&&(typeof t.code==\"number\"||typeof t.errorCode==\"number\")}function qWe(t,{shouldIncludeStack:e=!1}={}){let n={};if(t&&typeof t==\"object\"&&!Array.isArray(t)&&qJ(t,\"code\")&&W2e(t.code)){let r=t;n.code=r.code,r.message&&typeof r.message==\"string\"?(n.message=r.message,qJ(r,\"data\")&&(n.data=r.data)):(n.message=q2e(n.code),n.data={originalError:j2e(t)})}else n.code=EU.standardErrorCodes.rpc.internal,n.message=z2e(t,\"message\")?t.message:H2e,n.data={originalError:j2e(t)};return e&&(n.stack=z2e(t,\"stack\")?t.stack:void 0),n}kh.serialize=qWe;function V2e(t){return t>=-32099&&t<=-32e3}function j2e(t){return t&&typeof t==\"object\"&&!Array.isArray(t)?Object.assign({},t):t}function qJ(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function z2e(t,e){return typeof t==\"object\"&&t!==null&&e in t&&typeof t[e]==\"string\"}});var G2e=be(CU=>{\"use strict\";p();Object.defineProperty(CU,\"__esModule\",{value:!0});CU.standardErrors=void 0;var El=dI(),$2e=SU();CU.standardErrors={rpc:{parse:t=>im(El.standardErrorCodes.rpc.parse,t),invalidRequest:t=>im(El.standardErrorCodes.rpc.invalidRequest,t),invalidParams:t=>im(El.standardErrorCodes.rpc.invalidParams,t),methodNotFound:t=>im(El.standardErrorCodes.rpc.methodNotFound,t),internal:t=>im(El.standardErrorCodes.rpc.internal,t),server:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");let{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error(\\'\"code\" must be an integer such that: -32099 <= code <= -32005\\');return im(e,t)},invalidInput:t=>im(El.standardErrorCodes.rpc.invalidInput,t),resourceNotFound:t=>im(El.standardErrorCodes.rpc.resourceNotFound,t),resourceUnavailable:t=>im(El.standardErrorCodes.rpc.resourceUnavailable,t),transactionRejected:t=>im(El.standardErrorCodes.rpc.transactionRejected,t),methodNotSupported:t=>im(El.standardErrorCodes.rpc.methodNotSupported,t),limitExceeded:t=>im(El.standardErrorCodes.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>r8(El.standardErrorCodes.provider.userRejectedRequest,t),unauthorized:t=>r8(El.standardErrorCodes.provider.unauthorized,t),unsupportedMethod:t=>r8(El.standardErrorCodes.provider.unsupportedMethod,t),disconnected:t=>r8(El.standardErrorCodes.provider.disconnected,t),chainDisconnected:t=>r8(El.standardErrorCodes.provider.chainDisconnected,t),unsupportedChain:t=>r8(El.standardErrorCodes.provider.unsupportedChain,t),custom:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");let{code:e,message:n,data:r}=t;if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string\\');return new _U(e,n,r)}}};function im(t,e){let[n,r]=K2e(e);return new kU(t,n||(0,$2e.getMessageFromCode)(t),r)}function r8(t,e){let[n,r]=K2e(e);return new _U(t,n||(0,$2e.getMessageFromCode)(t),r)}function K2e(t){if(t){if(typeof t==\"string\")return[t];if(typeof t==\"object\"&&!Array.isArray(t)){let{message:e,data:n}=t;if(e&&typeof e!=\"string\")throw new Error(\"Must specify string message.\");return[e||void 0,n]}}return[]}var kU=class extends Error{constructor(e,n,r){if(!Number.isInteger(e))throw new Error(\\'\"code\" must be an integer.\\');if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string.\\');super(n),this.code=e,r!==void 0&&(this.data=r)}},_U=class extends kU{constructor(e,n,r){if(!WWe(e))throw new Error(\\'\"code\" must be an integer such that: 1000 <= code <= 4999\\');super(e,n,r)}};function WWe(t){return Number.isInteger(t)&&t>=1e3&&t<=4999}});var TU=be(AU=>{\"use strict\";p();Object.defineProperty(AU,\"__esModule\",{value:!0});AU.isErrorResponse=void 0;function VWe(t){return t.errorMessage!==void 0}AU.isErrorResponse=VWe});var IU=be(RU=>{\"use strict\";p();Object.defineProperty(RU,\"__esModule\",{value:!0});RU.LIB_VERSION=void 0;RU.LIB_VERSION=\"3.9.3\"});var Z2e=be(OU=>{\"use strict\";p();Object.defineProperty(OU,\"__esModule\",{value:!0});OU.serializeError=void 0;var $We=TU(),KWe=IU(),GWe=dI(),ZWe=SU();function YWe(t,e){let n=(0,ZWe.serialize)(QWe(t),{shouldIncludeStack:!0}),r=new URL(\"https://docs.cloud.coinbase.com/wallet-sdk/docs/errors\");r.searchParams.set(\"version\",KWe.LIB_VERSION),r.searchParams.set(\"code\",n.code.toString());let o=JWe(n.data,e);return o&&r.searchParams.set(\"method\",o),r.searchParams.set(\"message\",n.message),Object.assign(Object.assign({},n),{docUrl:r.href})}OU.serializeError=YWe;function QWe(t){return typeof t==\"string\"?{message:t,code:GWe.standardErrorCodes.rpc.internal}:(0,$We.isErrorResponse)(t)?Object.assign(Object.assign({},t),{message:t.errorMessage,code:t.errorCode,data:{method:t.method}}):t}function JWe(t,e){let n=t?.method;if(n)return n;if(e!==void 0){if(typeof e==\"string\")return e;if(Array.isArray(e)){if(e.length>0)return e[0].method}else return e.method}}});var fI=be(sm=>{\"use strict\";p();Object.defineProperty(sm,\"__esModule\",{value:!0});sm.standardErrors=sm.standardErrorCodes=sm.serializeError=sm.getMessageFromCode=sm.getErrorCode=void 0;var XWe=dI();Object.defineProperty(sm,\"standardErrorCodes\",{enumerable:!0,get:function(){return XWe.standardErrorCodes}});var eVe=G2e();Object.defineProperty(sm,\"standardErrors\",{enumerable:!0,get:function(){return eVe.standardErrors}});var tVe=Z2e();Object.defineProperty(sm,\"serializeError\",{enumerable:!0,get:function(){return tVe.serializeError}});var Y2e=SU();Object.defineProperty(sm,\"getErrorCode\",{enumerable:!0,get:function(){return Y2e.getErrorCode}});Object.defineProperty(sm,\"getMessageFromCode\",{enumerable:!0,get:function(){return Y2e.getMessageFromCode}})});var pI=be(mu=>{\"use strict\";p();Object.defineProperty(mu,\"__esModule\",{value:!0});mu.ProviderType=mu.RegExpString=mu.IntNumber=mu.BigIntString=mu.AddressString=mu.HexString=mu.OpaqueType=void 0;function hI(){return t=>t}mu.OpaqueType=hI;mu.HexString=hI();mu.AddressString=hI();mu.BigIntString=hI();function nVe(t){return Math.floor(t)}mu.IntNumber=nVe;mu.RegExpString=hI();var Q2e;(function(t){t.CoinbaseWallet=\"CoinbaseWallet\",t.MetaMask=\"MetaMask\",t.Unselected=\"\"})(Q2e||(mu.ProviderType=Q2e={}))});var Yy=be(fn=>{\"use strict\";p();var rVe=fn&&fn.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fn,\"__esModule\",{value:!0});fn.isMobileWeb=fn.getLocation=fn.isInIFrame=fn.createQrUrl=fn.getFavicon=fn.range=fn.isBigNumber=fn.ensureParsedJSONObject=fn.ensureBN=fn.ensureRegExpString=fn.ensureIntNumber=fn.ensureBuffer=fn.ensureAddressString=fn.ensureEvenLengthHexString=fn.ensureHexString=fn.isHexString=fn.prepend0x=fn.strip0x=fn.has0xPrefix=fn.hexStringFromIntNumber=fn.intNumberFromHexString=fn.bigIntStringFromBN=fn.hexStringFromBuffer=fn.hexStringToUint8Array=fn.uint8ArrayToHex=fn.randomBytesHex=void 0;var Cx=rVe(q6()),W6=fI(),am=pI(),J2e=/^[0-9]*$/,X2e=/^[a-f0-9]*$/;function oVe(t){return ewe(crypto.getRandomValues(new Uint8Array(t)))}fn.randomBytesHex=oVe;function ewe(t){return[...t].map(e=>e.toString(16).padStart(2,\"0\")).join(\"\")}fn.uint8ArrayToHex=ewe;function iVe(t){return new Uint8Array(t.match(/.{1,2}/g).map(e=>parseInt(e,16)))}fn.hexStringToUint8Array=iVe;function sVe(t,e=!1){let n=t.toString(\"hex\");return(0,am.HexString)(e?`0x${n}`:n)}fn.hexStringFromBuffer=sVe;function aVe(t){return(0,am.BigIntString)(t.toString(10))}fn.bigIntStringFromBN=aVe;function cVe(t){return(0,am.IntNumber)(new Cx.default(gI(t,!1),16).toNumber())}fn.intNumberFromHexString=cVe;function lVe(t){return(0,am.HexString)(`0x${new Cx.default(t).toString(16)}`)}fn.hexStringFromIntNumber=lVe;function WJ(t){return t.startsWith(\"0x\")||t.startsWith(\"0X\")}fn.has0xPrefix=WJ;function PU(t){return WJ(t)?t.slice(2):t}fn.strip0x=PU;function twe(t){return WJ(t)?`0x${t.slice(2)}`:`0x${t}`}fn.prepend0x=twe;function mI(t){if(typeof t!=\"string\")return!1;let e=PU(t).toLowerCase();return X2e.test(e)}fn.isHexString=mI;function nwe(t,e=!1){if(typeof t==\"string\"){let n=PU(t).toLowerCase();if(X2e.test(n))return(0,am.HexString)(e?`0x${n}`:n)}throw W6.standardErrors.rpc.invalidParams(`\"${String(t)}\" is not a hexadecimal string`)}fn.ensureHexString=nwe;function gI(t,e=!1){let n=nwe(t,!1);return n.length%2===1&&(n=(0,am.HexString)(`0${n}`)),e?(0,am.HexString)(`0x${n}`):n}fn.ensureEvenLengthHexString=gI;function uVe(t){if(typeof t==\"string\"){let e=PU(t).toLowerCase();if(mI(e)&&e.length===40)return(0,am.AddressString)(twe(e))}throw W6.standardErrors.rpc.invalidParams(`Invalid Ethereum address: ${String(t)}`)}fn.ensureAddressString=uVe;function dVe(t){if(globalThis.Buffer.isBuffer(t))return t;if(typeof t==\"string\"){if(mI(t)){let e=gI(t,!1);return globalThis.Buffer.from(e,\"hex\")}return globalThis.Buffer.from(t,\"utf8\")}throw W6.standardErrors.rpc.invalidParams(`Not binary data: ${String(t)}`)}fn.ensureBuffer=dVe;function rwe(t){if(typeof t==\"number\"&&Number.isInteger(t))return(0,am.IntNumber)(t);if(typeof t==\"string\"){if(J2e.test(t))return(0,am.IntNumber)(Number(t));if(mI(t))return(0,am.IntNumber)(new Cx.default(gI(t,!1),16).toNumber())}throw W6.standardErrors.rpc.invalidParams(`Not an integer: ${String(t)}`)}fn.ensureIntNumber=rwe;function fVe(t){if(t instanceof RegExp)return(0,am.RegExpString)(t.toString());throw W6.standardErrors.rpc.invalidParams(`Not a RegExp: ${String(t)}`)}fn.ensureRegExpString=fVe;function hVe(t){if(t!==null&&(Cx.default.isBN(t)||owe(t)))return new Cx.default(t.toString(10),10);if(typeof t==\"number\")return new Cx.default(rwe(t));if(typeof t==\"string\"){if(J2e.test(t))return new Cx.default(t,10);if(mI(t))return new Cx.default(gI(t,!1),16)}throw W6.standardErrors.rpc.invalidParams(`Not an integer: ${String(t)}`)}fn.ensureBN=hVe;function pVe(t){if(typeof t==\"string\")return JSON.parse(t);if(typeof t==\"object\")return t;throw W6.standardErrors.rpc.invalidParams(`Not a JSON string or an object: ${String(t)}`)}fn.ensureParsedJSONObject=pVe;function owe(t){if(t==null||typeof t.constructor!=\"function\")return!1;let{constructor:e}=t;return typeof e.config==\"function\"&&typeof e.EUCLID==\"number\"}fn.isBigNumber=owe;function mVe(t,e){return Array.from({length:e-t},(n,r)=>t+r)}fn.range=mVe;function gVe(){let t=document.querySelector(\\'link[sizes=\"192x192\"]\\')||document.querySelector(\\'link[sizes=\"180x180\"]\\')||document.querySelector(\\'link[rel=\"icon\"]\\')||document.querySelector(\\'link[rel=\"shortcut icon\"]\\'),{protocol:e,host:n}=document.location,r=t?t.getAttribute(\"href\"):null;return!r||r.startsWith(\"javascript:\")||r.startsWith(\"vbscript:\")?null:r.startsWith(\"http://\")||r.startsWith(\"https://\")||r.startsWith(\"data:\")?r:r.startsWith(\"//\")?e+r:`${e}//${n}${r}`}fn.getFavicon=gVe;function yVe(t,e,n,r,o,i){let a=r?\"parent-id\":\"id\",c=new URLSearchParams({[a]:t,secret:e,server:n,v:o,chainId:i.toString()}).toString();return`${n}/#/link?${c}`}fn.createQrUrl=yVe;function iwe(){try{return window.frameElement!==null}catch{return!1}}fn.isInIFrame=iwe;function bVe(){try{return iwe()&&window.top?window.top.location:window.location}catch{return window.location}}fn.getLocation=bVe;function vVe(){var t;return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test((t=window?.navigator)===null||t===void 0?void 0:t.userAgent)}fn.isMobileWeb=vVe});var swe=be(MU=>{\"use strict\";p();Object.defineProperty(MU,\"__esModule\",{value:!0});MU.ScopedLocalStorage=void 0;var VJ=class{constructor(e){this.scope=e}setItem(e,n){localStorage.setItem(this.scopedKey(e),n)}getItem(e){return localStorage.getItem(this.scopedKey(e))}removeItem(e){localStorage.removeItem(this.scopedKey(e))}clear(){let e=this.scopedKey(\"\"),n=[];for(let r=0;r<localStorage.length;r++){let o=localStorage.key(r);typeof o==\"string\"&&o.startsWith(e)&&n.push(o)}n.forEach(r=>localStorage.removeItem(r))}scopedKey(e){return`${this.scope}:${e}`}};MU.ScopedLocalStorage=VJ});var LU=be(NU=>{\"use strict\";p();Object.defineProperty(NU,\"__esModule\",{value:!0});NU.EVENTS=void 0;NU.EVENTS={STARTED_CONNECTING:\"walletlink_sdk.started.connecting\",CONNECTED_STATE_CHANGE:\"walletlink_sdk.connected\",DISCONNECTED:\"walletlink_sdk.disconnected\",METADATA_DESTROYED:\"walletlink_sdk_metadata_destroyed\",LINKED:\"walletlink_sdk.linked\",FAILURE:\"walletlink_sdk.generic_failure\",SESSION_CONFIG_RECEIVED:\"walletlink_sdk.session_config_event_received\",ETH_ACCOUNTS_STATE:\"walletlink_sdk.eth_accounts_state\",SESSION_STATE_CHANGE:\"walletlink_sdk.session_state_change\",UNLINKED_ERROR_STATE:\"walletlink_sdk.unlinked_error_state\",SKIPPED_CLEARING_SESSION:\"walletlink_sdk.skipped_clearing_session\",GENERAL_ERROR:\"walletlink_sdk.general_error\",WEB3_REQUEST:\"walletlink_sdk.web3.request\",WEB3_REQUEST_PUBLISHED:\"walletlink_sdk.web3.request_published\",WEB3_RESPONSE:\"walletlink_sdk.web3.response\",METHOD_NOT_IMPLEMENTED:\"walletlink_sdk.method_not_implemented\",UNKNOWN_ADDRESS_ENCOUNTERED:\"walletlink_sdk.unknown_address_encountered\"}});var BU=be(Qy=>{\"use strict\";p();Object.defineProperty(Qy,\"__esModule\",{value:!0});Qy.RelayAbstract=Qy.APP_VERSION_KEY=Qy.LOCAL_STORAGE_ADDRESSES_KEY=Qy.WALLET_USER_NAME_KEY=void 0;var awe=fI();Qy.WALLET_USER_NAME_KEY=\"walletUsername\";Qy.LOCAL_STORAGE_ADDRESSES_KEY=\"Addresses\";Qy.APP_VERSION_KEY=\"AppVersion\";var $J=class{async makeEthereumJSONRPCRequest(e,n){if(!n)throw new Error(\"Error: No jsonRpcUrl provided\");return window.fetch(n,{method:\"POST\",body:JSON.stringify(e),mode:\"cors\",headers:{\"Content-Type\":\"application/json\"}}).then(r=>r.json()).then(r=>{if(!r)throw awe.standardErrors.rpc.parse({});let o=r,{error:i}=o;if(i)throw(0,awe.serializeError)(i,e.method);return o})}};Qy.RelayAbstract=$J});var cm=be((Grn,KJ)=>{p();typeof Object.create==\"function\"?KJ.exports=function(e,n){n&&(e.super_=n,e.prototype=Object.create(n.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:KJ.exports=function(e,n){if(n){e.super_=n;var r=function(){};r.prototype=n.prototype,e.prototype=new r,e.prototype.constructor=e}}});var Xy=be((GJ,lwe)=>{p();var DU=Kb(),Jy=DU.Buffer;function cwe(t,e){for(var n in t)e[n]=t[n]}Jy.from&&Jy.alloc&&Jy.allocUnsafe&&Jy.allocUnsafeSlow?lwe.exports=DU:(cwe(DU,GJ),GJ.Buffer=V6);function V6(t,e,n){return Jy(t,e,n)}V6.prototype=Object.create(Jy.prototype);cwe(Jy,V6);V6.from=function(t,e,n){if(typeof t==\"number\")throw new TypeError(\"Argument must not be a number\");return Jy(t,e,n)};V6.alloc=function(t,e,n){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");var r=Jy(t);return e!==void 0?typeof n==\"string\"?r.fill(e,n):r.fill(e):r.fill(0),r};V6.allocUnsafe=function(t){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");return Jy(t)};V6.allocUnsafeSlow=function(t){if(typeof t!=\"number\")throw new TypeError(\"Argument must be a number\");return DU.SlowBuffer(t)}});var $6=be((Qrn,dwe)=>{p();var uwe=Xy().Buffer;function FU(t,e){this._block=uwe.alloc(t),this._finalSize=e,this._blockSize=t,this._len=0}FU.prototype.update=function(t,e){typeof t==\"string\"&&(e=e||\"utf8\",t=uwe.from(t,e));for(var n=this._block,r=this._blockSize,o=t.length,i=this._len,a=0;a<o;){for(var c=i%r,u=Math.min(o-a,r-c),d=0;d<u;d++)n[c+d]=t[a+d];i+=u,a+=u,i%r===0&&this._update(n)}return this._len+=o,this};FU.prototype.digest=function(t){var e=this._len%this._blockSize;this._block[e]=128,this._block.fill(0,e+1),e>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=this._len*8;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(n&4294967295)>>>0,o=(n-r)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var i=this._hash();return t?i.toString(t):i};FU.prototype._update=function(){throw new Error(\"_update must be implemented by subclass\")};dwe.exports=FU});var pwe=be((Xrn,hwe)=>{p();var wVe=cm(),fwe=$6(),xVe=Xy().Buffer,EVe=[1518500249,1859775393,-1894007588,-899497514],SVe=new Array(80);function yI(){this.init(),this._w=SVe,fwe.call(this,64,56)}wVe(yI,fwe);yI.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function kVe(t){return t<<5|t>>>27}function _Ve(t){return t<<30|t>>>2}function CVe(t,e,n,r){return t===0?e&n|~e&r:t===2?e&n|e&r|n&r:e^n^r}yI.prototype._update=function(t){for(var e=this._w,n=this._a|0,r=this._b|0,o=this._c|0,i=this._d|0,a=this._e|0,c=0;c<16;++c)e[c]=t.readInt32BE(c*4);for(;c<80;++c)e[c]=e[c-3]^e[c-8]^e[c-14]^e[c-16];for(var u=0;u<80;++u){var d=~~(u/20),h=kVe(n)+CVe(d,r,o,i)+a+e[u]+EVe[d]|0;a=i,i=o,o=_Ve(r),r=n,n=h}this._a=n+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0};yI.prototype._hash=function(){var t=xVe.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};hwe.exports=yI});var ywe=be((ton,gwe)=>{p();var AVe=cm(),mwe=$6(),TVe=Xy().Buffer,RVe=[1518500249,1859775393,-1894007588,-899497514],IVe=new Array(80);function bI(){this.init(),this._w=IVe,mwe.call(this,64,56)}AVe(bI,mwe);bI.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function OVe(t){return t<<1|t>>>31}function PVe(t){return t<<5|t>>>27}function MVe(t){return t<<30|t>>>2}function NVe(t,e,n,r){return t===0?e&n|~e&r:t===2?e&n|e&r|n&r:e^n^r}bI.prototype._update=function(t){for(var e=this._w,n=this._a|0,r=this._b|0,o=this._c|0,i=this._d|0,a=this._e|0,c=0;c<16;++c)e[c]=t.readInt32BE(c*4);for(;c<80;++c)e[c]=OVe(e[c-3]^e[c-8]^e[c-14]^e[c-16]);for(var u=0;u<80;++u){var d=~~(u/20),h=PVe(n)+NVe(d,r,o,i)+a+e[u]+RVe[d]|0;a=i,i=o,o=MVe(r),r=n,n=h}this._a=n+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0};bI.prototype._hash=function(){var t=TVe.allocUnsafe(20);return t.writeInt32BE(this._a|0,0),t.writeInt32BE(this._b|0,4),t.writeInt32BE(this._c|0,8),t.writeInt32BE(this._d|0,12),t.writeInt32BE(this._e|0,16),t};gwe.exports=bI});var ZJ=be((ron,vwe)=>{p();var LVe=cm(),bwe=$6(),BVe=Xy().Buffer,DVe=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],FVe=new Array(64);function vI(){this.init(),this._w=FVe,bwe.call(this,64,56)}LVe(vI,bwe);vI.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function UVe(t,e,n){return n^t&(e^n)}function jVe(t,e,n){return t&e|n&(t|e)}function zVe(t){return(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10)}function HVe(t){return(t>>>6|t<<26)^(t>>>11|t<<21)^(t>>>25|t<<7)}function qVe(t){return(t>>>7|t<<25)^(t>>>18|t<<14)^t>>>3}function WVe(t){return(t>>>17|t<<15)^(t>>>19|t<<13)^t>>>10}vI.prototype._update=function(t){for(var e=this._w,n=this._a|0,r=this._b|0,o=this._c|0,i=this._d|0,a=this._e|0,c=this._f|0,u=this._g|0,d=this._h|0,h=0;h<16;++h)e[h]=t.readInt32BE(h*4);for(;h<64;++h)e[h]=WVe(e[h-2])+e[h-7]+qVe(e[h-15])+e[h-16]|0;for(var m=0;m<64;++m){var g=d+HVe(a)+UVe(a,c,u)+DVe[m]+e[m]|0,b=zVe(n)+jVe(n,r,o)|0;d=u,u=c,c=a,a=i+g|0,i=o,o=r,r=n,n=g+b|0}this._a=n+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=i+this._d|0,this._e=a+this._e|0,this._f=c+this._f|0,this._g=u+this._g|0,this._h=d+this._h|0};vI.prototype._hash=function(){var t=BVe.allocUnsafe(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t};vwe.exports=vI});var xwe=be((ion,wwe)=>{p();var VVe=cm(),$Ve=ZJ(),KVe=$6(),GVe=Xy().Buffer,ZVe=new Array(64);function UU(){this.init(),this._w=ZVe,KVe.call(this,64,56)}VVe(UU,$Ve);UU.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};UU.prototype._hash=function(){var t=GVe.allocUnsafe(28);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t};wwe.exports=UU});var YJ=be((aon,Twe)=>{p();var YVe=cm(),Awe=$6(),QVe=Xy().Buffer,Ewe=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],JVe=new Array(160);function wI(){this.init(),this._w=JVe,Awe.call(this,128,112)}YVe(wI,Awe);wI.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function Swe(t,e,n){return n^t&(e^n)}function kwe(t,e,n){return t&e|n&(t|e)}function _we(t,e){return(t>>>28|e<<4)^(e>>>2|t<<30)^(e>>>7|t<<25)}function Cwe(t,e){return(t>>>14|e<<18)^(t>>>18|e<<14)^(e>>>9|t<<23)}function XVe(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^t>>>7}function e$e(t,e){return(t>>>1|e<<31)^(t>>>8|e<<24)^(t>>>7|e<<25)}function t$e(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^t>>>6}function n$e(t,e){return(t>>>19|e<<13)^(e>>>29|t<<3)^(t>>>6|e<<26)}function Fc(t,e){return t>>>0<e>>>0?1:0}wI.prototype._update=function(t){for(var e=this._w,n=this._ah|0,r=this._bh|0,o=this._ch|0,i=this._dh|0,a=this._eh|0,c=this._fh|0,u=this._gh|0,d=this._hh|0,h=this._al|0,m=this._bl|0,g=this._cl|0,b=this._dl|0,E=this._el|0,C=this._fl|0,T=this._gl|0,R=this._hl|0,L=0;L<32;L+=2)e[L]=t.readInt32BE(L*4),e[L+1]=t.readInt32BE(L*4+4);for(;L<160;L+=2){var D=e[L-30],G=e[L-15*2+1],W=XVe(D,G),J=e$e(G,D);D=e[L-2*2],G=e[L-2*2+1];var ne=t$e(D,G),ie=n$e(G,D),Z=e[L-7*2],ae=e[L-7*2+1],V=e[L-16*2],$=e[L-16*2+1],F=J+ae|0,_=W+Z+Fc(F,J)|0;F=F+ie|0,_=_+ne+Fc(F,ie)|0,F=F+$|0,_=_+V+Fc(F,$)|0,e[L]=_,e[L+1]=F}for(var O=0;O<160;O+=2){_=e[O],F=e[O+1];var z=kwe(n,r,o),N=kwe(h,m,g),B=_we(n,h),j=_we(h,n),q=Cwe(a,E),H=Cwe(E,a),I=Ewe[O],U=Ewe[O+1],X=Swe(a,c,u),ee=Swe(E,C,T),se=R+H|0,pe=d+q+Fc(se,R)|0;se=se+ee|0,pe=pe+X+Fc(se,ee)|0,se=se+U|0,pe=pe+I+Fc(se,U)|0,se=se+F|0,pe=pe+_+Fc(se,F)|0;var ye=j+N|0,xe=B+z+Fc(ye,j)|0;d=u,R=T,u=c,T=C,c=a,C=E,E=b+se|0,a=i+pe+Fc(E,b)|0,i=o,b=g,o=r,g=m,r=n,m=h,h=se+ye|0,n=pe+xe+Fc(h,se)|0}this._al=this._al+h|0,this._bl=this._bl+m|0,this._cl=this._cl+g|0,this._dl=this._dl+b|0,this._el=this._el+E|0,this._fl=this._fl+C|0,this._gl=this._gl+T|0,this._hl=this._hl+R|0,this._ah=this._ah+n+Fc(this._al,h)|0,this._bh=this._bh+r+Fc(this._bl,m)|0,this._ch=this._ch+o+Fc(this._cl,g)|0,this._dh=this._dh+i+Fc(this._dl,b)|0,this._eh=this._eh+a+Fc(this._el,E)|0,this._fh=this._fh+c+Fc(this._fl,C)|0,this._gh=this._gh+u+Fc(this._gl,T)|0,this._hh=this._hh+d+Fc(this._hl,R)|0};wI.prototype._hash=function(){var t=QVe.allocUnsafe(64);function e(n,r,o){t.writeInt32BE(n,o),t.writeInt32BE(r,o+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t};Twe.exports=wI});var Iwe=be((lon,Rwe)=>{p();var r$e=cm(),o$e=YJ(),i$e=$6(),s$e=Xy().Buffer,a$e=new Array(160);function jU(){this.init(),this._w=a$e,i$e.call(this,128,112)}r$e(jU,o$e);jU.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};jU.prototype._hash=function(){var t=s$e.allocUnsafe(48);function e(n,r,o){t.writeInt32BE(n,o),t.writeInt32BE(r,o+4)}return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t};Rwe.exports=jU});var Pwe=be((Pv,Owe)=>{p();var Pv=Owe.exports=function(e){e=e.toLowerCase();var n=Pv[e];if(!n)throw new Error(e+\" is not supported (we accept pull requests)\");return new n};Pv.sha=pwe();Pv.sha1=ywe();Pv.sha224=xwe();Pv.sha256=ZJ();Pv.sha384=Iwe();Pv.sha512=YJ()});var HU=be(zU=>{\"use strict\";p();Object.defineProperty(zU,\"__esModule\",{value:!0});zU.Session=void 0;var Mwe=Pwe(),Nwe=Yy(),Lwe=\"session:id\",Bwe=\"session:secret\",Dwe=\"session:linked\",QJ=class t{constructor(e,n,r,o){this._storage=e,this._id=n||(0,Nwe.randomBytesHex)(16),this._secret=r||(0,Nwe.randomBytesHex)(32),this._key=new Mwe.sha256().update(`${this._id}, ${this._secret} WalletLink`).digest(\"hex\"),this._linked=!!o}static load(e){let n=e.getItem(Lwe),r=e.getItem(Dwe),o=e.getItem(Bwe);return n&&o?new t(e,n,o,r===\"1\"):null}static hash(e){return new Mwe.sha256().update(e).digest(\"hex\")}get id(){return this._id}get secret(){return this._secret}get key(){return this._key}get linked(){return this._linked}set linked(e){this._linked=e,this.persistLinked()}save(){return this._storage.setItem(Lwe,this._id),this._storage.setItem(Bwe,this._secret),this.persistLinked(),this}persistLinked(){this._storage.setItem(Dwe,this._linked?\"1\":\"0\")}};zU.Session=QJ});var Fwe=be(WU=>{\"use strict\";p();Object.defineProperty(WU,\"__esModule\",{value:!0});WU.Cipher=void 0;var qU=Yy(),JJ=class{constructor(e){this.secret=e}async encrypt(e){let n=this.secret;if(n.length!==64)throw Error(\"secret must be 256 bits\");let r=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.importKey(\"raw\",(0,qU.hexStringToUint8Array)(n),{name:\"aes-gcm\"},!1,[\"encrypt\",\"decrypt\"]),i=new TextEncoder,a=await window.crypto.subtle.encrypt({name:\"AES-GCM\",iv:r},o,i.encode(e)),c=16,u=a.slice(a.byteLength-c),d=a.slice(0,a.byteLength-c),h=new Uint8Array(u),m=new Uint8Array(d),g=new Uint8Array([...r,...h,...m]);return(0,qU.uint8ArrayToHex)(g)}async decrypt(e){let n=this.secret;if(n.length!==64)throw Error(\"secret must be 256 bits\");return new Promise((r,o)=>{(async function(){let i=await crypto.subtle.importKey(\"raw\",(0,qU.hexStringToUint8Array)(n),{name:\"aes-gcm\"},!1,[\"encrypt\",\"decrypt\"]),a=(0,qU.hexStringToUint8Array)(e),c=a.slice(0,12),u=a.slice(12,28),d=a.slice(28),h=new Uint8Array([...d,...u]),m={name:\"AES-GCM\",iv:new Uint8Array(c)};try{let g=await window.crypto.subtle.decrypt(m,i,h),b=new TextDecoder;r(b.decode(g))}catch(g){o(g)}})()})}};WU.Cipher=JJ});var Uwe=be(VU=>{\"use strict\";p();Object.defineProperty(VU,\"__esModule\",{value:!0});VU.WalletLinkHTTP=void 0;var XJ=class{constructor(e,n,r){this.linkAPIUrl=e,this.sessionId=n;let o=`${n}:${r}`;this.auth=`Basic ${btoa(o)}`}async markUnseenEventsAsSeen(e){return Promise.all(e.map(n=>fetch(`${this.linkAPIUrl}/events/${n.eventId}/seen`,{method:\"POST\",headers:{Authorization:this.auth}}))).catch(n=>console.error(\"Unabled to mark event as failed:\",n))}async fetchUnseenEvents(){var e;let n=await fetch(`${this.linkAPIUrl}/events?unseen=true`,{headers:{Authorization:this.auth}});if(n.ok){let{events:r,error:o}=await n.json();if(o)throw new Error(`Check unseen events failed: ${o}`);let i=(e=r?.filter(a=>a.event===\"Web3Response\").map(a=>({type:\"Event\",sessionId:this.sessionId,eventId:a.id,event:a.event,data:a.data})))!==null&&e!==void 0?e:[];return this.markUnseenEventsAsSeen(i),i}throw new Error(`Check unseen events failed: ${n.status}`)}};VU.WalletLinkHTTP=XJ});var jwe=be(i8=>{\"use strict\";p();Object.defineProperty(i8,\"__esModule\",{value:!0});i8.WalletLinkWebSocket=i8.ConnectionState=void 0;var o8;(function(t){t[t.DISCONNECTED=0]=\"DISCONNECTED\",t[t.CONNECTING=1]=\"CONNECTING\",t[t.CONNECTED=2]=\"CONNECTED\"})(o8||(i8.ConnectionState=o8={}));var eX=class{setConnectionStateListener(e){this.connectionStateListener=e}setIncomingDataListener(e){this.incomingDataListener=e}constructor(e,n=WebSocket){this.WebSocketClass=n,this.webSocket=null,this.pendingData=[],this.url=e.replace(/^http/,\"ws\")}async connect(){if(this.webSocket)throw new Error(\"webSocket object is not null\");return new Promise((e,n)=>{var r;let o;try{this.webSocket=o=new this.WebSocketClass(this.url)}catch(i){n(i);return}(r=this.connectionStateListener)===null||r===void 0||r.call(this,o8.CONNECTING),o.onclose=i=>{var a;this.clearWebSocket(),n(new Error(`websocket error ${i.code}: ${i.reason}`)),(a=this.connectionStateListener)===null||a===void 0||a.call(this,o8.DISCONNECTED)},o.onopen=i=>{var a;e(),(a=this.connectionStateListener)===null||a===void 0||a.call(this,o8.CONNECTED),this.pendingData.length>0&&([...this.pendingData].forEach(u=>this.sendData(u)),this.pendingData=[])},o.onmessage=i=>{var a,c;if(i.data===\"h\")(a=this.incomingDataListener)===null||a===void 0||a.call(this,{type:\"Heartbeat\"});else try{let u=JSON.parse(i.data);(c=this.incomingDataListener)===null||c===void 0||c.call(this,u)}catch{}}})}disconnect(){var e;let{webSocket:n}=this;if(n){this.clearWebSocket(),(e=this.connectionStateListener)===null||e===void 0||e.call(this,o8.DISCONNECTED),this.connectionStateListener=void 0,this.incomingDataListener=void 0;try{n.close()}catch{}}}sendData(e){let{webSocket:n}=this;if(!n){this.pendingData.push(e),this.connect();return}n.send(e)}clearWebSocket(){let{webSocket:e}=this;e&&(this.webSocket=null,e.onclose=null,e.onerror=null,e.onmessage=null,e.onopen=null)}};i8.WalletLinkWebSocket=eX});var qwe=be(KU=>{\"use strict\";p();Object.defineProperty(KU,\"__esModule\",{value:!0});KU.WalletLinkConnection=void 0;var s8=pI(),c$e=Fwe(),e1=LU(),zwe=BU(),a8=HU(),l$e=Uwe(),$U=jwe(),Hwe=1e4,u$e=6e4,tX=class{constructor({session:e,linkAPIUrl:n,listener:r,diagnostic:o,WebSocketClass:i=WebSocket}){this.destroyed=!1,this.lastHeartbeatResponse=0,this.nextReqId=(0,s8.IntNumber)(1),this._connected=!1,this._linked=!1,this.shouldFetchUnseenEventsOnConnect=!1,this.requestResolutions=new Map,this.handleSessionMetadataUpdated=c=>{if(!c)return;new Map([[\"__destroyed\",this.handleDestroyed],[\"EthereumAddress\",this.handleAccountUpdated],[\"WalletUsername\",this.handleWalletUsernameUpdated],[\"AppVersion\",this.handleAppVersionUpdated],[\"ChainId\",d=>c.JsonRpcUrl&&this.handleChainUpdated(d,c.JsonRpcUrl)]]).forEach((d,h)=>{let m=c[h];m!==void 0&&d(m)})},this.handleDestroyed=c=>{var u,d;c===\"1\"&&((u=this.listener)===null||u===void 0||u.resetAndReload(),(d=this.diagnostic)===null||d===void 0||d.log(e1.EVENTS.METADATA_DESTROYED,{alreadyDestroyed:this.isDestroyed,sessionIdHash:a8.Session.hash(this.session.id)}))},this.handleAccountUpdated=async c=>{var u,d;try{let h=await this.cipher.decrypt(c);(u=this.listener)===null||u===void 0||u.accountUpdated(h)}catch{(d=this.diagnostic)===null||d===void 0||d.log(e1.EVENTS.GENERAL_ERROR,{message:\"Had error decrypting\",value:\"selectedAddress\"})}},this.handleMetadataUpdated=async(c,u)=>{var d,h;try{let m=await this.cipher.decrypt(u);(d=this.listener)===null||d===void 0||d.metadataUpdated(c,m)}catch{(h=this.diagnostic)===null||h===void 0||h.log(e1.EVENTS.GENERAL_ERROR,{message:\"Had error decrypting\",value:c})}},this.handleWalletUsernameUpdated=async c=>{this.handleMetadataUpdated(zwe.WALLET_USER_NAME_KEY,c)},this.handleAppVersionUpdated=async c=>{this.handleMetadataUpdated(zwe.APP_VERSION_KEY,c)},this.handleChainUpdated=async(c,u)=>{var d,h;try{let m=await this.cipher.decrypt(c),g=await this.cipher.decrypt(u);(d=this.listener)===null||d===void 0||d.chainUpdated(m,g)}catch{(h=this.diagnostic)===null||h===void 0||h.log(e1.EVENTS.GENERAL_ERROR,{message:\"Had error decrypting\",value:\"chainId|jsonRpcUrl\"})}},this.session=e,this.cipher=new c$e.Cipher(e.secret),this.diagnostic=o,this.listener=r;let a=new $U.WalletLinkWebSocket(`${n}/rpc`,i);a.setConnectionStateListener(async c=>{var u;(u=this.diagnostic)===null||u===void 0||u.log(e1.EVENTS.CONNECTED_STATE_CHANGE,{state:c,sessionIdHash:a8.Session.hash(e.id)});let d=!1;switch(c){case $U.ConnectionState.DISCONNECTED:if(!this.destroyed){let h=async()=>{await new Promise(m=>setTimeout(m,5e3)),this.destroyed||a.connect().catch(()=>{h()})};h()}break;case $U.ConnectionState.CONNECTED:try{await this.authenticate(),this.sendIsLinked(),this.sendGetSessionConfig(),d=!0}catch{}this.updateLastHeartbeat(),setInterval(()=>{this.heartbeat()},Hwe),this.shouldFetchUnseenEventsOnConnect&&this.fetchUnseenEventsAPI();break;case $U.ConnectionState.CONNECTING:break}this.connected!==d&&(this.connected=d)}),a.setIncomingDataListener(c=>{var u,d,h;switch(c.type){case\"Heartbeat\":this.updateLastHeartbeat();return;case\"IsLinkedOK\":case\"Linked\":{let m=c.type===\"IsLinkedOK\"?c.linked:void 0;(u=this.diagnostic)===null||u===void 0||u.log(e1.EVENTS.LINKED,{sessionIdHash:a8.Session.hash(e.id),linked:m,type:c.type,onlineGuests:c.onlineGuests}),this.linked=m||c.onlineGuests>0;break}case\"GetSessionConfigOK\":case\"SessionConfigUpdated\":{(d=this.diagnostic)===null||d===void 0||d.log(e1.EVENTS.SESSION_CONFIG_RECEIVED,{sessionIdHash:a8.Session.hash(e.id),metadata_keys:c&&c.metadata?Object.keys(c.metadata):void 0}),this.handleSessionMetadataUpdated(c.metadata);break}case\"Event\":{this.handleIncomingEvent(c);break}}c.id!==void 0&&((h=this.requestResolutions.get(c.id))===null||h===void 0||h(c))}),this.ws=a,this.http=new l$e.WalletLinkHTTP(n,e.id,e.key)}connect(){var e;if(this.destroyed)throw new Error(\"instance is destroyed\");(e=this.diagnostic)===null||e===void 0||e.log(e1.EVENTS.STARTED_CONNECTING,{sessionIdHash:a8.Session.hash(this.session.id)}),this.ws.connect()}destroy(){var e;this.destroyed=!0,this.ws.disconnect(),(e=this.diagnostic)===null||e===void 0||e.log(e1.EVENTS.DISCONNECTED,{sessionIdHash:a8.Session.hash(this.session.id)}),this.listener=void 0}get isDestroyed(){return this.destroyed}get connected(){return this._connected}set connected(e){var n,r;this._connected=e,e&&((n=this.onceConnected)===null||n===void 0||n.call(this)),(r=this.listener)===null||r===void 0||r.connectedUpdated(e)}setOnceConnected(e){return new Promise(n=>{this.connected?e().then(n):this.onceConnected=()=>{e().then(n),this.onceConnected=void 0}})}get linked(){return this._linked}set linked(e){var n,r;this._linked=e,e&&((n=this.onceLinked)===null||n===void 0||n.call(this)),(r=this.listener)===null||r===void 0||r.linkedUpdated(e)}setOnceLinked(e){return new Promise(n=>{this.linked?e().then(n):this.onceLinked=()=>{e().then(n),this.onceLinked=void 0}})}async handleIncomingEvent(e){var n,r;if(!(e.type!==\"Event\"||e.event!==\"Web3Response\"))try{let o=await this.cipher.decrypt(e.data),i=JSON.parse(o);if(i.type!==\"WEB3_RESPONSE\")return;(n=this.listener)===null||n===void 0||n.handleWeb3ResponseMessage(i)}catch{(r=this.diagnostic)===null||r===void 0||r.log(e1.EVENTS.GENERAL_ERROR,{message:\"Had error decrypting\",value:\"incomingEvent\"})}}async checkUnseenEvents(){if(!this.connected){this.shouldFetchUnseenEventsOnConnect=!0;return}await new Promise(e=>setTimeout(e,250));try{await this.fetchUnseenEventsAPI()}catch(e){console.error(\"Unable to check for unseen events\",e)}}async fetchUnseenEventsAPI(){this.shouldFetchUnseenEventsOnConnect=!1,(await this.http.fetchUnseenEvents()).forEach(n=>this.handleIncomingEvent(n))}async setSessionMetadata(e,n){let r={type:\"SetSessionConfig\",id:(0,s8.IntNumber)(this.nextReqId++),sessionId:this.session.id,metadata:{[e]:n}};return this.setOnceConnected(async()=>{let o=await this.makeRequest(r);if(o.type===\"Fail\")throw new Error(o.error||\"failed to set session metadata\")})}async publishEvent(e,n,r=!1){let o=await this.cipher.encrypt(JSON.stringify(Object.assign(Object.assign({},n),{origin:location.origin,relaySource:window.coinbaseWalletExtension?\"injected_sdk\":\"sdk\"}))),i={type:\"PublishEvent\",id:(0,s8.IntNumber)(this.nextReqId++),sessionId:this.session.id,event:e,data:o,callWebhook:r};return this.setOnceLinked(async()=>{let a=await this.makeRequest(i);if(a.type===\"Fail\")throw new Error(a.error||\"failed to publish event\");return a.eventId})}sendData(e){this.ws.sendData(JSON.stringify(e))}updateLastHeartbeat(){this.lastHeartbeatResponse=Date.now()}heartbeat(){if(Date.now()-this.lastHeartbeatResponse>Hwe*2){this.ws.disconnect();return}try{this.ws.sendData(\"h\")}catch{}}async makeRequest(e,n=u$e){let r=e.id;this.sendData(e);let o;return Promise.race([new Promise((i,a)=>{o=window.setTimeout(()=>{a(new Error(`request ${r} timed out`))},n)}),new Promise(i=>{this.requestResolutions.set(r,a=>{clearTimeout(o),i(a),this.requestResolutions.delete(r)})})])}async authenticate(){let e={type:\"HostSession\",id:(0,s8.IntNumber)(this.nextReqId++),sessionId:this.session.id,sessionKey:this.session.key},n=await this.makeRequest(e);if(n.type===\"Fail\")throw new Error(n.error||\"failed to authentcate\")}sendIsLinked(){let e={type:\"IsLinked\",id:(0,s8.IntNumber)(this.nextReqId++),sessionId:this.session.id};this.sendData(e)}sendGetSessionConfig(){let e={type:\"GetSessionConfig\",id:(0,s8.IntNumber)(this.nextReqId++),sessionId:this.session.id};this.sendData(e)}};KU.WalletLinkConnection=tX});var Wwe=be(nX=>{\"use strict\";p();Object.defineProperty(nX,\"__esModule\",{value:!0});nX.default=\\'@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;counter-increment:none;counter-reset:none;direction:ltr;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\\\\\201C\" \"\\\\\\\\201D\" \"\\\\\\\\2018\" \"\\\\\\\\2019\";tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset strong{font-weight:bold}.-cbwsdk-css-reset *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}\\'});var rX=be(c8=>{\"use strict\";p();var d$e=c8&&c8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(c8,\"__esModule\",{value:!0});c8.injectCssReset=void 0;var f$e=d$e(Wwe());function h$e(){let t=document.createElement(\"style\");t.type=\"text/css\",t.appendChild(document.createTextNode(f$e.default)),document.documentElement.appendChild(t)}c8.injectCssReset=h$e});var $we=be(GU=>{\"use strict\";p();Object.defineProperty(GU,\"__esModule\",{value:!0});GU.CloseIcon=void 0;var Vwe=(Dc(),go(wd));function p$e(t){return(0,Vwe.h)(\"svg\",Object.assign({width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,Vwe.h)(\"path\",{d:\"M13.7677 13L12.3535 14.4142L18.3535 20.4142L12.3535 26.4142L13.7677 27.8284L19.7677 21.8284L25.7677 27.8284L27.1819 26.4142L21.1819 20.4142L27.1819 14.4142L25.7677 13L19.7677 19L13.7677 13Z\"}))}GU.CloseIcon=p$e});var Kwe=be(YU=>{\"use strict\";p();Object.defineProperty(YU,\"__esModule\",{value:!0});YU.CoinbaseWalletRound=void 0;var ZU=(Dc(),go(wd));function m$e(t){return(0,ZU.h)(\"svg\",Object.assign({width:\"28\",height:\"28\",viewBox:\"0 0 28 28\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,ZU.h)(\"circle\",{cx:\"14\",cy:\"14\",r:\"14\",fill:\"#0052FF\"}),(0,ZU.h)(\"path\",{d:\"M23.8521 14.0003C23.8521 19.455 19.455 23.8521 14.0003 23.8521C8.54559 23.8521 4.14844 19.455 4.14844 14.0003C4.14844 8.54559 8.54559 4.14844 14.0003 4.14844C19.455 4.14844 23.8521 8.54559 23.8521 14.0003Z\",fill:\"white\"}),(0,ZU.h)(\"path\",{d:\"M11.1855 12.5042C11.1855 12.0477 11.1855 11.7942 11.2835 11.642C11.3814 11.4899 11.4793 11.3377 11.6261 11.287C11.8219 11.1855 12.0178 11.1855 12.5073 11.1855H15.4934C15.983 11.1855 16.1788 11.1855 16.3746 11.287C16.5215 11.3884 16.6683 11.4899 16.7173 11.642C16.8152 11.8449 16.8152 12.0477 16.8152 12.5042V15.4965C16.8152 15.953 16.8152 16.2066 16.7173 16.3587C16.6194 16.5109 16.5215 16.663 16.3746 16.7137C16.1788 16.8152 15.983 16.8152 15.4934 16.8152H12.5073C12.0178 16.8152 11.8219 16.8152 11.6261 16.7137C11.4793 16.6123 11.3324 16.5109 11.2835 16.3587C11.1855 16.1558 11.1855 15.953 11.1855 15.4965V12.5042Z\",fill:\"#0052FF\"}))}YU.CoinbaseWalletRound=m$e});var Gwe=be(QU=>{\"use strict\";p();Object.defineProperty(QU,\"__esModule\",{value:!0});QU.QRCodeIcon=void 0;var xI=(Dc(),go(wd));function g$e(t){return(0,xI.h)(\"svg\",Object.assign({width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,xI.h)(\"path\",{d:\"M3 3V8.99939L5 8.99996V5H9V3H3Z\"}),(0,xI.h)(\"path\",{d:\"M15 21L21 21V15.0006L19 15V19L15 19V21Z\"}),(0,xI.h)(\"path\",{d:\"M21 9H19V5H15.0006L15 3H21V9Z\"}),(0,xI.h)(\"path\",{d:\"M3 15V21H8.99939L8.99996 19H5L5 15H3Z\"}))}QU.QRCodeIcon=g$e});var Xwe=be((Pon,Jwe)=>{p();function Zwe(t){this.mode=_h.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(var e=0,n=this.data.length;e<n;e++){var r=[],o=this.data.charCodeAt(e);o>65536?(r[0]=240|(o&1835008)>>>18,r[1]=128|(o&258048)>>>12,r[2]=128|(o&4032)>>>6,r[3]=128|o&63):o>2048?(r[0]=224|(o&61440)>>>12,r[1]=128|(o&4032)>>>6,r[2]=128|o&63):o>128?(r[0]=192|(o&1984)>>>6,r[1]=128|o&63):r[0]=o,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}Zwe.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,n=this.parsedData.length;e<n;e++)t.put(this.parsedData[e],8)}};function n1(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}n1.prototype={addData:function(t){var e=new Zwe(t);this.dataList.push(e),this.dataCache=null},isDark:function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+\",\"+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,e){this.moduleCount=this.typeNumber*4+17,this.modules=new Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++){this.modules[n]=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++)this.modules[n][r]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,e),this.typeNumber>=7&&this.setupTypeNumber(t),this.dataCache==null&&(this.dataCache=n1.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var n=-1;n<=7;n++)if(!(t+n<=-1||this.moduleCount<=t+n))for(var r=-1;r<=7;r++)e+r<=-1||this.moduleCount<=e+r||(0<=n&&n<=6&&(r==0||r==6)||0<=r&&r<=6&&(n==0||n==6)||2<=n&&n<=4&&2<=r&&r<=4?this.modules[t+n][e+r]=!0:this.modules[t+n][e+r]=!1)},getBestMaskPattern:function(){for(var t=0,e=0,n=0;n<8;n++){this.makeImpl(!0,n);var r=ks.getLostPoint(this);(n==0||t>r)&&(t=r,e=n)}return e},createMovieClip:function(t,e,n){var r=t.createEmptyMovieClip(e,n),o=1;this.make();for(var i=0;i<this.modules.length;i++)for(var a=i*o,c=0;c<this.modules[i].length;c++){var u=c*o,d=this.modules[i][c];d&&(r.beginFill(0,100),r.moveTo(u,a),r.lineTo(u+o,a),r.lineTo(u+o,a+o),r.lineTo(u,a+o),r.endFill())}return r},setupTimingPattern:function(){for(var t=8;t<this.moduleCount-8;t++)this.modules[t][6]==null&&(this.modules[t][6]=t%2==0);for(var e=8;e<this.moduleCount-8;e++)this.modules[6][e]==null&&(this.modules[6][e]=e%2==0)},setupPositionAdjustPattern:function(){for(var t=ks.getPatternPosition(this.typeNumber),e=0;e<t.length;e++)for(var n=0;n<t.length;n++){var r=t[e],o=t[n];if(this.modules[r][o]==null)for(var i=-2;i<=2;i++)for(var a=-2;a<=2;a++)i==-2||i==2||a==-2||a==2||i==0&&a==0?this.modules[r+i][o+a]=!0:this.modules[r+i][o+a]=!1}},setupTypeNumber:function(t){for(var e=ks.getBCHTypeNumber(this.typeNumber),n=0;n<18;n++){var r=!t&&(e>>n&1)==1;this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=r}for(var n=0;n<18;n++){var r=!t&&(e>>n&1)==1;this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r}},setupTypeInfo:function(t,e){for(var n=this.errorCorrectLevel<<3|e,r=ks.getBCHTypeInfo(n),o=0;o<15;o++){var i=!t&&(r>>o&1)==1;o<6?this.modules[o][8]=i:o<8?this.modules[o+1][8]=i:this.modules[this.moduleCount-15+o][8]=i}for(var o=0;o<15;o++){var i=!t&&(r>>o&1)==1;o<8?this.modules[8][this.moduleCount-o-1]=i:o<9?this.modules[8][15-o-1+1]=i:this.modules[8][15-o-1]=i}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var n=-1,r=this.moduleCount-1,o=7,i=0,a=this.moduleCount-1;a>0;a-=2)for(a==6&&a--;;){for(var c=0;c<2;c++)if(this.modules[r][a-c]==null){var u=!1;i<t.length&&(u=(t[i]>>>o&1)==1);var d=ks.getMask(e,r,a-c);d&&(u=!u),this.modules[r][a-c]=u,o--,o==-1&&(i++,o=7)}if(r+=n,r<0||this.moduleCount<=r){r-=n,n=-n;break}}}};n1.PAD0=236;n1.PAD1=17;n1.createData=function(t,e,n){for(var r=t1.getRSBlocks(t,e),o=new Ywe,i=0;i<n.length;i++){var a=n[i];o.put(a.mode,4),o.put(a.getLength(),ks.getLengthInBits(a.mode,t)),a.write(o)}for(var c=0,i=0;i<r.length;i++)c+=r[i].dataCount;if(o.getLengthInBits()>c*8)throw new Error(\"code length overflow. (\"+o.getLengthInBits()+\">\"+c*8+\")\");for(o.getLengthInBits()+4<=c*8&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=c*8||(o.put(n1.PAD0,8),o.getLengthInBits()>=c*8));)o.put(n1.PAD1,8);return n1.createBytes(o,r)};n1.createBytes=function(t,e){for(var n=0,r=0,o=0,i=new Array(e.length),a=new Array(e.length),c=0;c<e.length;c++){var u=e[c].dataCount,d=e[c].totalCount-u;r=Math.max(r,u),o=Math.max(o,d),i[c]=new Array(u);for(var h=0;h<i[c].length;h++)i[c][h]=255&t.buffer[h+n];n+=u;var m=ks.getErrorCorrectPolynomial(d),g=new l8(i[c],m.getLength()-1),b=g.mod(m);a[c]=new Array(m.getLength()-1);for(var h=0;h<a[c].length;h++){var E=h+b.getLength()-a[c].length;a[c][h]=E>=0?b.get(E):0}}for(var C=0,h=0;h<e.length;h++)C+=e[h].totalCount;for(var T=new Array(C),R=0,h=0;h<r;h++)for(var c=0;c<e.length;c++)h<i[c].length&&(T[R++]=i[c][h]);for(var h=0;h<o;h++)for(var c=0;c<e.length;c++)h<a[c].length&&(T[R++]=a[c][h]);return T};var _h={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},Tx={L:1,M:0,Q:3,H:2},Ax={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},ks={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;ks.getBCHDigit(e)-ks.getBCHDigit(ks.G15)>=0;)e^=ks.G15<<ks.getBCHDigit(e)-ks.getBCHDigit(ks.G15);return(t<<10|e)^ks.G15_MASK},getBCHTypeNumber:function(t){for(var e=t<<12;ks.getBCHDigit(e)-ks.getBCHDigit(ks.G18)>=0;)e^=ks.G18<<ks.getBCHDigit(e)-ks.getBCHDigit(ks.G18);return t<<12|e},getBCHDigit:function(t){for(var e=0;t!=0;)e++,t>>>=1;return e},getPatternPosition:function(t){return ks.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,n){switch(t){case Ax.PATTERN000:return(e+n)%2==0;case Ax.PATTERN001:return e%2==0;case Ax.PATTERN010:return n%3==0;case Ax.PATTERN011:return(e+n)%3==0;case Ax.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2==0;case Ax.PATTERN101:return e*n%2+e*n%3==0;case Ax.PATTERN110:return(e*n%2+e*n%3)%2==0;case Ax.PATTERN111:return(e*n%3+(e+n)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new l8([1],0),n=0;n<t;n++)e=e.multiply(new l8([1,Uc.gexp(n)],0));return e},getLengthInBits:function(t,e){if(1<=e&&e<10)switch(t){case _h.MODE_NUMBER:return 10;case _h.MODE_ALPHA_NUM:return 9;case _h.MODE_8BIT_BYTE:return 8;case _h.MODE_KANJI:return 8;default:throw new Error(\"mode:\"+t)}else if(e<27)switch(t){case _h.MODE_NUMBER:return 12;case _h.MODE_ALPHA_NUM:return 11;case _h.MODE_8BIT_BYTE:return 16;case _h.MODE_KANJI:return 10;default:throw new Error(\"mode:\"+t)}else if(e<41)switch(t){case _h.MODE_NUMBER:return 14;case _h.MODE_ALPHA_NUM:return 13;case _h.MODE_8BIT_BYTE:return 16;case _h.MODE_KANJI:return 12;default:throw new Error(\"mode:\"+t)}else throw new Error(\"type:\"+e)},getLostPoint:function(t){for(var e=t.getModuleCount(),n=0,r=0;r<e;r++)for(var o=0;o<e;o++){for(var i=0,a=t.isDark(r,o),c=-1;c<=1;c++)if(!(r+c<0||e<=r+c))for(var u=-1;u<=1;u++)o+u<0||e<=o+u||c==0&&u==0||a==t.isDark(r+c,o+u)&&i++;i>5&&(n+=3+i-5)}for(var r=0;r<e-1;r++)for(var o=0;o<e-1;o++){var d=0;t.isDark(r,o)&&d++,t.isDark(r+1,o)&&d++,t.isDark(r,o+1)&&d++,t.isDark(r+1,o+1)&&d++,(d==0||d==4)&&(n+=3)}for(var r=0;r<e;r++)for(var o=0;o<e-6;o++)t.isDark(r,o)&&!t.isDark(r,o+1)&&t.isDark(r,o+2)&&t.isDark(r,o+3)&&t.isDark(r,o+4)&&!t.isDark(r,o+5)&&t.isDark(r,o+6)&&(n+=40);for(var o=0;o<e;o++)for(var r=0;r<e-6;r++)t.isDark(r,o)&&!t.isDark(r+1,o)&&t.isDark(r+2,o)&&t.isDark(r+3,o)&&t.isDark(r+4,o)&&!t.isDark(r+5,o)&&t.isDark(r+6,o)&&(n+=40);for(var h=0,o=0;o<e;o++)for(var r=0;r<e;r++)t.isDark(r,o)&&h++;var m=Math.abs(100*h/e/e-50)/5;return n+=m*10,n}},Uc={glog:function(t){if(t<1)throw new Error(\"glog(\"+t+\")\");return Uc.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return Uc.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(Ha=0;Ha<8;Ha++)Uc.EXP_TABLE[Ha]=1<<Ha;var Ha;for(Ha=8;Ha<256;Ha++)Uc.EXP_TABLE[Ha]=Uc.EXP_TABLE[Ha-4]^Uc.EXP_TABLE[Ha-5]^Uc.EXP_TABLE[Ha-6]^Uc.EXP_TABLE[Ha-8];var Ha;for(Ha=0;Ha<255;Ha++)Uc.LOG_TABLE[Uc.EXP_TABLE[Ha]]=Ha;var Ha;function l8(t,e){if(t.length==null)throw new Error(t.length+\"/\"+e);for(var n=0;n<t.length&&t[n]==0;)n++;this.num=new Array(t.length-n+e);for(var r=0;r<t.length-n;r++)this.num[r]=t[r+n]}l8.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=new Array(this.getLength()+t.getLength()-1),n=0;n<this.getLength();n++)for(var r=0;r<t.getLength();r++)e[n+r]^=Uc.gexp(Uc.glog(this.get(n))+Uc.glog(t.get(r)));return new l8(e,0)},mod:function(t){if(this.getLength()-t.getLength()<0)return this;for(var e=Uc.glog(this.get(0))-Uc.glog(t.get(0)),n=new Array(this.getLength()),r=0;r<this.getLength();r++)n[r]=this.get(r);for(var r=0;r<t.getLength();r++)n[r]^=Uc.gexp(Uc.glog(t.get(r))+e);return new l8(n,0).mod(t)}};function t1(t,e){this.totalCount=t,this.dataCount=e}t1.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];t1.getRSBlocks=function(t,e){var n=t1.getRsBlockTable(t,e);if(n==null)throw new Error(\"bad rs block @ typeNumber:\"+t+\"/errorCorrectLevel:\"+e);for(var r=n.length/3,o=[],i=0;i<r;i++)for(var a=n[i*3+0],c=n[i*3+1],u=n[i*3+2],d=0;d<a;d++)o.push(new t1(c,u));return o};t1.getRsBlockTable=function(t,e){switch(e){case Tx.L:return t1.RS_BLOCK_TABLE[(t-1)*4+0];case Tx.M:return t1.RS_BLOCK_TABLE[(t-1)*4+1];case Tx.Q:return t1.RS_BLOCK_TABLE[(t-1)*4+2];case Tx.H:return t1.RS_BLOCK_TABLE[(t-1)*4+3];default:return}};function Ywe(){this.buffer=[],this.length=0}Ywe.prototype={get:function(t){var e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)==1},put:function(t,e){for(var n=0;n<e;n++)this.putBit((t>>>e-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var oX=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function Qwe(t){var e=this;if(this.options={padding:4,width:256,height:256,typeNumber:4,color:\"#000000\",background:\"#ffffff\",ecl:\"M\",image:{svg:\"\",width:0,height:0}},typeof t==\"string\"&&(t={content:t}),t)for(var n in t)this.options[n]=t[n];if(typeof this.options.content!=\"string\")throw new Error(\"Expected \\'content\\' as string!\");if(this.options.content.length===0)throw new Error(\"Expected \\'content\\' to be non-empty!\");if(!(this.options.padding>=0))throw new Error(\"Expected \\'padding\\' value to be non-negative!\");if(!(this.options.width>0)||!(this.options.height>0))throw new Error(\"Expected \\'width\\' or \\'height\\' value to be higher than zero!\");function r(d){switch(d){case\"L\":return Tx.L;case\"M\":return Tx.M;case\"Q\":return Tx.Q;case\"H\":return Tx.H;default:throw new Error(\"Unknwon error correction level: \"+d)}}function o(d,h){for(var m=i(d),g=1,b=0,E=0,C=oX.length;E<=C;E++){var T=oX[E];if(!T)throw new Error(\"Content too long: expected \"+b+\" but got \"+m);switch(h){case\"L\":b=T[0];break;case\"M\":b=T[1];break;case\"Q\":b=T[2];break;case\"H\":b=T[3];break;default:throw new Error(\"Unknwon error correction level: \"+h)}if(m<=b)break;g++}if(g>oX.length)throw new Error(\"Content too long\");return g}function i(d){var h=encodeURI(d).toString().replace(/\\\\%[0-9a-fA-F]{2}/g,\"a\");return h.length+(h.length!=d?3:0)}var a=this.options.content,c=o(a,this.options.ecl),u=r(this.options.ecl);this.qrcode=new n1(c,u),this.qrcode.addData(a),this.qrcode.make()}Qwe.prototype.svg=function(t){var e=this.options||{},n=this.qrcode.modules;typeof t>\"u\"&&(t={container:e.container||\"svg\"});for(var r=typeof e.pretty<\"u\"?!!e.pretty:!0,o=r?\"  \":\"\",i=r?`\\\\r\\n`:\"\",a=e.width,c=e.height,u=n.length,d=a/(u+2*e.padding),h=c/(u+2*e.padding),m=typeof e.join<\"u\"?!!e.join:!1,g=typeof e.swap<\"u\"?!!e.swap:!1,b=typeof e.xmlDeclaration<\"u\"?!!e.xmlDeclaration:!0,E=typeof e.predefined<\"u\"?!!e.predefined:!1,C=E?o+\\'<defs><path id=\"qrmodule\" d=\"M0 0 h\\'+h+\" v\"+d+\\' H0 z\" style=\"fill:\\'+e.color+\\';shape-rendering:crispEdges;\" /></defs>\\'+i:\"\",T=o+\\'<rect x=\"0\" y=\"0\" width=\"\\'+a+\\'\" height=\"\\'+c+\\'\" style=\"fill:\\'+e.background+\\';shape-rendering:crispEdges;\"/>\\'+i,R=\"\",L=\"\",D=0;D<u;D++)for(var G=0;G<u;G++){var W=n[G][D];if(W){var J=G*d+e.padding*d,ne=D*h+e.padding*h;if(g){var ie=J;J=ne,ne=ie}if(m){var Z=d+J,ae=h+ne;J=Number.isInteger(J)?Number(J):J.toFixed(2),ne=Number.isInteger(ne)?Number(ne):ne.toFixed(2),Z=Number.isInteger(Z)?Number(Z):Z.toFixed(2),ae=Number.isInteger(ae)?Number(ae):ae.toFixed(2),L+=\"M\"+J+\",\"+ne+\" V\"+ae+\" H\"+Z+\" V\"+ne+\" H\"+J+\" Z \"}else E?R+=o+\\'<use x=\"\\'+J.toString()+\\'\" y=\"\\'+ne.toString()+\\'\" href=\"#qrmodule\" />\\'+i:R+=o+\\'<rect x=\"\\'+J.toString()+\\'\" y=\"\\'+ne.toString()+\\'\" width=\"\\'+d+\\'\" height=\"\\'+h+\\'\" style=\"fill:\\'+e.color+\\';shape-rendering:crispEdges;\"/>\\'+i}}m&&(R=o+\\'<path x=\"0\" y=\"0\" style=\"fill:\\'+e.color+\\';shape-rendering:crispEdges;\" d=\"\\'+L+\\'\" />\\');let V=\"\";if(this.options.image!==void 0&&this.options.image.svg){let F=a*this.options.image.width/100,_=c*this.options.image.height/100,O=a/2-F/2,z=c/2-_/2;V+=`<svg x=\"${O}\" y=\"${z}\" width=\"${F}\" height=\"${_}\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMinYMin meet\">`,V+=this.options.image.svg+i,V+=\"</svg>\"}var $=\"\";switch(t.container){case\"svg\":b&&($+=\\'<?xml version=\"1.0\" standalone=\"yes\"?>\\'+i),$+=\\'<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"\\'+a+\\'\" height=\"\\'+c+\\'\">\\'+i,$+=C+T+R,$+=V,$+=\"</svg>\";break;case\"svg-viewbox\":b&&($+=\\'<?xml version=\"1.0\" standalone=\"yes\"?>\\'+i),$+=\\'<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 \\'+a+\" \"+c+\\'\">\\'+i,$+=C+T+R,$+=V,$+=\"</svg>\";break;case\"g\":$+=\\'<g width=\"\\'+a+\\'\" height=\"\\'+c+\\'\">\\'+i,$+=C+T+R,$+=V,$+=\"</g>\";break;default:$+=(C+T+R+V).replace(/^\\\\s+/,\"\");break}return $};Jwe.exports=Qwe});var txe=be(u8=>{\"use strict\";p();var y$e=u8&&u8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(u8,\"__esModule\",{value:!0});u8.QRCode=void 0;var b$e=(Dc(),go(wd)),exe=(JC(),go(iI)),v$e=y$e(Xwe()),w$e=t=>{let[e,n]=(0,exe.useState)(\"\");return(0,exe.useEffect)(()=>{var r,o;let i=new v$e.default({content:t.content,background:t.bgColor||\"#ffffff\",color:t.fgColor||\"#000000\",container:\"svg\",ecl:\"M\",width:(r=t.width)!==null&&r!==void 0?r:256,height:(o=t.height)!==null&&o!==void 0?o:256,padding:0,image:t.image}),a=globalThis.Buffer.from(i.svg(),\"utf8\").toString(\"base64\");n(`data:image/svg+xml;base64,${a}`)},[t.bgColor,t.content,t.fgColor,t.height,t.image,t.width]),e?(0,b$e.h)(\"img\",{src:e,alt:\"QR Code\"}):null};u8.QRCode=w$e});var nxe=be(iX=>{\"use strict\";p();Object.defineProperty(iX,\"__esModule\",{value:!0});iX.default=\".-cbwsdk-css-reset .-cbwsdk-spinner{display:inline-block}.-cbwsdk-css-reset .-cbwsdk-spinner svg{display:inline-block;animation:2s linear infinite -cbwsdk-spinner-svg}.-cbwsdk-css-reset .-cbwsdk-spinner svg circle{animation:1.9s ease-in-out infinite both -cbwsdk-spinner-circle;display:block;fill:rgba(0,0,0,0);stroke-dasharray:283;stroke-dashoffset:280;stroke-linecap:round;stroke-width:10px;transform-origin:50% 50%}@keyframes -cbwsdk-spinner-svg{0%{transform:rotateZ(0deg)}100%{transform:rotateZ(360deg)}}@keyframes -cbwsdk-spinner-circle{0%,25%{stroke-dashoffset:280;transform:rotate(0)}50%,75%{stroke-dashoffset:75;transform:rotate(45deg)}100%{stroke-dashoffset:280;transform:rotate(360deg)}}\"});var rxe=be(d8=>{\"use strict\";p();var x$e=d8&&d8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(d8,\"__esModule\",{value:!0});d8.Spinner=void 0;var JU=(Dc(),go(wd)),E$e=x$e(nxe()),S$e=t=>{var e;let n=(e=t.size)!==null&&e!==void 0?e:64,r=t.color||\"#000\";return(0,JU.h)(\"div\",{class:\"-cbwsdk-spinner\"},(0,JU.h)(\"style\",null,E$e.default),(0,JU.h)(\"svg\",{viewBox:\"0 0 100 100\",xmlns:\"http://www.w3.org/2000/svg\",style:{width:n,height:n}},(0,JU.h)(\"circle\",{style:{cx:50,cy:50,r:45,stroke:r}})))};d8.Spinner=S$e});var oxe=be(sX=>{\"use strict\";p();Object.defineProperty(sX,\"__esModule\",{value:!0});sX.default=\".-cbwsdk-css-reset .-cbwsdk-connect-content{height:430px;width:700px;border-radius:12px;padding:30px}.-cbwsdk-css-reset .-cbwsdk-connect-content.light{background:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content.dark{background:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-header{display:flex;align-items:center;justify-content:space-between;margin:0 0 30px}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading{font-style:normal;font-weight:500;font-size:28px;line-height:36px;margin:0}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-heading.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-layout{display:flex;flex-direction:row}.-cbwsdk-css-reset .-cbwsdk-connect-content-column-left{margin-right:30px;display:flex;flex-direction:column;justify-content:space-between}.-cbwsdk-css-reset .-cbwsdk-connect-content-column-right{flex:25%;margin-right:34px}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-wrapper{width:220px;height:220px;border-radius:12px;display:flex;justify-content:center;align-items:center;background:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.light{background-color:rgba(255,255,255,.95)}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.light>p{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.dark{background-color:rgba(10,11,13,.9)}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting.dark>p{color:#fff}.-cbwsdk-css-reset .-cbwsdk-connect-content-qr-connecting>p{font-size:12px;font-weight:bold;margin-top:16px}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app{border-radius:8px;font-size:14px;line-height:20px;padding:12px;width:339px}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app.light{background:#eef0f3;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-connect-content-update-app.dark{background:#1e2025;color:#8a919e}.-cbwsdk-css-reset .-cbwsdk-cancel-button{-webkit-appearance:none;border:none;background:none;cursor:pointer;padding:0;margin:0}.-cbwsdk-css-reset .-cbwsdk-cancel-button-x{position:relative;display:block;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-wallet-steps{padding:0 0 0 16px;margin:0;width:100%;list-style:decimal}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item{list-style-type:decimal;display:list-item;font-style:normal;font-weight:400;font-size:16px;line-height:24px;margin-top:20px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-item-wrapper{display:flex;align-items:center}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-pad-left{margin-left:6px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon{display:flex;border-radius:50%;height:24px;width:24px}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon svg{margin:auto;display:block}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon.light{background:#0052ff}.-cbwsdk-css-reset .-cbwsdk-wallet-steps-icon.dark{background:#588af5}.-cbwsdk-css-reset .-cbwsdk-connect-item{align-items:center;display:flex;flex-direction:row;padding:16px 24px;gap:12px;cursor:pointer;border-radius:100px;font-weight:600}.-cbwsdk-css-reset .-cbwsdk-connect-item.light{background:#f5f8ff;color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-connect-item.dark{background:#001033;color:#588af5}.-cbwsdk-css-reset .-cbwsdk-connect-item-copy-wrapper{margin:0 4px 0 8px}.-cbwsdk-css-reset .-cbwsdk-connect-item-title{margin:0 0 0;font-size:16px;line-height:24px;font-weight:500}.-cbwsdk-css-reset .-cbwsdk-connect-item-description{font-weight:400;font-size:14px;line-height:20px;margin:0}\"});var axe=be(Rx=>{\"use strict\";p();var ixe=Rx&&Rx.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Rx,\"__esModule\",{value:!0});Rx.CoinbaseWalletSteps=Rx.ConnectContent=void 0;var K6=ixe((_x(),go(ZC))),io=(Dc(),go(wd)),k$e=Yy(),_$e=IU(),C$e=$we(),A$e=Kwe(),T$e=Gwe(),R$e=txe(),I$e=rxe(),O$e=ixe(oxe()),aX={title:\"Coinbase Wallet app\",description:\"Connect with your self-custody wallet\",steps:sxe},P$e=t=>t===\"light\"?\"#FFFFFF\":\"#0A0B0D\";function M$e(t){let{theme:e}=t,n=(0,k$e.createQrUrl)(t.sessionId,t.sessionSecret,t.linkAPIUrl,t.isParentConnection,t.version,t.chainId),r=aX.steps;return(0,io.h)(\"div\",{\"data-testid\":\"connect-content\",className:(0,K6.default)(\"-cbwsdk-connect-content\",e)},(0,io.h)(\"style\",null,O$e.default),(0,io.h)(\"div\",{className:\"-cbwsdk-connect-content-header\"},(0,io.h)(\"h2\",{className:(0,K6.default)(\"-cbwsdk-connect-content-heading\",e)},\"Scan to connect with our mobile app\"),t.onCancel&&(0,io.h)(\"button\",{type:\"button\",className:\"-cbwsdk-cancel-button\",onClick:t.onCancel},(0,io.h)(C$e.CloseIcon,{fill:e===\"light\"?\"#0A0B0D\":\"#FFFFFF\"}))),(0,io.h)(\"div\",{className:\"-cbwsdk-connect-content-layout\"},(0,io.h)(\"div\",{className:\"-cbwsdk-connect-content-column-left\"},(0,io.h)(N$e,{title:aX.title,description:aX.description,theme:e})),(0,io.h)(\"div\",{className:\"-cbwsdk-connect-content-column-right\"},(0,io.h)(\"div\",{className:\"-cbwsdk-connect-content-qr-wrapper\"},(0,io.h)(R$e.QRCode,{content:n,width:200,height:200,fgColor:\"#000\",bgColor:\"transparent\"}),(0,io.h)(\"input\",{type:\"hidden\",name:\"cbw-cbwsdk-version\",value:_$e.LIB_VERSION}),(0,io.h)(\"input\",{type:\"hidden\",value:n})),(0,io.h)(r,{theme:e}),!t.isConnected&&(0,io.h)(\"div\",{\"data-testid\":\"connecting-spinner\",className:(0,K6.default)(\"-cbwsdk-connect-content-qr-connecting\",e)},(0,io.h)(I$e.Spinner,{size:36,color:e===\"dark\"?\"#FFF\":\"#000\"}),(0,io.h)(\"p\",null,\"Connecting...\")))))}Rx.ConnectContent=M$e;function N$e({title:t,description:e,theme:n}){return(0,io.h)(\"div\",{className:(0,K6.default)(\"-cbwsdk-connect-item\",n)},(0,io.h)(\"div\",null,(0,io.h)(A$e.CoinbaseWalletRound,null)),(0,io.h)(\"div\",{className:\"-cbwsdk-connect-item-copy-wrapper\"},(0,io.h)(\"h3\",{className:\"-cbwsdk-connect-item-title\"},t),(0,io.h)(\"p\",{className:\"-cbwsdk-connect-item-description\"},e)))}function sxe({theme:t}){return(0,io.h)(\"ol\",{className:\"-cbwsdk-wallet-steps\"},(0,io.h)(\"li\",{className:(0,K6.default)(\"-cbwsdk-wallet-steps-item\",t)},(0,io.h)(\"div\",{className:\"-cbwsdk-wallet-steps-item-wrapper\"},\"Open Coinbase Wallet app\")),(0,io.h)(\"li\",{className:(0,K6.default)(\"-cbwsdk-wallet-steps-item\",t)},(0,io.h)(\"div\",{className:\"-cbwsdk-wallet-steps-item-wrapper\"},(0,io.h)(\"span\",null,\"Tap \",(0,io.h)(\"strong\",null,\"Scan\"),\" \"),(0,io.h)(\"span\",{className:(0,K6.default)(\"-cbwsdk-wallet-steps-pad-left\",\"-cbwsdk-wallet-steps-icon\",t)},(0,io.h)(T$e.QRCodeIcon,{fill:P$e(t)})))))}Rx.CoinbaseWalletSteps=sxe});var lxe=be(XU=>{\"use strict\";p();Object.defineProperty(XU,\"__esModule\",{value:!0});XU.ArrowLeftIcon=void 0;var cxe=(Dc(),go(wd));function L$e(t){return(0,cxe.h)(\"svg\",Object.assign({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,cxe.h)(\"path\",{d:\"M8.60675 0.155884L7.37816 1.28209L12.7723 7.16662H0V8.83328H12.6548L6.82149 14.6666L8 15.8451L15.8201 8.02501L8.60675 0.155884Z\"}))}XU.ArrowLeftIcon=L$e});var uxe=be(ej=>{\"use strict\";p();Object.defineProperty(ej,\"__esModule\",{value:!0});ej.LaptopIcon=void 0;var cX=(Dc(),go(wd));function B$e(t){return(0,cX.h)(\"svg\",Object.assign({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,cX.h)(\"path\",{d:\"M1.8001 2.2002H12.2001V9.40019H1.8001V2.2002ZM3.4001 3.8002V7.80019H10.6001V3.8002H3.4001Z\"}),(0,cX.h)(\"path\",{d:\"M13.4001 10.2002H0.600098C0.600098 11.0838 1.31644 11.8002 2.2001 11.8002H11.8001C12.6838 11.8002 13.4001 11.0838 13.4001 10.2002Z\"}))}ej.LaptopIcon=B$e});var fxe=be(tj=>{\"use strict\";p();Object.defineProperty(tj,\"__esModule\",{value:!0});tj.SafeIcon=void 0;var dxe=(Dc(),go(wd));function D$e(t){return(0,dxe.h)(\"svg\",Object.assign({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",xmlns:\"http://www.w3.org/2000/svg\"},t),(0,dxe.h)(\"path\",{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",d:\"M0.600098 0.600098V11.8001H13.4001V0.600098H0.600098ZM7.0001 9.2001C5.3441 9.2001 4.0001 7.8561 4.0001 6.2001C4.0001 4.5441 5.3441 3.2001 7.0001 3.2001C8.6561 3.2001 10.0001 4.5441 10.0001 6.2001C10.0001 7.8561 8.6561 9.2001 7.0001 9.2001ZM0.600098 12.6001H3.8001V13.4001H0.600098V12.6001ZM10.2001 12.6001H13.4001V13.4001H10.2001V12.6001ZM8.8001 6.2001C8.8001 7.19421 7.99421 8.0001 7.0001 8.0001C6.00598 8.0001 5.2001 7.19421 5.2001 6.2001C5.2001 5.20598 6.00598 4.4001 7.0001 4.4001C7.99421 4.4001 8.8001 5.20598 8.8001 6.2001Z\"}))}tj.SafeIcon=D$e});var hxe=be(lX=>{\"use strict\";p();Object.defineProperty(lX,\"__esModule\",{value:!0});lX.default=\".-cbwsdk-css-reset .-cbwsdk-try-extension{display:flex;margin-top:12px;height:202px;width:700px;border-radius:12px;padding:30px}.-cbwsdk-css-reset .-cbwsdk-try-extension.light{background:#fff}.-cbwsdk-css-reset .-cbwsdk-try-extension.dark{background:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-try-extension-column-half{flex:50%}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading{font-style:normal;font-weight:500;font-size:25px;line-height:32px;margin:0;max-width:204px}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading.light{color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-try-extension-heading.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta{appearance:none;border:none;background:none;color:#0052ff;cursor:pointer;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta.light{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta.dark{color:#588af5}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta-wrapper{display:flex;align-items:center;margin-top:12px}.-cbwsdk-css-reset .-cbwsdk-try-extension-cta-icon{display:block;margin-left:4px;height:14px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0;padding:0;list-style:none;height:100%}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item{display:flex;align-items:center;flex-flow:nowrap;margin-top:24px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item:first-of-type{margin-top:0}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon-wrapper{display:block}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon{display:flex;height:32px;width:32px;border-radius:50%}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon svg{margin:auto;display:block}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon.light{background:#eef0f3}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-icon.dark{background:#1e2025}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy{display:block;font-weight:400;font-size:14px;line-height:20px;padding-left:12px}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy.light{color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-try-extension-list-item-copy.dark{color:#8a919e}\"});var mxe=be(f8=>{\"use strict\";p();var pxe=f8&&f8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(f8,\"__esModule\",{value:!0});f8.TryExtensionContent=void 0;var G6=pxe((_x(),go(ZC))),qa=(Dc(),go(wd)),uX=(JC(),go(iI)),F$e=lxe(),U$e=uxe(),j$e=fxe(),z$e=pxe(hxe());function H$e({theme:t}){let[e,n]=(0,uX.useState)(!1),r=(0,uX.useCallback)(()=>{window.open(\"https://api.wallet.coinbase.com/rpc/v2/desktop/chrome\",\"_blank\")},[]),o=(0,uX.useCallback)(()=>{e?window.location.reload():(r(),n(!0))},[r,e]);return(0,qa.h)(\"div\",{class:(0,G6.default)(\"-cbwsdk-try-extension\",t)},(0,qa.h)(\"style\",null,z$e.default),(0,qa.h)(\"div\",{class:\"-cbwsdk-try-extension-column-half\"},(0,qa.h)(\"h3\",{class:(0,G6.default)(\"-cbwsdk-try-extension-heading\",t)},\"Or try the Coinbase Wallet browser extension\"),(0,qa.h)(\"div\",{class:\"-cbwsdk-try-extension-cta-wrapper\"},(0,qa.h)(\"button\",{class:(0,G6.default)(\"-cbwsdk-try-extension-cta\",t),onClick:o},e?\"Refresh\":\"Install\"),(0,qa.h)(\"div\",null,!e&&(0,qa.h)(F$e.ArrowLeftIcon,{class:\"-cbwsdk-try-extension-cta-icon\",fill:t===\"light\"?\"#0052FF\":\"#588AF5\"})))),(0,qa.h)(\"div\",{class:\"-cbwsdk-try-extension-column-half\"},(0,qa.h)(\"ul\",{class:\"-cbwsdk-try-extension-list\"},(0,qa.h)(\"li\",{class:\"-cbwsdk-try-extension-list-item\"},(0,qa.h)(\"div\",{class:\"-cbwsdk-try-extension-list-item-icon-wrapper\"},(0,qa.h)(\"span\",{class:(0,G6.default)(\"-cbwsdk-try-extension-list-item-icon\",t)},(0,qa.h)(U$e.LaptopIcon,{fill:t===\"light\"?\"#0A0B0D\":\"#FFFFFF\"}))),(0,qa.h)(\"div\",{class:(0,G6.default)(\"-cbwsdk-try-extension-list-item-copy\",t)},\"Connect with dapps with just one click on your desktop browser\")),(0,qa.h)(\"li\",{class:\"-cbwsdk-try-extension-list-item\"},(0,qa.h)(\"div\",{class:\"-cbwsdk-try-extension-list-item-icon-wrapper\"},(0,qa.h)(\"span\",{class:(0,G6.default)(\"-cbwsdk-try-extension-list-item-icon\",t)},(0,qa.h)(j$e.SafeIcon,{fill:t===\"light\"?\"#0A0B0D\":\"#FFFFFF\"}))),(0,qa.h)(\"div\",{class:(0,G6.default)(\"-cbwsdk-try-extension-list-item-copy\",t)},\"Add an additional layer of security by using a supported Ledger hardware wallet\")))))}f8.TryExtensionContent=H$e});var gxe=be(dX=>{\"use strict\";p();Object.defineProperty(dX,\"__esModule\",{value:!0});dX.default=\".-cbwsdk-css-reset .-cbwsdk-connect-dialog{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop.light{background-color:rgba(0,0,0,.5)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop.dark{background-color:rgba(50,53,61,.4)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-box{display:flex;position:relative;flex-direction:column;transform:scale(1);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-box-hidden{opacity:0;transform:scale(0.85)}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-container{display:block}.-cbwsdk-css-reset .-cbwsdk-connect-dialog-container-hidden{display:none}\"});var bxe=be(h8=>{\"use strict\";p();var yxe=h8&&h8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(h8,\"__esModule\",{value:!0});h8.ConnectDialog=void 0;var fX=yxe((_x(),go(ZC))),Z6=(Dc(),go(wd)),hX=(JC(),go(iI)),q$e=axe(),W$e=mxe(),V$e=yxe(gxe()),$$e=t=>{let{isOpen:e,darkMode:n}=t,[r,o]=(0,hX.useState)(!e),[i,a]=(0,hX.useState)(!e);(0,hX.useEffect)(()=>{let u=[window.setTimeout(()=>{a(!e)},10)];return e?o(!1):u.push(window.setTimeout(()=>{o(!0)},360)),()=>{u.forEach(window.clearTimeout)}},[e]);let c=n?\"dark\":\"light\";return(0,Z6.h)(\"div\",{class:(0,fX.default)(\"-cbwsdk-connect-dialog-container\",r&&\"-cbwsdk-connect-dialog-container-hidden\")},(0,Z6.h)(\"style\",null,V$e.default),(0,Z6.h)(\"div\",{class:(0,fX.default)(\"-cbwsdk-connect-dialog-backdrop\",c,i&&\"-cbwsdk-connect-dialog-backdrop-hidden\")}),(0,Z6.h)(\"div\",{class:\"-cbwsdk-connect-dialog\"},(0,Z6.h)(\"div\",{class:(0,fX.default)(\"-cbwsdk-connect-dialog-box\",i&&\"-cbwsdk-connect-dialog-box-hidden\")},t.connectDisabled?null:(0,Z6.h)(q$e.ConnectContent,{theme:c,version:t.version,sessionId:t.sessionId,sessionSecret:t.sessionSecret,linkAPIUrl:t.linkAPIUrl,isConnected:t.isConnected,isParentConnection:t.isParentConnection,chainId:t.chainId,onCancel:t.onCancel}),(0,Z6.h)(W$e.TryExtensionContent,{theme:c}))))};h8.ConnectDialog=$$e});var vxe=be(nj=>{\"use strict\";p();Object.defineProperty(nj,\"__esModule\",{value:!0});nj.LinkFlow=void 0;var pX=(Dc(),go(wd)),K$e=bxe(),mX=class{constructor(e){this.connected=!1,this.chainId=1,this.isOpen=!1,this.onCancel=null,this.root=null,this.connectDisabled=!1,this.darkMode=e.darkMode,this.version=e.version,this.sessionId=e.sessionId,this.sessionSecret=e.sessionSecret,this.linkAPIUrl=e.linkAPIUrl,this.isParentConnection=e.isParentConnection}attach(e){this.root=document.createElement(\"div\"),this.root.className=\"-cbwsdk-link-flow-root\",e.appendChild(this.root),this.render()}setConnected(e){this.connected!==e&&(this.connected=e,this.render())}setChainId(e){this.chainId!==e&&(this.chainId=e,this.render())}detach(){var e;this.root&&((0,pX.render)(null,this.root),(e=this.root.parentElement)===null||e===void 0||e.removeChild(this.root))}setConnectDisabled(e){this.connectDisabled=e}open(e){this.isOpen=!0,this.onCancel=e.onCancel,this.render()}close(){this.isOpen=!1,this.onCancel=null,this.render()}render(){this.root&&(0,pX.render)((0,pX.h)(K$e.ConnectDialog,{darkMode:this.darkMode,version:this.version,sessionId:this.sessionId,sessionSecret:this.sessionSecret,linkAPIUrl:this.linkAPIUrl,isOpen:this.isOpen,isConnected:this.connected,isParentConnection:this.isParentConnection,chainId:this.chainId,onCancel:this.onCancel,connectDisabled:this.connectDisabled}),this.root)}};nj.LinkFlow=mX});var wxe=be(gX=>{\"use strict\";p();Object.defineProperty(gX,\"__esModule\",{value:!0});gX.default=\".-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}\"});var vX=be(lm=>{\"use strict\";p();var xxe=lm&&lm.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(lm,\"__esModule\",{value:!0});lm.SnackbarInstance=lm.SnackbarContainer=lm.Snackbar=void 0;var rj=xxe((_x(),go(ZC))),Wa=(Dc(),go(wd)),yX=(JC(),go(iI)),G$e=xxe(wxe()),Z$e=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+\",Y$e=\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=\",bX=class{constructor(e){this.items=new Map,this.nextItemKey=0,this.root=null,this.darkMode=e.darkMode}attach(e){this.root=document.createElement(\"div\"),this.root.className=\"-cbwsdk-snackbar-root\",e.appendChild(this.root),this.render()}presentItem(e){let n=this.nextItemKey++;return this.items.set(n,e),this.render(),()=>{this.items.delete(n),this.render()}}clear(){this.items.clear(),this.render()}render(){this.root&&(0,Wa.render)((0,Wa.h)(\"div\",null,(0,Wa.h)(lm.SnackbarContainer,{darkMode:this.darkMode},Array.from(this.items.entries()).map(([e,n])=>(0,Wa.h)(lm.SnackbarInstance,Object.assign({},n,{key:e}))))),this.root)}};lm.Snackbar=bX;var Q$e=t=>(0,Wa.h)(\"div\",{class:(0,rj.default)(\"-cbwsdk-snackbar-container\")},(0,Wa.h)(\"style\",null,G$e.default),(0,Wa.h)(\"div\",{class:\"-cbwsdk-snackbar\"},t.children));lm.SnackbarContainer=Q$e;var J$e=({autoExpand:t,message:e,menuItems:n})=>{let[r,o]=(0,yX.useState)(!0),[i,a]=(0,yX.useState)(t??!1);(0,yX.useEffect)(()=>{let u=[window.setTimeout(()=>{o(!1)},1),window.setTimeout(()=>{a(!0)},1e4)];return()=>{u.forEach(window.clearTimeout)}});let c=()=>{a(!i)};return(0,Wa.h)(\"div\",{class:(0,rj.default)(\"-cbwsdk-snackbar-instance\",r&&\"-cbwsdk-snackbar-instance-hidden\",i&&\"-cbwsdk-snackbar-instance-expanded\")},(0,Wa.h)(\"div\",{class:\"-cbwsdk-snackbar-instance-header\",onClick:c},(0,Wa.h)(\"img\",{src:Z$e,class:\"-cbwsdk-snackbar-instance-header-cblogo\"}),\" \",(0,Wa.h)(\"div\",{class:\"-cbwsdk-snackbar-instance-header-message\"},e),(0,Wa.h)(\"div\",{class:\"-gear-container\"},!i&&(0,Wa.h)(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},(0,Wa.h)(\"circle\",{cx:\"12\",cy:\"12\",r:\"12\",fill:\"#F5F7F8\"})),(0,Wa.h)(\"img\",{src:Y$e,class:\"-gear-icon\",title:\"Expand\"}))),n&&n.length>0&&(0,Wa.h)(\"div\",{class:\"-cbwsdk-snackbar-instance-menu\"},n.map((u,d)=>(0,Wa.h)(\"div\",{class:(0,rj.default)(\"-cbwsdk-snackbar-instance-menu-item\",u.isRed&&\"-cbwsdk-snackbar-instance-menu-item-is-red\"),onClick:u.onClick,key:d},(0,Wa.h)(\"svg\",{width:u.svgWidth,height:u.svgHeight,viewBox:\"0 0 10 11\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},(0,Wa.h)(\"path\",{\"fill-rule\":u.defaultFillRule,\"clip-rule\":u.defaultClipRule,d:u.path,fill:\"#AAAAAA\"})),(0,Wa.h)(\"span\",{class:(0,rj.default)(\"-cbwsdk-snackbar-instance-menu-item-info\",u.isRed&&\"-cbwsdk-snackbar-instance-menu-item-info-is-red\")},u.info)))))};lm.SnackbarInstance=J$e});var xX=be(oj=>{\"use strict\";p();Object.defineProperty(oj,\"__esModule\",{value:!0});oj.WalletLinkRelayUI=void 0;var X$e=rX(),eKe=vxe(),tKe=vX(),wX=class{constructor(e){this.standalone=null,this.attached=!1,this.snackbar=new tKe.Snackbar({darkMode:e.darkMode}),this.linkFlow=new eKe.LinkFlow({darkMode:e.darkMode,version:e.version,sessionId:e.session.id,sessionSecret:e.session.secret,linkAPIUrl:e.linkAPIUrl,isParentConnection:!1})}attach(){if(this.attached)throw new Error(\"Coinbase Wallet SDK UI is already attached\");let e=document.documentElement,n=document.createElement(\"div\");n.className=\"-cbwsdk-css-reset\",e.appendChild(n),this.linkFlow.attach(n),this.snackbar.attach(n),this.attached=!0,(0,X$e.injectCssReset)()}setConnected(e){this.linkFlow.setConnected(e)}setChainId(e){this.linkFlow.setChainId(e)}setConnectDisabled(e){this.linkFlow.setConnectDisabled(e)}addEthereumChain(){}watchAsset(){}switchEthereumChain(){}requestEthereumAccounts(e){this.linkFlow.open({onCancel:e.onCancel})}hideRequestEthereumAccounts(){this.linkFlow.close()}signEthereumMessage(){}signEthereumTransaction(){}submitEthereumTransaction(){}ethereumAddressFromSignedMessage(){}showConnecting(e){let n;return e.isUnlinkedErrorState?n={autoExpand:!0,message:\"Connection lost\",menuItems:[{isRed:!1,info:\"Reset connection\",svgWidth:\"10\",svgHeight:\"11\",path:\"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",defaultFillRule:\"evenodd\",defaultClipRule:\"evenodd\",onClick:e.onResetConnection}]}:n={message:\"Confirm on phone\",menuItems:[{isRed:!0,info:\"Cancel transaction\",svgWidth:\"11\",svgHeight:\"11\",path:\"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",defaultFillRule:\"inherit\",defaultClipRule:\"inherit\",onClick:e.onCancel},{isRed:!1,info:\"Reset connection\",svgWidth:\"10\",svgHeight:\"11\",path:\"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",defaultFillRule:\"evenodd\",defaultClipRule:\"evenodd\",onClick:e.onResetConnection}]},this.snackbar.presentItem(n)}reloadUI(){document.location.reload()}inlineAccountsResponse(){return!1}inlineAddEthereumChain(){return!1}inlineWatchAsset(){return!1}inlineSwitchEthereumChain(){return!1}setStandalone(e){this.standalone=e}isStandalone(){var e;return(e=this.standalone)!==null&&e!==void 0?e:!1}};oj.WalletLinkRelayUI=wX});var EX=be(sj=>{\"use strict\";p();Object.defineProperty(sj,\"__esModule\",{value:!0});sj.WalletLinkRelay=void 0;var p8=fI(),nKe=pI(),_s=Yy(),Y6=LU(),Exe=BU(),Ix=HU(),rKe=qwe(),Q6=TU(),oKe=xX(),ij=class t extends Exe.RelayAbstract{constructor(e){var n;super(),this.accountsCallback=null,this.chainCallbackParams={chainId:\"\",jsonRpcUrl:\"\"},this.chainCallback=null,this.dappDefaultChain=1,this.appName=\"\",this.appLogoUrl=null,this.linkedUpdated=a=>{var c;this.isLinked=a;let u=this.storage.getItem(Exe.LOCAL_STORAGE_ADDRESSES_KEY);if(a&&(this.session.linked=a),this.isUnlinkedErrorState=!1,u){let d=u.split(\" \"),h=this.storage.getItem(\"IsStandaloneSigning\")===\"true\";if(d[0]!==\"\"&&!a&&this.session.linked&&!h){this.isUnlinkedErrorState=!0;let m=this.getSessionIdHash();(c=this.diagnostic)===null||c===void 0||c.log(Y6.EVENTS.UNLINKED_ERROR_STATE,{sessionIdHash:m})}}},this.metadataUpdated=(a,c)=>{this.storage.setItem(a,c)},this.chainUpdated=(a,c)=>{this.chainCallbackParams.chainId===a&&this.chainCallbackParams.jsonRpcUrl===c||(this.chainCallbackParams={chainId:a,jsonRpcUrl:c},this.chainCallback&&this.chainCallback(a,c))},this.accountUpdated=a=>{this.accountsCallback&&this.accountsCallback([a]),t.accountRequestCallbackIds.size>0&&(Array.from(t.accountRequestCallbackIds.values()).forEach(c=>{let u={type:\"WEB3_RESPONSE\",id:c,response:{method:\"requestEthereumAccounts\",result:[a]}};this.invokeCallback(Object.assign(Object.assign({},u),{id:c}))}),t.accountRequestCallbackIds.clear())},this.connectedUpdated=a=>{this.ui.setConnected(a)},this.resetAndReload=this.resetAndReload.bind(this),this.linkAPIUrl=e.linkAPIUrl,this.storage=e.storage,this.options=e;let{session:r,ui:o,connection:i}=this.subscribe();this._session=r,this.connection=i,this.relayEventManager=e.relayEventManager,this.diagnostic=e.diagnosticLogger,this._reloadOnDisconnect=(n=e.reloadOnDisconnect)!==null&&n!==void 0?n:!0,this.ui=o}subscribe(){let e=Ix.Session.load(this.storage)||new Ix.Session(this.storage).save(),{linkAPIUrl:n,diagnostic:r}=this,o=new rKe.WalletLinkConnection({session:e,linkAPIUrl:n,diagnostic:r,listener:this}),{version:i,darkMode:a}=this.options,c=this.options.uiConstructor({linkAPIUrl:n,version:i,darkMode:a,session:e});return o.connect(),{session:e,ui:c,connection:o}}attachUI(){this.ui.attach()}resetAndReload(){Promise.race([this.connection.setSessionMetadata(\"__destroyed\",\"1\"),new Promise(e=>setTimeout(()=>e(null),1e3))]).then(()=>{var e,n;let r=this.ui.isStandalone();(e=this.diagnostic)===null||e===void 0||e.log(Y6.EVENTS.SESSION_STATE_CHANGE,{method:\"relay::resetAndReload\",sessionMetadataChange:\"__destroyed, 1\",sessionIdHash:this.getSessionIdHash()}),this.connection.destroy();let o=Ix.Session.load(this.storage);if(o?.id===this._session.id?this.storage.clear():o&&((n=this.diagnostic)===null||n===void 0||n.log(Y6.EVENTS.SKIPPED_CLEARING_SESSION,{sessionIdHash:this.getSessionIdHash(),storedSessionIdHash:Ix.Session.hash(o.id)})),this._reloadOnDisconnect){this.ui.reloadUI();return}this.accountsCallback&&this.accountsCallback([],!0);let{session:i,ui:a,connection:c}=this.subscribe();this._session=i,this.connection=c,this.ui=a,r&&this.ui.setStandalone&&this.ui.setStandalone(!0),this.options.headlessMode||this.attachUI()}).catch(e=>{var n;(n=this.diagnostic)===null||n===void 0||n.log(Y6.EVENTS.FAILURE,{method:\"relay::resetAndReload\",message:`failed to reset and reload with ${e}`,sessionIdHash:this.getSessionIdHash()})})}setAppInfo(e,n){this.appName=e,this.appLogoUrl=n}getStorageItem(e){return this.storage.getItem(e)}get session(){return this._session}setStorageItem(e,n){this.storage.setItem(e,n)}signEthereumMessage(e,n,r,o){return this.sendRequest({method:\"signEthereumMessage\",params:{message:(0,_s.hexStringFromBuffer)(e,!0),address:n,addPrefix:r,typedDataJson:o||null}})}ethereumAddressFromSignedMessage(e,n,r){return this.sendRequest({method:\"ethereumAddressFromSignedMessage\",params:{message:(0,_s.hexStringFromBuffer)(e,!0),signature:(0,_s.hexStringFromBuffer)(n,!0),addPrefix:r}})}signEthereumTransaction(e){return this.sendRequest({method:\"signEthereumTransaction\",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:(0,_s.bigIntStringFromBN)(e.weiValue),data:(0,_s.hexStringFromBuffer)(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?(0,_s.bigIntStringFromBN)(e.gasPriceInWei):null,maxFeePerGas:e.gasPriceInWei?(0,_s.bigIntStringFromBN)(e.gasPriceInWei):null,maxPriorityFeePerGas:e.gasPriceInWei?(0,_s.bigIntStringFromBN)(e.gasPriceInWei):null,gasLimit:e.gasLimit?(0,_s.bigIntStringFromBN)(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!1}})}signAndSubmitEthereumTransaction(e){return this.sendRequest({method:\"signEthereumTransaction\",params:{fromAddress:e.fromAddress,toAddress:e.toAddress,weiValue:(0,_s.bigIntStringFromBN)(e.weiValue),data:(0,_s.hexStringFromBuffer)(e.data,!0),nonce:e.nonce,gasPriceInWei:e.gasPriceInWei?(0,_s.bigIntStringFromBN)(e.gasPriceInWei):null,maxFeePerGas:e.maxFeePerGas?(0,_s.bigIntStringFromBN)(e.maxFeePerGas):null,maxPriorityFeePerGas:e.maxPriorityFeePerGas?(0,_s.bigIntStringFromBN)(e.maxPriorityFeePerGas):null,gasLimit:e.gasLimit?(0,_s.bigIntStringFromBN)(e.gasLimit):null,chainId:e.chainId,shouldSubmit:!0}})}submitEthereumTransaction(e,n){return this.sendRequest({method:\"submitEthereumTransaction\",params:{signedTransaction:(0,_s.hexStringFromBuffer)(e,!0),chainId:n}})}scanQRCode(e){return this.sendRequest({method:\"scanQRCode\",params:{regExp:e}})}getQRCodeUrl(){return(0,_s.createQrUrl)(this._session.id,this._session.secret,this.linkAPIUrl,!1,this.options.version,this.dappDefaultChain)}genericRequest(e,n){return this.sendRequest({method:\"generic\",params:{action:n,data:e}})}sendGenericMessage(e){return this.sendRequest(e)}sendRequest(e){let n=null,r=(0,_s.randomBytesHex)(8),o=a=>{this.publishWeb3RequestCanceledEvent(r),this.handleErrorResponse(r,e.method,a),n?.()};return{promise:new Promise((a,c)=>{this.ui.isStandalone()||(n=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:o,onResetConnection:this.resetAndReload})),this.relayEventManager.callbacks.set(r,u=>{if(n?.(),(0,Q6.isErrorResponse)(u))return c(new Error(u.errorMessage));a(u)}),this.ui.isStandalone()?this.sendRequestStandalone(r,e):this.publishWeb3RequestEvent(r,e)}),cancel:o}}setConnectDisabled(e){this.ui.setConnectDisabled(e)}setAccountsCallback(e){this.accountsCallback=e}setChainCallback(e){this.chainCallback=e}setDappDefaultChainCallback(e){this.dappDefaultChain=e,this.ui instanceof oKe.WalletLinkRelayUI&&this.ui.setChainId(e)}publishWeb3RequestEvent(e,n){var r;let o={type:\"WEB3_REQUEST\",id:e,request:n},i=Ix.Session.load(this.storage);(r=this.diagnostic)===null||r===void 0||r.log(Y6.EVENTS.WEB3_REQUEST,{eventId:o.id,method:`relay::${n.method}`,sessionIdHash:this.getSessionIdHash(),storedSessionIdHash:i?Ix.Session.hash(i.id):\"\",isSessionMismatched:(i?.id!==this._session.id).toString()}),this.publishEvent(\"Web3Request\",o,!0).then(a=>{var c;(c=this.diagnostic)===null||c===void 0||c.log(Y6.EVENTS.WEB3_REQUEST_PUBLISHED,{eventId:o.id,method:`relay::${n.method}`,sessionIdHash:this.getSessionIdHash(),storedSessionIdHash:i?Ix.Session.hash(i.id):\"\",isSessionMismatched:(i?.id!==this._session.id).toString()})}).catch(a=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:o.id,response:{method:n.method,errorMessage:a.message}})})}publishWeb3RequestCanceledEvent(e){let n={type:\"WEB3_REQUEST_CANCELED\",id:e};this.publishEvent(\"Web3RequestCanceled\",n,!1).then()}publishEvent(e,n,r){return this.connection.publishEvent(e,n,r)}handleWeb3ResponseMessage(e){var n;let{response:r}=e;if((n=this.diagnostic)===null||n===void 0||n.log(Y6.EVENTS.WEB3_RESPONSE,{eventId:e.id,method:`relay::${r.method}`,sessionIdHash:this.getSessionIdHash()}),r.method===\"requestEthereumAccounts\"){t.accountRequestCallbackIds.forEach(o=>this.invokeCallback(Object.assign(Object.assign({},e),{id:o}))),t.accountRequestCallbackIds.clear();return}this.invokeCallback(e)}handleErrorResponse(e,n,r,o){var i;let a=(i=r?.message)!==null&&i!==void 0?i:(0,p8.getMessageFromCode)(o);this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:e,response:{method:n,errorMessage:a,errorCode:o}})}invokeCallback(e){let n=this.relayEventManager.callbacks.get(e.id);n&&(n(e.response),this.relayEventManager.callbacks.delete(e.id))}requestEthereumAccounts(){let e={method:\"requestEthereumAccounts\",params:{appName:this.appName,appLogoUrl:this.appLogoUrl||null}},n=null,r=(0,_s.randomBytesHex)(8),o=a=>{this.publishWeb3RequestCanceledEvent(r),this.handleErrorResponse(r,e.method,a),n?.()};return{promise:new Promise((a,c)=>{if(this.relayEventManager.callbacks.set(r,u=>{if(this.ui.hideRequestEthereumAccounts(),n?.(),(0,Q6.isErrorResponse)(u))return c(new Error(u.errorMessage));a(u)}),this.ui.inlineAccountsResponse()){let u=d=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:r,response:{method:\"requestEthereumAccounts\",result:d}})};this.ui.requestEthereumAccounts({onCancel:o,onAccounts:u})}else{let u=p8.standardErrors.provider.userRejectedRequest(\"User denied account authorization\");this.ui.requestEthereumAccounts({onCancel:()=>o(u)})}t.accountRequestCallbackIds.add(r),!this.ui.inlineAccountsResponse()&&!this.ui.isStandalone()&&this.publishWeb3RequestEvent(r,e)}),cancel:o}}selectProvider(e){let n={method:\"selectProvider\",params:{providerOptions:e}},r=(0,_s.randomBytesHex)(8),o=a=>{this.publishWeb3RequestCanceledEvent(r),this.handleErrorResponse(r,n.method,a)},i=new Promise((a,c)=>{this.relayEventManager.callbacks.set(r,h=>{if((0,Q6.isErrorResponse)(h))return c(new Error(h.errorMessage));a(h)});let u=h=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:r,response:{method:\"selectProvider\",result:nKe.ProviderType.Unselected}})},d=h=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:r,response:{method:\"selectProvider\",result:h}})};this.ui.selectProvider&&this.ui.selectProvider({onApprove:d,onCancel:u,providerOptions:e})});return{cancel:o,promise:i}}watchAsset(e,n,r,o,i,a){let c={method:\"watchAsset\",params:{type:e,options:{address:n,symbol:r,decimals:o,image:i},chainId:a}},u=null,d=(0,_s.randomBytesHex)(8),h=g=>{this.publishWeb3RequestCanceledEvent(d),this.handleErrorResponse(d,c.method,g),u?.()};this.ui.inlineWatchAsset()||(u=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:h,onResetConnection:this.resetAndReload}));let m=new Promise((g,b)=>{this.relayEventManager.callbacks.set(d,T=>{if(u?.(),(0,Q6.isErrorResponse)(T))return b(new Error(T.errorMessage));g(T)});let E=T=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:d,response:{method:\"watchAsset\",result:!1}})},C=()=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:d,response:{method:\"watchAsset\",result:!0}})};this.ui.inlineWatchAsset()&&this.ui.watchAsset({onApprove:C,onCancel:E,type:e,address:n,symbol:r,decimals:o,image:i,chainId:a}),!this.ui.inlineWatchAsset()&&!this.ui.isStandalone()&&this.publishWeb3RequestEvent(d,c)});return{cancel:h,promise:m}}addEthereumChain(e,n,r,o,i,a){let c={method:\"addEthereumChain\",params:{chainId:e,rpcUrls:n,blockExplorerUrls:o,chainName:i,iconUrls:r,nativeCurrency:a}},u=null,d=(0,_s.randomBytesHex)(8),h=g=>{this.publishWeb3RequestCanceledEvent(d),this.handleErrorResponse(d,c.method,g),u?.()};return this.ui.inlineAddEthereumChain(e)||(u=this.ui.showConnecting({isUnlinkedErrorState:this.isUnlinkedErrorState,onCancel:h,onResetConnection:this.resetAndReload})),{promise:new Promise((g,b)=>{this.relayEventManager.callbacks.set(d,T=>{if(u?.(),(0,Q6.isErrorResponse)(T))return b(new Error(T.errorMessage));g(T)});let E=T=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:d,response:{method:\"addEthereumChain\",result:{isApproved:!1,rpcUrl:\"\"}}})},C=T=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:d,response:{method:\"addEthereumChain\",result:{isApproved:!0,rpcUrl:T}}})};this.ui.inlineAddEthereumChain(e)&&this.ui.addEthereumChain({onCancel:E,onApprove:C,chainId:c.params.chainId,rpcUrls:c.params.rpcUrls,blockExplorerUrls:c.params.blockExplorerUrls,chainName:c.params.chainName,iconUrls:c.params.iconUrls,nativeCurrency:c.params.nativeCurrency}),!this.ui.inlineAddEthereumChain(e)&&!this.ui.isStandalone()&&this.publishWeb3RequestEvent(d,c)}),cancel:h}}switchEthereumChain(e,n){let r={method:\"switchEthereumChain\",params:Object.assign({chainId:e},{address:n})},o=(0,_s.randomBytesHex)(8),i=c=>{this.publishWeb3RequestCanceledEvent(o),this.handleErrorResponse(o,r.method,c)};return{promise:new Promise((c,u)=>{this.relayEventManager.callbacks.set(o,m=>{if((0,Q6.isErrorResponse)(m)&&m.errorCode)return u(p8.standardErrors.provider.custom({code:m.errorCode,message:\"Unrecognized chain ID. Try adding the chain using addEthereumChain first.\"}));if((0,Q6.isErrorResponse)(m))return u(new Error(m.errorMessage));c(m)});let d=m=>{var g;if(m){let b=(g=(0,p8.getErrorCode)(m))!==null&&g!==void 0?g:p8.standardErrorCodes.provider.unsupportedChain;this.handleErrorResponse(o,\"switchEthereumChain\",m instanceof Error?m:p8.standardErrors.provider.unsupportedChain(e),b)}else this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:o,response:{method:\"switchEthereumChain\",result:{isApproved:!1,rpcUrl:\"\"}}})},h=m=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:o,response:{method:\"switchEthereumChain\",result:{isApproved:!0,rpcUrl:m}}})};this.ui.switchEthereumChain({onCancel:d,onApprove:h,chainId:r.params.chainId,address:r.params.address}),!this.ui.inlineSwitchEthereumChain()&&!this.ui.isStandalone()&&this.publishWeb3RequestEvent(o,r)}),cancel:i}}inlineAddEthereumChain(e){return this.ui.inlineAddEthereumChain(e)}getSessionIdHash(){return Ix.Session.hash(this._session.id)}sendRequestStandalone(e,n){let r=i=>{this.handleErrorResponse(e,n.method,i)},o=i=>{this.handleWeb3ResponseMessage({type:\"WEB3_RESPONSE\",id:e,response:i})};switch(n.method){case\"signEthereumMessage\":this.ui.signEthereumMessage({request:n,onSuccess:o,onCancel:r});break;case\"signEthereumTransaction\":this.ui.signEthereumTransaction({request:n,onSuccess:o,onCancel:r});break;case\"submitEthereumTransaction\":this.ui.submitEthereumTransaction({request:n,onSuccess:o,onCancel:r});break;case\"ethereumAddressFromSignedMessage\":this.ui.ethereumAddressFromSignedMessage({request:n,onSuccess:o});break;default:r();break}}};sj.WalletLinkRelay=ij;ij.accountRequestCallbackIds=new Set});var Sxe=be(J6=>{\"use strict\";p();var iKe=J6&&J6.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||(\"get\"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),sKe=J6&&J6.__exportStar||function(t,e){for(var n in t)n!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,n)&&iKe(e,t,n)};Object.defineProperty(J6,\"__esModule\",{value:!0});sKe(vX(),J6)});var kxe=be(SX=>{\"use strict\";p();Object.defineProperty(SX,\"__esModule\",{value:!0});SX.default=\".-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s;background-color:rgba(10,11,13,.5)}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:20px;border-radius:8px;background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box p{display:block;font-weight:400;font-size:14px;line-height:20px;padding-bottom:12px;color:#5b636e}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box button{appearance:none;border:none;background:none;color:#0052ff;padding:0;text-decoration:none;display:block;font-weight:600;font-size:16px;line-height:24px}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark{background-color:#0a0b0d;color:#fff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.dark button{color:#0052ff}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light{background-color:#fff;color:#0a0b0d}.-cbwsdk-css-reset .-cbwsdk-redirect-dialog-box.light button{color:#0052ff}\"});var Cxe=be(m8=>{\"use strict\";p();var _xe=m8&&m8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(m8,\"__esModule\",{value:!0});m8.RedirectDialog=void 0;var aKe=_xe((_x(),go(ZC))),r1=(Dc(),go(wd)),cKe=rX(),lKe=Sxe(),uKe=_xe(kxe()),kX=class{constructor(){this.root=null}attach(){let e=document.documentElement;this.root=document.createElement(\"div\"),this.root.className=\"-cbwsdk-css-reset\",e.appendChild(this.root),(0,cKe.injectCssReset)()}present(e){this.render(e)}clear(){this.render(null)}render(e){this.root&&((0,r1.render)(null,this.root),e&&(0,r1.render)((0,r1.h)(dKe,Object.assign({},e,{onDismiss:()=>{this.clear()}})),this.root))}};m8.RedirectDialog=kX;var dKe=({title:t,buttonText:e,darkMode:n,onButtonClick:r,onDismiss:o})=>{let i=n?\"dark\":\"light\";return(0,r1.h)(lKe.SnackbarContainer,{darkMode:n},(0,r1.h)(\"div\",{class:\"-cbwsdk-redirect-dialog\"},(0,r1.h)(\"style\",null,uKe.default),(0,r1.h)(\"div\",{class:\"-cbwsdk-redirect-dialog-backdrop\",onClick:o}),(0,r1.h)(\"div\",{class:(0,aKe.default)(\"-cbwsdk-redirect-dialog-box\",i)},(0,r1.h)(\"p\",null,t),(0,r1.h)(\"button\",{onClick:r},e))))}});var CX=be(aj=>{\"use strict\";p();Object.defineProperty(aj,\"__esModule\",{value:!0});aj.MobileRelayUI=void 0;var fKe=Cxe(),_X=class{constructor(e){this.attached=!1,this.darkMode=!1,this.redirectDialog=new fKe.RedirectDialog,this.darkMode=e.darkMode}attach(){if(this.attached)throw new Error(\"Coinbase Wallet SDK UI is already attached\");this.redirectDialog.attach(),this.attached=!0}setConnected(e){}redirectToCoinbaseWallet(e){let n=new URL(\"https://go.cb-w.com/walletlink\");n.searchParams.append(\"redirect_url\",window.location.href),e&&n.searchParams.append(\"wl_url\",e);let r=document.createElement(\"a\");r.target=\"cbw-opener\",r.href=n.href,r.rel=\"noreferrer noopener\",r.click()}openCoinbaseWalletDeeplink(e){this.redirectDialog.present({title:\"Redirecting to Coinbase Wallet...\",buttonText:\"Open\",darkMode:this.darkMode,onButtonClick:()=>{this.redirectToCoinbaseWallet(e)}}),setTimeout(()=>{this.redirectToCoinbaseWallet(e)},99)}showConnecting(e){return()=>{this.redirectDialog.clear()}}hideRequestEthereumAccounts(){this.redirectDialog.clear()}requestEthereumAccounts(){}addEthereumChain(){}watchAsset(){}selectProvider(){}switchEthereumChain(){}signEthereumMessage(){}signEthereumTransaction(){}submitEthereumTransaction(){}ethereumAddressFromSignedMessage(){}reloadUI(){}setStandalone(){}setConnectDisabled(){}inlineAccountsResponse(){return!1}inlineAddEthereumChain(){return!1}inlineWatchAsset(){return!1}inlineSwitchEthereumChain(){return!1}isStandalone(){return!1}};aj.MobileRelayUI=_X});var TX=be(cj=>{\"use strict\";p();Object.defineProperty(cj,\"__esModule\",{value:!0});cj.MobileRelay=void 0;var hKe=Yy(),pKe=EX(),mKe=CX(),AX=class extends pKe.WalletLinkRelay{constructor(e){var n;super(e),this._enableMobileWalletLink=(n=e.enableMobileWalletLink)!==null&&n!==void 0?n:!1}requestEthereumAccounts(){return this._enableMobileWalletLink?super.requestEthereumAccounts():{promise:new Promise(()=>{let e=(0,hKe.getLocation)();e.href=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(e.href)}`}),cancel:()=>{}}}publishWeb3RequestEvent(e,n){if(super.publishWeb3RequestEvent(e,n),!(this._enableMobileWalletLink&&this.ui instanceof mKe.MobileRelayUI))return;let r=!1;switch(n.method){case\"requestEthereumAccounts\":case\"connectAndSignIn\":r=!0,this.ui.openCoinbaseWalletDeeplink(this.getQRCodeUrl());break;case\"switchEthereumChain\":return;default:r=!0,this.ui.openCoinbaseWalletDeeplink();break}r&&window.addEventListener(\"blur\",()=>{window.addEventListener(\"focus\",()=>{this.connection.checkUnseenEvents()},{once:!0})},{once:!0})}handleWeb3ResponseMessage(e){super.handleWeb3ResponseMessage(e)}connectAndSignIn(e){if(!this._enableMobileWalletLink)throw new Error(\"connectAndSignIn is supported only when enableMobileWalletLink is on\");return this.sendRequest({method:\"connectAndSignIn\",params:{appName:this.appName,appLogoUrl:this.appLogoUrl,domain:window.location.hostname,aud:window.location.href,version:\"1\",type:\"eip4361\",nonce:e.nonce,iat:new Date().toISOString(),chainId:`eip155:${this.dappDefaultChain}`,statement:e.statement,resources:e.resources}})}};cj.MobileRelay=AX});var EI=be((kin,RX)=>{\"use strict\";p();var g8=typeof Reflect==\"object\"?Reflect:null,Axe=g8&&typeof g8.apply==\"function\"?g8.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},lj;g8&&typeof g8.ownKeys==\"function\"?lj=g8.ownKeys:Object.getOwnPropertySymbols?lj=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:lj=function(e){return Object.getOwnPropertyNames(e)};function gKe(t){console&&console.warn&&console.warn(t)}var Rxe=Number.isNaN||function(e){return e!==e};function di(){di.init.call(this)}RX.exports=di;RX.exports.once=wKe;di.EventEmitter=di;di.prototype._events=void 0;di.prototype._eventsCount=0;di.prototype._maxListeners=void 0;var Txe=10;function uj(t){if(typeof t!=\"function\")throw new TypeError(\\'The \"listener\" argument must be of type Function. Received type \\'+typeof t)}Object.defineProperty(di,\"defaultMaxListeners\",{enumerable:!0,get:function(){return Txe},set:function(t){if(typeof t!=\"number\"||t<0||Rxe(t))throw new RangeError(\\'The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received \\'+t+\".\");Txe=t}});di.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};di.prototype.setMaxListeners=function(e){if(typeof e!=\"number\"||e<0||Rxe(e))throw new RangeError(\\'The value of \"n\" is out of range. It must be a non-negative number. Received \\'+e+\".\");return this._maxListeners=e,this};function Ixe(t){return t._maxListeners===void 0?di.defaultMaxListeners:t._maxListeners}di.prototype.getMaxListeners=function(){return Ixe(this)};di.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var o=e===\"error\",i=this._events;if(i!==void 0)o=o&&i.error===void 0;else if(!o)return!1;if(o){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var c=new Error(\"Unhandled error.\"+(a?\" (\"+a.message+\")\":\"\"));throw c.context=a,c}var u=i[e];if(u===void 0)return!1;if(typeof u==\"function\")Axe(u,this,n);else for(var d=u.length,h=Lxe(u,d),r=0;r<d;++r)Axe(h[r],this,n);return!0};function Oxe(t,e,n,r){var o,i,a;if(uj(n),i=t._events,i===void 0?(i=t._events=Object.create(null),t._eventsCount=0):(i.newListener!==void 0&&(t.emit(\"newListener\",e,n.listener?n.listener:n),i=t._events),a=i[e]),a===void 0)a=i[e]=n,++t._eventsCount;else if(typeof a==\"function\"?a=i[e]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),o=Ixe(t),o>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+String(e)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=t,c.type=e,c.count=a.length,gKe(c)}return t}di.prototype.addListener=function(e,n){return Oxe(this,e,n,!1)};di.prototype.on=di.prototype.addListener;di.prototype.prependListener=function(e,n){return Oxe(this,e,n,!0)};function yKe(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Pxe(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},o=yKe.bind(r);return o.listener=n,r.wrapFn=o,o}di.prototype.once=function(e,n){return uj(n),this.on(e,Pxe(this,e,n)),this};di.prototype.prependOnceListener=function(e,n){return uj(n),this.prependListener(e,Pxe(this,e,n)),this};di.prototype.removeListener=function(e,n){var r,o,i,a,c;if(uj(n),o=this._events,o===void 0)return this;if(r=o[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete o[e],o.removeListener&&this.emit(\"removeListener\",e,r.listener||n));else if(typeof r!=\"function\"){for(i=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){c=r[a].listener,i=a;break}if(i<0)return this;i===0?r.shift():bKe(r,i),r.length===1&&(o[e]=r[0]),o.removeListener!==void 0&&this.emit(\"removeListener\",e,c||n)}return this};di.prototype.off=di.prototype.removeListener;di.prototype.removeAllListeners=function(e){var n,r,o;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var i=Object.keys(r),a;for(o=0;o<i.length;++o)a=i[o],a!==\"removeListener\"&&this.removeAllListeners(a);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n==\"function\")this.removeListener(e,n);else if(n!==void 0)for(o=n.length-1;o>=0;o--)this.removeListener(e,n[o]);return this};function Mxe(t,e,n){var r=t._events;if(r===void 0)return[];var o=r[e];return o===void 0?[]:typeof o==\"function\"?n?[o.listener||o]:[o]:n?vKe(o):Lxe(o,o.length)}di.prototype.listeners=function(e){return Mxe(this,e,!0)};di.prototype.rawListeners=function(e){return Mxe(this,e,!1)};di.listenerCount=function(t,e){return typeof t.listenerCount==\"function\"?t.listenerCount(e):Nxe.call(t,e)};di.prototype.listenerCount=Nxe;function Nxe(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n==\"function\")return 1;if(n!==void 0)return n.length}return 0}di.prototype.eventNames=function(){return this._eventsCount>0?lj(this._events):[]};function Lxe(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function bKe(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function vKe(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function wKe(t,e){return new Promise(function(n,r){function o(a){t.removeListener(e,i),r(a)}function i(){typeof t.removeListener==\"function\"&&t.removeListener(\"error\",o),n([].slice.call(arguments))}Bxe(t,e,i,{once:!0}),e!==\"error\"&&xKe(t,o,{once:!0})})}function xKe(t,e,n){typeof t.on==\"function\"&&Bxe(t,\"error\",e,n)}function Bxe(t,e,n,r){if(typeof t.on==\"function\")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener==\"function\")t.addEventListener(e,function o(i){r.once&&t.removeEventListener(e,o),n(i)});else throw new TypeError(\\'The \"emitter\" argument must be of type EventEmitter. Received type \\'+typeof t)}});var IX=be((Cin,Dxe)=>{p();Dxe.exports=EI().EventEmitter});var OX=be(()=>{p()});var qxe=be((Oin,Hxe)=>{\"use strict\";p();function Fxe(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function Uxe(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Fxe(Object(n),!0).forEach(function(r){EKe(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Fxe(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function EKe(t,e,n){return e=zxe(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function SKe(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function jxe(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,zxe(r.key),r)}}function kKe(t,e,n){return e&&jxe(t.prototype,e),n&&jxe(t,n),Object.defineProperty(t,\"prototype\",{writable:!1}),t}function zxe(t){var e=_Ke(t,\"string\");return typeof e==\"symbol\"?e:String(e)}function _Ke(t,e){if(typeof t!=\"object\"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||\"default\");if(typeof r!=\"object\")return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(e===\"string\"?String:Number)(t)}var CKe=Kb(),dj=CKe.Buffer,AKe=OX(),PX=AKe.inspect,TKe=PX&&PX.custom||\"inspect\";function RKe(t,e,n){dj.prototype.copy.call(t,e,n)}Hxe.exports=function(){function t(){SKe(this,t),this.head=null,this.tail=null,this.length=0}return kKe(t,[{key:\"push\",value:function(n){var r={data:n,next:null};this.length>0?this.tail.next=r:this.head=r,this.tail=r,++this.length}},{key:\"unshift\",value:function(n){var r={data:n,next:this.head};this.length===0&&(this.tail=r),this.head=r,++this.length}},{key:\"shift\",value:function(){if(this.length!==0){var n=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,n}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(n){if(this.length===0)return\"\";for(var r=this.head,o=\"\"+r.data;r=r.next;)o+=n+r.data;return o}},{key:\"concat\",value:function(n){if(this.length===0)return dj.alloc(0);for(var r=dj.allocUnsafe(n>>>0),o=this.head,i=0;o;)RKe(o.data,r,i),i+=o.data.length,o=o.next;return r}},{key:\"consume\",value:function(n,r){var o;return n<this.head.data.length?(o=this.head.data.slice(0,n),this.head.data=this.head.data.slice(n)):n===this.head.data.length?o=this.shift():o=r?this._getString(n):this._getBuffer(n),o}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(n){var r=this.head,o=1,i=r.data;for(n-=i.length;r=r.next;){var a=r.data,c=n>a.length?a.length:n;if(c===a.length?i+=a:i+=a.slice(0,n),n-=c,n===0){c===a.length?(++o,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=a.slice(c));break}++o}return this.length-=o,i}},{key:\"_getBuffer\",value:function(n){var r=dj.allocUnsafe(n),o=this.head,i=1;for(o.data.copy(r),n-=o.data.length;o=o.next;){var a=o.data,c=n>a.length?a.length:n;if(a.copy(r,r.length-n,0,c),n-=c,n===0){c===a.length?(++i,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=a.slice(c));break}++i}return this.length-=i,r}},{key:TKe,value:function(n,r){return PX(this,Uxe(Uxe({},r),{},{depth:0,customInspect:!1}))}}]),t}()});var NX=be((Min,Vxe)=>{\"use strict\";p();function IKe(t,e){var n=this,r=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return r||o?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(MX,this,t)):process.nextTick(MX,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(i){!e&&i?n._writableState?n._writableState.errorEmitted?process.nextTick(fj,n):(n._writableState.errorEmitted=!0,process.nextTick(Wxe,n,i)):process.nextTick(Wxe,n,i):e?(process.nextTick(fj,n),e(i)):process.nextTick(fj,n)}),this)}function Wxe(t,e){MX(t,e),fj(t)}function fj(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit(\"close\")}function OKe(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function MX(t,e){t.emit(\"error\",e)}function PKe(t,e){var n=t._readableState,r=t._writableState;n&&n.autoDestroy||r&&r.autoDestroy?t.destroy(e):t.emit(\"error\",e)}Vxe.exports={destroy:IKe,undestroy:OKe,errorOrDestroy:PKe}});var X6=be((Lin,Gxe)=>{\"use strict\";p();function MKe(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var Kxe={};function um(t,e,n){n||(n=Error);function r(i,a,c){return typeof e==\"string\"?e:e(i,a,c)}var o=function(i){MKe(a,i);function a(c,u,d){return i.call(this,r(c,u,d))||this}return a}(n);o.prototype.name=n.name,o.prototype.code=t,Kxe[t]=o}function $xe(t,e){if(Array.isArray(t)){var n=t.length;return t=t.map(function(r){return String(r)}),n>2?\"one of \".concat(e,\" \").concat(t.slice(0,n-1).join(\", \"),\", or \")+t[n-1]:n===2?\"one of \".concat(e,\" \").concat(t[0],\" or \").concat(t[1]):\"of \".concat(e,\" \").concat(t[0])}else return\"of \".concat(e,\" \").concat(String(t))}function NKe(t,e,n){return t.substr(!n||n<0?0:+n,e.length)===e}function LKe(t,e,n){return(n===void 0||n>t.length)&&(n=t.length),t.substring(n-e.length,n)===e}function BKe(t,e,n){return typeof n!=\"number\"&&(n=0),n+e.length>t.length?!1:t.indexOf(e,n)!==-1}um(\"ERR_INVALID_OPT_VALUE\",function(t,e){return\\'The value \"\\'+e+\\'\" is invalid for option \"\\'+t+\\'\"\\'},TypeError);um(\"ERR_INVALID_ARG_TYPE\",function(t,e,n){var r;typeof e==\"string\"&&NKe(e,\"not \")?(r=\"must not be\",e=e.replace(/^not /,\"\")):r=\"must be\";var o;if(LKe(t,\" argument\"))o=\"The \".concat(t,\" \").concat(r,\" \").concat($xe(e,\"type\"));else{var i=BKe(t,\".\")?\"property\":\"argument\";o=\\'The \"\\'.concat(t,\\'\" \\').concat(i,\" \").concat(r,\" \").concat($xe(e,\"type\"))}return o+=\". Received type \".concat(typeof n),o},TypeError);um(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\");um(\"ERR_METHOD_NOT_IMPLEMENTED\",function(t){return\"The \"+t+\" method is not implemented\"});um(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\");um(\"ERR_STREAM_DESTROYED\",function(t){return\"Cannot call \"+t+\" after a stream was destroyed\"});um(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\");um(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\");um(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\");um(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);um(\"ERR_UNKNOWN_ENCODING\",function(t){return\"Unknown encoding: \"+t},TypeError);um(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\");Gxe.exports.codes=Kxe});var LX=be((Din,Zxe)=>{\"use strict\";p();var DKe=X6().codes.ERR_INVALID_OPT_VALUE;function FKe(t,e,n){return t.highWaterMark!=null?t.highWaterMark:e?t[n]:null}function UKe(t,e,n,r){var o=FKe(e,r,n);if(o!=null){if(!(isFinite(o)&&Math.floor(o)===o)||o<0){var i=r?n:\"highWaterMark\";throw new DKe(i,o)}return Math.floor(o)}return t.objectMode?16:16*1024}Zxe.exports={getHighWaterMark:UKe}});var Qxe=be((Uin,Yxe)=>{p();Yxe.exports=jKe;function jKe(t,e){if(BX(\"noDeprecation\"))return t;var n=!1;function r(){if(!n){if(BX(\"throwDeprecation\"))throw new Error(e);BX(\"traceDeprecation\")?console.trace(e):console.warn(e),n=!0}return t.apply(this,arguments)}return r}function BX(t){try{if(!globalThis.localStorage)return!1}catch{return!1}var e=globalThis.localStorage[t];return e==null?!1:String(e).toLowerCase()===\"true\"}});var UX=be((zin,r3e)=>{\"use strict\";p();r3e.exports=qs;function Xxe(t){var e=this;this.next=null,this.entry=null,this.finish=function(){hGe(e,t)}}var y8;qs.WritableState=kI;var zKe={deprecate:Qxe()},e3e=IX(),pj=Kb().Buffer,HKe=(typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof self<\"u\"?self:{}).Uint8Array||function(){};function qKe(t){return pj.from(t)}function WKe(t){return pj.isBuffer(t)||t instanceof HKe}var FX=NX(),VKe=LX(),$Ke=VKe.getHighWaterMark,Ox=X6().codes,KKe=Ox.ERR_INVALID_ARG_TYPE,GKe=Ox.ERR_METHOD_NOT_IMPLEMENTED,ZKe=Ox.ERR_MULTIPLE_CALLBACK,YKe=Ox.ERR_STREAM_CANNOT_PIPE,QKe=Ox.ERR_STREAM_DESTROYED,JKe=Ox.ERR_STREAM_NULL_VALUES,XKe=Ox.ERR_STREAM_WRITE_AFTER_END,eGe=Ox.ERR_UNKNOWN_ENCODING,b8=FX.errorOrDestroy;cm()(qs,e3e);function tGe(){}function kI(t,e,n){y8=y8||eS(),t=t||{},typeof n!=\"boolean\"&&(n=e instanceof y8),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=$Ke(this,t,\"writableHighWaterMark\",n),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var r=t.decodeStrings===!1;this.decodeStrings=!r,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){cGe(e,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Xxe(this)}kI.prototype.getBuffer=function(){for(var e=this.bufferedRequest,n=[];e;)n.push(e),e=e.next;return n};(function(){try{Object.defineProperty(kI.prototype,\"buffer\",{get:zKe.deprecate(function(){return this.getBuffer()},\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch{}})();var hj;typeof Symbol==\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==\"function\"?(hj=Function.prototype[Symbol.hasInstance],Object.defineProperty(qs,Symbol.hasInstance,{value:function(e){return hj.call(this,e)?!0:this!==qs?!1:e&&e._writableState instanceof kI}})):hj=function(e){return e instanceof this};function qs(t){y8=y8||eS();var e=this instanceof y8;if(!e&&!hj.call(qs,this))return new qs(t);this._writableState=new kI(t,this,e),this.writable=!0,t&&(typeof t.write==\"function\"&&(this._write=t.write),typeof t.writev==\"function\"&&(this._writev=t.writev),typeof t.destroy==\"function\"&&(this._destroy=t.destroy),typeof t.final==\"function\"&&(this._final=t.final)),e3e.call(this)}qs.prototype.pipe=function(){b8(this,new YKe)};function nGe(t,e){var n=new XKe;b8(t,n),process.nextTick(e,n)}function rGe(t,e,n,r){var o;return n===null?o=new JKe:typeof n!=\"string\"&&!e.objectMode&&(o=new KKe(\"chunk\",[\"string\",\"Buffer\"],n)),o?(b8(t,o),process.nextTick(r,o),!1):!0}qs.prototype.write=function(t,e,n){var r=this._writableState,o=!1,i=!r.objectMode&&WKe(t);return i&&!pj.isBuffer(t)&&(t=qKe(t)),typeof e==\"function\"&&(n=e,e=null),i?e=\"buffer\":e||(e=r.defaultEncoding),typeof n!=\"function\"&&(n=tGe),r.ending?nGe(this,n):(i||rGe(this,r,t,n))&&(r.pendingcb++,o=iGe(this,r,i,t,e,n)),o};qs.prototype.cork=function(){this._writableState.corked++};qs.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&t3e(this,t))};qs.prototype.setDefaultEncoding=function(e){if(typeof e==\"string\"&&(e=e.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf((e+\"\").toLowerCase())>-1))throw new eGe(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(qs.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function oGe(t,e,n){return!t.objectMode&&t.decodeStrings!==!1&&typeof e==\"string\"&&(e=pj.from(e,n)),e}Object.defineProperty(qs.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function iGe(t,e,n,r,o,i){if(!n){var a=oGe(e,r,o);r!==a&&(n=!0,o=\"buffer\",r=a)}var c=e.objectMode?1:r.length;e.length+=c;var u=e.length<e.highWaterMark;if(u||(e.needDrain=!0),e.writing||e.corked){var d=e.lastBufferedRequest;e.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},d?d.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else DX(t,e,!1,c,r,o,i);return u}function DX(t,e,n,r,o,i,a){e.writelen=r,e.writecb=a,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new QKe(\"write\")):n?t._writev(o,e.onwrite):t._write(o,i,e.onwrite),e.sync=!1}function sGe(t,e,n,r,o){--e.pendingcb,n?(process.nextTick(o,r),process.nextTick(SI,t,e),t._writableState.errorEmitted=!0,b8(t,r)):(o(r),t._writableState.errorEmitted=!0,b8(t,r),SI(t,e))}function aGe(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}function cGe(t,e){var n=t._writableState,r=n.sync,o=n.writecb;if(typeof o!=\"function\")throw new ZKe;if(aGe(n),e)sGe(t,n,r,e,o);else{var i=n3e(n)||t.destroyed;!i&&!n.corked&&!n.bufferProcessing&&n.bufferedRequest&&t3e(t,n),r?process.nextTick(Jxe,t,n,i,o):Jxe(t,n,i,o)}}function Jxe(t,e,n,r){n||lGe(t,e),e.pendingcb--,r(),SI(t,e)}function lGe(t,e){e.length===0&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}function t3e(t,e){e.bufferProcessing=!0;var n=e.bufferedRequest;if(t._writev&&n&&n.next){var r=e.bufferedRequestCount,o=new Array(r),i=e.corkedRequestsFree;i.entry=n;for(var a=0,c=!0;n;)o[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;o.allBuffers=c,DX(t,e,!0,e.length,o,\"\",i.finish),e.pendingcb++,e.lastBufferedRequest=null,i.next?(e.corkedRequestsFree=i.next,i.next=null):e.corkedRequestsFree=new Xxe(e),e.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,d=n.encoding,h=n.callback,m=e.objectMode?1:u.length;if(DX(t,e,!1,m,u,d,h),n=n.next,e.bufferedRequestCount--,e.writing)break}n===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=n,e.bufferProcessing=!1}qs.prototype._write=function(t,e,n){n(new GKe(\"_write()\"))};qs.prototype._writev=null;qs.prototype.end=function(t,e,n){var r=this._writableState;return typeof t==\"function\"?(n=t,t=null,e=null):typeof e==\"function\"&&(n=e,e=null),t!=null&&this.write(t,e),r.corked&&(r.corked=1,this.uncork()),r.ending||fGe(this,r,n),this};Object.defineProperty(qs.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function n3e(t){return t.ending&&t.length===0&&t.bufferedRequest===null&&!t.finished&&!t.writing}function uGe(t,e){t._final(function(n){e.pendingcb--,n&&b8(t,n),e.prefinished=!0,t.emit(\"prefinish\"),SI(t,e)})}function dGe(t,e){!e.prefinished&&!e.finalCalled&&(typeof t._final==\"function\"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(uGe,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}function SI(t,e){var n=n3e(e);if(n&&(dGe(t,e),e.pendingcb===0&&(e.finished=!0,t.emit(\"finish\"),e.autoDestroy))){var r=t._readableState;(!r||r.autoDestroy&&r.endEmitted)&&t.destroy()}return n}function fGe(t,e,n){e.ending=!0,SI(t,e),n&&(e.finished?process.nextTick(n):t.once(\"finish\",n)),e.ended=!0,t.writable=!1}function hGe(t,e,n){var r=t.entry;for(t.entry=null;r;){var o=r.callback;e.pendingcb--,o(n),r=r.next}e.corkedRequestsFree.next=t}Object.defineProperty(qs.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});qs.prototype.destroy=FX.destroy;qs.prototype._undestroy=FX.undestroy;qs.prototype._destroy=function(t,e){e(t)}});var eS=be((qin,i3e)=>{\"use strict\";p();var pGe=Object.keys||function(t){var e=[];for(var n in t)e.push(n);return e};i3e.exports=o1;var o3e=HX(),zX=UX();cm()(o1,o3e);for(jX=pGe(zX.prototype),mj=0;mj<jX.length;mj++)gj=jX[mj],o1.prototype[gj]||(o1.prototype[gj]=zX.prototype[gj]);var jX,gj,mj;function o1(t){if(!(this instanceof o1))return new o1(t);o3e.call(this,t),zX.call(this,t),this.allowHalfOpen=!0,t&&(t.readable===!1&&(this.readable=!1),t.writable===!1&&(this.writable=!1),t.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once(\"end\",mGe)))}Object.defineProperty(o1.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(o1.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(o1.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}});function mGe(){this._writableState.ended||process.nextTick(gGe,this)}function gGe(t){t.end()}Object.defineProperty(o1.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var VX=be(a3e=>{\"use strict\";p();var WX=Xy().Buffer,s3e=WX.isEncoding||function(t){switch(t=\"\"+t,t&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function yGe(t){if(!t)return\"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0}}function bGe(t){var e=yGe(t);if(typeof e!=\"string\"&&(WX.isEncoding===s3e||!s3e(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}a3e.StringDecoder=_I;function _I(t){this.encoding=bGe(t);var e;switch(this.encoding){case\"utf16le\":this.text=kGe,this.end=_Ge,e=4;break;case\"utf8\":this.fillLast=xGe,e=4;break;case\"base64\":this.text=CGe,this.end=AGe,e=3;break;default:this.write=TGe,this.end=RGe;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=WX.allocUnsafe(e)}_I.prototype.write=function(t){if(t.length===0)return\"\";var e,n;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return\"\";n=this.lastNeed,this.lastNeed=0}else n=0;return n<t.length?e?e+this.text(t,n):this.text(t,n):e||\"\"};_I.prototype.end=SGe;_I.prototype.text=EGe;_I.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length};function qX(t){return t<=127?0:t>>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function vGe(t,e,n){var r=e.length-1;if(r<n)return 0;var o=qX(e[r]);return o>=0?(o>0&&(t.lastNeed=o-1),o):--r<n||o===-2?0:(o=qX(e[r]),o>=0?(o>0&&(t.lastNeed=o-2),o):--r<n||o===-2?0:(o=qX(e[r]),o>=0?(o>0&&(o===2?o=0:t.lastNeed=o-3),o):0))}function wGe(t,e,n){if((e[0]&192)!==128)return t.lastNeed=0,\"\\\\uFFFD\";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,\"\\\\uFFFD\";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,\"\\\\uFFFD\"}}function xGe(t){var e=this.lastTotal-this.lastNeed,n=wGe(this,t,e);if(n!==void 0)return n;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function EGe(t,e){var n=vGe(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=n;var r=t.length-(n-this.lastNeed);return t.copy(this.lastChar,0,r),t.toString(\"utf8\",e,r)}function SGe(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+\"\\\\uFFFD\":e}function kGe(t,e){if((t.length-e)%2===0){var n=t.toString(\"utf16le\",e);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function _Ge(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,n)}return e}function CGe(t,e){var n=(t.length-e)%3;return n===0?t.toString(\"base64\",e):(this.lastNeed=3-n,this.lastTotal=3,n===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-n))}function AGe(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function TGe(t){return t.toString(this.encoding)}function RGe(t){return t&&t.length?this.write(t):\"\"}});var yj=be((Kin,u3e)=>{\"use strict\";p();var c3e=X6().codes.ERR_STREAM_PREMATURE_CLOSE;function IGe(t){var e=!1;return function(){if(!e){e=!0;for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];t.apply(this,r)}}}function OGe(){}function PGe(t){return t.setHeader&&typeof t.abort==\"function\"}function l3e(t,e,n){if(typeof e==\"function\")return l3e(t,null,e);e||(e={}),n=IGe(n||OGe);var r=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,i=function(){t.writable||c()},a=t._writableState&&t._writableState.finished,c=function(){o=!1,a=!0,r||n.call(t)},u=t._readableState&&t._readableState.endEmitted,d=function(){r=!1,u=!0,o||n.call(t)},h=function(E){n.call(t,E)},m=function(){var E;if(r&&!u)return(!t._readableState||!t._readableState.ended)&&(E=new c3e),n.call(t,E);if(o&&!a)return(!t._writableState||!t._writableState.ended)&&(E=new c3e),n.call(t,E)},g=function(){t.req.on(\"finish\",c)};return PGe(t)?(t.on(\"complete\",c),t.on(\"abort\",m),t.req?g():t.on(\"request\",g)):o&&!t._writableState&&(t.on(\"end\",i),t.on(\"close\",i)),t.on(\"end\",d),t.on(\"finish\",c),e.error!==!1&&t.on(\"error\",h),t.on(\"close\",m),function(){t.removeListener(\"complete\",c),t.removeListener(\"abort\",m),t.removeListener(\"request\",g),t.req&&t.req.removeListener(\"finish\",c),t.removeListener(\"end\",i),t.removeListener(\"close\",i),t.removeListener(\"finish\",c),t.removeListener(\"end\",d),t.removeListener(\"error\",h),t.removeListener(\"close\",m)}}u3e.exports=l3e});var f3e=be((Zin,d3e)=>{\"use strict\";p();var bj;function Px(t,e,n){return e=MGe(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function MGe(t){var e=NGe(t,\"string\");return typeof e==\"symbol\"?e:String(e)}function NGe(t,e){if(typeof t!=\"object\"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||\"default\");if(typeof r!=\"object\")return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(e===\"string\"?String:Number)(t)}var LGe=yj(),Mx=Symbol(\"lastResolve\"),tS=Symbol(\"lastReject\"),CI=Symbol(\"error\"),vj=Symbol(\"ended\"),nS=Symbol(\"lastPromise\"),$X=Symbol(\"handlePromise\"),rS=Symbol(\"stream\");function Nx(t,e){return{value:t,done:e}}function BGe(t){var e=t[Mx];if(e!==null){var n=t[rS].read();n!==null&&(t[nS]=null,t[Mx]=null,t[tS]=null,e(Nx(n,!1)))}}function DGe(t){process.nextTick(BGe,t)}function FGe(t,e){return function(n,r){t.then(function(){if(e[vj]){n(Nx(void 0,!0));return}e[$X](n,r)},r)}}var UGe=Object.getPrototypeOf(function(){}),jGe=Object.setPrototypeOf((bj={get stream(){return this[rS]},next:function(){var e=this,n=this[CI];if(n!==null)return Promise.reject(n);if(this[vj])return Promise.resolve(Nx(void 0,!0));if(this[rS].destroyed)return new Promise(function(a,c){process.nextTick(function(){e[CI]?c(e[CI]):a(Nx(void 0,!0))})});var r=this[nS],o;if(r)o=new Promise(FGe(r,this));else{var i=this[rS].read();if(i!==null)return Promise.resolve(Nx(i,!1));o=new Promise(this[$X])}return this[nS]=o,o}},Px(bj,Symbol.asyncIterator,function(){return this}),Px(bj,\"return\",function(){var e=this;return new Promise(function(n,r){e[rS].destroy(null,function(o){if(o){r(o);return}n(Nx(void 0,!0))})})}),bj),UGe),zGe=function(e){var n,r=Object.create(jGe,(n={},Px(n,rS,{value:e,writable:!0}),Px(n,Mx,{value:null,writable:!0}),Px(n,tS,{value:null,writable:!0}),Px(n,CI,{value:null,writable:!0}),Px(n,vj,{value:e._readableState.endEmitted,writable:!0}),Px(n,$X,{value:function(i,a){var c=r[rS].read();c?(r[nS]=null,r[Mx]=null,r[tS]=null,i(Nx(c,!1))):(r[Mx]=i,r[tS]=a)},writable:!0}),n));return r[nS]=null,LGe(e,function(o){if(o&&o.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var i=r[tS];i!==null&&(r[nS]=null,r[Mx]=null,r[tS]=null,i(o)),r[CI]=o;return}var a=r[Mx];a!==null&&(r[nS]=null,r[Mx]=null,r[tS]=null,a(Nx(void 0,!0))),r[vj]=!0}),e.on(\"readable\",DGe.bind(null,r)),r};d3e.exports=zGe});var p3e=be((Qin,h3e)=>{p();h3e.exports=function(){throw new Error(\"Readable.from is not available in the browser\")}});var HX=be((esn,k3e)=>{\"use strict\";p();k3e.exports=so;var v8;so.ReadableState=b3e;var Xin=EI().EventEmitter,y3e=function(e,n){return e.listeners(n).length},TI=IX(),wj=Kb().Buffer,HGe=(typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof self<\"u\"?self:{}).Uint8Array||function(){};function qGe(t){return wj.from(t)}function WGe(t){return wj.isBuffer(t)||t instanceof HGe}var KX=OX(),Ir;KX&&KX.debuglog?Ir=KX.debuglog(\"stream\"):Ir=function(){};var VGe=qxe(),eee=NX(),$Ge=LX(),KGe=$Ge.getHighWaterMark,xj=X6().codes,GGe=xj.ERR_INVALID_ARG_TYPE,ZGe=xj.ERR_STREAM_PUSH_AFTER_EOF,YGe=xj.ERR_METHOD_NOT_IMPLEMENTED,QGe=xj.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,w8,GX,ZX;cm()(so,TI);var AI=eee.errorOrDestroy,YX=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function JGe(t,e,n){if(typeof t.prependListener==\"function\")return t.prependListener(e,n);!t._events||!t._events[e]?t.on(e,n):Array.isArray(t._events[e])?t._events[e].unshift(n):t._events[e]=[n,t._events[e]]}function b3e(t,e,n){v8=v8||eS(),t=t||{},typeof n!=\"boolean\"&&(n=e instanceof v8),this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=KGe(this,t,\"readableHighWaterMark\",n),this.buffer=new VGe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(w8||(w8=VX().StringDecoder),this.decoder=new w8(t.encoding),this.encoding=t.encoding)}function so(t){if(v8=v8||eS(),!(this instanceof so))return new so(t);var e=this instanceof v8;this._readableState=new b3e(t,this,e),this.readable=!0,t&&(typeof t.read==\"function\"&&(this._read=t.read),typeof t.destroy==\"function\"&&(this._destroy=t.destroy)),TI.call(this)}Object.defineProperty(so.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});so.prototype.destroy=eee.destroy;so.prototype._undestroy=eee.undestroy;so.prototype._destroy=function(t,e){e(t)};so.prototype.push=function(t,e){var n=this._readableState,r;return n.objectMode?r=!0:typeof t==\"string\"&&(e=e||n.defaultEncoding,e!==n.encoding&&(t=wj.from(t,e),e=\"\"),r=!0),v3e(this,t,e,!1,r)};so.prototype.unshift=function(t){return v3e(this,t,null,!0,!1)};function v3e(t,e,n,r,o){Ir(\"readableAddChunk\",e);var i=t._readableState;if(e===null)i.reading=!1,tZe(t,i);else{var a;if(o||(a=XGe(i,e)),a)AI(t,a);else if(i.objectMode||e&&e.length>0)if(typeof e!=\"string\"&&!i.objectMode&&Object.getPrototypeOf(e)!==wj.prototype&&(e=qGe(e)),r)i.endEmitted?AI(t,new QGe):QX(t,i,e,!0);else if(i.ended)AI(t,new ZGe);else{if(i.destroyed)return!1;i.reading=!1,i.decoder&&!n?(e=i.decoder.write(e),i.objectMode||e.length!==0?QX(t,i,e,!1):XX(t,i)):QX(t,i,e,!1)}else r||(i.reading=!1,XX(t,i))}return!i.ended&&(i.length<i.highWaterMark||i.length===0)}function QX(t,e,n,r){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,t.emit(\"data\",n)):(e.length+=e.objectMode?1:n.length,r?e.buffer.unshift(n):e.buffer.push(n),e.needReadable&&Ej(t)),XX(t,e)}function XGe(t,e){var n;return!WGe(e)&&typeof e!=\"string\"&&e!==void 0&&!t.objectMode&&(n=new GGe(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],e)),n}so.prototype.isPaused=function(){return this._readableState.flowing===!1};so.prototype.setEncoding=function(t){w8||(w8=VX().StringDecoder);var e=new w8(t);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var n=this._readableState.buffer.head,r=\"\";n!==null;)r+=e.write(n.data),n=n.next;return this._readableState.buffer.clear(),r!==\"\"&&this._readableState.buffer.push(r),this._readableState.length=r.length,this};var m3e=1073741824;function eZe(t){return t>=m3e?t=m3e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function g3e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=eZe(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}so.prototype.read=function(t){Ir(\"read\",t),t=parseInt(t,10);var e=this._readableState,n=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Ir(\"read: emitReadable\",e.length,e.ended),e.length===0&&e.ended?JX(this):Ej(this),null;if(t=g3e(t,e),t===0&&e.ended)return e.length===0&&JX(this),null;var r=e.needReadable;Ir(\"need readable\",r),(e.length===0||e.length-t<e.highWaterMark)&&(r=!0,Ir(\"length less than watermark\",r)),e.ended||e.reading?(r=!1,Ir(\"reading or ended\",r)):r&&(Ir(\"do read\"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(t=g3e(n,e)));var o;return t>0?o=E3e(t,e):o=null,o===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),n!==t&&e.ended&&JX(this)),o!==null&&this.emit(\"data\",o),o};function tZe(t,e){if(Ir(\"onEofChunk\"),!e.ended){if(e.decoder){var n=e.decoder.end();n&&n.length&&(e.buffer.push(n),e.length+=e.objectMode?1:n.length)}e.ended=!0,e.sync?Ej(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,w3e(t)))}}function Ej(t){var e=t._readableState;Ir(\"emitReadable\",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Ir(\"emitReadable\",e.flowing),e.emittedReadable=!0,process.nextTick(w3e,t))}function w3e(t){var e=t._readableState;Ir(\"emitReadable_\",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit(\"readable\"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,tee(t)}function XX(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(nZe,t,e))}function nZe(t,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var n=e.length;if(Ir(\"maybeReadMore read 0\"),t.read(0),n===e.length)break}e.readingMore=!1}so.prototype._read=function(t){AI(this,new YGe(\"_read()\"))};so.prototype.pipe=function(t,e){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=t;break;case 1:r.pipes=[r.pipes,t];break;default:r.pipes.push(t);break}r.pipesCount+=1,Ir(\"pipe count=%d opts=%j\",r.pipesCount,e);var o=(!e||e.end!==!1)&&t!==process.stdout&&t!==process.stderr,i=o?c:C;r.endEmitted?process.nextTick(i):n.once(\"end\",i),t.on(\"unpipe\",a);function a(T,R){Ir(\"onunpipe\"),T===n&&R&&R.hasUnpiped===!1&&(R.hasUnpiped=!0,h())}function c(){Ir(\"onend\"),t.end()}var u=rZe(n);t.on(\"drain\",u);var d=!1;function h(){Ir(\"cleanup\"),t.removeListener(\"close\",b),t.removeListener(\"finish\",E),t.removeListener(\"drain\",u),t.removeListener(\"error\",g),t.removeListener(\"unpipe\",a),n.removeListener(\"end\",c),n.removeListener(\"end\",C),n.removeListener(\"data\",m),d=!0,r.awaitDrain&&(!t._writableState||t._writableState.needDrain)&&u()}n.on(\"data\",m);function m(T){Ir(\"ondata\");var R=t.write(T);Ir(\"dest.write\",R),R===!1&&((r.pipesCount===1&&r.pipes===t||r.pipesCount>1&&S3e(r.pipes,t)!==-1)&&!d&&(Ir(\"false write response, pause\",r.awaitDrain),r.awaitDrain++),n.pause())}function g(T){Ir(\"onerror\",T),C(),t.removeListener(\"error\",g),y3e(t,\"error\")===0&&AI(t,T)}JGe(t,\"error\",g);function b(){t.removeListener(\"finish\",E),C()}t.once(\"close\",b);function E(){Ir(\"onfinish\"),t.removeListener(\"close\",b),C()}t.once(\"finish\",E);function C(){Ir(\"unpipe\"),n.unpipe(t)}return t.emit(\"pipe\",n),r.flowing||(Ir(\"pipe resume\"),n.resume()),t};function rZe(t){return function(){var n=t._readableState;Ir(\"pipeOnDrain\",n.awaitDrain),n.awaitDrain&&n.awaitDrain--,n.awaitDrain===0&&y3e(t,\"data\")&&(n.flowing=!0,tee(t))}}so.prototype.unpipe=function(t){var e=this._readableState,n={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,n),this);if(!t){var r=e.pipes,o=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i<o;i++)r[i].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var a=S3e(e.pipes,t);return a===-1?this:(e.pipes.splice(a,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),t.emit(\"unpipe\",this,n),this)};so.prototype.on=function(t,e){var n=TI.prototype.on.call(this,t,e),r=this._readableState;return t===\"data\"?(r.readableListening=this.listenerCount(\"readable\")>0,r.flowing!==!1&&this.resume()):t===\"readable\"&&!r.endEmitted&&!r.readableListening&&(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,Ir(\"on readable\",r.length,r.reading),r.length?Ej(this):r.reading||process.nextTick(oZe,this)),n};so.prototype.addListener=so.prototype.on;so.prototype.removeListener=function(t,e){var n=TI.prototype.removeListener.call(this,t,e);return t===\"readable\"&&process.nextTick(x3e,this),n};so.prototype.removeAllListeners=function(t){var e=TI.prototype.removeAllListeners.apply(this,arguments);return(t===\"readable\"||t===void 0)&&process.nextTick(x3e,this),e};function x3e(t){var e=t._readableState;e.readableListening=t.listenerCount(\"readable\")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount(\"data\")>0&&t.resume()}function oZe(t){Ir(\"readable nexttick read 0\"),t.read(0)}so.prototype.resume=function(){var t=this._readableState;return t.flowing||(Ir(\"resume\"),t.flowing=!t.readableListening,iZe(this,t)),t.paused=!1,this};function iZe(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(sZe,t,e))}function sZe(t,e){Ir(\"resume\",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit(\"resume\"),tee(t),e.flowing&&!e.reading&&t.read(0)}so.prototype.pause=function(){return Ir(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1&&(Ir(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this};function tee(t){var e=t._readableState;for(Ir(\"flow\",e.flowing);e.flowing&&t.read()!==null;);}so.prototype.wrap=function(t){var e=this,n=this._readableState,r=!1;t.on(\"end\",function(){if(Ir(\"wrapped end\"),n.decoder&&!n.ended){var a=n.decoder.end();a&&a.length&&e.push(a)}e.push(null)}),t.on(\"data\",function(a){if(Ir(\"wrapped data\"),n.decoder&&(a=n.decoder.write(a)),!(n.objectMode&&a==null)&&!(!n.objectMode&&(!a||!a.length))){var c=e.push(a);c||(r=!0,t.pause())}});for(var o in t)this[o]===void 0&&typeof t[o]==\"function\"&&(this[o]=function(c){return function(){return t[c].apply(t,arguments)}}(o));for(var i=0;i<YX.length;i++)t.on(YX[i],this.emit.bind(this,YX[i]));return this._read=function(a){Ir(\"wrapped _read\",a),r&&(r=!1,t.resume())},this};typeof Symbol==\"function\"&&(so.prototype[Symbol.asyncIterator]=function(){return GX===void 0&&(GX=f3e()),GX(this)});Object.defineProperty(so.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(so.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(so.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});so._fromList=E3e;Object.defineProperty(so.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}});function E3e(t,e){if(e.length===0)return null;var n;return e.objectMode?n=e.buffer.shift():!t||t>=e.length?(e.decoder?n=e.buffer.join(\"\"):e.buffer.length===1?n=e.buffer.first():n=e.buffer.concat(e.length),e.buffer.clear()):n=e.buffer.consume(t,e.decoder),n}function JX(t){var e=t._readableState;Ir(\"endReadable\",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(aZe,e,t))}function aZe(t,e){if(Ir(\"endReadableNT\",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"),t.autoDestroy)){var n=e._writableState;(!n||n.autoDestroy&&n.finished)&&e.destroy()}}typeof Symbol==\"function\"&&(so.from=function(t,e){return ZX===void 0&&(ZX=p3e()),ZX(so,t,e)});function S3e(t,e){for(var n=0,r=t.length;n<r;n++)if(t[n]===e)return n;return-1}});var nee=be((nsn,C3e)=>{\"use strict\";p();C3e.exports=Mv;var Sj=X6().codes,cZe=Sj.ERR_METHOD_NOT_IMPLEMENTED,lZe=Sj.ERR_MULTIPLE_CALLBACK,uZe=Sj.ERR_TRANSFORM_ALREADY_TRANSFORMING,dZe=Sj.ERR_TRANSFORM_WITH_LENGTH_0,kj=eS();cm()(Mv,kj);function fZe(t,e){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit(\"error\",new lZe);n.writechunk=null,n.writecb=null,e!=null&&this.push(e),r(t);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function Mv(t){if(!(this instanceof Mv))return new Mv(t);kj.call(this,t),this._transformState={afterTransform:fZe.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform==\"function\"&&(this._transform=t.transform),typeof t.flush==\"function\"&&(this._flush=t.flush)),this.on(\"prefinish\",hZe)}function hZe(){var t=this;typeof this._flush==\"function\"&&!this._readableState.destroyed?this._flush(function(e,n){_3e(t,e,n)}):_3e(this,null,null)}Mv.prototype.push=function(t,e){return this._transformState.needTransform=!1,kj.prototype.push.call(this,t,e)};Mv.prototype._transform=function(t,e,n){n(new cZe(\"_transform()\"))};Mv.prototype._write=function(t,e,n){var r=this._transformState;if(r.writecb=n,r.writechunk=t,r.writeencoding=e,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}};Mv.prototype._read=function(t){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};Mv.prototype._destroy=function(t,e){kj.prototype._destroy.call(this,t,function(n){e(n)})};function _3e(t,e,n){if(e)return t.emit(\"error\",e);if(n!=null&&t.push(n),t._writableState.length)throw new dZe;if(t._transformState.transforming)throw new uZe;return t.push(null)}});var R3e=be((osn,T3e)=>{\"use strict\";p();T3e.exports=RI;var A3e=nee();cm()(RI,A3e);function RI(t){if(!(this instanceof RI))return new RI(t);A3e.call(this,t)}RI.prototype._transform=function(t,e,n){n(null,t)}});var N3e=be((ssn,M3e)=>{\"use strict\";p();var ree;function pZe(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var P3e=X6().codes,mZe=P3e.ERR_MISSING_ARGS,gZe=P3e.ERR_STREAM_DESTROYED;function I3e(t){if(t)throw t}function yZe(t){return t.setHeader&&typeof t.abort==\"function\"}function bZe(t,e,n,r){r=pZe(r);var o=!1;t.on(\"close\",function(){o=!0}),ree===void 0&&(ree=yj()),ree(t,{readable:e,writable:n},function(a){if(a)return r(a);o=!0,r()});var i=!1;return function(a){if(!o&&!i){if(i=!0,yZe(t))return t.abort();if(typeof t.destroy==\"function\")return t.destroy();r(a||new gZe(\"pipe\"))}}}function O3e(t){t()}function vZe(t,e){return t.pipe(e)}function wZe(t){return!t.length||typeof t[t.length-1]!=\"function\"?I3e:t.pop()}function xZe(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r=wZe(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new mZe(\"streams\");var o,i=e.map(function(a,c){var u=c<e.length-1,d=c>0;return bZe(a,u,d,function(h){o||(o=h),h&&i.forEach(O3e),!u&&(i.forEach(O3e),r(o))})});return e.reduce(vZe)}M3e.exports=xZe});var oee=be((dm,L3e)=>{p();dm=L3e.exports=HX();dm.Stream=dm;dm.Readable=dm;dm.Writable=UX();dm.Duplex=eS();dm.Transform=nee();dm.PassThrough=R3e();dm.finished=yj();dm.pipeline=N3e()});var F3e=be((lsn,D3e)=>{p();var{Transform:EZe}=oee();D3e.exports=t=>class B3e extends EZe{constructor(n,r,o,i,a){super(a),this._rate=n,this._capacity=r,this._delimitedSuffix=o,this._hashBitLength=i,this._options=a,this._state=new t,this._state.initialize(n,r),this._finalized=!1}_transform(n,r,o){let i=null;try{this.update(n,r)}catch(a){i=a}o(i)}_flush(n){let r=null;try{this.push(this.digest())}catch(o){r=o}n(r)}update(n,r){if(!globalThis.Buffer.isBuffer(n)&&typeof n!=\"string\")throw new TypeError(\"Data must be a string or a buffer\");if(this._finalized)throw new Error(\"Digest already called\");return globalThis.Buffer.isBuffer(n)||(n=globalThis.Buffer.from(n,r)),this._state.absorb(n),this}digest(n){if(this._finalized)throw new Error(\"Digest already called\");this._finalized=!0,this._delimitedSuffix&&this._state.absorbLastFewBits(this._delimitedSuffix);let r=this._state.squeeze(this._hashBitLength/8);return n!==void 0&&(r=r.toString(n)),this._resetState(),r}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){let n=new B3e(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(n._state),n._finalized=this._finalized,n}}});var z3e=be((dsn,j3e)=>{p();var{Transform:SZe}=oee();j3e.exports=t=>class U3e extends SZe{constructor(n,r,o,i){super(i),this._rate=n,this._capacity=r,this._delimitedSuffix=o,this._options=i,this._state=new t,this._state.initialize(n,r),this._finalized=!1}_transform(n,r,o){let i=null;try{this.update(n,r)}catch(a){i=a}o(i)}_flush(){}_read(n){this.push(this.squeeze(n))}update(n,r){if(!globalThis.Buffer.isBuffer(n)&&typeof n!=\"string\")throw new TypeError(\"Data must be a string or a buffer\");if(this._finalized)throw new Error(\"Squeeze already called\");return globalThis.Buffer.isBuffer(n)||(n=globalThis.Buffer.from(n,r)),this._state.absorb(n),this}squeeze(n,r){this._finalized||(this._finalized=!0,this._state.absorbLastFewBits(this._delimitedSuffix));let o=this._state.squeeze(n);return r!==void 0&&(o=o.toString(r)),o}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){let n=new U3e(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(n._state),n._finalized=this._finalized,n}}});var q3e=be((hsn,H3e)=>{p();var kZe=F3e(),_Ze=z3e();H3e.exports=function(t){let e=kZe(t),n=_Ze(t);return function(r,o){switch(typeof r==\"string\"?r.toLowerCase():r){case\"keccak224\":return new e(1152,448,null,224,o);case\"keccak256\":return new e(1088,512,null,256,o);case\"keccak384\":return new e(832,768,null,384,o);case\"keccak512\":return new e(576,1024,null,512,o);case\"sha3-224\":return new e(1152,448,6,224,o);case\"sha3-256\":return new e(1088,512,6,256,o);case\"sha3-384\":return new e(832,768,6,384,o);case\"sha3-512\":return new e(576,1024,6,512,o);case\"shake128\":return new n(1344,256,31,o);case\"shake256\":return new n(1088,512,31,o);default:throw new Error(\"Invald algorithm: \"+r)}}}});var $3e=be(V3e=>{p();var W3e=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648];V3e.p1600=function(t){for(let e=0;e<24;++e){let n=t[0]^t[10]^t[20]^t[30]^t[40],r=t[1]^t[11]^t[21]^t[31]^t[41],o=t[2]^t[12]^t[22]^t[32]^t[42],i=t[3]^t[13]^t[23]^t[33]^t[43],a=t[4]^t[14]^t[24]^t[34]^t[44],c=t[5]^t[15]^t[25]^t[35]^t[45],u=t[6]^t[16]^t[26]^t[36]^t[46],d=t[7]^t[17]^t[27]^t[37]^t[47],h=t[8]^t[18]^t[28]^t[38]^t[48],m=t[9]^t[19]^t[29]^t[39]^t[49],g=h^(o<<1|i>>>31),b=m^(i<<1|o>>>31),E=t[0]^g,C=t[1]^b,T=t[10]^g,R=t[11]^b,L=t[20]^g,D=t[21]^b,G=t[30]^g,W=t[31]^b,J=t[40]^g,ne=t[41]^b;g=n^(a<<1|c>>>31),b=r^(c<<1|a>>>31);let ie=t[2]^g,Z=t[3]^b,ae=t[12]^g,V=t[13]^b,$=t[22]^g,F=t[23]^b,_=t[32]^g,O=t[33]^b,z=t[42]^g,N=t[43]^b;g=o^(u<<1|d>>>31),b=i^(d<<1|u>>>31);let B=t[4]^g,j=t[5]^b,q=t[14]^g,H=t[15]^b,I=t[24]^g,U=t[25]^b,X=t[34]^g,ee=t[35]^b,se=t[44]^g,pe=t[45]^b;g=a^(h<<1|m>>>31),b=c^(m<<1|h>>>31);let ye=t[6]^g,xe=t[7]^b,_e=t[16]^g,Me=t[17]^b,qe=t[26]^g,wt=t[27]^b,Ge=t[36]^g,ht=t[37]^b,Ct=t[46]^g,dt=t[47]^b;g=u^(n<<1|r>>>31),b=d^(r<<1|n>>>31);let Ze=t[8]^g,rn=t[9]^b,zt=t[18]^g,Bt=t[19]^b,Mt=t[28]^g,qt=t[29]^b,Wt=t[38]^g,zn=t[39]^b,Mn=t[48]^g,br=t[49]^b,Zs=E,Pr=C,vr=R<<4|T>>>28,hi=T<<4|R>>>28,er=L<<3|D>>>29,wr=D<<3|L>>>29,Ri=W<<9|G>>>23,le=G<<9|W>>>23,Te=J<<18|ne>>>14,xt=ne<<18|J>>>14,tt=ie<<1|Z>>>31,It=Z<<1|ie>>>31,hn=V<<12|ae>>>20,Dt=ae<<12|V>>>20,sn=$<<10|F>>>22,bn=F<<10|$>>>22,Fn=O<<13|_>>>19,en=_<<13|O>>>19,ni=z<<2|N>>>30,jr=N<<2|z>>>30,Eo=j<<30|B>>>2,zu=B<<30|j>>>2,tr=q<<6|H>>>26,dr=H<<6|q>>>26,Bl=U<<11|I>>>21,vn=I<<11|U>>>21,zr=X<<15|ee>>>17,Dd=ee<<15|X>>>17,Mr=pe<<29|se>>>3,So=se<<29|pe>>>3,jt=ye<<28|xe>>>4,xr=xe<<28|ye>>>4,En=Me<<23|_e>>>9,Hu=_e<<23|Me>>>9,Zr=qe<<25|wt>>>7,Cr=wt<<25|qe>>>7,Ys=Ge<<21|ht>>>11,Zc=ht<<21|Ge>>>11,Zo=dt<<24|Ct>>>8,qu=Ct<<24|dt>>>8,ts=Ze<<27|rn>>>5,Wu=rn<<27|Ze>>>5,Yc=zt<<20|Bt>>>12,Ya=Bt<<20|zt>>>12,Qa=qt<<7|Mt>>>25,ya=Mt<<7|qt>>>25,Dl=Wt<<8|zn>>>24,Ja=zn<<8|Wt>>>24,Fl=Mn<<14|br>>>18,Fd=br<<14|Mn>>>18;t[0]=Zs^~hn&Bl,t[1]=Pr^~Dt&vn,t[10]=jt^~Yc&er,t[11]=xr^~Ya&wr,t[20]=tt^~tr&Zr,t[21]=It^~dr&Cr,t[30]=ts^~vr&sn,t[31]=Wu^~hi&bn,t[40]=Eo^~En&Qa,t[41]=zu^~Hu&ya,t[2]=hn^~Bl&Ys,t[3]=Dt^~vn&Zc,t[12]=Yc^~er&Fn,t[13]=Ya^~wr&en,t[22]=tr^~Zr&Dl,t[23]=dr^~Cr&Ja,t[32]=vr^~sn&zr,t[33]=hi^~bn&Dd,t[42]=En^~Qa&Ri,t[43]=Hu^~ya&le,t[4]=Bl^~Ys&Fl,t[5]=vn^~Zc&Fd,t[14]=er^~Fn&Mr,t[15]=wr^~en&So,t[24]=Zr^~Dl&Te,t[25]=Cr^~Ja&xt,t[34]=sn^~zr&Zo,t[35]=bn^~Dd&qu,t[44]=Qa^~Ri&ni,t[45]=ya^~le&jr,t[6]=Ys^~Fl&Zs,t[7]=Zc^~Fd&Pr,t[16]=Fn^~Mr&jt,t[17]=en^~So&xr,t[26]=Dl^~Te&tt,t[27]=Ja^~xt&It,t[36]=zr^~Zo&ts,t[37]=Dd^~qu&Wu,t[46]=Ri^~ni&Eo,t[47]=le^~jr&zu,t[8]=Fl^~Zs&hn,t[9]=Fd^~Pr&Dt,t[18]=Mr^~jt&Yc,t[19]=So^~xr&Ya,t[28]=Te^~tt&tr,t[29]=xt^~It&dr,t[38]=Zo^~ts&vr,t[39]=qu^~Wu&hi,t[48]=ni^~Eo&En,t[49]=jr^~zu&Hu,t[0]^=W3e[e*2],t[1]^=W3e[e*2+1]}}});var G3e=be((ysn,K3e)=>{p();var _j=$3e();function x8(){this.state=[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],this.blockSize=null,this.count=0,this.squeezing=!1}x8.prototype.initialize=function(t,e){for(let n=0;n<50;++n)this.state[n]=0;this.blockSize=t/8,this.count=0,this.squeezing=!1};x8.prototype.absorb=function(t){for(let e=0;e<t.length;++e)this.state[~~(this.count/4)]^=t[e]<<8*(this.count%4),this.count+=1,this.count===this.blockSize&&(_j.p1600(this.state),this.count=0)};x8.prototype.absorbLastFewBits=function(t){this.state[~~(this.count/4)]^=t<<8*(this.count%4),(t&128)!==0&&this.count===this.blockSize-1&&_j.p1600(this.state),this.state[~~((this.blockSize-1)/4)]^=128<<8*((this.blockSize-1)%4),_j.p1600(this.state),this.count=0,this.squeezing=!0};x8.prototype.squeeze=function(t){this.squeezing||this.absorbLastFewBits(1);let e=globalThis.Buffer.alloc(t);for(let n=0;n<t;++n)e[n]=this.state[~~(this.count/4)]>>>8*(this.count%4)&255,this.count+=1,this.count===this.blockSize&&(_j.p1600(this.state),this.count=0);return e};x8.prototype.copy=function(t){for(let e=0;e<50;++e)t.state[e]=this.state[e];t.blockSize=this.blockSize,t.count=this.count,t.squeezing=this.squeezing};K3e.exports=x8});var Y3e=be((vsn,Z3e)=>{p();Z3e.exports=q3e()(G3e())});var iee=be((xsn,tEe)=>{p();var CZe=Y3e(),AZe=q6();function Q3e(t){return globalThis.Buffer.allocUnsafe(t).fill(0)}function J3e(t,e,n){let r=Q3e(e);return t=Cj(t),n?t.length<e?(t.copy(r),r):t.slice(0,e):t.length<e?(t.copy(r,e-t.length),r):t.slice(-e)}function TZe(t,e){return J3e(t,e,!0)}function Cj(t){if(!globalThis.Buffer.isBuffer(t))if(Array.isArray(t))t=globalThis.Buffer.from(t);else if(typeof t==\"string\")X3e(t)?t=globalThis.Buffer.from(OZe(eEe(t)),\"hex\"):t=globalThis.Buffer.from(t);else if(typeof t==\"number\")t=intToBuffer(t);else if(t==null)t=globalThis.Buffer.allocUnsafe(0);else if(AZe.isBN(t))t=t.toArrayLike(globalThis.Buffer);else if(t.toArray)t=globalThis.Buffer.from(t.toArray());else throw new Error(\"invalid type\");return t}function RZe(t){return t=Cj(t),\"0x\"+t.toString(\"hex\")}function IZe(t,e){return t=Cj(t),e||(e=256),CZe(\"keccak\"+e).update(t).digest()}function OZe(t){return t.length%2?\"0\"+t:t}function X3e(t){return typeof t==\"string\"&&t.match(/^0x[0-9A-Fa-f]*$/)}function eEe(t){return typeof t==\"string\"&&t.startsWith(\"0x\")?t.slice(2):t}tEe.exports={zeros:Q3e,setLength:J3e,setLengthRight:TZe,isHexString:X3e,stripHexPrefix:eEe,toBuffer:Cj,bufferToHex:RZe,keccak:IZe}});var aEe=be((Ssn,sEe)=>{p();var sS=iee(),iS=q6();function rEe(t){return t.startsWith(\"int[\")?\"int256\"+t.slice(3):t===\"int\"?\"int256\":t.startsWith(\"uint[\")?\"uint256\"+t.slice(4):t===\"uint\"?\"uint256\":t.startsWith(\"fixed[\")?\"fixed128x128\"+t.slice(5):t===\"fixed\"?\"fixed128x128\":t.startsWith(\"ufixed[\")?\"ufixed128x128\"+t.slice(6):t===\"ufixed\"?\"ufixed128x128\":t}function E8(t){return parseInt(/^\\\\D+(\\\\d+)$/.exec(t)[1],10)}function nEe(t){var e=/^\\\\D+(\\\\d+)x(\\\\d+)$/.exec(t);return[parseInt(e[1],10),parseInt(e[2],10)]}function oEe(t){var e=t.match(/(.*)\\\\[(.*?)\\\\]$/);return e?e[2]===\"\"?\"dynamic\":parseInt(e[2],10):null}function oS(t){var e=typeof t;if(e===\"string\")return sS.isHexString(t)?new iS(sS.stripHexPrefix(t),16):new iS(t,10);if(e===\"number\")return new iS(t);if(t.toArray)return t;throw new Error(\"Argument is not a number\")}function i1(t,e){var n,r,o,i;if(t===\"address\")return i1(\"uint160\",oS(e));if(t===\"bool\")return i1(\"uint8\",e?1:0);if(t===\"string\")return i1(\"bytes\",new globalThis.Buffer(e,\"utf8\"));if(MZe(t)){if(typeof e.length>\"u\")throw new Error(\"Not an array?\");if(n=oEe(t),n!==\"dynamic\"&&n!==0&&e.length>n)throw new Error(\"Elements exceed array size: \"+n);o=[],t=t.slice(0,t.lastIndexOf(\"[\")),typeof e==\"string\"&&(e=JSON.parse(e));for(i in e)o.push(i1(t,e[i]));if(n===\"dynamic\"){var a=i1(\"uint256\",e.length);o.unshift(a)}return globalThis.Buffer.concat(o)}else{if(t===\"bytes\")return e=new globalThis.Buffer(e),o=globalThis.Buffer.concat([i1(\"uint256\",e.length),e]),e.length%32!==0&&(o=globalThis.Buffer.concat([o,sS.zeros(32-e.length%32)])),o;if(t.startsWith(\"bytes\")){if(n=E8(t),n<1||n>32)throw new Error(\"Invalid bytes<N> width: \"+n);return sS.setLengthRight(e,32)}else if(t.startsWith(\"uint\")){if(n=E8(t),n%8||n<8||n>256)throw new Error(\"Invalid uint<N> width: \"+n);if(r=oS(e),r.bitLength()>n)throw new Error(\"Supplied uint exceeds width: \"+n+\" vs \"+r.bitLength());if(r<0)throw new Error(\"Supplied uint is negative\");return r.toArrayLike(globalThis.Buffer,\"be\",32)}else if(t.startsWith(\"int\")){if(n=E8(t),n%8||n<8||n>256)throw new Error(\"Invalid int<N> width: \"+n);if(r=oS(e),r.bitLength()>n)throw new Error(\"Supplied int exceeds width: \"+n+\" vs \"+r.bitLength());return r.toTwos(256).toArrayLike(globalThis.Buffer,\"be\",32)}else if(t.startsWith(\"ufixed\")){if(n=nEe(t),r=oS(e),r<0)throw new Error(\"Supplied ufixed is negative\");return i1(\"uint256\",r.mul(new iS(2).pow(new iS(n[1]))))}else if(t.startsWith(\"fixed\"))return n=nEe(t),i1(\"int256\",oS(e).mul(new iS(2).pow(new iS(n[1]))))}throw new Error(\"Unsupported or invalid type: \"+t)}function PZe(t){return t===\"string\"||t===\"bytes\"||oEe(t)===\"dynamic\"}function MZe(t){return t.lastIndexOf(\"]\")===t.length-1}function NZe(t,e){var n=[],r=[],o=32*t.length;for(var i in t){var a=rEe(t[i]),c=e[i],u=i1(a,c);PZe(a)?(n.push(i1(\"uint256\",o)),r.push(u),o+=u.length):n.push(u)}return globalThis.Buffer.concat(n.concat(r))}function iEe(t,e){if(t.length!==e.length)throw new Error(\"Number of types are not matching the values\");for(var n,r,o=[],i=0;i<t.length;i++){var a=rEe(t[i]),c=e[i];if(a===\"bytes\")o.push(c);else if(a===\"string\")o.push(new globalThis.Buffer(c,\"utf8\"));else if(a===\"bool\")o.push(new globalThis.Buffer(c?\"01\":\"00\",\"hex\"));else if(a===\"address\")o.push(sS.setLength(c,20));else if(a.startsWith(\"bytes\")){if(n=E8(a),n<1||n>32)throw new Error(\"Invalid bytes<N> width: \"+n);o.push(sS.setLengthRight(c,n))}else if(a.startsWith(\"uint\")){if(n=E8(a),n%8||n<8||n>256)throw new Error(\"Invalid uint<N> width: \"+n);if(r=oS(c),r.bitLength()>n)throw new Error(\"Supplied uint exceeds width: \"+n+\" vs \"+r.bitLength());o.push(r.toArrayLike(globalThis.Buffer,\"be\",n/8))}else if(a.startsWith(\"int\")){if(n=E8(a),n%8||n<8||n>256)throw new Error(\"Invalid int<N> width: \"+n);if(r=oS(c),r.bitLength()>n)throw new Error(\"Supplied int exceeds width: \"+n+\" vs \"+r.bitLength());o.push(r.toTwos(n).toArrayLike(globalThis.Buffer,\"be\",n/8))}else throw new Error(\"Unsupported or invalid type: \"+a)}return globalThis.Buffer.concat(o)}function LZe(t,e){return sS.keccak(iEe(t,e))}sEe.exports={rawEncode:NZe,solidityPack:iEe,soliditySHA3:LZe}});var uEe=be((_sn,lEe)=>{p();var ig=iee(),II=aEe(),cEe={type:\"object\",properties:{types:{type:\"object\",additionalProperties:{type:\"array\",items:{type:\"object\",properties:{name:{type:\"string\"},type:{type:\"string\"}},required:[\"name\",\"type\"]}}},primaryType:{type:\"string\"},domain:{type:\"object\"},message:{type:\"object\"}},required:[\"types\",\"primaryType\",\"domain\",\"message\"]},see={encodeData(t,e,n,r=!0){let o=[\"bytes32\"],i=[this.hashType(t,n)];if(r){let a=(c,u,d)=>{if(n[u]!==void 0)return[\"bytes32\",d==null?\"0x0000000000000000000000000000000000000000000000000000000000000000\":ig.keccak(this.encodeData(u,d,n,r))];if(d===void 0)throw new Error(`missing value for field ${c} of type ${u}`);if(u===\"bytes\")return[\"bytes32\",ig.keccak(d)];if(u===\"string\")return typeof d==\"string\"&&(d=globalThis.Buffer.from(d,\"utf8\")),[\"bytes32\",ig.keccak(d)];if(u.lastIndexOf(\"]\")===u.length-1){let h=u.slice(0,u.lastIndexOf(\"[\")),m=d.map(g=>a(c,h,g));return[\"bytes32\",ig.keccak(II.rawEncode(m.map(([g])=>g),m.map(([,g])=>g)))]}return[u,d]};for(let c of n[t]){let[u,d]=a(c.name,c.type,e[c.name]);o.push(u),i.push(d)}}else for(let a of n[t]){let c=e[a.name];if(c!==void 0)if(a.type===\"bytes\")o.push(\"bytes32\"),c=ig.keccak(c),i.push(c);else if(a.type===\"string\")o.push(\"bytes32\"),typeof c==\"string\"&&(c=globalThis.Buffer.from(c,\"utf8\")),c=ig.keccak(c),i.push(c);else if(n[a.type]!==void 0)o.push(\"bytes32\"),c=ig.keccak(this.encodeData(a.type,c,n,r)),i.push(c);else{if(a.type.lastIndexOf(\"]\")===a.type.length-1)throw new Error(\"Arrays currently unimplemented in encodeData\");o.push(a.type),i.push(c)}}return II.rawEncode(o,i)},encodeType(t,e){let n=\"\",r=this.findTypeDependencies(t,e).filter(o=>o!==t);r=[t].concat(r.sort());for(let o of r){if(!e[o])throw new Error(\"No type definition specified: \"+o);n+=o+\"(\"+e[o].map(({name:a,type:c})=>c+\" \"+a).join(\",\")+\")\"}return n},findTypeDependencies(t,e,n=[]){if(t=t.match(/^\\\\w*/)[0],n.includes(t)||e[t]===void 0)return n;n.push(t);for(let r of e[t])for(let o of this.findTypeDependencies(r.type,e,n))!n.includes(o)&&n.push(o);return n},hashStruct(t,e,n,r=!0){return ig.keccak(this.encodeData(t,e,n,r))},hashType(t,e){return ig.keccak(this.encodeType(t,e))},sanitizeData(t){let e={};for(let n in cEe.properties)t[n]&&(e[n]=t[n]);return e.types&&(e.types=Object.assign({EIP712Domain:[]},e.types)),e},hash(t,e=!0){let n=this.sanitizeData(t),r=[globalThis.Buffer.from(\"1901\",\"hex\")];return r.push(this.hashStruct(\"EIP712Domain\",n.domain,n.types,e)),n.primaryType!==\"EIP712Domain\"&&r.push(this.hashStruct(n.primaryType,n.message,n.types,e)),ig.keccak(globalThis.Buffer.concat(r))}};lEe.exports={TYPED_MESSAGE_SCHEMA:cEe,TypedDataUtils:see,hashForSignTypedDataLegacy:function(t){return BZe(t.data)},hashForSignTypedData_v3:function(t){return see.hash(t.data,!1)},hashForSignTypedData_v4:function(t){return see.hash(t.data)}};function BZe(t){let e=new Error(\"Expect argument to be non-empty array\");if(typeof t!=\"object\"||!t.length)throw e;let n=t.map(function(i){return i.type===\"bytes\"?ig.toBuffer(i.value):i.value}),r=t.map(function(i){return i.type}),o=t.map(function(i){if(!i.name)throw e;return i.type+\" \"+i.name});return II.soliditySHA3([\"bytes32\",\"bytes32\"],[II.soliditySHA3(new Array(t.length).fill(\"string\"),o),II.soliditySHA3(r,n)])}});var mEe=be(k8=>{\"use strict\";p();Object.defineProperty(k8,\"__esModule\",{value:!0});k8.filterFromParam=k8.FilterPolyfill=void 0;var S8=pI(),xd=Yy(),DZe=5*60*1e3,aS={jsonrpc:\"2.0\",id:0},aee=class{constructor(e){this.logFilters=new Map,this.blockFilters=new Set,this.pendingTransactionFilters=new Set,this.cursors=new Map,this.timeouts=new Map,this.nextFilterId=(0,S8.IntNumber)(1),this.REQUEST_THROTTLE_INTERVAL=1e3,this.lastFetchTimestamp=new Date(0),this.resolvers=[],this.provider=e}async newFilter(e){let n=pEe(e),r=this.makeFilterId(),o=await this.setInitialCursorPosition(r,n.fromBlock);return console.info(`Installing new log filter(${r}):`,n,\"initial cursor position:\",o),this.logFilters.set(r,n),this.setFilterTimeout(r),(0,xd.hexStringFromIntNumber)(r)}async newBlockFilter(){let e=this.makeFilterId(),n=await this.setInitialCursorPosition(e,\"latest\");return console.info(`Installing new block filter (${e}) with initial cursor position:`,n),this.blockFilters.add(e),this.setFilterTimeout(e),(0,xd.hexStringFromIntNumber)(e)}async newPendingTransactionFilter(){let e=this.makeFilterId(),n=await this.setInitialCursorPosition(e,\"latest\");return console.info(`Installing new block filter (${e}) with initial cursor position:`,n),this.pendingTransactionFilters.add(e),this.setFilterTimeout(e),(0,xd.hexStringFromIntNumber)(e)}uninstallFilter(e){let n=(0,xd.intNumberFromHexString)(e);return console.info(`Uninstalling filter (${n})`),this.deleteFilter(n),!0}getFilterChanges(e){let n=(0,xd.intNumberFromHexString)(e);return this.timeouts.has(n)&&this.setFilterTimeout(n),this.logFilters.has(n)?this.getLogFilterChanges(n):this.blockFilters.has(n)?this.getBlockFilterChanges(n):this.pendingTransactionFilters.has(n)?this.getPendingTransactionFilterChanges(n):Promise.resolve(Aj())}async getFilterLogs(e){let n=(0,xd.intNumberFromHexString)(e),r=this.logFilters.get(n);return r?this.sendAsyncPromise(Object.assign(Object.assign({},aS),{method:\"eth_getLogs\",params:[dEe(r)]})):Aj()}makeFilterId(){return(0,S8.IntNumber)(++this.nextFilterId)}sendAsyncPromise(e){return new Promise((n,r)=>{this.provider.sendAsync(e,(o,i)=>{if(o)return r(o);if(Array.isArray(i)||i==null)return r(new Error(`unexpected response received: ${JSON.stringify(i)}`));n(i)})})}deleteFilter(e){console.info(`Deleting filter (${e})`),this.logFilters.delete(e),this.blockFilters.delete(e),this.pendingTransactionFilters.delete(e),this.cursors.delete(e),this.timeouts.delete(e)}async getLogFilterChanges(e){let n=this.logFilters.get(e),r=this.cursors.get(e);if(!r||!n)return Aj();let o=await this.getCurrentBlockHeight(),i=n.toBlock===\"latest\"?o:n.toBlock;if(r>o||r>Number(n.toBlock))return Tj();console.info(`Fetching logs from ${r} to ${i} for filter ${e}`);let a=await this.sendAsyncPromise(Object.assign(Object.assign({},aS),{method:\"eth_getLogs\",params:[dEe(Object.assign(Object.assign({},n),{fromBlock:r,toBlock:i}))]}));if(Array.isArray(a.result)){let c=a.result.map(d=>(0,xd.intNumberFromHexString)(d.blockNumber||\"0x0\")),u=Math.max(...c);if(u&&u>r){let d=(0,S8.IntNumber)(u+1);console.info(`Moving cursor position for filter (${e}) from ${r} to ${d}`),this.cursors.set(e,d)}}return a}async getBlockFilterChanges(e){let n=this.cursors.get(e);if(!n)return Aj();let r=await this.getCurrentBlockHeight();if(n>r)return Tj();console.info(`Fetching blocks from ${n} to ${r} for filter (${e})`);let o=(await Promise.all((0,xd.range)(n,r+1).map(a=>this.getBlockHashByNumber((0,S8.IntNumber)(a))))).filter(a=>!!a),i=(0,S8.IntNumber)(n+o.length);return console.info(`Moving cursor position for filter (${e}) from ${n} to ${i}`),this.cursors.set(e,i),Object.assign(Object.assign({},aS),{result:o})}async getPendingTransactionFilterChanges(e){return Promise.resolve(Tj())}async setInitialCursorPosition(e,n){let r=await this.getCurrentBlockHeight(),o=typeof n==\"number\"&&n>r?n:r;return this.cursors.set(e,o),o}setFilterTimeout(e){let n=this.timeouts.get(e);n&&window.clearTimeout(n);let r=window.setTimeout(()=>{console.info(`Filter (${e}) timed out`),this.deleteFilter(e)},DZe);this.timeouts.set(e,r)}async getCurrentBlockHeight(){let e=new Date;if(e.getTime()-this.lastFetchTimestamp.getTime()>this.REQUEST_THROTTLE_INTERVAL){this.lastFetchTimestamp=e;let n=await this._getCurrentBlockHeight();this.currentBlockHeight=n,this.resolvers.forEach(r=>r(n)),this.resolvers=[]}return this.currentBlockHeight?this.currentBlockHeight:new Promise(n=>this.resolvers.push(n))}async _getCurrentBlockHeight(){let{result:e}=await this.sendAsyncPromise(Object.assign(Object.assign({},aS),{method:\"eth_blockNumber\",params:[]}));return(0,xd.intNumberFromHexString)((0,xd.ensureHexString)(e))}async getBlockHashByNumber(e){let n=await this.sendAsyncPromise(Object.assign(Object.assign({},aS),{method:\"eth_getBlockByNumber\",params:[(0,xd.hexStringFromIntNumber)(e),!1]}));return n.result&&typeof n.result.hash==\"string\"?(0,xd.ensureHexString)(n.result.hash):null}};k8.FilterPolyfill=aee;function pEe(t){return{fromBlock:fEe(t.fromBlock),toBlock:fEe(t.toBlock),addresses:t.address===void 0?null:Array.isArray(t.address)?t.address:[t.address],topics:t.topics||[]}}k8.filterFromParam=pEe;function dEe(t){let e={fromBlock:hEe(t.fromBlock),toBlock:hEe(t.toBlock),topics:t.topics};return t.addresses!==null&&(e.address=t.addresses),e}function fEe(t){if(t===void 0||t===\"latest\"||t===\"pending\")return\"latest\";if(t===\"earliest\")return(0,S8.IntNumber)(0);if((0,xd.isHexString)(t))return(0,xd.intNumberFromHexString)(t);throw new Error(`Invalid block option: ${String(t)}`)}function hEe(t){return t===\"latest\"?t:(0,xd.hexStringFromIntNumber)(t)}function Aj(){return Object.assign(Object.assign({},aS),{error:{code:-32e3,message:\"filter not found\"}})}function Tj(){return Object.assign(Object.assign({},aS),{result:[]})}});var Rj=be((Rsn,gEe)=>{p();gEe.exports=FZe;function FZe(t){t=t||{};var e=t.max||Number.MAX_SAFE_INTEGER,n=typeof t.start<\"u\"?t.start:Math.floor(Math.random()*e);return function(){return n=n%e,n++}}});var vEe=be((Osn,bEe)=>{\"use strict\";p();var yEe=(t,e)=>function(){let n=e.promiseModule,r=new Array(arguments.length);for(let o=0;o<arguments.length;o++)r[o]=arguments[o];return new n((o,i)=>{e.errorFirst?r.push(function(a,c){if(e.multiArgs){let u=new Array(arguments.length-1);for(let d=1;d<arguments.length;d++)u[d-1]=arguments[d];a?(u.unshift(a),i(u)):o(u)}else a?i(a):o(c)}):r.push(function(a){if(e.multiArgs){let c=new Array(arguments.length-1);for(let u=0;u<arguments.length;u++)c[u]=arguments[u];o(c)}else o(a)}),t.apply(this,r)})};bEe.exports=(t,e)=>{e=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},e);let n=o=>{let i=a=>typeof a==\"string\"?o===a:a.test(o);return e.include?e.include.some(i):!e.exclude.some(i)},r;typeof t==\"function\"?r=function(){return e.excludeMain?t.apply(this,arguments):yEe(t,e).apply(this,arguments)}:r=Object.create(Object.getPrototypeOf(t));for(let o in t){let i=t[o];r[o]=typeof i==\"function\"&&n(o)?yEe(i,e):i}return r}});var Ij=be(lee=>{\"use strict\";p();Object.defineProperty(lee,\"__esModule\",{value:!0});var UZe=EI();function wEe(t,e,n){try{Reflect.apply(t,e,n)}catch(r){setTimeout(()=>{throw r})}}function jZe(t){let e=t.length,n=new Array(e);for(let r=0;r<e;r+=1)n[r]=t[r];return n}var cee=class extends UZe.EventEmitter{emit(e,...n){let r=e===\"error\",o=this._events;if(o!==void 0)r=r&&o.error===void 0;else if(!r)return!1;if(r){let a;if(n.length>0&&([a]=n),a instanceof Error)throw a;let c=new Error(`Unhandled error.${a?` (${a.message})`:\"\"}`);throw c.context=a,c}let i=o[e];if(i===void 0)return!1;if(typeof i==\"function\")wEe(i,this,n);else{let a=i.length,c=jZe(i);for(let u=0;u<a;u+=1)wEe(c[u],this,n)}return!0}};lee.default=cee});var dee=be(_8=>{\"use strict\";p();var zZe=_8&&_8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_8,\"__esModule\",{value:!0});_8.BaseBlockTracker=void 0;var HZe=zZe(Ij()),qZe=1e3,WZe=(t,e)=>t+e,xEe=[\"sync\",\"latest\"],uee=class extends HZe.default{constructor(e){super(),this._blockResetDuration=e.blockResetDuration||20*qZe,this._usePastBlocks=e.usePastBlocks||!1,this._currentBlock=null,this._isRunning=!1,this._onNewListener=this._onNewListener.bind(this),this._onRemoveListener=this._onRemoveListener.bind(this),this._resetCurrentBlock=this._resetCurrentBlock.bind(this),this._setupInternalEvents()}async destroy(){this._cancelBlockResetTimeout(),await this._maybeEnd(),super.removeAllListeners()}isRunning(){return this._isRunning}getCurrentBlock(){return this._currentBlock}async getLatestBlock(){return this._currentBlock?this._currentBlock:await new Promise(n=>this.once(\"latest\",n))}removeAllListeners(e){return e?super.removeAllListeners(e):super.removeAllListeners(),this._setupInternalEvents(),this._onRemoveListener(),this}_setupInternalEvents(){this.removeListener(\"newListener\",this._onNewListener),this.removeListener(\"removeListener\",this._onRemoveListener),this.on(\"newListener\",this._onNewListener),this.on(\"removeListener\",this._onRemoveListener)}_onNewListener(e){xEe.includes(e)&&this._maybeStart()}_onRemoveListener(){this._getBlockTrackerEventCount()>0||this._maybeEnd()}async _maybeStart(){this._isRunning||(this._isRunning=!0,this._cancelBlockResetTimeout(),await this._start(),this.emit(\"_started\"))}async _maybeEnd(){this._isRunning&&(this._isRunning=!1,this._setupBlockResetTimeout(),await this._end(),this.emit(\"_ended\"))}_getBlockTrackerEventCount(){return xEe.map(e=>this.listenerCount(e)).reduce(WZe)}_shouldUseNewBlock(e){let n=this._currentBlock;if(!n)return!0;let r=EEe(e),o=EEe(n);return this._usePastBlocks&&r<o||r>o}_newPotentialLatest(e){this._shouldUseNewBlock(e)&&this._setCurrentBlock(e)}_setCurrentBlock(e){let n=this._currentBlock;this._currentBlock=e,this.emit(\"latest\",e),this.emit(\"sync\",{oldBlock:n,newBlock:e})}_setupBlockResetTimeout(){this._cancelBlockResetTimeout(),this._blockResetTimeout=setTimeout(this._resetCurrentBlock,this._blockResetDuration),this._blockResetTimeout.unref&&this._blockResetTimeout.unref()}_cancelBlockResetTimeout(){this._blockResetTimeout&&clearTimeout(this._blockResetTimeout)}_resetCurrentBlock(){this._currentBlock=null}};_8.BaseBlockTracker=uee;function EEe(t){return Number.parseInt(t,16)}});var Lx={};ld(Lx,{Struct:()=>Cs,StructError:()=>Oj,any:()=>nYe,array:()=>rYe,assert:()=>kEe,assign:()=>GZe,bigint:()=>oYe,boolean:()=>iYe,coerce:()=>gee,create:()=>_Ee,date:()=>sYe,defaulted:()=>xYe,define:()=>kf,deprecated:()=>ZZe,dynamic:()=>YZe,empty:()=>SYe,enums:()=>aYe,func:()=>cYe,instance:()=>lYe,integer:()=>uYe,intersection:()=>dYe,is:()=>pee,lazy:()=>QZe,literal:()=>fYe,map:()=>hYe,mask:()=>CEe,max:()=>kYe,min:()=>_Ye,never:()=>mee,nonempty:()=>CYe,nullable:()=>pYe,number:()=>mYe,object:()=>OI,omit:()=>JZe,optional:()=>AEe,partial:()=>XZe,pattern:()=>AYe,pick:()=>eYe,record:()=>gYe,refine:()=>cS,regexp:()=>yYe,set:()=>bYe,size:()=>TYe,string:()=>TEe,struct:()=>tYe,trimmed:()=>EYe,tuple:()=>vYe,type:()=>PI,union:()=>wYe,unknown:()=>REe,validate:()=>C8});function VZe(t){return fm(t)&&typeof t[Symbol.iterator]==\"function\"}function fm(t){return typeof t==\"object\"&&t!=null}function SEe(t){if(Object.prototype.toString.call(t)!==\"[object Object]\")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}function gc(t){return typeof t==\"symbol\"?t.toString():typeof t==\"string\"?JSON.stringify(t):`${t}`}function $Ze(t){let{done:e,value:n}=t.next();return e?void 0:n}function KZe(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t==\"string\"&&(t={message:t});let{path:o,branch:i}=e,{type:a}=n,{refinement:c,message:u=`Expected a value of type \\\\`${a}\\\\`${c?` with refinement \\\\`${c}\\\\``:\"\"}, but received: \\\\`${gc(r)}\\\\``}=t;return{value:r,type:a,refinement:c,key:o[o.length-1],path:o,branch:i,...t,message:u}}function*fee(t,e,n,r){VZe(t)||(t=[t]);for(let o of t){let i=KZe(o,e,n,r);i&&(yield i)}}function*hee(t,e,n={}){let{path:r=[],branch:o=[t],coerce:i=!1,mask:a=!1}=n,c={path:r,branch:o};if(i&&(t=e.coercer(t,c),a&&e.type!==\"type\"&&fm(e.schema)&&fm(t)&&!Array.isArray(t)))for(let d in t)e.schema[d]===void 0&&delete t[d];let u=\"valid\";for(let d of e.validator(t,c))d.explanation=n.message,u=\"not_valid\",yield[d,void 0];for(let[d,h,m]of e.entries(t,c)){let g=hee(h,m,{path:d===void 0?r:[...r,d],branch:d===void 0?o:[...o,h],coerce:i,mask:a,message:n.message});for(let b of g)b[0]?(u=b[0].refinement!=null?\"not_refined\":\"not_valid\",yield[b[0],void 0]):i&&(h=b[1],d===void 0?t=h:t instanceof Map?t.set(d,h):t instanceof Set?t.add(h):fm(t)&&(h!==void 0||d in t)&&(t[d]=h))}if(u!==\"not_valid\")for(let d of e.refiner(t,c))d.explanation=n.message,u=\"not_refined\",yield[d,void 0];u===\"valid\"&&(yield[void 0,t])}function kEe(t,e,n){let r=C8(t,e,{message:n});if(r[0])throw r[0]}function _Ee(t,e,n){let r=C8(t,e,{coerce:!0,message:n});if(r[0])throw r[0];return r[1]}function CEe(t,e,n){let r=C8(t,e,{coerce:!0,mask:!0,message:n});if(r[0])throw r[0];return r[1]}function pee(t,e){return!C8(t,e)[0]}function C8(t,e,n={}){let r=hee(t,e,n),o=$Ze(r);return o[0]?[new Oj(o[0],function*(){for(let a of r)a[0]&&(yield a[0])}),void 0]:[void 0,o[1]]}function GZe(...t){let e=t[0].type===\"type\",n=t.map(o=>o.schema),r=Object.assign({},...n);return e?PI(r):OI(r)}function kf(t,e){return new Cs({type:t,schema:null,validator:e})}function ZZe(t,e){return new Cs({...t,refiner:(n,r)=>n===void 0||t.refiner(n,r),validator(n,r){return n===void 0?!0:(e(n,r),t.validator(n,r))}})}function YZe(t){return new Cs({type:\"dynamic\",schema:null,*entries(e,n){yield*t(e,n).entries(e,n)},validator(e,n){return t(e,n).validator(e,n)},coercer(e,n){return t(e,n).coercer(e,n)},refiner(e,n){return t(e,n).refiner(e,n)}})}function QZe(t){let e;return new Cs({type:\"lazy\",schema:null,*entries(n,r){e??(e=t()),yield*e.entries(n,r)},validator(n,r){return e??(e=t()),e.validator(n,r)},coercer(n,r){return e??(e=t()),e.coercer(n,r)},refiner(n,r){return e??(e=t()),e.refiner(n,r)}})}function JZe(t,e){let{schema:n}=t,r={...n};for(let o of e)delete r[o];switch(t.type){case\"type\":return PI(r);default:return OI(r)}}function XZe(t){let e=t instanceof Cs,n=e?{...t.schema}:{...t};for(let r in n)n[r]=AEe(n[r]);return e&&t.type===\"type\"?PI(n):OI(n)}function eYe(t,e){let{schema:n}=t,r={};for(let o of e)r[o]=n[o];switch(t.type){case\"type\":return PI(r);default:return OI(r)}}function tYe(t,e){return console.warn(\"superstruct@0.11 - The `struct` helper has been renamed to `define`.\"),kf(t,e)}function nYe(){return kf(\"any\",()=>!0)}function rYe(t){return new Cs({type:\"array\",schema:t,*entries(e){if(t&&Array.isArray(e))for(let[n,r]of e.entries())yield[n,r,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${gc(e)}`}})}function oYe(){return kf(\"bigint\",t=>typeof t==\"bigint\")}function iYe(){return kf(\"boolean\",t=>typeof t==\"boolean\")}function sYe(){return kf(\"date\",t=>t instanceof Date&&!isNaN(t.getTime())||`Expected a valid \\\\`Date\\\\` object, but received: ${gc(t)}`)}function aYe(t){let e={},n=t.map(r=>gc(r)).join();for(let r of t)e[r]=r;return new Cs({type:\"enums\",schema:e,validator(r){return t.includes(r)||`Expected one of \\\\`${n}\\\\`, but received: ${gc(r)}`}})}function cYe(){return kf(\"func\",t=>typeof t==\"function\"||`Expected a function, but received: ${gc(t)}`)}function lYe(t){return kf(\"instance\",e=>e instanceof t||`Expected a \\\\`${t.name}\\\\` instance, but received: ${gc(e)}`)}function uYe(){return kf(\"integer\",t=>typeof t==\"number\"&&!isNaN(t)&&Number.isInteger(t)||`Expected an integer, but received: ${gc(t)}`)}function dYe(t){return new Cs({type:\"intersection\",schema:null,*entries(e,n){for(let r of t)yield*r.entries(e,n)},*validator(e,n){for(let r of t)yield*r.validator(e,n)},*refiner(e,n){for(let r of t)yield*r.refiner(e,n)}})}function fYe(t){let e=gc(t),n=typeof t;return new Cs({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?t:null,validator(r){return r===t||`Expected the literal \\\\`${e}\\\\`, but received: ${gc(r)}`}})}function hYe(t,e){return new Cs({type:\"map\",schema:null,*entries(n){if(t&&e&&n instanceof Map)for(let[r,o]of n.entries())yield[r,r,t],yield[r,o,e]},coercer(n){return n instanceof Map?new Map(n):n},validator(n){return n instanceof Map||`Expected a \\\\`Map\\\\` object, but received: ${gc(n)}`}})}function mee(){return kf(\"never\",()=>!1)}function pYe(t){return new Cs({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}function mYe(){return kf(\"number\",t=>typeof t==\"number\"&&!isNaN(t)||`Expected a number, but received: ${gc(t)}`)}function OI(t){let e=t?Object.keys(t):[],n=mee();return new Cs({type:\"object\",schema:t||null,*entries(r){if(t&&fm(r)){let o=new Set(Object.keys(r));for(let i of e)o.delete(i),yield[i,r[i],t[i]];for(let i of o)yield[i,r[i],n]}},validator(r){return fm(r)||`Expected an object, but received: ${gc(r)}`},coercer(r){return fm(r)?{...r}:r}})}function AEe(t){return new Cs({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function gYe(t,e){return new Cs({type:\"record\",schema:null,*entries(n){if(fm(n))for(let r in n){let o=n[r];yield[r,r,t],yield[r,o,e]}},validator(n){return fm(n)||`Expected an object, but received: ${gc(n)}`}})}function yYe(){return kf(\"regexp\",t=>t instanceof RegExp)}function bYe(t){return new Cs({type:\"set\",schema:null,*entries(e){if(t&&e instanceof Set)for(let n of e)yield[n,n,t]},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \\\\`Set\\\\` object, but received: ${gc(e)}`}})}function TEe(){return kf(\"string\",t=>typeof t==\"string\"||`Expected a string, but received: ${gc(t)}`)}function vYe(t){let e=mee();return new Cs({type:\"tuple\",schema:null,*entries(n){if(Array.isArray(n)){let r=Math.max(t.length,n.length);for(let o=0;o<r;o++)yield[o,n[o],t[o]||e]}},validator(n){return Array.isArray(n)||`Expected an array, but received: ${gc(n)}`}})}function PI(t){let e=Object.keys(t);return new Cs({type:\"type\",schema:t,*entries(n){if(fm(n))for(let r of e)yield[r,n[r],t[r]]},validator(n){return fm(n)||`Expected an object, but received: ${gc(n)}`},coercer(n){return fm(n)?{...n}:n}})}function wYe(t){let e=t.map(n=>n.type).join(\" | \");return new Cs({type:\"union\",schema:null,coercer(n){for(let r of t){let[o,i]=r.validate(n,{coerce:!0});if(!o)return i}return n},validator(n,r){let o=[];for(let i of t){let[...a]=hee(n,i,r),[c]=a;if(c[0])for(let[u]of a)u&&o.push(u);else return[]}return[`Expected the value to satisfy a union of \\\\`${e}\\\\`, but received: ${gc(n)}`,...o]}})}function REe(){return kf(\"unknown\",()=>!0)}function gee(t,e,n){return new Cs({...t,coercer:(r,o)=>pee(r,e)?t.coercer(n(r,o),o):t.coercer(r,o)})}function xYe(t,e,n={}){return gee(t,REe(),r=>{let o=typeof e==\"function\"?e():e;if(r===void 0)return o;if(!n.strict&&SEe(r)&&SEe(o)){let i={...r},a=!1;for(let c in o)i[c]===void 0&&(i[c]=o[c],a=!0);if(a)return i}return r})}function EYe(t){return gee(t,TEe(),e=>e.trim())}function SYe(t){return cS(t,\"empty\",e=>{let n=IEe(e);return n===0||`Expected an empty ${t.type} but received one with a size of \\\\`${n}\\\\``})}function IEe(t){return t instanceof Map||t instanceof Set?t.size:t.length}function kYe(t,e,n={}){let{exclusive:r}=n;return cS(t,\"max\",o=>r?o<e:o<=e||`Expected a ${t.type} less than ${r?\"\":\"or equal to \"}${e} but received \\\\`${o}\\\\``)}function _Ye(t,e,n={}){let{exclusive:r}=n;return cS(t,\"min\",o=>r?o>e:o>=e||`Expected a ${t.type} greater than ${r?\"\":\"or equal to \"}${e} but received \\\\`${o}\\\\``)}function CYe(t){return cS(t,\"nonempty\",e=>IEe(e)>0||`Expected a nonempty ${t.type} but received an empty one`)}function AYe(t,e){return cS(t,\"pattern\",n=>e.test(n)||`Expected a ${t.type} matching \\\\`/${e.source}/\\\\` but received \"${n}\"`)}function TYe(t,e,n=e){let r=`Expected a ${t.type}`,o=e===n?`of \\\\`${e}\\\\``:`between \\\\`${e}\\\\` and \\\\`${n}\\\\``;return cS(t,\"size\",i=>{if(typeof i==\"number\"||i instanceof Date)return e<=i&&i<=n||`${r} ${o} but received \\\\`${i}\\\\``;if(i instanceof Map||i instanceof Set){let{size:a}=i;return e<=a&&a<=n||`${r} with a size ${o} but received one with a size of \\\\`${a}\\\\``}else{let{length:a}=i;return e<=a&&a<=n||`${r} with a length ${o} but received one with a length of \\\\`${a}\\\\``}})}function cS(t,e,n){return new Cs({...t,*refiner(r,o){yield*t.refiner(r,o);let i=n(r,o),a=fee(i,o,t,r);for(let c of a)yield{...c,refinement:e}}})}var Oj,Cs,Bx=ce(()=>{p();Oj=class extends TypeError{constructor(e,n){let r,{message:o,explanation:i,...a}=e,{path:c}=e,u=c.length===0?o:`At path: ${c.join(\".\")} -- ${o}`;super(i??u),i!=null&&(this.cause=u),Object.assign(this,a),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...n()])}};Cs=class{constructor(e){let{type:n,schema:r,validator:o,refiner:i,coercer:a=u=>u,entries:c=function*(){}}=e;this.type=n,this.schema=r,this.entries=c,this.coercer=a,o?this.validator=(u,d)=>{let h=o(u,d);return fee(h,d,this,u)}:this.validator=()=>[],i?this.refiner=(u,d)=>{let h=i(u,d);return fee(h,d,this,u)}:this.refiner=()=>[]}assert(e,n){return kEe(e,this,n)}create(e,n){return _Ee(e,this,n)}is(e){return pee(e,this)}mask(e,n){return CEe(e,this,n)}validate(e,n={}){return C8(e,this,n)}}});var Nv=be(s1=>{\"use strict\";p();Object.defineProperty(s1,\"__esModule\",{value:!0});s1.assertExhaustive=s1.assertStruct=s1.assert=s1.AssertionError=void 0;var RYe=(Bx(),go(Lx));function IYe(t){return typeof t==\"object\"&&t!==null&&\"message\"in t}function OYe(t){var e,n;return typeof((n=(e=t?.prototype)===null||e===void 0?void 0:e.constructor)===null||n===void 0?void 0:n.name)==\"string\"}function PYe(t){let e=IYe(t)?t.message:String(t);return e.endsWith(\".\")?e.slice(0,-1):e}function OEe(t,e){return OYe(t)?new t({message:e}):t({message:e})}var MI=class extends Error{constructor(e){super(e.message),this.code=\"ERR_ASSERTION\"}};s1.AssertionError=MI;function MYe(t,e=\"Assertion failed.\",n=MI){if(!t)throw e instanceof Error?e:OEe(n,e)}s1.assert=MYe;function NYe(t,e,n=\"Assertion failed\",r=MI){try{(0,RYe.assert)(t,e)}catch(o){throw OEe(r,`${n}: ${PYe(o)}.`)}}s1.assertStruct=NYe;function LYe(t){throw new Error(\"Invalid branch reached. Should be detected during compilation.\")}s1.assertExhaustive=LYe});var yee=be(Pj=>{\"use strict\";p();Object.defineProperty(Pj,\"__esModule\",{value:!0});Pj.base64=void 0;var BYe=(Bx(),go(Lx)),DYe=Nv(),FYe=(t,e={})=>{var n,r;let o=(n=e.paddingRequired)!==null&&n!==void 0?n:!1,i=(r=e.characterSet)!==null&&r!==void 0?r:\"base64\",a;i===\"base64\"?a=String.raw`[A-Za-z0-9+\\\\/]`:((0,DYe.assert)(i===\"base64url\"),a=String.raw`[-_A-Za-z0-9]`);let c;return o?c=new RegExp(`^(?:${a}{4})*(?:${a}{3}=|${a}{2}==)?$`,\"u\"):c=new RegExp(`^(?:${a}{4})*(?:${a}{2,3}|${a}{3}=|${a}{2}==)?$`,\"u\"),(0,BYe.pattern)(t,c)};Pj.base64=FYe});var NI=be(Va=>{\"use strict\";p();Object.defineProperty(Va,\"__esModule\",{value:!0});Va.remove0x=Va.add0x=Va.assertIsStrictHexString=Va.assertIsHexString=Va.isStrictHexString=Va.isHexString=Va.StrictHexStruct=Va.HexStruct=void 0;var A8=(Bx(),go(Lx)),PEe=Nv();Va.HexStruct=(0,A8.pattern)((0,A8.string)(),/^(?:0x)?[0-9a-f]+$/iu);Va.StrictHexStruct=(0,A8.pattern)((0,A8.string)(),/^0x[0-9a-f]+$/iu);function MEe(t){return(0,A8.is)(t,Va.HexStruct)}Va.isHexString=MEe;function NEe(t){return(0,A8.is)(t,Va.StrictHexStruct)}Va.isStrictHexString=NEe;function UYe(t){(0,PEe.assert)(MEe(t),\"Value must be a hexadecimal string.\")}Va.assertIsHexString=UYe;function jYe(t){(0,PEe.assert)(NEe(t),\\'Value must be a hexadecimal string, starting with \"0x\".\\')}Va.assertIsStrictHexString=jYe;function zYe(t){return t.startsWith(\"0x\")?t:t.startsWith(\"0X\")?`0x${t.substring(2)}`:`0x${t}`}Va.add0x=zYe;function HYe(t){return t.startsWith(\"0x\")||t.startsWith(\"0X\")?t.substring(2):t}Va.remove0x=HYe});var wee=be(vo=>{\"use strict\";p();Object.defineProperty(vo,\"__esModule\",{value:!0});vo.createDataView=vo.concatBytes=vo.valueToBytes=vo.stringToBytes=vo.numberToBytes=vo.signedBigIntToBytes=vo.bigIntToBytes=vo.hexToBytes=vo.bytesToString=vo.bytesToNumber=vo.bytesToSignedBigInt=vo.bytesToBigInt=vo.bytesToHex=vo.assertIsBytes=vo.isBytes=void 0;var Ch=Nv(),bee=NI(),LEe=48,BEe=58,DEe=87;function qYe(){let t=[];return()=>{if(t.length===0)for(let e=0;e<256;e++)t.push(e.toString(16).padStart(2,\"0\"));return t}}var WYe=qYe();function vee(t){return t instanceof Uint8Array}vo.isBytes=vee;function T8(t){(0,Ch.assert)(vee(t),\"Value must be a Uint8Array.\")}vo.assertIsBytes=T8;function FEe(t){if(T8(t),t.length===0)return\"0x\";let e=WYe(),n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=e[t[r]];return(0,bee.add0x)(n.join(\"\"))}vo.bytesToHex=FEe;function UEe(t){T8(t);let e=FEe(t);return BigInt(e)}vo.bytesToBigInt=UEe;function VYe(t){T8(t);let e=BigInt(0);for(let n of t)e=(e<<BigInt(8))+BigInt(n);return BigInt.asIntN(t.length*8,e)}vo.bytesToSignedBigInt=VYe;function $Ye(t){T8(t);let e=UEe(t);return(0,Ch.assert)(e<=BigInt(Number.MAX_SAFE_INTEGER),\"Number is not a safe integer. Use `bytesToBigInt` instead.\"),Number(e)}vo.bytesToNumber=$Ye;function KYe(t){return T8(t),new TextDecoder().decode(t)}vo.bytesToString=KYe;function Mj(t){var e;if(((e=t?.toLowerCase)===null||e===void 0?void 0:e.call(t))===\"0x\")return new Uint8Array;(0,bee.assertIsHexString)(t);let n=(0,bee.remove0x)(t).toLowerCase(),r=n.length%2===0?n:`0${n}`,o=new Uint8Array(r.length/2);for(let i=0;i<o.length;i++){let a=r.charCodeAt(i*2),c=r.charCodeAt(i*2+1),u=a-(a<BEe?LEe:DEe),d=c-(c<BEe?LEe:DEe);o[i]=u*16+d}return o}vo.hexToBytes=Mj;function jEe(t){(0,Ch.assert)(typeof t==\"bigint\",\"Value must be a bigint.\"),(0,Ch.assert)(t>=BigInt(0),\"Value must be a non-negative bigint.\");let e=t.toString(16);return Mj(e)}vo.bigIntToBytes=jEe;function GYe(t,e){(0,Ch.assert)(e>0);let n=t>>BigInt(31);return!((~t&n)+(t&~n)>>BigInt(e*8+-1))}function ZYe(t,e){(0,Ch.assert)(typeof t==\"bigint\",\"Value must be a bigint.\"),(0,Ch.assert)(typeof e==\"number\",\"Byte length must be a number.\"),(0,Ch.assert)(e>0,\"Byte length must be greater than 0.\"),(0,Ch.assert)(GYe(t,e),\"Byte length is too small to represent the given value.\");let n=t,r=new Uint8Array(e);for(let o=0;o<r.length;o++)r[o]=Number(BigInt.asUintN(8,n)),n>>=BigInt(8);return r.reverse()}vo.signedBigIntToBytes=ZYe;function zEe(t){(0,Ch.assert)(typeof t==\"number\",\"Value must be a number.\"),(0,Ch.assert)(t>=0,\"Value must be a non-negative number.\"),(0,Ch.assert)(Number.isSafeInteger(t),\"Value is not a safe integer. Use `bigIntToBytes` instead.\");let e=t.toString(16);return Mj(e)}vo.numberToBytes=zEe;function HEe(t){return(0,Ch.assert)(typeof t==\"string\",\"Value must be a string.\"),new TextEncoder().encode(t)}vo.stringToBytes=HEe;function qEe(t){if(typeof t==\"bigint\")return jEe(t);if(typeof t==\"number\")return zEe(t);if(typeof t==\"string\")return t.startsWith(\"0x\")?Mj(t):HEe(t);if(vee(t))return t;throw new TypeError(`Unsupported value type: \"${typeof t}\".`)}vo.valueToBytes=qEe;function YYe(t){let e=new Array(t.length),n=0;for(let o=0;o<t.length;o++){let i=qEe(t[o]);e[o]=i,n+=i.length}let r=new Uint8Array(n);for(let o=0,i=0;o<e.length;o++)r.set(e[o],i),i+=e[o].length;return r}vo.concatBytes=YYe;function QYe(t){if(typeof globalThis.Buffer<\"u\"&&t instanceof globalThis.Buffer){let e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return new DataView(e)}return new DataView(t.buffer,t.byteOffset,t.byteLength)}vo.createDataView=QYe});var VEe=be(Nj=>{\"use strict\";p();Object.defineProperty(Nj,\"__esModule\",{value:!0});Nj.ChecksumStruct=void 0;var WEe=(Bx(),go(Lx)),JYe=yee();Nj.ChecksumStruct=(0,WEe.size)((0,JYe.base64)((0,WEe.string)(),{paddingRequired:!0}),44,44)});var GEe=be(a1=>{\"use strict\";p();Object.defineProperty(a1,\"__esModule\",{value:!0});a1.createHex=a1.createBytes=a1.createBigInt=a1.createNumber=void 0;var As=(Bx(),go(Lx)),XYe=Nv(),$Ee=wee(),Lj=NI(),KEe=(0,As.union)([(0,As.number)(),(0,As.bigint)(),(0,As.string)(),Lj.StrictHexStruct]),eQe=(0,As.coerce)((0,As.number)(),KEe,Number),tQe=(0,As.coerce)((0,As.bigint)(),KEe,BigInt),Gsn=(0,As.union)([Lj.StrictHexStruct,(0,As.instance)(Uint8Array)]),nQe=(0,As.coerce)((0,As.instance)(Uint8Array),(0,As.union)([Lj.StrictHexStruct]),$Ee.hexToBytes),rQe=(0,As.coerce)(Lj.StrictHexStruct,(0,As.instance)(Uint8Array),$Ee.bytesToHex);function oQe(t){try{let e=(0,As.create)(t,eQe);return(0,XYe.assert)(Number.isFinite(e),`Expected a number-like value, got \"${t}\".`),e}catch(e){throw e instanceof As.StructError?new Error(`Expected a number-like value, got \"${t}\".`):e}}a1.createNumber=oQe;function iQe(t){try{return(0,As.create)(t,tQe)}catch(e){throw e instanceof As.StructError?new Error(`Expected a number-like value, got \"${String(e.value)}\".`):e}}a1.createBigInt=iQe;function sQe(t){if(typeof t==\"string\"&&t.toLowerCase()===\"0x\")return new Uint8Array;try{return(0,As.create)(t,nQe)}catch(e){throw e instanceof As.StructError?new Error(`Expected a bytes-like value, got \"${String(e.value)}\".`):e}}a1.createBytes=sQe;function aQe(t){if(t instanceof Uint8Array&&t.length===0||typeof t==\"string\"&&t.toLowerCase()===\"0x\")return\"0x\";try{return(0,As.create)(t,rQe)}catch(e){throw e instanceof As.StructError?new Error(`Expected a bytes-like value, got \"${String(e.value)}\".`):e}}a1.createHex=aQe});var YEe=be(l1=>{\"use strict\";p();var ZEe=l1&&l1.__classPrivateFieldSet||function(t,e,n,r,o){if(r===\"m\")throw new TypeError(\"Private method is not writable\");if(r===\"a\"&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(typeof e==\"function\"?t!==e||!o:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return r===\"a\"?o.call(t,n):o?o.value=n:e.set(t,n),n},Ed=l1&&l1.__classPrivateFieldGet||function(t,e,n,r){if(n===\"a\"&&!r)throw new TypeError(\"Private accessor was defined without a getter\");if(typeof e==\"function\"?t!==e||!r:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return n===\"m\"?r:n===\"a\"?r.call(t):r?r.value:e.get(t)},sg,c1;Object.defineProperty(l1,\"__esModule\",{value:!0});l1.FrozenSet=l1.FrozenMap=void 0;var LI=class{constructor(e){sg.set(this,void 0),ZEe(this,sg,new Map(e),\"f\"),Object.freeze(this)}get size(){return Ed(this,sg,\"f\").size}[(sg=new WeakMap,Symbol.iterator)](){return Ed(this,sg,\"f\")[Symbol.iterator]()}entries(){return Ed(this,sg,\"f\").entries()}forEach(e,n){return Ed(this,sg,\"f\").forEach((r,o,i)=>e.call(n,r,o,this))}get(e){return Ed(this,sg,\"f\").get(e)}has(e){return Ed(this,sg,\"f\").has(e)}keys(){return Ed(this,sg,\"f\").keys()}values(){return Ed(this,sg,\"f\").values()}toString(){return`FrozenMap(${this.size}) {${this.size>0?` ${[...this.entries()].map(([e,n])=>`${String(e)} => ${String(n)}`).join(\", \")} `:\"\"}}`}};l1.FrozenMap=LI;var BI=class{constructor(e){c1.set(this,void 0),ZEe(this,c1,new Set(e),\"f\"),Object.freeze(this)}get size(){return Ed(this,c1,\"f\").size}[(c1=new WeakMap,Symbol.iterator)](){return Ed(this,c1,\"f\")[Symbol.iterator]()}entries(){return Ed(this,c1,\"f\").entries()}forEach(e,n){return Ed(this,c1,\"f\").forEach((r,o,i)=>e.call(n,r,o,this))}has(e){return Ed(this,c1,\"f\").has(e)}keys(){return Ed(this,c1,\"f\").keys()}values(){return Ed(this,c1,\"f\").values()}toString(){return`FrozenSet(${this.size}) {${this.size>0?` ${[...this.values()].map(e=>String(e)).join(\", \")} `:\"\"}}`}};l1.FrozenSet=BI;Object.freeze(LI);Object.freeze(LI.prototype);Object.freeze(BI);Object.freeze(BI.prototype)});var JEe=be(QEe=>{\"use strict\";p();Object.defineProperty(QEe,\"__esModule\",{value:!0})});var XEe=be(kt=>{\"use strict\";p();Object.defineProperty(kt,\"__esModule\",{value:!0});kt.getJsonRpcIdValidator=kt.assertIsJsonRpcError=kt.isJsonRpcError=kt.assertIsJsonRpcFailure=kt.isJsonRpcFailure=kt.assertIsJsonRpcSuccess=kt.isJsonRpcSuccess=kt.assertIsJsonRpcResponse=kt.isJsonRpcResponse=kt.assertIsPendingJsonRpcResponse=kt.isPendingJsonRpcResponse=kt.JsonRpcResponseStruct=kt.JsonRpcFailureStruct=kt.JsonRpcSuccessStruct=kt.PendingJsonRpcResponseStruct=kt.assertIsJsonRpcRequest=kt.isJsonRpcRequest=kt.assertIsJsonRpcNotification=kt.isJsonRpcNotification=kt.JsonRpcNotificationStruct=kt.JsonRpcRequestStruct=kt.JsonRpcParamsStruct=kt.JsonRpcErrorStruct=kt.JsonRpcIdStruct=kt.JsonRpcVersionStruct=kt.jsonrpc2=kt.getJsonSize=kt.isValidJson=kt.JsonStruct=kt.UnsafeJsonStruct=void 0;var Nn=(Bx(),go(Lx)),Dx=Nv(),cQe=()=>(0,Nn.define)(\"finite number\",t=>(0,Nn.is)(t,(0,Nn.number)())&&Number.isFinite(t));kt.UnsafeJsonStruct=(0,Nn.union)([(0,Nn.literal)(null),(0,Nn.boolean)(),cQe(),(0,Nn.string)(),(0,Nn.array)((0,Nn.lazy)(()=>kt.UnsafeJsonStruct)),(0,Nn.record)((0,Nn.string)(),(0,Nn.lazy)(()=>kt.UnsafeJsonStruct))]);kt.JsonStruct=(0,Nn.define)(\"Json\",(t,e)=>{function n(r,o){let a=[...o.validator(r,e)];return a.length>0?a:!0}try{let r=n(t,kt.UnsafeJsonStruct);return r!==!0?r:n(JSON.parse(JSON.stringify(t)),kt.UnsafeJsonStruct)}catch(r){return r instanceof RangeError?\"Circular reference detected\":!1}});function lQe(t){return(0,Nn.is)(t,kt.JsonStruct)}kt.isValidJson=lQe;function uQe(t){(0,Dx.assertStruct)(t,kt.JsonStruct,\"Invalid JSON value\");let e=JSON.stringify(t);return new TextEncoder().encode(e).byteLength}kt.getJsonSize=uQe;kt.jsonrpc2=\"2.0\";kt.JsonRpcVersionStruct=(0,Nn.literal)(kt.jsonrpc2);kt.JsonRpcIdStruct=(0,Nn.nullable)((0,Nn.union)([(0,Nn.number)(),(0,Nn.string)()]));kt.JsonRpcErrorStruct=(0,Nn.object)({code:(0,Nn.integer)(),message:(0,Nn.string)(),data:(0,Nn.optional)(kt.JsonStruct),stack:(0,Nn.optional)((0,Nn.string)())});kt.JsonRpcParamsStruct=(0,Nn.optional)((0,Nn.union)([(0,Nn.record)((0,Nn.string)(),kt.JsonStruct),(0,Nn.array)(kt.JsonStruct)]));kt.JsonRpcRequestStruct=(0,Nn.object)({id:kt.JsonRpcIdStruct,jsonrpc:kt.JsonRpcVersionStruct,method:(0,Nn.string)(),params:kt.JsonRpcParamsStruct});kt.JsonRpcNotificationStruct=(0,Nn.omit)(kt.JsonRpcRequestStruct,[\"id\"]);function dQe(t){return(0,Nn.is)(t,kt.JsonRpcNotificationStruct)}kt.isJsonRpcNotification=dQe;function fQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcNotificationStruct,\"Invalid JSON-RPC notification\",e)}kt.assertIsJsonRpcNotification=fQe;function hQe(t){return(0,Nn.is)(t,kt.JsonRpcRequestStruct)}kt.isJsonRpcRequest=hQe;function pQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcRequestStruct,\"Invalid JSON-RPC request\",e)}kt.assertIsJsonRpcRequest=pQe;kt.PendingJsonRpcResponseStruct=(0,Nn.object)({id:kt.JsonRpcIdStruct,jsonrpc:kt.JsonRpcVersionStruct,result:(0,Nn.optional)((0,Nn.unknown)()),error:(0,Nn.optional)(kt.JsonRpcErrorStruct)});kt.JsonRpcSuccessStruct=(0,Nn.object)({id:kt.JsonRpcIdStruct,jsonrpc:kt.JsonRpcVersionStruct,result:kt.JsonStruct});kt.JsonRpcFailureStruct=(0,Nn.object)({id:kt.JsonRpcIdStruct,jsonrpc:kt.JsonRpcVersionStruct,error:kt.JsonRpcErrorStruct});kt.JsonRpcResponseStruct=(0,Nn.union)([kt.JsonRpcSuccessStruct,kt.JsonRpcFailureStruct]);function mQe(t){return(0,Nn.is)(t,kt.PendingJsonRpcResponseStruct)}kt.isPendingJsonRpcResponse=mQe;function gQe(t,e){(0,Dx.assertStruct)(t,kt.PendingJsonRpcResponseStruct,\"Invalid pending JSON-RPC response\",e)}kt.assertIsPendingJsonRpcResponse=gQe;function yQe(t){return(0,Nn.is)(t,kt.JsonRpcResponseStruct)}kt.isJsonRpcResponse=yQe;function bQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcResponseStruct,\"Invalid JSON-RPC response\",e)}kt.assertIsJsonRpcResponse=bQe;function vQe(t){return(0,Nn.is)(t,kt.JsonRpcSuccessStruct)}kt.isJsonRpcSuccess=vQe;function wQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcSuccessStruct,\"Invalid JSON-RPC success response\",e)}kt.assertIsJsonRpcSuccess=wQe;function xQe(t){return(0,Nn.is)(t,kt.JsonRpcFailureStruct)}kt.isJsonRpcFailure=xQe;function EQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcFailureStruct,\"Invalid JSON-RPC failure response\",e)}kt.assertIsJsonRpcFailure=EQe;function SQe(t){return(0,Nn.is)(t,kt.JsonRpcErrorStruct)}kt.isJsonRpcError=SQe;function kQe(t,e){(0,Dx.assertStruct)(t,kt.JsonRpcErrorStruct,\"Invalid JSON-RPC error\",e)}kt.assertIsJsonRpcError=kQe;function _Qe(t){let{permitEmptyString:e,permitFractions:n,permitNull:r}=Object.assign({permitEmptyString:!0,permitFractions:!1,permitNull:!0},t);return i=>!!(typeof i==\"number\"&&(n||Number.isInteger(i))||typeof i==\"string\"&&(e||i.length>0)||r&&i===null)}kt.getJsonRpcIdValidator=_Qe});var t5e=be(e5e=>{\"use strict\";p();Object.defineProperty(e5e,\"__esModule\",{value:!0})});var r5e=be((ian,n5e)=>{p();var R8=1e3,I8=R8*60,O8=I8*60,lS=O8*24,CQe=lS*7,AQe=lS*365.25;n5e.exports=function(t,e){e=e||{};var n=typeof t;if(n===\"string\"&&t.length>0)return TQe(t);if(n===\"number\"&&isFinite(t))return e.long?IQe(t):RQe(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))};function TQe(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\\\\d+)?\\\\.?\\\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),r=(e[2]||\"ms\").toLowerCase();switch(r){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return n*AQe;case\"weeks\":case\"week\":case\"w\":return n*CQe;case\"days\":case\"day\":case\"d\":return n*lS;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return n*O8;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return n*I8;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return n*R8;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return n;default:return}}}}function RQe(t){var e=Math.abs(t);return e>=lS?Math.round(t/lS)+\"d\":e>=O8?Math.round(t/O8)+\"h\":e>=I8?Math.round(t/I8)+\"m\":e>=R8?Math.round(t/R8)+\"s\":t+\"ms\"}function IQe(t){var e=Math.abs(t);return e>=lS?Bj(t,e,lS,\"day\"):e>=O8?Bj(t,e,O8,\"hour\"):e>=I8?Bj(t,e,I8,\"minute\"):e>=R8?Bj(t,e,R8,\"second\"):t+\" ms\"}function Bj(t,e,n,r){var o=e>=n*1.5;return Math.round(t/n)+\" \"+r+(o?\"s\":\"\")}});var i5e=be((aan,o5e)=>{p();function OQe(t){n.debug=n,n.default=n,n.coerce=u,n.disable=a,n.enable=o,n.enabled=c,n.humanize=r5e(),n.destroy=d,Object.keys(t).forEach(h=>{n[h]=t[h]}),n.names=[],n.skips=[],n.formatters={};function e(h){let m=0;for(let g=0;g<h.length;g++)m=(m<<5)-m+h.charCodeAt(g),m|=0;return n.colors[Math.abs(m)%n.colors.length]}n.selectColor=e;function n(h){let m,g=null,b,E;function C(...T){if(!C.enabled)return;let R=C,L=Number(new Date),D=L-(m||L);R.diff=D,R.prev=m,R.curr=L,m=L,T[0]=n.coerce(T[0]),typeof T[0]!=\"string\"&&T.unshift(\"%O\");let G=0;T[0]=T[0].replace(/%([a-zA-Z%])/g,(J,ne)=>{if(J===\"%%\")return\"%\";G++;let ie=n.formatters[ne];if(typeof ie==\"function\"){let Z=T[G];J=ie.call(R,Z),T.splice(G,1),G--}return J}),n.formatArgs.call(R,T),(R.log||n.log).apply(R,T)}return C.namespace=h,C.useColors=n.useColors(),C.color=n.selectColor(h),C.extend=r,C.destroy=n.destroy,Object.defineProperty(C,\"enabled\",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(b!==n.namespaces&&(b=n.namespaces,E=n.enabled(h)),E),set:T=>{g=T}}),typeof n.init==\"function\"&&n.init(C),C}function r(h,m){let g=n(this.namespace+(typeof m>\"u\"?\":\":m)+h);return g.log=this.log,g}function o(h){n.save(h),n.namespaces=h,n.names=[],n.skips=[];let m=(typeof h==\"string\"?h:\"\").trim().replace(/\\\\s+/g,\",\").split(\",\").filter(Boolean);for(let g of m)g[0]===\"-\"?n.skips.push(g.slice(1)):n.names.push(g)}function i(h,m){let g=0,b=0,E=-1,C=0;for(;g<h.length;)if(b<m.length&&(m[b]===h[g]||m[b]===\"*\"))m[b]===\"*\"?(E=b,C=g,b++):(g++,b++);else if(E!==-1)b=E+1,C++,g=C;else return!1;for(;b<m.length&&m[b]===\"*\";)b++;return b===m.length}function a(){let h=[...n.names,...n.skips.map(m=>\"-\"+m)].join(\",\");return n.enable(\"\"),h}function c(h){for(let m of n.skips)if(i(h,m))return!1;for(let m of n.names)if(i(h,m))return!0;return!1}function u(h){return h instanceof Error?h.stack||h.message:h}function d(){console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\")}return n.enable(n.load()),n}o5e.exports=OQe});var xee=be((_f,Dj)=>{p();_f.formatArgs=MQe;_f.save=NQe;_f.load=LQe;_f.useColors=PQe;_f.storage=BQe();_f.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})();_f.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"];function PQe(){if(typeof window<\"u\"&&window.process&&(window.process.type===\"renderer\"||window.process.__nwjs))return!0;if(typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\\\/(\\\\d+)/))return!1;let t;return typeof document<\"u\"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<\"u\"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<\"u\"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\\\\/(\\\\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<\"u\"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\\\/(\\\\d+)/)}function MQe(t){if(t[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+t[0]+(this.useColors?\"%c \":\" \")+\"+\"+Dj.exports.humanize(this.diff),!this.useColors)return;let e=\"color: \"+this.color;t.splice(1,0,e,\"color: inherit\");let n=0,r=0;t[0].replace(/%[a-zA-Z%]/g,o=>{o!==\"%%\"&&(n++,o===\"%c\"&&(r=n))}),t.splice(r,0,e)}_f.log=console.debug||console.log||(()=>{});function NQe(t){try{t?_f.storage.setItem(\"debug\",t):_f.storage.removeItem(\"debug\")}catch{}}function LQe(){let t;try{t=_f.storage.getItem(\"debug\")||_f.storage.getItem(\"DEBUG\")}catch{}return!t&&typeof process<\"u\"&&\"env\"in process&&(t=process.env.DEBUG),t}function BQe(){try{return localStorage}catch{}}Dj.exports=i5e()(_f);var{formatters:DQe}=Dj.exports;DQe.j=function(t){try{return JSON.stringify(t)}catch(e){return\"[UnexpectedJSONParseError]: \"+e.message}}});var s5e=be(Fx=>{\"use strict\";p();var FQe=Fx&&Fx.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Fx,\"__esModule\",{value:!0});Fx.createModuleLogger=Fx.createProjectLogger=void 0;var UQe=FQe(xee()),jQe=(0,UQe.default)(\"metamask\");function zQe(t){return jQe.extend(t)}Fx.createProjectLogger=zQe;function HQe(t,e){return t.extend(e)}Fx.createModuleLogger=HQe});var c5e=be(ds=>{\"use strict\";p();Object.defineProperty(ds,\"__esModule\",{value:!0});ds.calculateNumberSize=ds.calculateStringSize=ds.isASCII=ds.isPlainObject=ds.ESCAPE_CHARACTERS_REGEXP=ds.JsonSize=ds.hasProperty=ds.isObject=ds.isNullOrUndefined=ds.isNonEmptyArray=void 0;function qQe(t){return Array.isArray(t)&&t.length>0}ds.isNonEmptyArray=qQe;function WQe(t){return t==null}ds.isNullOrUndefined=WQe;function VQe(t){return!!t&&typeof t==\"object\"&&!Array.isArray(t)}ds.isObject=VQe;var $Qe=(t,e)=>Object.hasOwnProperty.call(t,e);ds.hasProperty=$Qe;var KQe;(function(t){t[t.Null=4]=\"Null\",t[t.Comma=1]=\"Comma\",t[t.Wrapper=1]=\"Wrapper\",t[t.True=4]=\"True\",t[t.False=5]=\"False\",t[t.Quote=1]=\"Quote\",t[t.Colon=1]=\"Colon\",t[t.Date=24]=\"Date\"})(KQe=ds.JsonSize||(ds.JsonSize={}));ds.ESCAPE_CHARACTERS_REGEXP=/\"|\\\\\\\\|\\\\n|\\\\r|\\\\t/gu;function GQe(t){if(typeof t!=\"object\"||t===null)return!1;try{let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}catch{return!1}}ds.isPlainObject=GQe;function a5e(t){return t.charCodeAt(0)<=127}ds.isASCII=a5e;function ZQe(t){var e;return t.split(\"\").reduce((r,o)=>a5e(o)?r+1:r+2,0)+((e=t.match(ds.ESCAPE_CHARACTERS_REGEXP))!==null&&e!==void 0?e:[]).length}ds.calculateStringSize=ZQe;function YQe(t){return t.toString().length}ds.calculateNumberSize=YQe});var l5e=be(u1=>{\"use strict\";p();Object.defineProperty(u1,\"__esModule\",{value:!0});u1.hexToBigInt=u1.hexToNumber=u1.bigIntToHex=u1.numberToHex=void 0;var P8=Nv(),DI=NI(),QQe=t=>((0,P8.assert)(typeof t==\"number\",\"Value must be a number.\"),(0,P8.assert)(t>=0,\"Value must be a non-negative number.\"),(0,P8.assert)(Number.isSafeInteger(t),\"Value is not a safe integer. Use `bigIntToHex` instead.\"),(0,DI.add0x)(t.toString(16)));u1.numberToHex=QQe;var JQe=t=>((0,P8.assert)(typeof t==\"bigint\",\"Value must be a bigint.\"),(0,P8.assert)(t>=0,\"Value must be a non-negative bigint.\"),(0,DI.add0x)(t.toString(16)));u1.bigIntToHex=JQe;var XQe=t=>{(0,DI.assertIsHexString)(t);let e=parseInt(t,16);return(0,P8.assert)(Number.isSafeInteger(e),\"Value is not a safe integer. Use `hexToBigInt` instead.\"),e};u1.hexToNumber=XQe;var eJe=t=>((0,DI.assertIsHexString)(t),BigInt((0,DI.add0x)(t)));u1.hexToBigInt=eJe});var d5e=be(u5e=>{\"use strict\";p();Object.defineProperty(u5e,\"__esModule\",{value:!0})});var h5e=be(Lv=>{\"use strict\";p();Object.defineProperty(Lv,\"__esModule\",{value:!0});Lv.timeSince=Lv.inMilliseconds=Lv.Duration=void 0;var tJe;(function(t){t[t.Millisecond=1]=\"Millisecond\",t[t.Second=1e3]=\"Second\",t[t.Minute=6e4]=\"Minute\",t[t.Hour=36e5]=\"Hour\",t[t.Day=864e5]=\"Day\",t[t.Week=6048e5]=\"Week\",t[t.Year=31536e6]=\"Year\"})(tJe=Lv.Duration||(Lv.Duration={}));var nJe=t=>Number.isInteger(t)&&t>=0,f5e=(t,e)=>{if(!nJe(t))throw new Error(`\"${e}\" must be a non-negative integer. Received: \"${t}\".`)};function rJe(t,e){return f5e(t,\"count\"),t*e}Lv.inMilliseconds=rJe;function oJe(t){return f5e(t,\"timestamp\"),Date.now()-t}Lv.timeSince=oJe});var m5e=be(p5e=>{\"use strict\";p();Object.defineProperty(p5e,\"__esModule\",{value:!0})});var FI=be((Ean,g5e)=>{\"use strict\";p();var iJe=\"2.0.0\",sJe=Number.MAX_SAFE_INTEGER||9007199254740991,aJe=16,cJe=250,lJe=[\"major\",\"premajor\",\"minor\",\"preminor\",\"patch\",\"prepatch\",\"prerelease\"];g5e.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:aJe,MAX_SAFE_BUILD_LENGTH:cJe,MAX_SAFE_INTEGER:sJe,RELEASE_TYPES:lJe,SEMVER_SPEC_VERSION:iJe,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var UI=be((kan,y5e)=>{\"use strict\";p();var uJe=typeof process==\"object\"&&process.env&&process.env.NODE_DEBUG&&/\\\\bsemver\\\\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error(\"SEMVER\",...t):()=>{};y5e.exports=uJe});var M8=be((d1,b5e)=>{\"use strict\";p();var{MAX_SAFE_COMPONENT_LENGTH:Eee,MAX_SAFE_BUILD_LENGTH:dJe,MAX_LENGTH:fJe}=FI(),hJe=UI();d1=b5e.exports={};var pJe=d1.re=[],mJe=d1.safeRe=[],Qt=d1.src=[],gJe=d1.safeSrc=[],Jt=d1.t={},yJe=0,See=\"[a-zA-Z0-9-]\",bJe=[[\"\\\\\\\\s\",1],[\"\\\\\\\\d\",fJe],[See,dJe]],vJe=t=>{for(let[e,n]of bJe)t=t.split(`${e}*`).join(`${e}{0,${n}}`).split(`${e}+`).join(`${e}{1,${n}}`);return t},Xn=(t,e,n)=>{let r=vJe(e),o=yJe++;hJe(t,o,e),Jt[t]=o,Qt[o]=e,gJe[o]=r,pJe[o]=new RegExp(e,n?\"g\":void 0),mJe[o]=new RegExp(r,n?\"g\":void 0)};Xn(\"NUMERICIDENTIFIER\",\"0|[1-9]\\\\\\\\d*\");Xn(\"NUMERICIDENTIFIERLOOSE\",\"\\\\\\\\d+\");Xn(\"NONNUMERICIDENTIFIER\",`\\\\\\\\d*[a-zA-Z-]${See}*`);Xn(\"MAINVERSION\",`(${Qt[Jt.NUMERICIDENTIFIER]})\\\\\\\\.(${Qt[Jt.NUMERICIDENTIFIER]})\\\\\\\\.(${Qt[Jt.NUMERICIDENTIFIER]})`);Xn(\"MAINVERSIONLOOSE\",`(${Qt[Jt.NUMERICIDENTIFIERLOOSE]})\\\\\\\\.(${Qt[Jt.NUMERICIDENTIFIERLOOSE]})\\\\\\\\.(${Qt[Jt.NUMERICIDENTIFIERLOOSE]})`);Xn(\"PRERELEASEIDENTIFIER\",`(?:${Qt[Jt.NONNUMERICIDENTIFIER]}|${Qt[Jt.NUMERICIDENTIFIER]})`);Xn(\"PRERELEASEIDENTIFIERLOOSE\",`(?:${Qt[Jt.NONNUMERICIDENTIFIER]}|${Qt[Jt.NUMERICIDENTIFIERLOOSE]})`);Xn(\"PRERELEASE\",`(?:-(${Qt[Jt.PRERELEASEIDENTIFIER]}(?:\\\\\\\\.${Qt[Jt.PRERELEASEIDENTIFIER]})*))`);Xn(\"PRERELEASELOOSE\",`(?:-?(${Qt[Jt.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\\\\\.${Qt[Jt.PRERELEASEIDENTIFIERLOOSE]})*))`);Xn(\"BUILDIDENTIFIER\",`${See}+`);Xn(\"BUILD\",`(?:\\\\\\\\+(${Qt[Jt.BUILDIDENTIFIER]}(?:\\\\\\\\.${Qt[Jt.BUILDIDENTIFIER]})*))`);Xn(\"FULLPLAIN\",`v?${Qt[Jt.MAINVERSION]}${Qt[Jt.PRERELEASE]}?${Qt[Jt.BUILD]}?`);Xn(\"FULL\",`^${Qt[Jt.FULLPLAIN]}$`);Xn(\"LOOSEPLAIN\",`[v=\\\\\\\\s]*${Qt[Jt.MAINVERSIONLOOSE]}${Qt[Jt.PRERELEASELOOSE]}?${Qt[Jt.BUILD]}?`);Xn(\"LOOSE\",`^${Qt[Jt.LOOSEPLAIN]}$`);Xn(\"GTLT\",\"((?:<|>)?=?)\");Xn(\"XRANGEIDENTIFIERLOOSE\",`${Qt[Jt.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\\\\\*`);Xn(\"XRANGEIDENTIFIER\",`${Qt[Jt.NUMERICIDENTIFIER]}|x|X|\\\\\\\\*`);Xn(\"XRANGEPLAIN\",`[v=\\\\\\\\s]*(${Qt[Jt.XRANGEIDENTIFIER]})(?:\\\\\\\\.(${Qt[Jt.XRANGEIDENTIFIER]})(?:\\\\\\\\.(${Qt[Jt.XRANGEIDENTIFIER]})(?:${Qt[Jt.PRERELEASE]})?${Qt[Jt.BUILD]}?)?)?`);Xn(\"XRANGEPLAINLOOSE\",`[v=\\\\\\\\s]*(${Qt[Jt.XRANGEIDENTIFIERLOOSE]})(?:\\\\\\\\.(${Qt[Jt.XRANGEIDENTIFIERLOOSE]})(?:\\\\\\\\.(${Qt[Jt.XRANGEIDENTIFIERLOOSE]})(?:${Qt[Jt.PRERELEASELOOSE]})?${Qt[Jt.BUILD]}?)?)?`);Xn(\"XRANGE\",`^${Qt[Jt.GTLT]}\\\\\\\\s*${Qt[Jt.XRANGEPLAIN]}$`);Xn(\"XRANGELOOSE\",`^${Qt[Jt.GTLT]}\\\\\\\\s*${Qt[Jt.XRANGEPLAINLOOSE]}$`);Xn(\"COERCEPLAIN\",`(^|[^\\\\\\\\d])(\\\\\\\\d{1,${Eee}})(?:\\\\\\\\.(\\\\\\\\d{1,${Eee}}))?(?:\\\\\\\\.(\\\\\\\\d{1,${Eee}}))?`);Xn(\"COERCE\",`${Qt[Jt.COERCEPLAIN]}(?:$|[^\\\\\\\\d])`);Xn(\"COERCEFULL\",Qt[Jt.COERCEPLAIN]+`(?:${Qt[Jt.PRERELEASE]})?(?:${Qt[Jt.BUILD]})?(?:$|[^\\\\\\\\d])`);Xn(\"COERCERTL\",Qt[Jt.COERCE],!0);Xn(\"COERCERTLFULL\",Qt[Jt.COERCEFULL],!0);Xn(\"LONETILDE\",\"(?:~>?)\");Xn(\"TILDETRIM\",`(\\\\\\\\s*)${Qt[Jt.LONETILDE]}\\\\\\\\s+`,!0);d1.tildeTrimReplace=\"$1~\";Xn(\"TILDE\",`^${Qt[Jt.LONETILDE]}${Qt[Jt.XRANGEPLAIN]}$`);Xn(\"TILDELOOSE\",`^${Qt[Jt.LONETILDE]}${Qt[Jt.XRANGEPLAINLOOSE]}$`);Xn(\"LONECARET\",\"(?:\\\\\\\\^)\");Xn(\"CARETTRIM\",`(\\\\\\\\s*)${Qt[Jt.LONECARET]}\\\\\\\\s+`,!0);d1.caretTrimReplace=\"$1^\";Xn(\"CARET\",`^${Qt[Jt.LONECARET]}${Qt[Jt.XRANGEPLAIN]}$`);Xn(\"CARETLOOSE\",`^${Qt[Jt.LONECARET]}${Qt[Jt.XRANGEPLAINLOOSE]}$`);Xn(\"COMPARATORLOOSE\",`^${Qt[Jt.GTLT]}\\\\\\\\s*(${Qt[Jt.LOOSEPLAIN]})$|^$`);Xn(\"COMPARATOR\",`^${Qt[Jt.GTLT]}\\\\\\\\s*(${Qt[Jt.FULLPLAIN]})$|^$`);Xn(\"COMPARATORTRIM\",`(\\\\\\\\s*)${Qt[Jt.GTLT]}\\\\\\\\s*(${Qt[Jt.LOOSEPLAIN]}|${Qt[Jt.XRANGEPLAIN]})`,!0);d1.comparatorTrimReplace=\"$1$2$3\";Xn(\"HYPHENRANGE\",`^\\\\\\\\s*(${Qt[Jt.XRANGEPLAIN]})\\\\\\\\s+-\\\\\\\\s+(${Qt[Jt.XRANGEPLAIN]})\\\\\\\\s*$`);Xn(\"HYPHENRANGELOOSE\",`^\\\\\\\\s*(${Qt[Jt.XRANGEPLAINLOOSE]})\\\\\\\\s+-\\\\\\\\s+(${Qt[Jt.XRANGEPLAINLOOSE]})\\\\\\\\s*$`);Xn(\"STAR\",\"(<|>)?=?\\\\\\\\s*\\\\\\\\*\");Xn(\"GTE0\",\"^\\\\\\\\s*>=\\\\\\\\s*0\\\\\\\\.0\\\\\\\\.0\\\\\\\\s*$\");Xn(\"GTE0PRE\",\"^\\\\\\\\s*>=\\\\\\\\s*0\\\\\\\\.0\\\\\\\\.0-0\\\\\\\\s*$\")});var Fj=be((Aan,v5e)=>{\"use strict\";p();var wJe=Object.freeze({loose:!0}),xJe=Object.freeze({}),EJe=t=>t?typeof t!=\"object\"?wJe:t:xJe;v5e.exports=EJe});var kee=be((Ran,E5e)=>{\"use strict\";p();var w5e=/^[0-9]+$/,x5e=(t,e)=>{let n=w5e.test(t),r=w5e.test(e);return n&&r&&(t=+t,e=+e),t===e?0:n&&!r?-1:r&&!n?1:t<e?-1:1},SJe=(t,e)=>x5e(e,t);E5e.exports={compareIdentifiers:x5e,rcompareIdentifiers:SJe}});var gu=be((Oan,k5e)=>{\"use strict\";p();var Uj=UI(),{MAX_LENGTH:S5e,MAX_SAFE_INTEGER:jj}=FI(),{safeRe:zj,t:Hj}=M8(),kJe=Fj(),{compareIdentifiers:N8}=kee(),_ee=class t{constructor(e,n){if(n=kJe(n),e instanceof t){if(e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease)return e;e=e.version}else if(typeof e!=\"string\")throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof e}\".`);if(e.length>S5e)throw new TypeError(`version is longer than ${S5e} characters`);Uj(\"SemVer\",e,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;let r=e.trim().match(n.loose?zj[Hj.LOOSE]:zj[Hj.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>jj||this.major<0)throw new TypeError(\"Invalid major version\");if(this.minor>jj||this.minor<0)throw new TypeError(\"Invalid minor version\");if(this.patch>jj||this.patch<0)throw new TypeError(\"Invalid patch version\");r[4]?this.prerelease=r[4].split(\".\").map(o=>{if(/^[0-9]+$/.test(o)){let i=+o;if(i>=0&&i<jj)return i}return o}):this.prerelease=[],this.build=r[5]?r[5].split(\".\"):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(\".\")}`),this.version}toString(){return this.version}compare(e){if(Uj(\"SemVer.compare\",this.version,this.options,e),!(e instanceof t)){if(typeof e==\"string\"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),N8(this.major,e.major)||N8(this.minor,e.minor)||N8(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let n=0;do{let r=this.prerelease[n],o=e.prerelease[n];if(Uj(\"prerelease compare\",n,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return N8(r,o)}while(++n)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let n=0;do{let r=this.build[n],o=e.build[n];if(Uj(\"build compare\",n,r,o),r===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(r===void 0)return-1;if(r===o)continue;return N8(r,o)}while(++n)}inc(e,n,r){if(e.startsWith(\"pre\")){if(!n&&r===!1)throw new Error(\"invalid increment argument: identifier is empty\");if(n){let o=`-${n}`.match(this.options.loose?zj[Hj.PRERELEASELOOSE]:zj[Hj.PRERELEASE]);if(!o||o[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(e){case\"premajor\":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc(\"pre\",n,r);break;case\"preminor\":this.prerelease.length=0,this.patch=0,this.minor++,this.inc(\"pre\",n,r);break;case\"prepatch\":this.prerelease.length=0,this.inc(\"patch\",n,r),this.inc(\"pre\",n,r);break;case\"prerelease\":this.prerelease.length===0&&this.inc(\"patch\",n,r),this.inc(\"pre\",n,r);break;case\"release\":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case\"major\":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case\"minor\":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case\"patch\":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case\"pre\":{let o=Number(r)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]==\"number\"&&(this.prerelease[i]++,i=-2);if(i===-1){if(n===this.prerelease.join(\".\")&&r===!1)throw new Error(\"invalid increment argument: identifier already exists\");this.prerelease.push(o)}}if(n){let i=[n,o];r===!1&&(i=[n]),N8(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(\".\")}`),this}};k5e.exports=_ee});var uS=be((Man,C5e)=>{\"use strict\";p();var _5e=gu(),_Je=(t,e,n=!1)=>{if(t instanceof _5e)return t;try{return new _5e(t,e)}catch(r){if(!n)return null;throw r}};C5e.exports=_Je});var T5e=be((Lan,A5e)=>{\"use strict\";p();var CJe=uS(),AJe=(t,e)=>{let n=CJe(t,e);return n?n.version:null};A5e.exports=AJe});var I5e=be((Dan,R5e)=>{\"use strict\";p();var TJe=uS(),RJe=(t,e)=>{let n=TJe(t.trim().replace(/^[=v]+/,\"\"),e);return n?n.version:null};R5e.exports=RJe});var M5e=be((Uan,P5e)=>{\"use strict\";p();var O5e=gu(),IJe=(t,e,n,r,o)=>{typeof n==\"string\"&&(o=r,r=n,n=void 0);try{return new O5e(t instanceof O5e?t.version:t,n).inc(e,r,o).version}catch{return null}};P5e.exports=IJe});var B5e=be((zan,L5e)=>{\"use strict\";p();var N5e=uS(),OJe=(t,e)=>{let n=N5e(t,null,!0),r=N5e(e,null,!0),o=n.compare(r);if(o===0)return null;let i=o>0,a=i?n:r,c=i?r:n,u=!!a.prerelease.length;if(!!c.prerelease.length&&!u){if(!c.patch&&!c.minor)return\"major\";if(c.compareMain(a)===0)return c.minor&&!c.patch?\"minor\":\"patch\"}let h=u?\"pre\":\"\";return n.major!==r.major?h+\"major\":n.minor!==r.minor?h+\"minor\":n.patch!==r.patch?h+\"patch\":\"prerelease\"};L5e.exports=OJe});var F5e=be((qan,D5e)=>{\"use strict\";p();var PJe=gu(),MJe=(t,e)=>new PJe(t,e).major;D5e.exports=MJe});var j5e=be((Van,U5e)=>{\"use strict\";p();var NJe=gu(),LJe=(t,e)=>new NJe(t,e).minor;U5e.exports=LJe});var H5e=be((Kan,z5e)=>{\"use strict\";p();var BJe=gu(),DJe=(t,e)=>new BJe(t,e).patch;z5e.exports=DJe});var W5e=be((Zan,q5e)=>{\"use strict\";p();var FJe=uS(),UJe=(t,e)=>{let n=FJe(t,e);return n&&n.prerelease.length?n.prerelease:null};q5e.exports=UJe});var hm=be((Qan,$5e)=>{\"use strict\";p();var V5e=gu(),jJe=(t,e,n)=>new V5e(t,n).compare(new V5e(e,n));$5e.exports=jJe});var G5e=be((Xan,K5e)=>{\"use strict\";p();var zJe=hm(),HJe=(t,e,n)=>zJe(e,t,n);K5e.exports=HJe});var Y5e=be((tcn,Z5e)=>{\"use strict\";p();var qJe=hm(),WJe=(t,e)=>qJe(t,e,!0);Z5e.exports=WJe});var qj=be((rcn,J5e)=>{\"use strict\";p();var Q5e=gu(),VJe=(t,e,n)=>{let r=new Q5e(t,n),o=new Q5e(e,n);return r.compare(o)||r.compareBuild(o)};J5e.exports=VJe});var e6e=be((icn,X5e)=>{\"use strict\";p();var $Je=qj(),KJe=(t,e)=>t.sort((n,r)=>$Je(n,r,e));X5e.exports=KJe});var n6e=be((acn,t6e)=>{\"use strict\";p();var GJe=qj(),ZJe=(t,e)=>t.sort((n,r)=>GJe(r,n,e));t6e.exports=ZJe});var jI=be((lcn,r6e)=>{\"use strict\";p();var YJe=hm(),QJe=(t,e,n)=>YJe(t,e,n)>0;r6e.exports=QJe});var Wj=be((dcn,o6e)=>{\"use strict\";p();var JJe=hm(),XJe=(t,e,n)=>JJe(t,e,n)<0;o6e.exports=XJe});var Cee=be((hcn,i6e)=>{\"use strict\";p();var eXe=hm(),tXe=(t,e,n)=>eXe(t,e,n)===0;i6e.exports=tXe});var Aee=be((mcn,s6e)=>{\"use strict\";p();var nXe=hm(),rXe=(t,e,n)=>nXe(t,e,n)!==0;s6e.exports=rXe});var Vj=be((ycn,a6e)=>{\"use strict\";p();var oXe=hm(),iXe=(t,e,n)=>oXe(t,e,n)>=0;a6e.exports=iXe});var $j=be((vcn,c6e)=>{\"use strict\";p();var sXe=hm(),aXe=(t,e,n)=>sXe(t,e,n)<=0;c6e.exports=aXe});var Tee=be((xcn,l6e)=>{\"use strict\";p();var cXe=Cee(),lXe=Aee(),uXe=jI(),dXe=Vj(),fXe=Wj(),hXe=$j(),pXe=(t,e,n,r)=>{switch(e){case\"===\":return typeof t==\"object\"&&(t=t.version),typeof n==\"object\"&&(n=n.version),t===n;case\"!==\":return typeof t==\"object\"&&(t=t.version),typeof n==\"object\"&&(n=n.version),t!==n;case\"\":case\"=\":case\"==\":return cXe(t,n,r);case\"!=\":return lXe(t,n,r);case\">\":return uXe(t,n,r);case\">=\":return dXe(t,n,r);case\"<\":return fXe(t,n,r);case\"<=\":return hXe(t,n,r);default:throw new TypeError(`Invalid operator: ${e}`)}};l6e.exports=pXe});var d6e=be((Scn,u6e)=>{\"use strict\";p();var mXe=gu(),gXe=uS(),{safeRe:Kj,t:Gj}=M8(),yXe=(t,e)=>{if(t instanceof mXe)return t;if(typeof t==\"number\"&&(t=String(t)),typeof t!=\"string\")return null;e=e||{};let n=null;if(!e.rtl)n=t.match(e.includePrerelease?Kj[Gj.COERCEFULL]:Kj[Gj.COERCE]);else{let u=e.includePrerelease?Kj[Gj.COERCERTLFULL]:Kj[Gj.COERCERTL],d;for(;(d=u.exec(t))&&(!n||n.index+n[0].length!==t.length);)(!n||d.index+d[0].length!==n.index+n[0].length)&&(n=d),u.lastIndex=d.index+d[1].length+d[2].length;u.lastIndex=-1}if(n===null)return null;let r=n[2],o=n[3]||\"0\",i=n[4]||\"0\",a=e.includePrerelease&&n[5]?`-${n[5]}`:\"\",c=e.includePrerelease&&n[6]?`+${n[6]}`:\"\";return gXe(`${r}.${o}.${i}${a}${c}`,e)};u6e.exports=yXe});var h6e=be((_cn,f6e)=>{\"use strict\";p();var Ree=class{constructor(){this.max=1e3,this.map=new Map}get(e){let n=this.map.get(e);if(n!==void 0)return this.map.delete(e),this.map.set(e,n),n}delete(e){return this.map.delete(e)}set(e,n){if(!this.delete(e)&&n!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(e,n)}return this}};f6e.exports=Ree});var pm=be((Acn,y6e)=>{\"use strict\";p();var bXe=/\\\\s+/g,Iee=class t{constructor(e,n){if(n=wXe(n),e instanceof t)return e.loose===!!n.loose&&e.includePrerelease===!!n.includePrerelease?e:new t(e.raw,n);if(e instanceof Oee)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease,this.raw=e.trim().replace(bXe,\" \"),this.set=this.raw.split(\"||\").map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let r=this.set[0];if(this.set=this.set.filter(o=>!m6e(o[0])),this.set.length===0)this.set=[r];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&AXe(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted=\"\";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+=\"||\");let n=this.set[e];for(let r=0;r<n.length;r++)r>0&&(this.formatted+=\" \"),this.formatted+=n[r].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let r=((this.options.includePrerelease&&_Xe)|(this.options.loose&&CXe))+\":\"+e,o=p6e.get(r);if(o)return o;let i=this.options.loose,a=i?Cf[Sd.HYPHENRANGELOOSE]:Cf[Sd.HYPHENRANGE];e=e.replace(a,DXe(this.options.includePrerelease)),Ji(\"hyphen replace\",e),e=e.replace(Cf[Sd.COMPARATORTRIM],EXe),Ji(\"comparator trim\",e),e=e.replace(Cf[Sd.TILDETRIM],SXe),Ji(\"tilde trim\",e),e=e.replace(Cf[Sd.CARETTRIM],kXe),Ji(\"caret trim\",e);let c=e.split(\" \").map(m=>TXe(m,this.options)).join(\" \").split(/\\\\s+/).map(m=>BXe(m,this.options));i&&(c=c.filter(m=>(Ji(\"loose invalid filter\",m,this.options),!!m.match(Cf[Sd.COMPARATORLOOSE])))),Ji(\"range list\",c);let u=new Map,d=c.map(m=>new Oee(m,this.options));for(let m of d){if(m6e(m))return[m];u.set(m.value,m)}u.size>1&&u.has(\"\")&&u.delete(\"\");let h=[...u.values()];return p6e.set(r,h),h}intersects(e,n){if(!(e instanceof t))throw new TypeError(\"a Range is required\");return this.set.some(r=>g6e(r,n)&&e.set.some(o=>g6e(o,n)&&r.every(i=>o.every(a=>i.intersects(a,n)))))}test(e){if(!e)return!1;if(typeof e==\"string\")try{e=new xXe(e,this.options)}catch{return!1}for(let n=0;n<this.set.length;n++)if(FXe(this.set[n],e,this.options))return!0;return!1}};y6e.exports=Iee;var vXe=h6e(),p6e=new vXe,wXe=Fj(),Oee=zI(),Ji=UI(),xXe=gu(),{safeRe:Cf,t:Sd,comparatorTrimReplace:EXe,tildeTrimReplace:SXe,caretTrimReplace:kXe}=M8(),{FLAG_INCLUDE_PRERELEASE:_Xe,FLAG_LOOSE:CXe}=FI(),m6e=t=>t.value===\"<0.0.0-0\",AXe=t=>t.value===\"\",g6e=(t,e)=>{let n=!0,r=t.slice(),o=r.pop();for(;n&&r.length;)n=r.every(i=>o.intersects(i,e)),o=r.pop();return n},TXe=(t,e)=>(Ji(\"comp\",t,e),t=OXe(t,e),Ji(\"caret\",t),t=RXe(t,e),Ji(\"tildes\",t),t=MXe(t,e),Ji(\"xrange\",t),t=LXe(t,e),Ji(\"stars\",t),t),kd=t=>!t||t.toLowerCase()===\"x\"||t===\"*\",RXe=(t,e)=>t.trim().split(/\\\\s+/).map(n=>IXe(n,e)).join(\" \"),IXe=(t,e)=>{let n=e.loose?Cf[Sd.TILDELOOSE]:Cf[Sd.TILDE];return t.replace(n,(r,o,i,a,c)=>{Ji(\"tilde\",t,r,o,i,a,c);let u;return kd(o)?u=\"\":kd(i)?u=`>=${o}.0.0 <${+o+1}.0.0-0`:kd(a)?u=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:c?(Ji(\"replaceTilde pr\",c),u=`>=${o}.${i}.${a}-${c} <${o}.${+i+1}.0-0`):u=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,Ji(\"tilde return\",u),u})},OXe=(t,e)=>t.trim().split(/\\\\s+/).map(n=>PXe(n,e)).join(\" \"),PXe=(t,e)=>{Ji(\"caret\",t,e);let n=e.loose?Cf[Sd.CARETLOOSE]:Cf[Sd.CARET],r=e.includePrerelease?\"-0\":\"\";return t.replace(n,(o,i,a,c,u)=>{Ji(\"caret\",t,o,i,a,c,u);let d;return kd(i)?d=\"\":kd(a)?d=`>=${i}.0.0${r} <${+i+1}.0.0-0`:kd(c)?i===\"0\"?d=`>=${i}.${a}.0${r} <${i}.${+a+1}.0-0`:d=`>=${i}.${a}.0${r} <${+i+1}.0.0-0`:u?(Ji(\"replaceCaret pr\",u),i===\"0\"?a===\"0\"?d=`>=${i}.${a}.${c}-${u} <${i}.${a}.${+c+1}-0`:d=`>=${i}.${a}.${c}-${u} <${i}.${+a+1}.0-0`:d=`>=${i}.${a}.${c}-${u} <${+i+1}.0.0-0`):(Ji(\"no pr\"),i===\"0\"?a===\"0\"?d=`>=${i}.${a}.${c}${r} <${i}.${a}.${+c+1}-0`:d=`>=${i}.${a}.${c}${r} <${i}.${+a+1}.0-0`:d=`>=${i}.${a}.${c} <${+i+1}.0.0-0`),Ji(\"caret return\",d),d})},MXe=(t,e)=>(Ji(\"replaceXRanges\",t,e),t.split(/\\\\s+/).map(n=>NXe(n,e)).join(\" \")),NXe=(t,e)=>{t=t.trim();let n=e.loose?Cf[Sd.XRANGELOOSE]:Cf[Sd.XRANGE];return t.replace(n,(r,o,i,a,c,u)=>{Ji(\"xRange\",t,r,o,i,a,c,u);let d=kd(i),h=d||kd(a),m=h||kd(c),g=m;return o===\"=\"&&g&&(o=\"\"),u=e.includePrerelease?\"-0\":\"\",d?o===\">\"||o===\"<\"?r=\"<0.0.0-0\":r=\"*\":o&&g?(h&&(a=0),c=0,o===\">\"?(o=\">=\",h?(i=+i+1,a=0,c=0):(a=+a+1,c=0)):o===\"<=\"&&(o=\"<\",h?i=+i+1:a=+a+1),o===\"<\"&&(u=\"-0\"),r=`${o+i}.${a}.${c}${u}`):h?r=`>=${i}.0.0${u} <${+i+1}.0.0-0`:m&&(r=`>=${i}.${a}.0${u} <${i}.${+a+1}.0-0`),Ji(\"xRange return\",r),r})},LXe=(t,e)=>(Ji(\"replaceStars\",t,e),t.trim().replace(Cf[Sd.STAR],\"\")),BXe=(t,e)=>(Ji(\"replaceGTE0\",t,e),t.trim().replace(Cf[e.includePrerelease?Sd.GTE0PRE:Sd.GTE0],\"\")),DXe=t=>(e,n,r,o,i,a,c,u,d,h,m,g)=>(kd(r)?n=\"\":kd(o)?n=`>=${r}.0.0${t?\"-0\":\"\"}`:kd(i)?n=`>=${r}.${o}.0${t?\"-0\":\"\"}`:a?n=`>=${n}`:n=`>=${n}${t?\"-0\":\"\"}`,kd(d)?u=\"\":kd(h)?u=`<${+d+1}.0.0-0`:kd(m)?u=`<${d}.${+h+1}.0-0`:g?u=`<=${d}.${h}.${m}-${g}`:t?u=`<${d}.${h}.${+m+1}-0`:u=`<=${u}`,`${n} ${u}`.trim()),FXe=(t,e,n)=>{for(let r=0;r<t.length;r++)if(!t[r].test(e))return!1;if(e.prerelease.length&&!n.includePrerelease){for(let r=0;r<t.length;r++)if(Ji(t[r].semver),t[r].semver!==Oee.ANY&&t[r].semver.prerelease.length>0){let o=t[r].semver;if(o.major===e.major&&o.minor===e.minor&&o.patch===e.patch)return!0}return!1}return!0}});var zI=be((Rcn,S6e)=>{\"use strict\";p();var HI=Symbol(\"SemVer ANY\"),Nee=class t{static get ANY(){return HI}constructor(e,n){if(n=b6e(n),e instanceof t){if(e.loose===!!n.loose)return e;e=e.value}e=e.trim().split(/\\\\s+/).join(\" \"),Mee(\"comparator\",e,n),this.options=n,this.loose=!!n.loose,this.parse(e),this.semver===HI?this.value=\"\":this.value=this.operator+this.semver.version,Mee(\"comp\",this)}parse(e){let n=this.options.loose?v6e[w6e.COMPARATORLOOSE]:v6e[w6e.COMPARATOR],r=e.match(n);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:\"\",this.operator===\"=\"&&(this.operator=\"\"),r[2]?this.semver=new x6e(r[2],this.options.loose):this.semver=HI}toString(){return this.value}test(e){if(Mee(\"Comparator.test\",e,this.options.loose),this.semver===HI||e===HI)return!0;if(typeof e==\"string\")try{e=new x6e(e,this.options)}catch{return!1}return Pee(e,this.operator,this.semver,this.options)}intersects(e,n){if(!(e instanceof t))throw new TypeError(\"a Comparator is required\");return this.operator===\"\"?this.value===\"\"?!0:new E6e(e.value,n).test(this.value):e.operator===\"\"?e.value===\"\"?!0:new E6e(this.value,n).test(e.semver):(n=b6e(n),n.includePrerelease&&(this.value===\"<0.0.0-0\"||e.value===\"<0.0.0-0\")||!n.includePrerelease&&(this.value.startsWith(\"<0.0.0\")||e.value.startsWith(\"<0.0.0\"))?!1:!!(this.operator.startsWith(\">\")&&e.operator.startsWith(\">\")||this.operator.startsWith(\"<\")&&e.operator.startsWith(\"<\")||this.semver.version===e.semver.version&&this.operator.includes(\"=\")&&e.operator.includes(\"=\")||Pee(this.semver,\"<\",e.semver,n)&&this.operator.startsWith(\">\")&&e.operator.startsWith(\"<\")||Pee(this.semver,\">\",e.semver,n)&&this.operator.startsWith(\"<\")&&e.operator.startsWith(\">\")))}};S6e.exports=Nee;var b6e=Fj(),{safeRe:v6e,t:w6e}=M8(),Pee=Tee(),Mee=UI(),x6e=gu(),E6e=pm()});var qI=be((Ocn,k6e)=>{\"use strict\";p();var UXe=pm(),jXe=(t,e,n)=>{try{e=new UXe(e,n)}catch{return!1}return e.test(t)};k6e.exports=jXe});var C6e=be((Mcn,_6e)=>{\"use strict\";p();var zXe=pm(),HXe=(t,e)=>new zXe(t,e).set.map(n=>n.map(r=>r.value).join(\" \").trim().split(\" \"));_6e.exports=HXe});var T6e=be((Lcn,A6e)=>{\"use strict\";p();var qXe=gu(),WXe=pm(),VXe=(t,e,n)=>{let r=null,o=null,i=null;try{i=new WXe(e,n)}catch{return null}return t.forEach(a=>{i.test(a)&&(!r||o.compare(a)===-1)&&(r=a,o=new qXe(r,n))}),r};A6e.exports=VXe});var I6e=be((Dcn,R6e)=>{\"use strict\";p();var $Xe=gu(),KXe=pm(),GXe=(t,e,n)=>{let r=null,o=null,i=null;try{i=new KXe(e,n)}catch{return null}return t.forEach(a=>{i.test(a)&&(!r||o.compare(a)===1)&&(r=a,o=new $Xe(r,n))}),r};R6e.exports=GXe});var M6e=be((Ucn,P6e)=>{\"use strict\";p();var Lee=gu(),ZXe=pm(),O6e=jI(),YXe=(t,e)=>{t=new ZXe(t,e);let n=new Lee(\"0.0.0\");if(t.test(n)||(n=new Lee(\"0.0.0-0\"),t.test(n)))return n;n=null;for(let r=0;r<t.set.length;++r){let o=t.set[r],i=null;o.forEach(a=>{let c=new Lee(a.semver.version);switch(a.operator){case\">\":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case\"\":case\">=\":(!i||O6e(c,i))&&(i=c);break;case\"<\":case\"<=\":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!n||O6e(n,i))&&(n=i)}return n&&t.test(n)?n:null};P6e.exports=YXe});var L6e=be((zcn,N6e)=>{\"use strict\";p();var QXe=pm(),JXe=(t,e)=>{try{return new QXe(t,e).range||\"*\"}catch{return null}};N6e.exports=JXe});var Zj=be((qcn,U6e)=>{\"use strict\";p();var XXe=gu(),F6e=zI(),{ANY:eet}=F6e,tet=pm(),net=qI(),B6e=jI(),D6e=Wj(),ret=$j(),oet=Vj(),iet=(t,e,n,r)=>{t=new XXe(t,r),e=new tet(e,r);let o,i,a,c,u;switch(n){case\">\":o=B6e,i=ret,a=D6e,c=\">\",u=\">=\";break;case\"<\":o=D6e,i=oet,a=B6e,c=\"<\",u=\"<=\";break;default:throw new TypeError(\\'Must provide a hilo val of \"<\" or \">\"\\')}if(net(t,e,r))return!1;for(let d=0;d<e.set.length;++d){let h=e.set[d],m=null,g=null;if(h.forEach(b=>{b.semver===eet&&(b=new F6e(\">=0.0.0\")),m=m||b,g=g||b,o(b.semver,m.semver,r)?m=b:a(b.semver,g.semver,r)&&(g=b)}),m.operator===c||m.operator===u||(!g.operator||g.operator===c)&&i(t,g.semver))return!1;if(g.operator===u&&a(t,g.semver))return!1}return!0};U6e.exports=iet});var z6e=be((Vcn,j6e)=>{\"use strict\";p();var set=Zj(),aet=(t,e,n)=>set(t,e,\">\",n);j6e.exports=aet});var q6e=be((Kcn,H6e)=>{\"use strict\";p();var cet=Zj(),uet=(t,e,n)=>cet(t,e,\"<\",n);H6e.exports=uet});var $6e=be((Zcn,V6e)=>{\"use strict\";p();var W6e=pm(),det=(t,e,n)=>(t=new W6e(t,n),e=new W6e(e,n),t.intersects(e,n));V6e.exports=det});var G6e=be((Qcn,K6e)=>{\"use strict\";p();var fet=qI(),het=hm();K6e.exports=(t,e,n)=>{let r=[],o=null,i=null,a=t.sort((h,m)=>het(h,m,n));for(let h of a)fet(h,e,n)?(i=h,o||(o=h)):(i&&r.push([o,i]),i=null,o=null);o&&r.push([o,null]);let c=[];for(let[h,m]of r)h===m?c.push(h):!m&&h===a[0]?c.push(\"*\"):m?h===a[0]?c.push(`<=${m}`):c.push(`${h} - ${m}`):c.push(`>=${h}`);let u=c.join(\" || \"),d=typeof e.raw==\"string\"?e.raw:String(e);return u.length<d.length?u:e}});var eSe=be((Xcn,X6e)=>{\"use strict\";p();var Z6e=pm(),Dee=zI(),{ANY:Bee}=Dee,WI=qI(),Fee=hm(),pet=(t,e,n={})=>{if(t===e)return!0;t=new Z6e(t,n),e=new Z6e(e,n);let r=!1;e:for(let o of t.set){for(let i of e.set){let a=get(o,i,n);if(r=r||a!==null,a)continue e}if(r)return!1}return!0},met=[new Dee(\">=0.0.0-0\")],Y6e=[new Dee(\">=0.0.0\")],get=(t,e,n)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Bee){if(e.length===1&&e[0].semver===Bee)return!0;n.includePrerelease?t=met:t=Y6e}if(e.length===1&&e[0].semver===Bee){if(n.includePrerelease)return!0;e=Y6e}let r=new Set,o,i;for(let b of t)b.operator===\">\"||b.operator===\">=\"?o=Q6e(o,b,n):b.operator===\"<\"||b.operator===\"<=\"?i=J6e(i,b,n):r.add(b.semver);if(r.size>1)return null;let a;if(o&&i){if(a=Fee(o.semver,i.semver,n),a>0)return null;if(a===0&&(o.operator!==\">=\"||i.operator!==\"<=\"))return null}for(let b of r){if(o&&!WI(b,String(o),n)||i&&!WI(b,String(i),n))return null;for(let E of e)if(!WI(b,String(E),n))return!1;return!0}let c,u,d,h,m=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1,g=o&&!n.includePrerelease&&o.semver.prerelease.length?o.semver:!1;m&&m.prerelease.length===1&&i.operator===\"<\"&&m.prerelease[0]===0&&(m=!1);for(let b of e){if(h=h||b.operator===\">\"||b.operator===\">=\",d=d||b.operator===\"<\"||b.operator===\"<=\",o){if(g&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===g.major&&b.semver.minor===g.minor&&b.semver.patch===g.patch&&(g=!1),b.operator===\">\"||b.operator===\">=\"){if(c=Q6e(o,b,n),c===b&&c!==o)return!1}else if(o.operator===\">=\"&&!WI(o.semver,String(b),n))return!1}if(i){if(m&&b.semver.prerelease&&b.semver.prerelease.length&&b.semver.major===m.major&&b.semver.minor===m.minor&&b.semver.patch===m.patch&&(m=!1),b.operator===\"<\"||b.operator===\"<=\"){if(u=J6e(i,b,n),u===b&&u!==i)return!1}else if(i.operator===\"<=\"&&!WI(i.semver,String(b),n))return!1}if(!b.operator&&(i||o)&&a!==0)return!1}return!(o&&d&&!i&&a!==0||i&&h&&!o&&a!==0||g||m)},Q6e=(t,e,n)=>{if(!t)return e;let r=Fee(t.semver,e.semver,n);return r>0?t:r<0||e.operator===\">\"&&t.operator===\">=\"?e:t},J6e=(t,e,n)=>{if(!t)return e;let r=Fee(t.semver,e.semver,n);return r<0?t:r>0||e.operator===\"<\"&&t.operator===\"<=\"?e:t};X6e.exports=pet});var oSe=be((tln,rSe)=>{\"use strict\";p();var Uee=M8(),tSe=FI(),yet=gu(),nSe=kee(),bet=uS(),vet=T5e(),wet=I5e(),xet=M5e(),Eet=B5e(),ket=F5e(),_et=j5e(),Cet=H5e(),Aet=W5e(),Tet=hm(),Ret=G5e(),Iet=Y5e(),Oet=qj(),Pet=e6e(),Met=n6e(),Net=jI(),Let=Wj(),Bet=Cee(),Det=Aee(),Fet=Vj(),Uet=$j(),jet=Tee(),zet=d6e(),Het=zI(),qet=pm(),Wet=qI(),Vet=C6e(),$et=T6e(),Ket=I6e(),Get=M6e(),Zet=L6e(),Yet=Zj(),Qet=z6e(),Jet=q6e(),Xet=$6e(),ett=G6e(),ttt=eSe();rSe.exports={parse:bet,valid:vet,clean:wet,inc:xet,diff:Eet,major:ket,minor:_et,patch:Cet,prerelease:Aet,compare:Tet,rcompare:Ret,compareLoose:Iet,compareBuild:Oet,sort:Pet,rsort:Met,gt:Net,lt:Let,eq:Bet,neq:Det,gte:Fet,lte:Uet,cmp:jet,coerce:zet,Comparator:Het,Range:qet,satisfies:Wet,toComparators:Vet,maxSatisfying:$et,minSatisfying:Ket,minVersion:Get,validRange:Zet,outside:Yet,gtr:Qet,ltr:Jet,intersects:Xet,simplifyRange:ett,subset:ttt,SemVer:yet,re:Uee.re,src:Uee.src,tokens:Uee.t,SEMVER_SPEC_VERSION:tSe.SEMVER_SPEC_VERSION,RELEASE_TYPES:tSe.RELEASE_TYPES,compareIdentifiers:nSe.compareIdentifiers,rcompareIdentifiers:nSe.rcompareIdentifiers}});var sSe=be(fs=>{\"use strict\";p();Object.defineProperty(fs,\"__esModule\",{value:!0});fs.satisfiesVersionRange=fs.gtRange=fs.gtVersion=fs.assertIsSemVerRange=fs.assertIsSemVerVersion=fs.isValidSemVerRange=fs.isValidSemVerVersion=fs.VersionRangeStruct=fs.VersionStruct=void 0;var VI=oSe(),L8=(Bx(),go(Lx)),iSe=Nv();fs.VersionStruct=(0,L8.refine)((0,L8.string)(),\"Version\",t=>(0,VI.valid)(t)===null?`Expected SemVer version, got \"${t}\"`:!0);fs.VersionRangeStruct=(0,L8.refine)((0,L8.string)(),\"Version range\",t=>(0,VI.validRange)(t)===null?`Expected SemVer range, got \"${t}\"`:!0);function ntt(t){return(0,L8.is)(t,fs.VersionStruct)}fs.isValidSemVerVersion=ntt;function rtt(t){return(0,L8.is)(t,fs.VersionRangeStruct)}fs.isValidSemVerRange=rtt;function ott(t){(0,iSe.assertStruct)(t,fs.VersionStruct)}fs.assertIsSemVerVersion=ott;function itt(t){(0,iSe.assertStruct)(t,fs.VersionRangeStruct)}fs.assertIsSemVerRange=itt;function stt(t,e){return(0,VI.gt)(t,e)}fs.gtVersion=stt;function att(t,e){return(0,VI.gtr)(t,e)}fs.gtRange=att;function ctt(t,e){return(0,VI.satisfies)(t,e,{includePrerelease:!0})}fs.satisfiesVersionRange=ctt});var aSe=be(Ts=>{\"use strict\";p();var ltt=Ts&&Ts.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);(!o||(\"get\"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Sl=Ts&&Ts.__exportStar||function(t,e){for(var n in t)n!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,n)&&ltt(e,t,n)};Object.defineProperty(Ts,\"__esModule\",{value:!0});Sl(Nv(),Ts);Sl(yee(),Ts);Sl(wee(),Ts);Sl(VEe(),Ts);Sl(GEe(),Ts);Sl(YEe(),Ts);Sl(JEe(),Ts);Sl(NI(),Ts);Sl(XEe(),Ts);Sl(t5e(),Ts);Sl(s5e(),Ts);Sl(c5e(),Ts);Sl(l5e(),Ts);Sl(d5e(),Ts);Sl(h5e(),Ts);Sl(m5e(),Ts);Sl(sSe(),Ts)});var lSe=be(B8=>{\"use strict\";p();Object.defineProperty(B8,\"__esModule\",{value:!0});B8.createModuleLogger=B8.projectLogger=void 0;var cSe=aSe();Object.defineProperty(B8,\"createModuleLogger\",{enumerable:!0,get:function(){return cSe.createModuleLogger}});B8.projectLogger=(0,cSe.createProjectLogger)(\"eth-block-tracker\")});var pSe=be(D8=>{\"use strict\";p();var hSe=D8&&D8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(D8,\"__esModule\",{value:!0});D8.PollingBlockTracker=void 0;var utt=hSe(Rj()),dtt=hSe(vEe()),ftt=dee(),uSe=lSe(),dSe=(0,uSe.createModuleLogger)(uSe.projectLogger,\"polling-block-tracker\"),htt=(0,utt.default)(),ptt=1e3,jee=class extends ftt.BaseBlockTracker{constructor(e={}){var n;if(!e.provider)throw new Error(\"PollingBlockTracker - no provider specified.\");super(Object.assign(Object.assign({},e),{blockResetDuration:(n=e.blockResetDuration)!==null&&n!==void 0?n:e.pollingInterval})),this._provider=e.provider,this._pollingInterval=e.pollingInterval||20*ptt,this._retryTimeout=e.retryTimeout||this._pollingInterval/10,this._keepEventLoopActive=e.keepEventLoopActive===void 0?!0:e.keepEventLoopActive,this._setSkipCacheFlag=e.setSkipCacheFlag||!1}async checkForLatestBlock(){return await this._updateLatestBlock(),await this.getLatestBlock()}async _start(){this._synchronize()}async _end(){}async _synchronize(){for(var e;this._isRunning;)try{await this._updateLatestBlock();let n=fSe(this._pollingInterval,!this._keepEventLoopActive);this.emit(\"_waitingForNextIteration\"),await n}catch(n){let r=new Error(`PollingBlockTracker - encountered an error while attempting to update latest block:\\n${(e=n.stack)!==null&&e!==void 0?e:n}`);try{this.emit(\"error\",r)}catch{console.error(r)}let o=fSe(this._retryTimeout,!this._keepEventLoopActive);this.emit(\"_waitingForNextIteration\"),await o}}async _updateLatestBlock(){let e=await this._fetchLatestBlock();this._newPotentialLatest(e)}async _fetchLatestBlock(){let e={jsonrpc:\"2.0\",id:htt(),method:\"eth_blockNumber\",params:[]};this._setSkipCacheFlag&&(e.skipCache=!0),dSe(\"Making request\",e);let n=await(0,dtt.default)(r=>this._provider.sendAsync(e,r))();if(dSe(\"Got response\",n),n.error)throw new Error(`PollingBlockTracker - encountered error fetching block:\\n${n.error.message}`);return n.result}};D8.PollingBlockTracker=jee;function fSe(t,e){return new Promise(n=>{let r=setTimeout(n,t);r.unref&&e&&r.unref()})}});var mSe=be(F8=>{\"use strict\";p();var mtt=F8&&F8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(F8,\"__esModule\",{value:!0});F8.SubscribeBlockTracker=void 0;var gtt=mtt(Rj()),ytt=dee(),btt=(0,gtt.default)(),zee=class extends ytt.BaseBlockTracker{constructor(e={}){if(!e.provider)throw new Error(\"SubscribeBlockTracker - no provider specified.\");super(e),this._provider=e.provider,this._subscriptionId=null}async checkForLatestBlock(){return await this.getLatestBlock()}async _start(){if(this._subscriptionId===void 0||this._subscriptionId===null)try{let e=await this._call(\"eth_blockNumber\");this._subscriptionId=await this._call(\"eth_subscribe\",\"newHeads\"),this._provider.on(\"data\",this._handleSubData.bind(this)),this._newPotentialLatest(e)}catch(e){this.emit(\"error\",e)}}async _end(){if(this._subscriptionId!==null&&this._subscriptionId!==void 0)try{await this._call(\"eth_unsubscribe\",this._subscriptionId),this._subscriptionId=null}catch(e){this.emit(\"error\",e)}}_call(e,...n){return new Promise((r,o)=>{this._provider.sendAsync({id:btt(),method:e,params:n,jsonrpc:\"2.0\"},(i,a)=>{i?o(i):r(a.result)})})}_handleSubData(e,n){var r;n.method===\"eth_subscription\"&&((r=n.params)===null||r===void 0?void 0:r.subscription)===this._subscriptionId&&this._newPotentialLatest(n.params.result.number)}};F8.SubscribeBlockTracker=zee});var ySe=be(Ux=>{\"use strict\";p();var vtt=Ux&&Ux.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),gSe=Ux&&Ux.__exportStar||function(t,e){for(var n in t)n!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,n)&&vtt(e,t,n)};Object.defineProperty(Ux,\"__esModule\",{value:!0});gSe(pSe(),Ux);gSe(mSe(),Ux)});var qee=be(Yj=>{\"use strict\";p();Object.defineProperty(Yj,\"__esModule\",{value:!0});Yj.getUniqueId=void 0;var bSe=4294967295,Hee=Math.floor(Math.random()*bSe);function wtt(){return Hee=(Hee+1)%bSe,Hee}Yj.getUniqueId=wtt});var vSe=be(Qj=>{\"use strict\";p();Object.defineProperty(Qj,\"__esModule\",{value:!0});Qj.createIdRemapMiddleware=void 0;var xtt=qee();function Ett(){return(t,e,n,r)=>{let o=t.id,i=xtt.getUniqueId();t.id=i,e.id=i,n(a=>{t.id=o,e.id=o,a()})}}Qj.createIdRemapMiddleware=Ett});var wSe=be(Jj=>{\"use strict\";p();Object.defineProperty(Jj,\"__esModule\",{value:!0});Jj.createAsyncMiddleware=void 0;function Stt(t){return async(e,n,r,o)=>{let i,a=new Promise(h=>{i=h}),c=null,u=!1,d=async()=>{u=!0,r(h=>{c=h,i()}),await a};try{await t(e,n,d),u?(await a,c(null)):o(null)}catch(h){c?c(h):o(h)}}}Jj.createAsyncMiddleware=Stt});var xSe=be(Xj=>{\"use strict\";p();Object.defineProperty(Xj,\"__esModule\",{value:!0});Xj.createScaffoldMiddleware=void 0;function ktt(t){return(e,n,r,o)=>{let i=t[e.method];return i===void 0?r():typeof i==\"function\"?i(e,n,r,o):(n.result=i,o())}}Xj.createScaffoldMiddleware=ktt});var SSe=be(Vee=>{\"use strict\";p();Object.defineProperty(Vee,\"__esModule\",{value:!0});var _tt=EI();function ESe(t,e,n){try{Reflect.apply(t,e,n)}catch(r){setTimeout(()=>{throw r})}}function Ctt(t){let e=t.length,n=new Array(e);for(let r=0;r<e;r+=1)n[r]=t[r];return n}var Wee=class extends _tt.EventEmitter{emit(e,...n){let r=e===\"error\",o=this._events;if(o!==void 0)r=r&&o.error===void 0;else if(!r)return!1;if(r){let a;if(n.length>0&&([a]=n),a instanceof Error)throw a;let c=new Error(`Unhandled error.${a?` (${a.message})`:\"\"}`);throw c.context=a,c}let i=o[e];if(i===void 0)return!1;if(typeof i==\"function\")ESe(i,this,n);else{let a=i.length,c=Ctt(i);for(let u=0;u<a;u+=1)ESe(c[u],this,n)}return!0}};Vee.default=Wee});var RSe=be((_ln,TSe)=>{p();TSe.exports=$I;$I.default=$I;$I.stable=CSe;$I.stableStringify=CSe;var ez=\"[...]\",kSe=\"[Circular]\",fS=[],dS=[];function _Se(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function $I(t,e,n,r){typeof r>\"u\"&&(r=_Se()),$ee(t,\"\",0,[],void 0,0,r);var o;try{dS.length===0?o=JSON.stringify(t,e,n):o=JSON.stringify(t,ASe(e),n)}catch{return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\")}finally{for(;fS.length!==0;){var i=fS.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return o}function U8(t,e,n,r){var o=Object.getOwnPropertyDescriptor(r,n);o.get!==void 0?o.configurable?(Object.defineProperty(r,n,{value:t}),fS.push([r,n,e,o])):dS.push([e,n,t]):(r[n]=t,fS.push([r,n,e]))}function $ee(t,e,n,r,o,i,a){i+=1;var c;if(typeof t==\"object\"&&t!==null){for(c=0;c<r.length;c++)if(r[c]===t){U8(kSe,t,e,o);return}if(typeof a.depthLimit<\"u\"&&i>a.depthLimit){U8(ez,t,e,o);return}if(typeof a.edgesLimit<\"u\"&&n+1>a.edgesLimit){U8(ez,t,e,o);return}if(r.push(t),Array.isArray(t))for(c=0;c<t.length;c++)$ee(t[c],c,c,r,t,i,a);else{var u=Object.keys(t);for(c=0;c<u.length;c++){var d=u[c];$ee(t[d],d,c,r,t,i,a)}}r.pop()}}function Att(t,e){return t<e?-1:t>e?1:0}function CSe(t,e,n,r){typeof r>\"u\"&&(r=_Se());var o=Kee(t,\"\",0,[],void 0,0,r)||t,i;try{dS.length===0?i=JSON.stringify(o,e,n):i=JSON.stringify(o,ASe(e),n)}catch{return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\")}finally{for(;fS.length!==0;){var a=fS.pop();a.length===4?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}}return i}function Kee(t,e,n,r,o,i,a){i+=1;var c;if(typeof t==\"object\"&&t!==null){for(c=0;c<r.length;c++)if(r[c]===t){U8(kSe,t,e,o);return}try{if(typeof t.toJSON==\"function\")return}catch{return}if(typeof a.depthLimit<\"u\"&&i>a.depthLimit){U8(ez,t,e,o);return}if(typeof a.edgesLimit<\"u\"&&n+1>a.edgesLimit){U8(ez,t,e,o);return}if(r.push(t),Array.isArray(t))for(c=0;c<t.length;c++)Kee(t[c],c,c,r,t,i,a);else{var u={},d=Object.keys(t).sort(Att);for(c=0;c<d.length;c++){var h=d[c];Kee(t[h],h,c,r,t,i,a),u[h]=t[h]}if(typeof o<\"u\")fS.push([o,e,t]),o[e]=u;else return u}r.pop()}}function ASe(t){return t=typeof t<\"u\"?t:function(e,n){return n},function(e,n){if(dS.length>0)for(var r=0;r<dS.length;r++){var o=dS[r];if(o[1]===e&&o[0]===n){n=o[2],dS.splice(r,1);break}}return t.call(this,e,n)}}});var nz=be(j8=>{\"use strict\";p();Object.defineProperty(j8,\"__esModule\",{value:!0});j8.EthereumProviderError=j8.EthereumRpcError=void 0;var Ttt=RSe(),tz=class extends Error{constructor(e,n,r){if(!Number.isInteger(e))throw new Error(\\'\"code\" must be an integer.\\');if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string.\\');super(n),this.code=e,r!==void 0&&(this.data=r)}serialize(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),this.stack&&(e.stack=this.stack),e}toString(){return Ttt.default(this.serialize(),Itt,2)}};j8.EthereumRpcError=tz;var Gee=class extends tz{constructor(e,n,r){if(!Rtt(e))throw new Error(\\'\"code\" must be an integer such that: 1000 <= code <= 4999\\');super(e,n,r)}};j8.EthereumProviderError=Gee;function Rtt(t){return Number.isInteger(t)&&t>=1e3&&t<=4999}function Itt(t,e){if(e!==\"[Circular]\")return e}});var rz=be(z8=>{\"use strict\";p();Object.defineProperty(z8,\"__esModule\",{value:!0});z8.errorValues=z8.errorCodes=void 0;z8.errorCodes={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}};z8.errorValues={\"-32700\":{standard:\"JSON RPC 2.0\",message:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"},\"-32600\":{standard:\"JSON RPC 2.0\",message:\"The JSON sent is not a valid Request object.\"},\"-32601\":{standard:\"JSON RPC 2.0\",message:\"The method does not exist / is not available.\"},\"-32602\":{standard:\"JSON RPC 2.0\",message:\"Invalid method parameter(s).\"},\"-32603\":{standard:\"JSON RPC 2.0\",message:\"Internal JSON-RPC error.\"},\"-32000\":{standard:\"EIP-1474\",message:\"Invalid input.\"},\"-32001\":{standard:\"EIP-1474\",message:\"Resource not found.\"},\"-32002\":{standard:\"EIP-1474\",message:\"Resource unavailable.\"},\"-32003\":{standard:\"EIP-1474\",message:\"Transaction rejected.\"},\"-32004\":{standard:\"EIP-1474\",message:\"Method not supported.\"},\"-32005\":{standard:\"EIP-1474\",message:\"Request limit exceeded.\"},4001:{standard:\"EIP-1193\",message:\"User rejected the request.\"},4100:{standard:\"EIP-1193\",message:\"The requested account and/or method has not been authorized by the user.\"},4200:{standard:\"EIP-1193\",message:\"The requested method is not supported by this Ethereum provider.\"},4900:{standard:\"EIP-1193\",message:\"The provider is disconnected from all chains.\"},4901:{standard:\"EIP-1193\",message:\"The provider is disconnected from the specified chain.\"}}});var Qee=be(ag=>{\"use strict\";p();Object.defineProperty(ag,\"__esModule\",{value:!0});ag.serializeError=ag.isValidCode=ag.getMessageFromCode=ag.JSON_RPC_SERVER_ERROR_MESSAGE=void 0;var oz=rz(),Ott=nz(),ISe=oz.errorCodes.rpc.internal,Ptt=\"Unspecified error message. This is a bug, please report it.\",Mtt={code:ISe,message:Yee(ISe)};ag.JSON_RPC_SERVER_ERROR_MESSAGE=\"Unspecified server error.\";function Yee(t,e=Ptt){if(Number.isInteger(t)){let n=t.toString();if(Zee(oz.errorValues,n))return oz.errorValues[n].message;if(MSe(t))return ag.JSON_RPC_SERVER_ERROR_MESSAGE}return e}ag.getMessageFromCode=Yee;function PSe(t){if(!Number.isInteger(t))return!1;let e=t.toString();return!!(oz.errorValues[e]||MSe(t))}ag.isValidCode=PSe;function Ntt(t,{fallbackError:e=Mtt,shouldIncludeStack:n=!1}={}){var r,o;if(!e||!Number.isInteger(e.code)||typeof e.message!=\"string\")throw new Error(\"Must provide fallback error with integer number code and string message.\");if(t instanceof Ott.EthereumRpcError)return t.serialize();let i={};if(t&&typeof t==\"object\"&&!Array.isArray(t)&&Zee(t,\"code\")&&PSe(t.code)){let c=t;i.code=c.code,c.message&&typeof c.message==\"string\"?(i.message=c.message,Zee(c,\"data\")&&(i.data=c.data)):(i.message=Yee(i.code),i.data={originalError:OSe(t)})}else{i.code=e.code;let c=(r=t)===null||r===void 0?void 0:r.message;i.message=c&&typeof c==\"string\"?c:e.message,i.data={originalError:OSe(t)}}let a=(o=t)===null||o===void 0?void 0:o.stack;return n&&t&&a&&typeof a==\"string\"&&(i.stack=a),i}ag.serializeError=Ntt;function MSe(t){return t>=-32099&&t<=-32e3}function OSe(t){return t&&typeof t==\"object\"&&!Array.isArray(t)?Object.assign({},t):t}function Zee(t,e){return Object.prototype.hasOwnProperty.call(t,e)}});var BSe=be(iz=>{\"use strict\";p();Object.defineProperty(iz,\"__esModule\",{value:!0});iz.ethErrors=void 0;var Jee=nz(),NSe=Qee(),yu=rz();iz.ethErrors={rpc:{parse:t=>mm(yu.errorCodes.rpc.parse,t),invalidRequest:t=>mm(yu.errorCodes.rpc.invalidRequest,t),invalidParams:t=>mm(yu.errorCodes.rpc.invalidParams,t),methodNotFound:t=>mm(yu.errorCodes.rpc.methodNotFound,t),internal:t=>mm(yu.errorCodes.rpc.internal,t),server:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");let{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error(\\'\"code\" must be an integer such that: -32099 <= code <= -32005\\');return mm(e,t)},invalidInput:t=>mm(yu.errorCodes.rpc.invalidInput,t),resourceNotFound:t=>mm(yu.errorCodes.rpc.resourceNotFound,t),resourceUnavailable:t=>mm(yu.errorCodes.rpc.resourceUnavailable,t),transactionRejected:t=>mm(yu.errorCodes.rpc.transactionRejected,t),methodNotSupported:t=>mm(yu.errorCodes.rpc.methodNotSupported,t),limitExceeded:t=>mm(yu.errorCodes.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>KI(yu.errorCodes.provider.userRejectedRequest,t),unauthorized:t=>KI(yu.errorCodes.provider.unauthorized,t),unsupportedMethod:t=>KI(yu.errorCodes.provider.unsupportedMethod,t),disconnected:t=>KI(yu.errorCodes.provider.disconnected,t),chainDisconnected:t=>KI(yu.errorCodes.provider.chainDisconnected,t),custom:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");let{code:e,message:n,data:r}=t;if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string\\');return new Jee.EthereumProviderError(e,n,r)}}};function mm(t,e){let[n,r]=LSe(e);return new Jee.EthereumRpcError(t,n||NSe.getMessageFromCode(t),r)}function KI(t,e){let[n,r]=LSe(e);return new Jee.EthereumProviderError(t,n||NSe.getMessageFromCode(t),r)}function LSe(t){if(t){if(typeof t==\"string\")return[t];if(typeof t==\"object\"&&!Array.isArray(t)){let{message:e,data:n}=t;if(e&&typeof e!=\"string\")throw new Error(\"Must specify string message.\");return[e||void 0,n]}}return[]}});var USe=be(Af=>{\"use strict\";p();Object.defineProperty(Af,\"__esModule\",{value:!0});Af.getMessageFromCode=Af.serializeError=Af.EthereumProviderError=Af.EthereumRpcError=Af.ethErrors=Af.errorCodes=void 0;var DSe=nz();Object.defineProperty(Af,\"EthereumRpcError\",{enumerable:!0,get:function(){return DSe.EthereumRpcError}});Object.defineProperty(Af,\"EthereumProviderError\",{enumerable:!0,get:function(){return DSe.EthereumProviderError}});var FSe=Qee();Object.defineProperty(Af,\"serializeError\",{enumerable:!0,get:function(){return FSe.serializeError}});Object.defineProperty(Af,\"getMessageFromCode\",{enumerable:!0,get:function(){return FSe.getMessageFromCode}});var Ltt=BSe();Object.defineProperty(Af,\"ethErrors\",{enumerable:!0,get:function(){return Ltt.ethErrors}});var Btt=rz();Object.defineProperty(Af,\"errorCodes\",{enumerable:!0,get:function(){return Btt.errorCodes}})});var tte=be(H8=>{\"use strict\";p();var Dtt=H8&&H8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(H8,\"__esModule\",{value:!0});H8.JsonRpcEngine=void 0;var Ftt=Dtt(SSe()),gm=USe(),ete=class t extends Ftt.default{constructor(){super(),this._middleware=[]}push(e){this._middleware.push(e)}handle(e,n){if(n&&typeof n!=\"function\")throw new Error(\\'\"callback\" must be a function if provided.\\');return Array.isArray(e)?n?this._handleBatch(e,n):this._handleBatch(e):n?this._handle(e,n):this._promiseHandle(e)}asMiddleware(){return async(e,n,r,o)=>{try{let[i,a,c]=await t._runAllMiddleware(e,n,this._middleware);return a?(await t._runReturnHandlers(c),o(i)):r(async u=>{try{await t._runReturnHandlers(c)}catch(d){return u(d)}return u()})}catch(i){return o(i)}}}async _handleBatch(e,n){try{let r=await Promise.all(e.map(this._promiseHandle.bind(this)));return n?n(null,r):r}catch(r){if(n)return n(r);throw r}}_promiseHandle(e){return new Promise(n=>{this._handle(e,(r,o)=>{n(o)})})}async _handle(e,n){if(!e||Array.isArray(e)||typeof e!=\"object\"){let a=new gm.EthereumRpcError(gm.errorCodes.rpc.invalidRequest,`Requests must be plain objects. Received: ${typeof e}`,{request:e});return n(a,{id:void 0,jsonrpc:\"2.0\",error:a})}if(typeof e.method!=\"string\"){let a=new gm.EthereumRpcError(gm.errorCodes.rpc.invalidRequest,`Must specify a string method. Received: ${typeof e.method}`,{request:e});return n(a,{id:e.id,jsonrpc:\"2.0\",error:a})}let r=Object.assign({},e),o={id:r.id,jsonrpc:r.jsonrpc},i=null;try{await this._processRequest(r,o)}catch(a){i=a}return i&&(delete o.result,o.error||(o.error=gm.serializeError(i))),n(i,o)}async _processRequest(e,n){let[r,o,i]=await t._runAllMiddleware(e,n,this._middleware);if(t._checkForCompletion(e,n,o),await t._runReturnHandlers(i),r)throw r}static async _runAllMiddleware(e,n,r){let o=[],i=null,a=!1;for(let c of r)if([i,a]=await t._runMiddleware(e,n,c,o),a)break;return[i,a,o.reverse()]}static _runMiddleware(e,n,r,o){return new Promise(i=>{let a=u=>{let d=u||n.error;d&&(n.error=gm.serializeError(d)),i([d,!0])},c=u=>{n.error?a(n.error):(u&&(typeof u!=\"function\"&&a(new gm.EthereumRpcError(gm.errorCodes.rpc.internal,`JsonRpcEngine: \"next\" return handlers must be functions. Received \"${typeof u}\" for request:\\n${Xee(e)}`,{request:e})),o.push(u)),i([null,!1]))};try{r(e,n,c,a)}catch(u){a(u)}})}static async _runReturnHandlers(e){for(let n of e)await new Promise((r,o)=>{n(i=>i?o(i):r())})}static _checkForCompletion(e,n,r){if(!(\"result\"in n)&&!(\"error\"in n))throw new gm.EthereumRpcError(gm.errorCodes.rpc.internal,`JsonRpcEngine: Response has no error or result for request:\\n${Xee(e)}`,{request:e});if(!r)throw new gm.EthereumRpcError(gm.errorCodes.rpc.internal,`JsonRpcEngine: Nothing ended request:\\n${Xee(e)}`,{request:e})}};H8.JsonRpcEngine=ete;function Xee(t){return JSON.stringify(t,null,2)}});var jSe=be(sz=>{\"use strict\";p();Object.defineProperty(sz,\"__esModule\",{value:!0});sz.mergeMiddleware=void 0;var Utt=tte();function jtt(t){let e=new Utt.JsonRpcEngine;return t.forEach(n=>e.push(n)),e.asMiddleware()}sz.mergeMiddleware=jtt});var nte=be(ym=>{\"use strict\";p();var ztt=ym&&ym.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),q8=ym&&ym.__exportStar||function(t,e){for(var n in t)n!==\"default\"&&!Object.prototype.hasOwnProperty.call(e,n)&&ztt(e,t,n)};Object.defineProperty(ym,\"__esModule\",{value:!0});q8(vSe(),ym);q8(wSe(),ym);q8(xSe(),ym);q8(qee(),ym);q8(tte(),ym);q8(jSe(),ym)});var uz=be((qln,lz)=>{p();var zSe,HSe,qSe,WSe,VSe,$Se,KSe,GSe,ZSe,YSe,QSe,JSe,XSe,az,rte,eke,tke,nke,W8,rke,oke,ike,ske,ake,cke,lke,uke,dke,cz,fke,hke,pke;(function(t){var e=typeof globalThis==\"object\"?globalThis:typeof self==\"object\"?self:typeof this==\"object\"?this:{};typeof define==\"function\"&&define.amd?define(\"tslib\",[\"exports\"],function(r){t(n(e,n(r)))}):typeof lz==\"object\"&&typeof lz.exports==\"object\"?t(n(e,n(lz.exports))):t(n(e));function n(r,o){return r!==e&&(typeof Object.create==\"function\"?Object.defineProperty(r,\"__esModule\",{value:!0}):r.__esModule=!0),function(i,a){return r[i]=o?o(i,a):a}}})(function(t){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,a){i.__proto__=a}||function(i,a){for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(i[c]=a[c])};zSe=function(i,a){if(typeof a!=\"function\"&&a!==null)throw new TypeError(\"Class extends value \"+String(a)+\" is not a constructor or null\");e(i,a);function c(){this.constructor=i}i.prototype=a===null?Object.create(a):(c.prototype=a.prototype,new c)},HSe=Object.assign||function(i){for(var a,c=1,u=arguments.length;c<u;c++){a=arguments[c];for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&(i[d]=a[d])}return i},qSe=function(i,a){var c={};for(var u in i)Object.prototype.hasOwnProperty.call(i,u)&&a.indexOf(u)<0&&(c[u]=i[u]);if(i!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var d=0,u=Object.getOwnPropertySymbols(i);d<u.length;d++)a.indexOf(u[d])<0&&Object.prototype.propertyIsEnumerable.call(i,u[d])&&(c[u[d]]=i[u[d]]);return c},WSe=function(i,a,c,u){var d=arguments.length,h=d<3?a:u===null?u=Object.getOwnPropertyDescriptor(a,c):u,m;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")h=Reflect.decorate(i,a,c,u);else for(var g=i.length-1;g>=0;g--)(m=i[g])&&(h=(d<3?m(h):d>3?m(a,c,h):m(a,c))||h);return d>3&&h&&Object.defineProperty(a,c,h),h},VSe=function(i,a){return function(c,u){a(c,u,i)}},$Se=function(i,a,c,u,d,h){function m(J){if(J!==void 0&&typeof J!=\"function\")throw new TypeError(\"Function expected\");return J}for(var g=u.kind,b=g===\"getter\"?\"get\":g===\"setter\"?\"set\":\"value\",E=!a&&i?u.static?i:i.prototype:null,C=a||(E?Object.getOwnPropertyDescriptor(E,u.name):{}),T,R=!1,L=c.length-1;L>=0;L--){var D={};for(var G in u)D[G]=G===\"access\"?{}:u[G];for(var G in u.access)D.access[G]=u.access[G];D.addInitializer=function(J){if(R)throw new TypeError(\"Cannot add initializers after decoration has completed\");h.push(m(J||null))};var W=(0,c[L])(g===\"accessor\"?{get:C.get,set:C.set}:C[b],D);if(g===\"accessor\"){if(W===void 0)continue;if(W===null||typeof W!=\"object\")throw new TypeError(\"Object expected\");(T=m(W.get))&&(C.get=T),(T=m(W.set))&&(C.set=T),(T=m(W.init))&&d.unshift(T)}else(T=m(W))&&(g===\"field\"?d.unshift(T):C[b]=T)}E&&Object.defineProperty(E,u.name,C),R=!0},KSe=function(i,a,c){for(var u=arguments.length>2,d=0;d<a.length;d++)c=u?a[d].call(i,c):a[d].call(i);return u?c:void 0},GSe=function(i){return typeof i==\"symbol\"?i:\"\".concat(i)},ZSe=function(i,a,c){return typeof a==\"symbol\"&&(a=a.description?\"[\".concat(a.description,\"]\"):\"\"),Object.defineProperty(i,\"name\",{configurable:!0,value:c?\"\".concat(c,\" \",a):a})},YSe=function(i,a){if(typeof Reflect==\"object\"&&typeof Reflect.metadata==\"function\")return Reflect.metadata(i,a)},QSe=function(i,a,c,u){function d(h){return h instanceof c?h:new c(function(m){m(h)})}return new(c||(c=Promise))(function(h,m){function g(C){try{E(u.next(C))}catch(T){m(T)}}function b(C){try{E(u.throw(C))}catch(T){m(T)}}function E(C){C.done?h(C.value):d(C.value).then(g,b)}E((u=u.apply(i,a||[])).next())})},JSe=function(i,a){var c={label:0,sent:function(){if(h[0]&1)throw h[1];return h[1]},trys:[],ops:[]},u,d,h,m=Object.create((typeof Iterator==\"function\"?Iterator:Object).prototype);return m.next=g(0),m.throw=g(1),m.return=g(2),typeof Symbol==\"function\"&&(m[Symbol.iterator]=function(){return this}),m;function g(E){return function(C){return b([E,C])}}function b(E){if(u)throw new TypeError(\"Generator is already executing.\");for(;m&&(m=0,E[0]&&(c=0)),c;)try{if(u=1,d&&(h=E[0]&2?d.return:E[0]?d.throw||((h=d.return)&&h.call(d),0):d.next)&&!(h=h.call(d,E[1])).done)return h;switch(d=0,h&&(E=[E[0]&2,h.value]),E[0]){case 0:case 1:h=E;break;case 4:return c.label++,{value:E[1],done:!1};case 5:c.label++,d=E[1],E=[0];continue;case 7:E=c.ops.pop(),c.trys.pop();continue;default:if(h=c.trys,!(h=h.length>0&&h[h.length-1])&&(E[0]===6||E[0]===2)){c=0;continue}if(E[0]===3&&(!h||E[1]>h[0]&&E[1]<h[3])){c.label=E[1];break}if(E[0]===6&&c.label<h[1]){c.label=h[1],h=E;break}if(h&&c.label<h[2]){c.label=h[2],c.ops.push(E);break}h[2]&&c.ops.pop(),c.trys.pop();continue}E=a.call(i,c)}catch(C){E=[6,C],d=0}finally{u=h=0}if(E[0]&5)throw E[1];return{value:E[0]?E[1]:void 0,done:!0}}},XSe=function(i,a){for(var c in i)c!==\"default\"&&!Object.prototype.hasOwnProperty.call(a,c)&&cz(a,i,c)},cz=Object.create?function(i,a,c,u){u===void 0&&(u=c);var d=Object.getOwnPropertyDescriptor(a,c);(!d||(\"get\"in d?!a.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return a[c]}}),Object.defineProperty(i,u,d)}:function(i,a,c,u){u===void 0&&(u=c),i[u]=a[c]},az=function(i){var a=typeof Symbol==\"function\"&&Symbol.iterator,c=a&&i[a],u=0;if(c)return c.call(i);if(i&&typeof i.length==\"number\")return{next:function(){return i&&u>=i.length&&(i=void 0),{value:i&&i[u++],done:!i}}};throw new TypeError(a?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},rte=function(i,a){var c=typeof Symbol==\"function\"&&i[Symbol.iterator];if(!c)return i;var u=c.call(i),d,h=[],m;try{for(;(a===void 0||a-- >0)&&!(d=u.next()).done;)h.push(d.value)}catch(g){m={error:g}}finally{try{d&&!d.done&&(c=u.return)&&c.call(u)}finally{if(m)throw m.error}}return h},eke=function(){for(var i=[],a=0;a<arguments.length;a++)i=i.concat(rte(arguments[a]));return i},tke=function(){for(var i=0,a=0,c=arguments.length;a<c;a++)i+=arguments[a].length;for(var u=Array(i),d=0,a=0;a<c;a++)for(var h=arguments[a],m=0,g=h.length;m<g;m++,d++)u[d]=h[m];return u},nke=function(i,a,c){if(c||arguments.length===2)for(var u=0,d=a.length,h;u<d;u++)(h||!(u in a))&&(h||(h=Array.prototype.slice.call(a,0,u)),h[u]=a[u]);return i.concat(h||Array.prototype.slice.call(a))},W8=function(i){return this instanceof W8?(this.v=i,this):new W8(i)},rke=function(i,a,c){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var u=c.apply(i,a||[]),d,h=[];return d=Object.create((typeof AsyncIterator==\"function\"?AsyncIterator:Object).prototype),g(\"next\"),g(\"throw\"),g(\"return\",m),d[Symbol.asyncIterator]=function(){return this},d;function m(L){return function(D){return Promise.resolve(D).then(L,T)}}function g(L,D){u[L]&&(d[L]=function(G){return new Promise(function(W,J){h.push([L,G,W,J])>1||b(L,G)})},D&&(d[L]=D(d[L])))}function b(L,D){try{E(u[L](D))}catch(G){R(h[0][3],G)}}function E(L){L.value instanceof W8?Promise.resolve(L.value.v).then(C,T):R(h[0][2],L)}function C(L){b(\"next\",L)}function T(L){b(\"throw\",L)}function R(L,D){L(D),h.shift(),h.length&&b(h[0][0],h[0][1])}},oke=function(i){var a,c;return a={},u(\"next\"),u(\"throw\",function(d){throw d}),u(\"return\"),a[Symbol.iterator]=function(){return this},a;function u(d,h){a[d]=i[d]?function(m){return(c=!c)?{value:W8(i[d](m)),done:!1}:h?h(m):m}:h}},ike=function(i){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var a=i[Symbol.asyncIterator],c;return a?a.call(i):(i=typeof az==\"function\"?az(i):i[Symbol.iterator](),c={},u(\"next\"),u(\"throw\"),u(\"return\"),c[Symbol.asyncIterator]=function(){return this},c);function u(h){c[h]=i[h]&&function(m){return new Promise(function(g,b){m=i[h](m),d(g,b,m.done,m.value)})}}function d(h,m,g,b){Promise.resolve(b).then(function(E){h({value:E,done:g})},m)}},ske=function(i,a){return Object.defineProperty?Object.defineProperty(i,\"raw\",{value:a}):i.raw=a,i};var n=Object.create?function(i,a){Object.defineProperty(i,\"default\",{enumerable:!0,value:a})}:function(i,a){i.default=a},r=function(i){return r=Object.getOwnPropertyNames||function(a){var c=[];for(var u in a)Object.prototype.hasOwnProperty.call(a,u)&&(c[c.length]=u);return c},r(i)};ake=function(i){if(i&&i.__esModule)return i;var a={};if(i!=null)for(var c=r(i),u=0;u<c.length;u++)c[u]!==\"default\"&&cz(a,i,c[u]);return n(a,i),a},cke=function(i){return i&&i.__esModule?i:{default:i}},lke=function(i,a,c,u){if(c===\"a\"&&!u)throw new TypeError(\"Private accessor was defined without a getter\");if(typeof a==\"function\"?i!==a||!u:!a.has(i))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return c===\"m\"?u:c===\"a\"?u.call(i):u?u.value:a.get(i)},uke=function(i,a,c,u,d){if(u===\"m\")throw new TypeError(\"Private method is not writable\");if(u===\"a\"&&!d)throw new TypeError(\"Private accessor was defined without a setter\");if(typeof a==\"function\"?i!==a||!d:!a.has(i))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return u===\"a\"?d.call(i,c):d?d.value=c:a.set(i,c),c},dke=function(i,a){if(a===null||typeof a!=\"object\"&&typeof a!=\"function\")throw new TypeError(\"Cannot use \\'in\\' operator on non-object\");return typeof i==\"function\"?a===i:i.has(a)},fke=function(i,a,c){if(a!=null){if(typeof a!=\"object\"&&typeof a!=\"function\")throw new TypeError(\"Object expected.\");var u,d;if(c){if(!Symbol.asyncDispose)throw new TypeError(\"Symbol.asyncDispose is not defined.\");u=a[Symbol.asyncDispose]}if(u===void 0){if(!Symbol.dispose)throw new TypeError(\"Symbol.dispose is not defined.\");u=a[Symbol.dispose],c&&(d=u)}if(typeof u!=\"function\")throw new TypeError(\"Object not disposable.\");d&&(u=function(){try{d.call(this)}catch(h){return Promise.reject(h)}}),i.stack.push({value:a,dispose:u,async:c})}else c&&i.stack.push({async:!0});return a};var o=typeof SuppressedError==\"function\"?SuppressedError:function(i,a,c){var u=new Error(c);return u.name=\"SuppressedError\",u.error=i,u.suppressed=a,u};hke=function(i){function a(h){i.error=i.hasError?new o(h,i.error,\"An error was suppressed during disposal.\"):h,i.hasError=!0}var c,u=0;function d(){for(;c=i.stack.pop();)try{if(!c.async&&u===1)return u=0,i.stack.push(c),Promise.resolve().then(d);if(c.dispose){var h=c.dispose.call(c.value);if(c.async)return u|=2,Promise.resolve(h).then(d,function(m){return a(m),d()})}else u|=1}catch(m){a(m)}if(u===1)return i.hasError?Promise.reject(i.error):Promise.resolve();if(i.hasError)throw i.error}return d()},pke=function(i,a){return typeof i==\"string\"&&/^\\\\.\\\\.?\\\\//.test(i)?i.replace(/\\\\.(tsx)$|((?:\\\\.d)?)((?:\\\\.[^./]+?)?)\\\\.([cm]?)ts$/i,function(c,u,d,h,m){return u?a?\".jsx\":\".js\":d&&(!h||!m)?c:d+h+\".\"+m.toLowerCase()+\"js\"}):i},t(\"__extends\",zSe),t(\"__assign\",HSe),t(\"__rest\",qSe),t(\"__decorate\",WSe),t(\"__param\",VSe),t(\"__esDecorate\",$Se),t(\"__runInitializers\",KSe),t(\"__propKey\",GSe),t(\"__setFunctionName\",ZSe),t(\"__metadata\",YSe),t(\"__awaiter\",QSe),t(\"__generator\",JSe),t(\"__exportStar\",XSe),t(\"__createBinding\",cz),t(\"__values\",az),t(\"__read\",rte),t(\"__spread\",eke),t(\"__spreadArrays\",tke),t(\"__spreadArray\",nke),t(\"__await\",W8),t(\"__asyncGenerator\",rke),t(\"__asyncDelegator\",oke),t(\"__asyncValues\",ike),t(\"__makeTemplateObject\",ske),t(\"__importStar\",ake),t(\"__importDefault\",cke),t(\"__classPrivateFieldGet\",lke),t(\"__classPrivateFieldSet\",uke),t(\"__classPrivateFieldIn\",dke),t(\"__addDisposableResource\",fke),t(\"__disposeResources\",hke),t(\"__rewriteRelativeImportExtension\",pke)})});var ite=be(ote=>{\"use strict\";p();Object.defineProperty(ote,\"__esModule\",{value:!0});var mke=uz(),Htt=function(){function t(e){if(this._maxConcurrency=e,this._queue=[],e<=0)throw new Error(\"semaphore must be initialized to a positive value\");this._value=e}return t.prototype.acquire=function(){var e=this,n=this.isLocked(),r=new Promise(function(o){return e._queue.push(o)});return n||this._dispatch(),r},t.prototype.runExclusive=function(e){return mke.__awaiter(this,void 0,void 0,function(){var n,r,o;return mke.__generator(this,function(i){switch(i.label){case 0:return[4,this.acquire()];case 1:n=i.sent(),r=n[0],o=n[1],i.label=2;case 2:return i.trys.push([2,,4,5]),[4,e(r)];case 3:return[2,i.sent()];case 4:return o(),[7];case 5:return[2]}})})},t.prototype.isLocked=function(){return this._value<=0},t.prototype.release=function(){if(this._maxConcurrency>1)throw new Error(\"this method is unavailabel on semaphores with concurrency > 1; use the scoped release returned by acquire instead\");if(this._currentReleaser){var e=this._currentReleaser;this._currentReleaser=void 0,e()}},t.prototype._dispatch=function(){var e=this,n=this._queue.shift();if(n){var r=!1;this._currentReleaser=function(){r||(r=!0,e._value++,e._dispatch())},n([this._value--,this._currentReleaser])}},t}();ote.default=Htt});var yke=be(ste=>{\"use strict\";p();Object.defineProperty(ste,\"__esModule\",{value:!0});var gke=uz(),qtt=ite(),Wtt=function(){function t(){this._semaphore=new qtt.default(1)}return t.prototype.acquire=function(){return gke.__awaiter(this,void 0,void 0,function(){var e,n;return gke.__generator(this,function(r){switch(r.label){case 0:return[4,this._semaphore.acquire()];case 1:return e=r.sent(),n=e[1],[2,n]}})})},t.prototype.runExclusive=function(e){return this._semaphore.runExclusive(function(){return e()})},t.prototype.isLocked=function(){return this._semaphore.isLocked()},t.prototype.release=function(){this._semaphore.release()},t}();ste.default=Wtt});var bke=be(fz=>{\"use strict\";p();Object.defineProperty(fz,\"__esModule\",{value:!0});fz.withTimeout=void 0;var dz=uz();function Vtt(t,e,n){var r=this;return n===void 0&&(n=new Error(\"timeout\")),{acquire:function(){return new Promise(function(o,i){return dz.__awaiter(r,void 0,void 0,function(){var a,c,u;return dz.__generator(this,function(d){switch(d.label){case 0:return a=!1,setTimeout(function(){a=!0,i(n)},e),[4,t.acquire()];case 1:return c=d.sent(),a?(u=Array.isArray(c)?c[1]:c,u()):o(c),[2]}})})})},runExclusive:function(o){return dz.__awaiter(this,void 0,void 0,function(){var i,a;return dz.__generator(this,function(c){switch(c.label){case 0:i=function(){},c.label=1;case 1:return c.trys.push([1,,7,8]),[4,this.acquire()];case 2:return a=c.sent(),Array.isArray(a)?(i=a[1],[4,o(a[0])]):[3,4];case 3:return[2,c.sent()];case 4:return i=a,[4,o()];case 5:return[2,c.sent()];case 6:return[3,8];case 7:return i(),[7];case 8:return[2]}})})},release:function(){t.release()},isLocked:function(){return t.isLocked()}}}fz.withTimeout=Vtt});var vke=be(jx=>{\"use strict\";p();Object.defineProperty(jx,\"__esModule\",{value:!0});jx.withTimeout=jx.Semaphore=jx.Mutex=void 0;var $tt=yke();Object.defineProperty(jx,\"Mutex\",{enumerable:!0,get:function(){return $tt.default}});var Ktt=ite();Object.defineProperty(jx,\"Semaphore\",{enumerable:!0,get:function(){return Ktt.default}});var Gtt=bke();Object.defineProperty(jx,\"withTimeout\",{enumerable:!0,get:function(){return Gtt.withTimeout}})});var xke=be((Xln,wke)=>{p();wke.exports=Ytt;var Ztt=Object.prototype.hasOwnProperty;function Ytt(){for(var t={},e=0;e<arguments.length;e++){var n=arguments[e];for(var r in n)Ztt.call(n,r)&&(t[r]=n[r])}return t}});var Ske=be((tun,Eke)=>{p();var Qtt=xke(),Jtt=Rj()();Eke.exports=jn;function jn(t){let e=this;e.currentProvider=t}jn.prototype.getBalance=GI(2,\"eth_getBalance\");jn.prototype.getCode=GI(2,\"eth_getCode\");jn.prototype.getTransactionCount=GI(2,\"eth_getTransactionCount\");jn.prototype.getStorageAt=GI(3,\"eth_getStorageAt\");jn.prototype.call=GI(2,\"eth_call\");jn.prototype.protocolVersion=Or(\"eth_protocolVersion\");jn.prototype.syncing=Or(\"eth_syncing\");jn.prototype.coinbase=Or(\"eth_coinbase\");jn.prototype.mining=Or(\"eth_mining\");jn.prototype.hashrate=Or(\"eth_hashrate\");jn.prototype.gasPrice=Or(\"eth_gasPrice\");jn.prototype.accounts=Or(\"eth_accounts\");jn.prototype.blockNumber=Or(\"eth_blockNumber\");jn.prototype.getBlockTransactionCountByHash=Or(\"eth_getBlockTransactionCountByHash\");jn.prototype.getBlockTransactionCountByNumber=Or(\"eth_getBlockTransactionCountByNumber\");jn.prototype.getUncleCountByBlockHash=Or(\"eth_getUncleCountByBlockHash\");jn.prototype.getUncleCountByBlockNumber=Or(\"eth_getUncleCountByBlockNumber\");jn.prototype.sign=Or(\"eth_sign\");jn.prototype.sendTransaction=Or(\"eth_sendTransaction\");jn.prototype.sendRawTransaction=Or(\"eth_sendRawTransaction\");jn.prototype.estimateGas=Or(\"eth_estimateGas\");jn.prototype.getBlockByHash=Or(\"eth_getBlockByHash\");jn.prototype.getBlockByNumber=Or(\"eth_getBlockByNumber\");jn.prototype.getTransactionByHash=Or(\"eth_getTransactionByHash\");jn.prototype.getTransactionByBlockHashAndIndex=Or(\"eth_getTransactionByBlockHashAndIndex\");jn.prototype.getTransactionByBlockNumberAndIndex=Or(\"eth_getTransactionByBlockNumberAndIndex\");jn.prototype.getTransactionReceipt=Or(\"eth_getTransactionReceipt\");jn.prototype.getUncleByBlockHashAndIndex=Or(\"eth_getUncleByBlockHashAndIndex\");jn.prototype.getUncleByBlockNumberAndIndex=Or(\"eth_getUncleByBlockNumberAndIndex\");jn.prototype.getCompilers=Or(\"eth_getCompilers\");jn.prototype.compileLLL=Or(\"eth_compileLLL\");jn.prototype.compileSolidity=Or(\"eth_compileSolidity\");jn.prototype.compileSerpent=Or(\"eth_compileSerpent\");jn.prototype.newFilter=Or(\"eth_newFilter\");jn.prototype.newBlockFilter=Or(\"eth_newBlockFilter\");jn.prototype.newPendingTransactionFilter=Or(\"eth_newPendingTransactionFilter\");jn.prototype.uninstallFilter=Or(\"eth_uninstallFilter\");jn.prototype.getFilterChanges=Or(\"eth_getFilterChanges\");jn.prototype.getFilterLogs=Or(\"eth_getFilterLogs\");jn.prototype.getLogs=Or(\"eth_getLogs\");jn.prototype.getWork=Or(\"eth_getWork\");jn.prototype.submitWork=Or(\"eth_submitWork\");jn.prototype.submitHashrate=Or(\"eth_submitHashrate\");jn.prototype.sendAsync=function(t,e){this.currentProvider.sendAsync(Xtt(t),function(r,o){if(!r&&o.error&&(r=new Error(\"EthQuery - RPC Error - \"+o.error.message)),r)return e(r);e(null,o.result)})};function Or(t){return function(){let e=this;var n=[].slice.call(arguments),r=n.pop();e.sendAsync({method:t,params:n},r)}}function GI(t,e){return function(){let n=this;var r=[].slice.call(arguments),o=r.pop();r.length<t&&r.push(\"latest\"),n.sendAsync({method:e,params:r},o)}}function Xtt(t){return Qtt({id:Jtt(),jsonrpc:\"2.0\",params:[]},t)}});var Ake=be((run,Cke)=>{\"use strict\";p();var kke=(t,e,n,r)=>function(...o){let i=e.promiseModule;return new i((a,c)=>{e.multiArgs?o.push((...d)=>{e.errorFirst?d[0]?c(d):(d.shift(),a(d)):a(d)}):e.errorFirst?o.push((d,h)=>{d?c(d):a(h)}):o.push(a),Reflect.apply(t,this===n?r:this,o)})},_ke=new WeakMap;Cke.exports=(t,e)=>{e={exclude:[/.+(?:Sync|Stream)$/],errorFirst:!0,promiseModule:Promise,...e};let n=typeof t;if(!(t!==null&&(n===\"object\"||n===\"function\")))throw new TypeError(`Expected \\\\`input\\\\` to be a \\\\`Function\\\\` or \\\\`Object\\\\`, got \\\\`${t===null?\"null\":n}\\\\``);let r=(a,c)=>{let u=_ke.get(a);if(u||(u={},_ke.set(a,u)),c in u)return u[c];let d=E=>typeof E==\"string\"||typeof c==\"symbol\"?c===E:E.test(c),h=Reflect.getOwnPropertyDescriptor(a,c),m=h===void 0||h.writable||h.configurable,b=(e.include?e.include.some(d):!e.exclude.some(d))&&m;return u[c]=b,b},o=new WeakMap,i=new Proxy(t,{apply(a,c,u){let d=o.get(a);if(d)return Reflect.apply(d,c,u);let h=e.excludeMain?a:kke(a,e,i,a);return o.set(a,h),Reflect.apply(h,c,u)},get(a,c){let u=a[c];if(!r(a,c)||u===Function.prototype[c])return u;let d=o.get(u);if(d)return d;if(typeof u==\"function\"){let h=kke(u,e,i,a);return o.set(u,h),h}return u}});return i}});var hz=be((iun,Tke)=>{p();var ent=Ij().default,ate=class extends ent{constructor(){super(),this.updates=[]}async initialize(){}async update(){throw new Error(\"BaseFilter - no update method specified\")}addResults(e){this.updates=this.updates.concat(e),e.forEach(n=>this.emit(\"update\",n))}addInitialResults(e){}getChangesAndClear(){let e=this.updates;return this.updates=[],e}};Tke.exports=ate});var Ike=be((aun,Rke)=>{p();var tnt=hz(),cte=class extends tnt{constructor(){super(),this.allResults=[]}async update(){throw new Error(\"BaseFilterWithHistory - no update method specified\")}addResults(e){this.allResults=this.allResults.concat(e),super.addResults(e)}addInitialResults(e){this.allResults=this.allResults.concat(e),super.addInitialResults(e)}getAllResults(){return this.allResults}};Rke.exports=cte});var V8=be((lun,Mke)=>{p();Mke.exports={minBlockRef:nnt,maxBlockRef:rnt,sortBlockRefs:lte,bnToHex:ont,blockRefIsNumber:int,hexToInt:pz,incrementHexInt:snt,intToHex:Pke,unsafeRandomBytes:ant};function nnt(...t){return lte(t)[0]}function rnt(...t){let e=lte(t);return e[e.length-1]}function lte(t){return t.sort((e,n)=>e===\"latest\"||n===\"earliest\"?1:n===\"latest\"||e===\"earliest\"?-1:pz(e)-pz(n))}function ont(t){return\"0x\"+t.toString(16)}function int(t){return t&&![\"earliest\",\"latest\",\"pending\"].includes(t)}function pz(t){return t==null?t:Number.parseInt(t,16)}function snt(t){if(t==null)return t;let e=pz(t);return Pke(e+1)}function Pke(t){if(t==null)return t;let e=t.toString(16);return e.length%2&&(e=\"0\"+e),\"0x\"+e}function ant(t){let e=\"0x\";for(let n=0;n<t;n++)e+=Oke(),e+=Oke();return e}function Oke(){return Math.floor(Math.random()*16).toString(16)}});var Lke=be((fun,Nke)=>{p();var cnt=Ske(),lnt=Ake(),unt=Ike(),{bnToHex:dun,hexToInt:mz,incrementHexInt:dnt,minBlockRef:fnt,blockRefIsNumber:hnt}=V8(),ute=class extends unt{constructor({provider:e,params:n}){super(),this.type=\"log\",this.ethQuery=new cnt(e),this.params=Object.assign({fromBlock:\"latest\",toBlock:\"latest\",address:void 0,topics:[]},n),this.params.address&&(Array.isArray(this.params.address)||(this.params.address=[this.params.address]),this.params.address=this.params.address.map(r=>r.toLowerCase()))}async initialize({currentBlock:e}){let n=this.params.fromBlock;[\"latest\",\"pending\"].includes(n)&&(n=e),n===\"earliest\"&&(n=\"0x0\"),this.params.fromBlock=n;let r=fnt(this.params.toBlock,e),o=Object.assign({},this.params,{toBlock:r}),i=await this._fetchLogs(o);this.addInitialResults(i)}async update({oldBlock:e,newBlock:n}){let r=n,o;e?o=dnt(e):o=n;let i=Object.assign({},this.params,{fromBlock:o,toBlock:r}),c=(await this._fetchLogs(i)).filter(u=>this.matchLog(u));this.addResults(c)}async _fetchLogs(e){return await lnt(r=>this.ethQuery.getLogs(e,r))()}matchLog(e){if(mz(this.params.fromBlock)>=mz(e.blockNumber)||hnt(this.params.toBlock)&&mz(this.params.toBlock)<=mz(e.blockNumber))return!1;let n=e.address&&e.address.toLowerCase();return this.params.address&&n&&!this.params.address.includes(n)?!1:this.params.topics.every((o,i)=>{let a=e.topics[i];if(!a)return!1;a=a.toLowerCase();let c=Array.isArray(o)?o:[o];return c.includes(null)?!0:(c=c.map(h=>h.toLowerCase()),c.includes(a))})}};Nke.exports=ute});var gz=be((pun,Dke)=>{p();Dke.exports=pnt;async function pnt({provider:t,fromBlock:e,toBlock:n}){e||(e=n);let r=Bke(e),i=Bke(n)-r+1,a=Array(i).fill().map((u,d)=>r+d).map(mnt),c=await Promise.all(a.map(u=>ynt(t,\"eth_getBlockByNumber\",[u,!1])));return c=c.filter(u=>u!==null),c}function Bke(t){return t==null?t:Number.parseInt(t,16)}function mnt(t){return t==null?t:\"0x\"+t.toString(16)}function gnt(t,e){return new Promise((n,r)=>{t.sendAsync(e,(o,i)=>{o?r(o):i.error?r(i.error):i.result?n(i.result):r(new Error(\"Result was empty\"))})})}async function ynt(t,e,n){for(let r=0;r<3;r++)try{return await gnt(t,{id:1,jsonrpc:\"2.0\",method:e,params:n})}catch(o){console.error(`provider.sendAsync failed: ${o.stack||o.message||o}`)}return null}});var Uke=be((gun,Fke)=>{p();var bnt=hz(),vnt=gz(),{incrementHexInt:wnt}=V8(),dte=class extends bnt{constructor({provider:e,params:n}){super(),this.type=\"block\",this.provider=e}async update({oldBlock:e,newBlock:n}){let r=n,o=wnt(e),a=(await vnt({provider:this.provider,fromBlock:o,toBlock:r})).map(c=>c.hash);this.addResults(a)}};Fke.exports=dte});var zke=be((bun,jke)=>{p();var xnt=hz(),Ent=gz(),{incrementHexInt:Snt}=V8(),fte=class extends xnt{constructor({provider:e}){super(),this.type=\"tx\",this.provider=e}async update({oldBlock:e}){let n=e,r=Snt(e),o=await Ent({provider:this.provider,fromBlock:r,toBlock:n}),i=[];for(let a of o)i.push(...a.transactions);this.addResults(i)}};jke.exports=fte});var Wke=be((wun,qke)=>{p();var knt=vke().Mutex,{createAsyncMiddleware:_nt,createScaffoldMiddleware:Cnt}=nte(),Ant=Lke(),Tnt=Uke(),Rnt=zke(),{intToHex:Hke,hexToInt:hte}=V8();qke.exports=Int;function Int({blockTracker:t,provider:e}){let n=0,r={},o=new knt,i=Ont({mutex:o}),a=Cnt({eth_newFilter:i(pte(u)),eth_newBlockFilter:i(pte(d)),eth_newPendingTransactionFilter:i(pte(h)),eth_uninstallFilter:i(yz(b)),eth_getFilterChanges:i(yz(m)),eth_getFilterLogs:i(yz(g))}),c=async({oldBlock:L,newBlock:D})=>{if(r.length===0)return;let G=await o.acquire();try{await Promise.all($8(r).map(async W=>{try{await W.update({oldBlock:L,newBlock:D})}catch(J){console.error(J)}}))}catch(W){console.error(W)}G()};return a.newLogFilter=u,a.newBlockFilter=d,a.newPendingTransactionFilter=h,a.uninstallFilter=b,a.getFilterChanges=m,a.getFilterLogs=g,a.destroy=()=>{T()},a;async function u(L){let D=new Ant({provider:e,params:L}),G=await E(D);return D}async function d(){let L=new Tnt({provider:e}),D=await E(L);return L}async function h(){let L=new Rnt({provider:e}),D=await E(L);return L}async function m(L){let D=hte(L),G=r[D];if(!G)throw new Error(`No filter for index \"${D}\"`);return G.getChangesAndClear()}async function g(L){let D=hte(L),G=r[D];if(!G)throw new Error(`No filter for index \"${D}\"`);let W=[];return G.type===\"log\"&&(W=G.getAllResults()),W}async function b(L){let D=hte(L),W=!!r[D];return W&&await C(D),W}async function E(L){let D=$8(r).length,G=await t.getLatestBlock();await L.initialize({currentBlock:G}),n++,r[n]=L,L.id=n,L.idHex=Hke(n);let W=$8(r).length;return R({prevFilterCount:D,newFilterCount:W}),n}async function C(L){let D=$8(r).length;delete r[L];let G=$8(r).length;R({prevFilterCount:D,newFilterCount:G})}async function T(){let L=$8(r).length;r={},R({prevFilterCount:L,newFilterCount:0})}function R({prevFilterCount:L,newFilterCount:D}){if(L===0&&D>0){t.on(\"sync\",c);return}if(L>0&&D===0){t.removeListener(\"sync\",c);return}}}function pte(t){return yz(async(...e)=>{let n=await t(...e);return Hke(n.id)})}function yz(t){return _nt(async(e,n)=>{let r=await t.apply(null,e.params);n.result=r})}function Ont({mutex:t}){return e=>async(n,r,o,i)=>{(await t.acquire())(),e(n,r,o,i)}}function $8(t,e){let n=[];for(let r in t)n.push(t[r]);return n}});var Kke=be((Eun,$ke)=>{p();var Pnt=Ij().default,{createAsyncMiddleware:Vke,createScaffoldMiddleware:Mnt}=nte(),Nnt=Wke(),{unsafeRandomBytes:Lnt,incrementHexInt:Bnt}=V8(),Dnt=gz();$ke.exports=Fnt;function Fnt({blockTracker:t,provider:e}){let n={},r=Nnt({blockTracker:t,provider:e}),o=!1,i=new Pnt,a=Mnt({eth_subscribe:Vke(c),eth_unsubscribe:Vke(u)});return a.destroy=h,{events:i,middleware:a};async function c(m,g){if(o)throw new Error(\"SubscriptionManager - attempting to use after destroying\");let b=m.params[0],E=Lnt(16),C;switch(b){case\"newHeads\":C=T({subId:E});break;case\"logs\":let L=m.params[1],D=await r.newLogFilter(L);C=R({subId:E,filter:D});break;default:throw new Error(`SubscriptionManager - unsupported subscription type \"${b}\"`)}n[E]=C,g.result=E;return;function T({subId:L}){let D={type:b,destroy:async()=>{t.removeListener(\"sync\",D.update)},update:async({oldBlock:G,newBlock:W})=>{let J=W,ne=Bnt(G);(await Dnt({provider:e,fromBlock:ne,toBlock:J})).map(Unt).filter(ae=>ae!==null).forEach(ae=>{d(L,ae)})}};return t.on(\"sync\",D.update),D}function R({subId:L,filter:D}){return D.on(\"update\",W=>d(L,W)),{type:b,destroy:async()=>await r.uninstallFilter(D.idHex)}}}async function u(m,g){if(o)throw new Error(\"SubscriptionManager - attempting to use after destroying\");let b=m.params[0],E=n[b];if(!E){g.result=!1;return}delete n[b],await E.destroy(),g.result=!0}function d(m,g){i.emit(\"notification\",{jsonrpc:\"2.0\",method:\"eth_subscription\",params:{subscription:m,result:g}})}function h(){i.removeAllListeners();for(let m in n)n[m].destroy(),delete n[m];o=!0}}function Unt(t){return t==null?null:{hash:t.hash,parentHash:t.parentHash,sha3Uncles:t.sha3Uncles,miner:t.miner,stateRoot:t.stateRoot,transactionsRoot:t.transactionsRoot,receiptsRoot:t.receiptsRoot,logsBloom:t.logsBloom,difficulty:t.difficulty,number:t.number,gasLimit:t.gasLimit,gasUsed:t.gasUsed,nonce:t.nonce,mixHash:t.mixHash,timestamp:t.timestamp,extraData:t.extraData}}});var Zke=be(bz=>{\"use strict\";p();Object.defineProperty(bz,\"__esModule\",{value:!0});bz.SubscriptionManager=void 0;var jnt=ySe(),znt=Kke(),Gke=()=>{},mte=class{constructor(e){let n=new jnt.PollingBlockTracker({provider:e,pollingInterval:15e3,setSkipCacheFlag:!0}),{events:r,middleware:o}=znt({blockTracker:n,provider:e});this.events=r,this.subscriptionMiddleware=o}async handleRequest(e){let n={};return await this.subscriptionMiddleware(e,n,Gke,Gke),n}destroy(){this.subscriptionMiddleware.destroy()}};bz.SubscriptionManager=mte});var wz=be(K8=>{\"use strict\";p();var Xke=K8&&K8.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(K8,\"__esModule\",{value:!0});K8.CoinbaseWalletProvider=void 0;var Hnt=Xke(q6()),qnt=IQ(),ao=fI(),mr=Yy(),Wnt=TX(),Yke=BU(),vz=HU(),Ah=TU(),gte=Xke(uEe()),ZI=LU(),Vnt=mEe(),$nt=Zke(),Qke=\"DefaultChainId\",Jke=\"DefaultJsonRpcUrl\",yte=class extends qnt.EventEmitter{constructor(e){var n,r;super(),this._filterPolyfill=new Vnt.FilterPolyfill(this),this._subscriptionManager=new $nt.SubscriptionManager(this),this._relay=null,this._addresses=[],this.hasMadeFirstChainChangedEmission=!1,this.setProviderInfo=this.setProviderInfo.bind(this),this.updateProviderInfo=this.updateProviderInfo.bind(this),this.getChainId=this.getChainId.bind(this),this.setAppInfo=this.setAppInfo.bind(this),this.enable=this.enable.bind(this),this.close=this.close.bind(this),this.send=this.send.bind(this),this.sendAsync=this.sendAsync.bind(this),this.request=this.request.bind(this),this._setAddresses=this._setAddresses.bind(this),this.scanQRCode=this.scanQRCode.bind(this),this.genericRequest=this.genericRequest.bind(this),this._chainIdFromOpts=e.chainId,this._jsonRpcUrlFromOpts=e.jsonRpcUrl,this._overrideIsMetaMask=e.overrideIsMetaMask,this._relayProvider=e.relayProvider,this._storage=e.storage,this._relayEventManager=e.relayEventManager,this.diagnostic=e.diagnosticLogger,this.reloadOnDisconnect=!0,this.isCoinbaseWallet=(n=e.overrideIsCoinbaseWallet)!==null&&n!==void 0?n:!0,this.isCoinbaseBrowser=(r=e.overrideIsCoinbaseBrowser)!==null&&r!==void 0?r:!1,this.qrUrl=e.qrUrl;let o=this.getChainId(),i=(0,mr.prepend0x)(o.toString(16));this.emit(\"connect\",{chainIdStr:i});let a=this._storage.getItem(Yke.LOCAL_STORAGE_ADDRESSES_KEY);if(a){let c=a.split(\" \");c[0]!==\"\"&&(this._addresses=c.map(u=>(0,mr.ensureAddressString)(u)),this.emit(\"accountsChanged\",c))}this._subscriptionManager.events.on(\"notification\",c=>{this.emit(\"message\",{type:c.method,data:c.params})}),this._isAuthorized()&&this.initializeRelay(),window.addEventListener(\"message\",c=>{var u;if(!(c.origin!==location.origin||c.source!==window)&&c.data.type===\"walletLinkMessage\"&&c.data.data.action===\"dappChainSwitched\"){let d=c.data.data.chainId,h=(u=c.data.data.jsonRpcUrl)!==null&&u!==void 0?u:this.jsonRpcUrl;this.updateProviderInfo(h,Number(d))}})}get selectedAddress(){return this._addresses[0]||void 0}get networkVersion(){return this.getChainId().toString(10)}get chainId(){return(0,mr.prepend0x)(this.getChainId().toString(16))}get isWalletLink(){return!0}get isMetaMask(){return this._overrideIsMetaMask}get host(){return this.jsonRpcUrl}get connected(){return!0}isConnected(){return!0}get jsonRpcUrl(){var e;return(e=this._storage.getItem(Jke))!==null&&e!==void 0?e:this._jsonRpcUrlFromOpts}set jsonRpcUrl(e){this._storage.setItem(Jke,e)}disableReloadOnDisconnect(){this.reloadOnDisconnect=!1}setProviderInfo(e,n){this.isCoinbaseBrowser||(this._chainIdFromOpts=n,this._jsonRpcUrlFromOpts=e),this.updateProviderInfo(this.jsonRpcUrl,this.getChainId())}updateProviderInfo(e,n){this.jsonRpcUrl=e;let r=this.getChainId();this._storage.setItem(Qke,n.toString(10)),((0,mr.ensureIntNumber)(n)!==r||!this.hasMadeFirstChainChangedEmission)&&(this.emit(\"chainChanged\",this.getChainId()),this.hasMadeFirstChainChangedEmission=!0)}async watchAsset(e,n,r,o,i,a){let u=await(await this.initializeRelay()).watchAsset(e,n,r,o,i,a?.toString()).promise;return(0,Ah.isErrorResponse)(u)?!1:!!u.result}async addEthereumChain(e,n,r,o,i,a){var c,u;if((0,mr.ensureIntNumber)(e)===this.getChainId())return!1;let d=await this.initializeRelay(),h=d.inlineAddEthereumChain(e.toString());!this._isAuthorized()&&!h&&await d.requestEthereumAccounts().promise;let m=await d.addEthereumChain(e.toString(),n,i,r,o,a).promise;return(0,Ah.isErrorResponse)(m)?!1:(((c=m.result)===null||c===void 0?void 0:c.isApproved)===!0&&this.updateProviderInfo(n[0],e),((u=m.result)===null||u===void 0?void 0:u.isApproved)===!0)}async switchEthereumChain(e){let r=await(await this.initializeRelay()).switchEthereumChain(e.toString(10),this.selectedAddress||void 0).promise;if((0,Ah.isErrorResponse)(r)){if(!r.errorCode)return;throw r.errorCode===ao.standardErrorCodes.provider.unsupportedChain?ao.standardErrors.provider.unsupportedChain():ao.standardErrors.provider.custom({message:r.errorMessage,code:r.errorCode})}let o=r.result;o.isApproved&&o.rpcUrl.length>0&&this.updateProviderInfo(o.rpcUrl,e)}setAppInfo(e,n){this.initializeRelay().then(r=>r.setAppInfo(e,n))}async enable(){var e;return(e=this.diagnostic)===null||e===void 0||e.log(ZI.EVENTS.ETH_ACCOUNTS_STATE,{method:\"provider::enable\",addresses_length:this._addresses.length,sessionIdHash:this._relay?vz.Session.hash(this._relay.session.id):void 0}),this._isAuthorized()?[...this._addresses]:await this.send(\"eth_requestAccounts\")}async close(){(await this.initializeRelay()).resetAndReload()}send(e,n){try{let r=this._send(e,n);if(r instanceof Promise)return r.catch(o=>{throw(0,ao.serializeError)(o,e)})}catch(r){throw(0,ao.serializeError)(r,e)}}_send(e,n){if(typeof e==\"string\"){let o=e,i=Array.isArray(n)?n:n!==void 0?[n]:[],a={jsonrpc:\"2.0\",id:0,method:o,params:i};return this._sendRequestAsync(a).then(c=>c.result)}if(typeof n==\"function\"){let o=e,i=n;return this._sendAsync(o,i)}if(Array.isArray(e))return e.map(i=>this._sendRequest(i));let r=e;return this._sendRequest(r)}async sendAsync(e,n){try{return this._sendAsync(e,n).catch(r=>{throw(0,ao.serializeError)(r,e)})}catch(r){return Promise.reject((0,ao.serializeError)(r,e))}}async _sendAsync(e,n){if(typeof n!=\"function\")throw new Error(\"callback is required\");if(Array.isArray(e)){let o=n;this._sendMultipleRequestsAsync(e).then(i=>o(null,i)).catch(i=>o(i,null));return}let r=n;return this._sendRequestAsync(e).then(o=>r(null,o)).catch(o=>r(o,null))}async request(e){try{return this._request(e).catch(n=>{throw(0,ao.serializeError)(n,e.method)})}catch(n){return Promise.reject((0,ao.serializeError)(n,e.method))}}async _request(e){if(!e||typeof e!=\"object\"||Array.isArray(e))throw ao.standardErrors.rpc.invalidRequest({message:\"Expected a single, non-array, object argument.\",data:e});let{method:n,params:r}=e;if(typeof n!=\"string\"||n.length===0)throw ao.standardErrors.rpc.invalidRequest({message:\"\\'args.method\\' must be a non-empty string.\",data:e});if(r!==void 0&&!Array.isArray(r)&&(typeof r!=\"object\"||r===null))throw ao.standardErrors.rpc.invalidRequest({message:\"\\'args.params\\' must be an object or array if provided.\",data:e});let o=r===void 0?[]:r,i=this._relayEventManager.makeRequestId();return(await this._sendRequestAsync({method:n,params:o,jsonrpc:\"2.0\",id:i})).result}async scanQRCode(e){let r=await(await this.initializeRelay()).scanQRCode((0,mr.ensureRegExpString)(e)).promise;if((0,Ah.isErrorResponse)(r))throw(0,ao.serializeError)(r.errorMessage,\"scanQRCode\");if(typeof r.result!=\"string\")throw(0,ao.serializeError)(\"result was not a string\",\"scanQRCode\");return r.result}async genericRequest(e,n){let o=await(await this.initializeRelay()).genericRequest(e,n).promise;if((0,Ah.isErrorResponse)(o))throw(0,ao.serializeError)(o.errorMessage,\"generic\");if(typeof o.result!=\"string\")throw(0,ao.serializeError)(\"result was not a string\",\"generic\");return o.result}async connectAndSignIn(e){var n;(n=this.diagnostic)===null||n===void 0||n.log(ZI.EVENTS.ETH_ACCOUNTS_STATE,{method:\"provider::connectAndSignIn\",sessionIdHash:this._relay?vz.Session.hash(this._relay.session.id):void 0});let r;try{let i=await this.initializeRelay();if(!(i instanceof Wnt.MobileRelay))throw new Error(\"connectAndSignIn is only supported on mobile\");if(r=await i.connectAndSignIn(e).promise,(0,Ah.isErrorResponse)(r))throw new Error(r.errorMessage)}catch(i){throw typeof i.message==\"string\"&&i.message.match(/(denied|rejected)/i)?ao.standardErrors.provider.userRejectedRequest(\"User denied account authorization\"):i}if(!r.result)throw new Error(\"accounts received is empty\");let{accounts:o}=r.result;return this._setAddresses(o),this.isCoinbaseBrowser||await this.switchEthereumChain(this.getChainId()),r.result}async selectProvider(e){let r=await(await this.initializeRelay()).selectProvider(e).promise;if((0,Ah.isErrorResponse)(r))throw(0,ao.serializeError)(r.errorMessage,\"selectProvider\");if(typeof r.result!=\"string\")throw(0,ao.serializeError)(\"result was not a string\",\"selectProvider\");return r.result}supportsSubscriptions(){return!1}subscribe(){throw new Error(\"Subscriptions are not supported\")}unsubscribe(){throw new Error(\"Subscriptions are not supported\")}disconnect(){return!0}_sendRequest(e){let n={jsonrpc:\"2.0\",id:e.id},{method:r}=e;if(n.result=this._handleSynchronousMethods(e),n.result===void 0)throw new Error(`Coinbase Wallet does not support calling ${r} synchronously without a callback. Please provide a callback parameter to call ${r} asynchronously.`);return n}_setAddresses(e,n){if(!Array.isArray(e))throw new Error(\"addresses is not an array\");let r=e.map(o=>(0,mr.ensureAddressString)(o));JSON.stringify(r)!==JSON.stringify(this._addresses)&&(this._addresses=r,this.emit(\"accountsChanged\",this._addresses),this._storage.setItem(Yke.LOCAL_STORAGE_ADDRESSES_KEY,r.join(\" \")))}_sendRequestAsync(e){return new Promise((n,r)=>{try{let o=this._handleSynchronousMethods(e);if(o!==void 0)return n({jsonrpc:\"2.0\",id:e.id,result:o});let i=this._handleAsynchronousFilterMethods(e);if(i!==void 0){i.then(c=>n(Object.assign(Object.assign({},c),{id:e.id}))).catch(c=>r(c));return}let a=this._handleSubscriptionMethods(e);if(a!==void 0){a.then(c=>n({jsonrpc:\"2.0\",id:e.id,result:c.result})).catch(c=>r(c));return}}catch(o){return r(o)}this._handleAsynchronousMethods(e).then(o=>o&&n(Object.assign(Object.assign({},o),{id:e.id}))).catch(o=>r(o))})}_sendMultipleRequestsAsync(e){return Promise.all(e.map(n=>this._sendRequestAsync(n)))}_handleSynchronousMethods(e){let{method:n}=e,r=e.params||[];switch(n){case\"eth_accounts\":return this._eth_accounts();case\"eth_coinbase\":return this._eth_coinbase();case\"eth_uninstallFilter\":return this._eth_uninstallFilter(r);case\"net_version\":return this._net_version();case\"eth_chainId\":return this._eth_chainId();default:return}}async _handleAsynchronousMethods(e){let{method:n}=e,r=e.params||[];switch(n){case\"eth_requestAccounts\":return this._eth_requestAccounts();case\"eth_sign\":return this._eth_sign(r);case\"eth_ecRecover\":return this._eth_ecRecover(r);case\"personal_sign\":return this._personal_sign(r);case\"personal_ecRecover\":return this._personal_ecRecover(r);case\"eth_signTransaction\":return this._eth_signTransaction(r);case\"eth_sendRawTransaction\":return this._eth_sendRawTransaction(r);case\"eth_sendTransaction\":return this._eth_sendTransaction(r);case\"eth_signTypedData_v1\":return this._eth_signTypedData_v1(r);case\"eth_signTypedData_v2\":return this._throwUnsupportedMethodError();case\"eth_signTypedData_v3\":return this._eth_signTypedData_v3(r);case\"eth_signTypedData_v4\":case\"eth_signTypedData\":return this._eth_signTypedData_v4(r);case\"cbWallet_arbitrary\":return this._cbwallet_arbitrary(r);case\"wallet_addEthereumChain\":return this._wallet_addEthereumChain(r);case\"wallet_switchEthereumChain\":return this._wallet_switchEthereumChain(r);case\"wallet_watchAsset\":return this._wallet_watchAsset(r)}return(await this.initializeRelay()).makeEthereumJSONRPCRequest(e,this.jsonRpcUrl).catch(i=>{var a;throw(i.code===ao.standardErrorCodes.rpc.methodNotFound||i.code===ao.standardErrorCodes.rpc.methodNotSupported)&&((a=this.diagnostic)===null||a===void 0||a.log(ZI.EVENTS.METHOD_NOT_IMPLEMENTED,{method:e.method,sessionIdHash:this._relay?vz.Session.hash(this._relay.session.id):void 0})),i})}_handleAsynchronousFilterMethods(e){let{method:n}=e,r=e.params||[];switch(n){case\"eth_newFilter\":return this._eth_newFilter(r);case\"eth_newBlockFilter\":return this._eth_newBlockFilter();case\"eth_newPendingTransactionFilter\":return this._eth_newPendingTransactionFilter();case\"eth_getFilterChanges\":return this._eth_getFilterChanges(r);case\"eth_getFilterLogs\":return this._eth_getFilterLogs(r)}}_handleSubscriptionMethods(e){switch(e.method){case\"eth_subscribe\":case\"eth_unsubscribe\":return this._subscriptionManager.handleRequest(e)}}_isKnownAddress(e){try{let n=(0,mr.ensureAddressString)(e);return this._addresses.map(o=>(0,mr.ensureAddressString)(o)).includes(n)}catch{}return!1}_ensureKnownAddress(e){var n;if(!this._isKnownAddress(e))throw(n=this.diagnostic)===null||n===void 0||n.log(ZI.EVENTS.UNKNOWN_ADDRESS_ENCOUNTERED),new Error(\"Unknown Ethereum address\")}_prepareTransactionParams(e){let n=e.from?(0,mr.ensureAddressString)(e.from):this.selectedAddress;if(!n)throw new Error(\"Ethereum address is unavailable\");this._ensureKnownAddress(n);let r=e.to?(0,mr.ensureAddressString)(e.to):null,o=e.value!=null?(0,mr.ensureBN)(e.value):new Hnt.default(0),i=e.data?(0,mr.ensureBuffer)(e.data):globalThis.Buffer.alloc(0),a=e.nonce!=null?(0,mr.ensureIntNumber)(e.nonce):null,c=e.gasPrice!=null?(0,mr.ensureBN)(e.gasPrice):null,u=e.maxFeePerGas!=null?(0,mr.ensureBN)(e.maxFeePerGas):null,d=e.maxPriorityFeePerGas!=null?(0,mr.ensureBN)(e.maxPriorityFeePerGas):null,h=e.gas!=null?(0,mr.ensureBN)(e.gas):null,m=e.chainId?(0,mr.ensureIntNumber)(e.chainId):this.getChainId();return{fromAddress:n,toAddress:r,weiValue:o,data:i,nonce:a,gasPriceInWei:c,maxFeePerGas:u,maxPriorityFeePerGas:d,gasLimit:h,chainId:m}}_isAuthorized(){return this._addresses.length>0}_requireAuthorization(){if(!this._isAuthorized())throw ao.standardErrors.provider.unauthorized({})}_throwUnsupportedMethodError(){throw ao.standardErrors.provider.unsupportedMethod({})}async _signEthereumMessage(e,n,r,o){this._ensureKnownAddress(n);try{let a=await(await this.initializeRelay()).signEthereumMessage(e,n,r,o).promise;if((0,Ah.isErrorResponse)(a))throw new Error(a.errorMessage);return{jsonrpc:\"2.0\",id:0,result:a.result}}catch(i){throw typeof i.message==\"string\"&&i.message.match(/(denied|rejected)/i)?ao.standardErrors.provider.userRejectedRequest(\"User denied message signature\"):i}}async _ethereumAddressFromSignedMessage(e,n,r){let i=await(await this.initializeRelay()).ethereumAddressFromSignedMessage(e,n,r).promise;if((0,Ah.isErrorResponse)(i))throw new Error(i.errorMessage);return{jsonrpc:\"2.0\",id:0,result:i.result}}_eth_accounts(){return[...this._addresses]}_eth_coinbase(){return this.selectedAddress||null}_net_version(){return this.getChainId().toString(10)}_eth_chainId(){return(0,mr.hexStringFromIntNumber)(this.getChainId())}getChainId(){let e=this._storage.getItem(Qke);if(!e)return(0,mr.ensureIntNumber)(this._chainIdFromOpts);let n=parseInt(e,10);return(0,mr.ensureIntNumber)(n)}async _eth_requestAccounts(){var e;if((e=this.diagnostic)===null||e===void 0||e.log(ZI.EVENTS.ETH_ACCOUNTS_STATE,{method:\"provider::_eth_requestAccounts\",addresses_length:this._addresses.length,sessionIdHash:this._relay?vz.Session.hash(this._relay.session.id):void 0}),this._isAuthorized())return Promise.resolve({jsonrpc:\"2.0\",id:0,result:this._addresses});let n;try{if(n=await(await this.initializeRelay()).requestEthereumAccounts().promise,(0,Ah.isErrorResponse)(n))throw new Error(n.errorMessage)}catch(r){throw typeof r.message==\"string\"&&r.message.match(/(denied|rejected)/i)?ao.standardErrors.provider.userRejectedRequest(\"User denied account authorization\"):r}if(!n.result)throw new Error(\"accounts received is empty\");return this._setAddresses(n.result),this.isCoinbaseBrowser||await this.switchEthereumChain(this.getChainId()),{jsonrpc:\"2.0\",id:0,result:this._addresses}}_eth_sign(e){this._requireAuthorization();let n=(0,mr.ensureAddressString)(e[0]),r=(0,mr.ensureBuffer)(e[1]);return this._signEthereumMessage(r,n,!1)}_eth_ecRecover(e){let n=(0,mr.ensureBuffer)(e[0]),r=(0,mr.ensureBuffer)(e[1]);return this._ethereumAddressFromSignedMessage(n,r,!1)}_personal_sign(e){this._requireAuthorization();let n=(0,mr.ensureBuffer)(e[0]),r=(0,mr.ensureAddressString)(e[1]);return this._signEthereumMessage(n,r,!0)}_personal_ecRecover(e){let n=(0,mr.ensureBuffer)(e[0]),r=(0,mr.ensureBuffer)(e[1]);return this._ethereumAddressFromSignedMessage(n,r,!0)}async _eth_signTransaction(e){this._requireAuthorization();let n=this._prepareTransactionParams(e[0]||{});try{let o=await(await this.initializeRelay()).signEthereumTransaction(n).promise;if((0,Ah.isErrorResponse)(o))throw new Error(o.errorMessage);return{jsonrpc:\"2.0\",id:0,result:o.result}}catch(r){throw typeof r.message==\"string\"&&r.message.match(/(denied|rejected)/i)?ao.standardErrors.provider.userRejectedRequest(\"User denied transaction signature\"):r}}async _eth_sendRawTransaction(e){let n=(0,mr.ensureBuffer)(e[0]),o=await(await this.initializeRelay()).submitEthereumTransaction(n,this.getChainId()).promise;if((0,Ah.isErrorResponse)(o))throw new Error(o.errorMessage);return{jsonrpc:\"2.0\",id:0,result:o.result}}async _eth_sendTransaction(e){this._requireAuthorization();let n=this._prepareTransactionParams(e[0]||{});try{let o=await(await this.initializeRelay()).signAndSubmitEthereumTransaction(n).promise;if((0,Ah.isErrorResponse)(o))throw new Error(o.errorMessage);return{jsonrpc:\"2.0\",id:0,result:o.result}}catch(r){throw typeof r.message==\"string\"&&r.message.match(/(denied|rejected)/i)?ao.standardErrors.provider.userRejectedRequest(\"User denied transaction signature\"):r}}async _eth_signTypedData_v1(e){this._requireAuthorization();let n=(0,mr.ensureParsedJSONObject)(e[0]),r=(0,mr.ensureAddressString)(e[1]);this._ensureKnownAddress(r);let o=gte.default.hashForSignTypedDataLegacy({data:n}),i=JSON.stringify(n,null,2);return this._signEthereumMessage(o,r,!1,i)}async _eth_signTypedData_v3(e){this._requireAuthorization();let n=(0,mr.ensureAddressString)(e[0]),r=(0,mr.ensureParsedJSONObject)(e[1]);this._ensureKnownAddress(n);let o=gte.default.hashForSignTypedData_v3({data:r}),i=JSON.stringify(r,null,2);return this._signEthereumMessage(o,n,!1,i)}async _eth_signTypedData_v4(e){this._requireAuthorization();let n=(0,mr.ensureAddressString)(e[0]),r=(0,mr.ensureParsedJSONObject)(e[1]);this._ensureKnownAddress(n);let o=gte.default.hashForSignTypedData_v4({data:r}),i=JSON.stringify(r,null,2);return this._signEthereumMessage(o,n,!1,i)}async _cbwallet_arbitrary(e){let n=e[0],r=e[1];if(typeof r!=\"string\")throw new Error(\"parameter must be a string\");if(typeof n!=\"object\"||n===null)throw new Error(\"parameter must be an object\");return{jsonrpc:\"2.0\",id:0,result:await this.genericRequest(n,r)}}async _wallet_addEthereumChain(e){var n,r,o,i;let a=e[0];if(((n=a.rpcUrls)===null||n===void 0?void 0:n.length)===0)return{jsonrpc:\"2.0\",id:0,error:{code:2,message:\"please pass in at least 1 rpcUrl\"}};if(!a.chainName||a.chainName.trim()===\"\")throw ao.standardErrors.rpc.invalidParams(\"chainName is a required field\");if(!a.nativeCurrency)throw ao.standardErrors.rpc.invalidParams(\"nativeCurrency is a required field\");let c=parseInt(a.chainId,16);return await this.addEthereumChain(c,(r=a.rpcUrls)!==null&&r!==void 0?r:[],(o=a.blockExplorerUrls)!==null&&o!==void 0?o:[],a.chainName,(i=a.iconUrls)!==null&&i!==void 0?i:[],a.nativeCurrency)?{jsonrpc:\"2.0\",id:0,result:null}:{jsonrpc:\"2.0\",id:0,error:{code:2,message:\"unable to add ethereum chain\"}}}async _wallet_switchEthereumChain(e){let n=e[0];return await this.switchEthereumChain(parseInt(n.chainId,16)),{jsonrpc:\"2.0\",id:0,result:null}}async _wallet_watchAsset(e){let n=Array.isArray(e)?e[0]:e;if(!n.type)throw ao.standardErrors.rpc.invalidParams(\"Type is required\");if(n?.type!==\"ERC20\")throw ao.standardErrors.rpc.invalidParams(`Asset of type \\'${n.type}\\' is not supported`);if(!n?.options)throw ao.standardErrors.rpc.invalidParams(\"Options are required\");if(!n?.options.address)throw ao.standardErrors.rpc.invalidParams(\"Address is required\");let r=this.getChainId(),{address:o,symbol:i,image:a,decimals:c}=n.options;return{jsonrpc:\"2.0\",id:0,result:await this.watchAsset(n.type,o,i,c,a,r)}}_eth_uninstallFilter(e){let n=(0,mr.ensureHexString)(e[0]);return this._filterPolyfill.uninstallFilter(n)}async _eth_newFilter(e){let n=e[0];return{jsonrpc:\"2.0\",id:0,result:await this._filterPolyfill.newFilter(n)}}async _eth_newBlockFilter(){return{jsonrpc:\"2.0\",id:0,result:await this._filterPolyfill.newBlockFilter()}}async _eth_newPendingTransactionFilter(){return{jsonrpc:\"2.0\",id:0,result:await this._filterPolyfill.newPendingTransactionFilter()}}_eth_getFilterChanges(e){let n=(0,mr.ensureHexString)(e[0]);return this._filterPolyfill.getFilterChanges(n)}_eth_getFilterLogs(e){let n=(0,mr.ensureHexString)(e[0]);return this._filterPolyfill.getFilterLogs(n)}initializeRelay(){return this._relay?Promise.resolve(this._relay):this._relayProvider().then(e=>(e.setAccountsCallback((n,r)=>this._setAddresses(n,r)),e.setChainCallback((n,r)=>{this.updateProviderInfo(r,parseInt(n,10))}),e.setDappDefaultChainCallback(this._chainIdFromOpts),this._relay=e,e))}};K8.CoinbaseWalletProvider=yte});var e_e=be(xz=>{\"use strict\";p();Object.defineProperty(xz,\"__esModule\",{value:!0});xz.RelayEventManager=void 0;var Knt=Yy(),bte=class{constructor(){this._nextRequestId=0,this.callbacks=new Map}makeRequestId(){this._nextRequestId=(this._nextRequestId+1)%2147483647;let e=this._nextRequestId,n=(0,Knt.prepend0x)(e.toString(16));return this.callbacks.get(n)&&this.callbacks.delete(n),e}};xz.RelayEventManager=bte});var vte=be(Sz=>{\"use strict\";p();Object.defineProperty(Sz,\"__esModule\",{value:!0});Sz.CoinbaseWalletSDK=void 0;var Gnt=B2e(),Znt=D2e(),t_e=Yy(),Ynt=swe(),Qnt=wz(),Jnt=TX(),Xnt=CX(),ert=e_e(),trt=xX(),nrt=EX(),n_e=IU(),Ez=class t{constructor(e){var n,r,o;this._appName=\"\",this._appLogoUrl=null,this._relay=null,this._relayEventManager=null;let i=e.linkAPIUrl||Znt.LINK_API_URL;typeof e.overrideIsMetaMask>\"u\"?this._overrideIsMetaMask=!1:this._overrideIsMetaMask=e.overrideIsMetaMask,this._overrideIsCoinbaseWallet=(n=e.overrideIsCoinbaseWallet)!==null&&n!==void 0?n:!0,this._overrideIsCoinbaseBrowser=(r=e.overrideIsCoinbaseBrowser)!==null&&r!==void 0?r:!1,this._diagnosticLogger=e.diagnosticLogger,this._reloadOnDisconnect=(o=e.reloadOnDisconnect)!==null&&o!==void 0?o:!0;let a=new URL(i),c=`${a.protocol}//${a.host}`;if(this._storage=new Ynt.ScopedLocalStorage(`-walletlink:${c}`),this._storage.setItem(\"version\",t.VERSION),this.walletExtension||this.coinbaseBrowser)return;this._relayEventManager=new ert.RelayEventManager;let u=(0,t_e.isMobileWeb)(),d=e.uiConstructor||(m=>u?new Xnt.MobileRelayUI(m):new trt.WalletLinkRelayUI(m)),h={linkAPIUrl:i,version:n_e.LIB_VERSION,darkMode:!!e.darkMode,headlessMode:!!e.headlessMode,uiConstructor:d,storage:this._storage,relayEventManager:this._relayEventManager,diagnosticLogger:this._diagnosticLogger,reloadOnDisconnect:this._reloadOnDisconnect,enableMobileWalletLink:e.enableMobileWalletLink};this._relay=u?new Jnt.MobileRelay(h):new nrt.WalletLinkRelay(h),this.setAppInfo(e.appName,e.appLogoUrl),!e.headlessMode&&this._relay.attachUI()}makeWeb3Provider(e=\"\",n=1){let r=this.walletExtension;if(r)return this.isCipherProvider(r)||r.setProviderInfo(e,n),this._reloadOnDisconnect===!1&&typeof r.disableReloadOnDisconnect==\"function\"&&r.disableReloadOnDisconnect(),r;let o=this.coinbaseBrowser;if(o)return o;let i=this._relay;if(!i||!this._relayEventManager||!this._storage)throw new Error(\"Relay not initialized, should never happen\");return e||i.setConnectDisabled(!0),new Qnt.CoinbaseWalletProvider({relayProvider:()=>Promise.resolve(i),relayEventManager:this._relayEventManager,storage:this._storage,jsonRpcUrl:e,chainId:n,qrUrl:this.getQrUrl(),diagnosticLogger:this._diagnosticLogger,overrideIsMetaMask:this._overrideIsMetaMask,overrideIsCoinbaseWallet:this._overrideIsCoinbaseWallet,overrideIsCoinbaseBrowser:this._overrideIsCoinbaseBrowser})}setAppInfo(e,n){var r;this._appName=e||\"DApp\",this._appLogoUrl=n||(0,t_e.getFavicon)();let o=this.walletExtension;o?this.isCipherProvider(o)||o.setAppInfo(this._appName,this._appLogoUrl):(r=this._relay)===null||r===void 0||r.setAppInfo(this._appName,this._appLogoUrl)}disconnect(){var e;let n=this===null||this===void 0?void 0:this.walletExtension;n?n.close():(e=this._relay)===null||e===void 0||e.resetAndReload()}getQrUrl(){var e,n;return(n=(e=this._relay)===null||e===void 0?void 0:e.getQRCodeUrl())!==null&&n!==void 0?n:null}getCoinbaseWalletLogo(e,n=240){return(0,Gnt.walletLogo)(e,n)}get walletExtension(){var e;return(e=window.coinbaseWalletExtension)!==null&&e!==void 0?e:window.walletLinkExtension}get coinbaseBrowser(){var e,n;try{let r=(e=window.ethereum)!==null&&e!==void 0?e:(n=window.top)===null||n===void 0?void 0:n.ethereum;return r&&\"isCoinbaseBrowser\"in r&&r.isCoinbaseBrowser?r:void 0}catch{return}}isCipherProvider(e){return typeof e.isCipher==\"boolean\"&&e.isCipher}};Sz.CoinbaseWalletSDK=Ez;Ez.VERSION=n_e.LIB_VERSION});var o_e=be(hS=>{\"use strict\";p();Object.defineProperty(hS,\"__esModule\",{value:!0});hS.CoinbaseWalletProvider=hS.CoinbaseWalletSDK=void 0;var wte=vte(),r_e=wz(),rrt=vte();Object.defineProperty(hS,\"CoinbaseWalletSDK\",{enumerable:!0,get:function(){return rrt.CoinbaseWalletSDK}});var ort=wz();Object.defineProperty(hS,\"CoinbaseWalletProvider\",{enumerable:!0,get:function(){return ort.CoinbaseWalletProvider}});hS.default=wte.CoinbaseWalletSDK;typeof window<\"u\"&&(window.CoinbaseWalletSDK=wte.CoinbaseWalletSDK,window.CoinbaseWalletProvider=r_e.CoinbaseWalletProvider,window.WalletLink=wte.CoinbaseWalletSDK,window.WalletLinkProvider=r_e.CoinbaseWalletProvider)});var s_e=be((zx,i_e)=>{p();var kz=typeof globalThis<\"u\"&&globalThis||typeof self<\"u\"&&self||typeof globalThis<\"u\"&&globalThis,_z=function(){function t(){this.fetch=!1,this.DOMException=kz.DOMException}return t.prototype=kz,new t}();(function(t){var e=function(n){var r=typeof t<\"u\"&&t||typeof self<\"u\"&&self||typeof t<\"u\"&&t||{},o={searchParams:\"URLSearchParams\"in r,iterable:\"Symbol\"in r&&\"iterator\"in Symbol,blob:\"FileReader\"in r&&\"Blob\"in r&&function(){try{return new Blob,!0}catch{return!1}}(),formData:\"FormData\"in r,arrayBuffer:\"ArrayBuffer\"in r};function i(V){return V&&DataView.prototype.isPrototypeOf(V)}if(o.arrayBuffer)var a=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],c=ArrayBuffer.isView||function(V){return V&&a.indexOf(Object.prototype.toString.call(V))>-1};function u(V){if(typeof V!=\"string\"&&(V=String(V)),/[^a-z0-9\\\\-#$%&\\'*+.^_`|~!]/i.test(V)||V===\"\")throw new TypeError(\\'Invalid character in header field name: \"\\'+V+\\'\"\\');return V.toLowerCase()}function d(V){return typeof V!=\"string\"&&(V=String(V)),V}function h(V){var $={next:function(){var F=V.shift();return{done:F===void 0,value:F}}};return o.iterable&&($[Symbol.iterator]=function(){return $}),$}function m(V){this.map={},V instanceof m?V.forEach(function($,F){this.append(F,$)},this):Array.isArray(V)?V.forEach(function($){if($.length!=2)throw new TypeError(\"Headers constructor: expected name/value pair to be length 2, found\"+$.length);this.append($[0],$[1])},this):V&&Object.getOwnPropertyNames(V).forEach(function($){this.append($,V[$])},this)}m.prototype.append=function(V,$){V=u(V),$=d($);var F=this.map[V];this.map[V]=F?F+\", \"+$:$},m.prototype.delete=function(V){delete this.map[u(V)]},m.prototype.get=function(V){return V=u(V),this.has(V)?this.map[V]:null},m.prototype.has=function(V){return this.map.hasOwnProperty(u(V))},m.prototype.set=function(V,$){this.map[u(V)]=d($)},m.prototype.forEach=function(V,$){for(var F in this.map)this.map.hasOwnProperty(F)&&V.call($,this.map[F],F,this)},m.prototype.keys=function(){var V=[];return this.forEach(function($,F){V.push(F)}),h(V)},m.prototype.values=function(){var V=[];return this.forEach(function($){V.push($)}),h(V)},m.prototype.entries=function(){var V=[];return this.forEach(function($,F){V.push([F,$])}),h(V)},o.iterable&&(m.prototype[Symbol.iterator]=m.prototype.entries);function g(V){if(!V._noBody){if(V.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));V.bodyUsed=!0}}function b(V){return new Promise(function($,F){V.onload=function(){$(V.result)},V.onerror=function(){F(V.error)}})}function E(V){var $=new FileReader,F=b($);return $.readAsArrayBuffer(V),F}function C(V){var $=new FileReader,F=b($),_=/charset=([A-Za-z0-9_-]+)/.exec(V.type),O=_?_[1]:\"utf-8\";return $.readAsText(V,O),F}function T(V){for(var $=new Uint8Array(V),F=new Array($.length),_=0;_<$.length;_++)F[_]=String.fromCharCode($[_]);return F.join(\"\")}function R(V){if(V.slice)return V.slice(0);var $=new Uint8Array(V.byteLength);return $.set(new Uint8Array(V)),$.buffer}function L(){return this.bodyUsed=!1,this._initBody=function(V){this.bodyUsed=this.bodyUsed,this._bodyInit=V,V?typeof V==\"string\"?this._bodyText=V:o.blob&&Blob.prototype.isPrototypeOf(V)?this._bodyBlob=V:o.formData&&FormData.prototype.isPrototypeOf(V)?this._bodyFormData=V:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(V)?this._bodyText=V.toString():o.arrayBuffer&&o.blob&&i(V)?(this._bodyArrayBuffer=R(V.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(V)||c(V))?this._bodyArrayBuffer=R(V):this._bodyText=V=Object.prototype.toString.call(V):(this._noBody=!0,this._bodyText=\"\"),this.headers.get(\"content-type\")||(typeof V==\"string\"?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(V)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},o.blob&&(this.blob=function(){var V=g(this);if(V)return V;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var V=g(this);return V||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(o.blob)return this.blob().then(E);throw new Error(\"could not read as ArrayBuffer\")}},this.text=function(){var V=g(this);if(V)return V;if(this._bodyBlob)return C(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(T(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(J)}),this.json=function(){return this.text().then(JSON.parse)},this}var D=[\"CONNECT\",\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"PATCH\",\"POST\",\"PUT\",\"TRACE\"];function G(V){var $=V.toUpperCase();return D.indexOf($)>-1?$:V}function W(V,$){if(!(this instanceof W))throw new TypeError(\\'Please use the \"new\" operator, this DOM object constructor cannot be called as a function.\\');$=$||{};var F=$.body;if(V instanceof W){if(V.bodyUsed)throw new TypeError(\"Already read\");this.url=V.url,this.credentials=V.credentials,$.headers||(this.headers=new m(V.headers)),this.method=V.method,this.mode=V.mode,this.signal=V.signal,!F&&V._bodyInit!=null&&(F=V._bodyInit,V.bodyUsed=!0)}else this.url=String(V);if(this.credentials=$.credentials||this.credentials||\"same-origin\",($.headers||!this.headers)&&(this.headers=new m($.headers)),this.method=G($.method||this.method||\"GET\"),this.mode=$.mode||this.mode||null,this.signal=$.signal||this.signal||function(){if(\"AbortController\"in r){var z=new AbortController;return z.signal}}(),this.referrer=null,(this.method===\"GET\"||this.method===\"HEAD\")&&F)throw new TypeError(\"Body not allowed for GET or HEAD requests\");if(this._initBody(F),(this.method===\"GET\"||this.method===\"HEAD\")&&($.cache===\"no-store\"||$.cache===\"no-cache\")){var _=/([?&])_=[^&]*/;if(_.test(this.url))this.url=this.url.replace(_,\"$1_=\"+new Date().getTime());else{var O=/\\\\?/;this.url+=(O.test(this.url)?\"&\":\"?\")+\"_=\"+new Date().getTime()}}}W.prototype.clone=function(){return new W(this,{body:this._bodyInit})};function J(V){var $=new FormData;return V.trim().split(\"&\").forEach(function(F){if(F){var _=F.split(\"=\"),O=_.shift().replace(/\\\\+/g,\" \"),z=_.join(\"=\").replace(/\\\\+/g,\" \");$.append(decodeURIComponent(O),decodeURIComponent(z))}}),$}function ne(V){var $=new m,F=V.replace(/\\\\r?\\\\n[\\\\t ]+/g,\" \");return F.split(\"\\\\r\").map(function(_){return _.indexOf(`\\n`)===0?_.substr(1,_.length):_}).forEach(function(_){var O=_.split(\":\"),z=O.shift().trim();if(z){var N=O.join(\":\").trim();try{$.append(z,N)}catch(B){console.warn(\"Response \"+B.message)}}}),$}L.call(W.prototype);function ie(V,$){if(!(this instanceof ie))throw new TypeError(\\'Please use the \"new\" operator, this DOM object constructor cannot be called as a function.\\');if($||($={}),this.type=\"default\",this.status=$.status===void 0?200:$.status,this.status<200||this.status>599)throw new RangeError(\"Failed to construct \\'Response\\': The status provided (0) is outside the range [200, 599].\");this.ok=this.status>=200&&this.status<300,this.statusText=$.statusText===void 0?\"\":\"\"+$.statusText,this.headers=new m($.headers),this.url=$.url||\"\",this._initBody(V)}L.call(ie.prototype),ie.prototype.clone=function(){return new ie(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new m(this.headers),url:this.url})},ie.error=function(){var V=new ie(null,{status:200,statusText:\"\"});return V.ok=!1,V.status=0,V.type=\"error\",V};var Z=[301,302,303,307,308];ie.redirect=function(V,$){if(Z.indexOf($)===-1)throw new RangeError(\"Invalid status code\");return new ie(null,{status:$,headers:{location:V}})},n.DOMException=r.DOMException;try{new n.DOMException}catch{n.DOMException=function($,F){this.message=$,this.name=F;var _=Error($);this.stack=_.stack},n.DOMException.prototype=Object.create(Error.prototype),n.DOMException.prototype.constructor=n.DOMException}function ae(V,$){return new Promise(function(F,_){var O=new W(V,$);if(O.signal&&O.signal.aborted)return _(new n.DOMException(\"Aborted\",\"AbortError\"));var z=new XMLHttpRequest;function N(){z.abort()}z.onload=function(){var q={statusText:z.statusText,headers:ne(z.getAllResponseHeaders()||\"\")};O.url.indexOf(\"file://\")===0&&(z.status<200||z.status>599)?q.status=200:q.status=z.status,q.url=\"responseURL\"in z?z.responseURL:q.headers.get(\"X-Request-URL\");var H=\"response\"in z?z.response:z.responseText;setTimeout(function(){F(new ie(H,q))},0)},z.onerror=function(){setTimeout(function(){_(new TypeError(\"Network request failed\"))},0)},z.ontimeout=function(){setTimeout(function(){_(new TypeError(\"Network request timed out\"))},0)},z.onabort=function(){setTimeout(function(){_(new n.DOMException(\"Aborted\",\"AbortError\"))},0)};function B(q){try{return q===\"\"&&r.location.href?r.location.href:q}catch{return q}}if(z.open(O.method,B(O.url),!0),O.credentials===\"include\"?z.withCredentials=!0:O.credentials===\"omit\"&&(z.withCredentials=!1),\"responseType\"in z&&(o.blob?z.responseType=\"blob\":o.arrayBuffer&&(z.responseType=\"arraybuffer\")),$&&typeof $.headers==\"object\"&&!($.headers instanceof m||r.Headers&&$.headers instanceof r.Headers)){var j=[];Object.getOwnPropertyNames($.headers).forEach(function(q){j.push(u(q)),z.setRequestHeader(q,d($.headers[q]))}),O.headers.forEach(function(q,H){j.indexOf(H)===-1&&z.setRequestHeader(H,q)})}else O.headers.forEach(function(q,H){z.setRequestHeader(H,q)});O.signal&&(O.signal.addEventListener(\"abort\",N),z.onreadystatechange=function(){z.readyState===4&&O.signal.removeEventListener(\"abort\",N)}),z.send(typeof O._bodyInit>\"u\"?null:O._bodyInit)})}return ae.polyfill=!0,r.fetch||(r.fetch=ae,r.Headers=m,r.Request=W,r.Response=ie),n.Headers=m,n.Request=W,n.Response=ie,n.fetch=ae,n}({})})(_z);_z.fetch.ponyfill=!0;delete _z.fetch.polyfill;var G8=kz.fetch?kz:_z;zx=G8.fetch;zx.default=G8.fetch;zx.fetch=G8.fetch;zx.Headers=G8.Headers;zx.Request=G8.Request;zx.Response=G8.Response;i_e.exports=zx});var l_e=be((a_e,c_e)=>{p();(function(t){var e=Object.hasOwnProperty,n=Array.isArray?Array.isArray:function(B){return Object.prototype.toString.call(B)===\"[object Array]\"},r=10,o=typeof process==\"object\"&&typeof process.nextTick==\"function\",i=typeof Symbol==\"function\",a=typeof Reflect==\"object\",c=typeof setImmediate==\"function\",u=c?setImmediate:setTimeout,d=i?a&&typeof Reflect.ownKeys==\"function\"?Reflect.ownKeys:function(N){var B=Object.getOwnPropertyNames(N);return B.push.apply(B,Object.getOwnPropertySymbols(N)),B}:Object.keys;function h(){this._events={},this._conf&&m.call(this,this._conf)}function m(N){N&&(this._conf=N,N.delimiter&&(this.delimiter=N.delimiter),N.maxListeners!==t&&(this._maxListeners=N.maxListeners),N.wildcard&&(this.wildcard=N.wildcard),N.newListener&&(this._newListener=N.newListener),N.removeListener&&(this._removeListener=N.removeListener),N.verboseMemoryLeak&&(this.verboseMemoryLeak=N.verboseMemoryLeak),N.ignoreErrors&&(this.ignoreErrors=N.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function g(N,B){var j=\"(node) warning: possible EventEmitter memory leak detected. \"+N+\" listeners added. Use emitter.setMaxListeners() to increase limit.\";if(this.verboseMemoryLeak&&(j+=\" Event name: \"+B+\".\"),typeof process<\"u\"&&process.emitWarning){var q=new Error(j);q.name=\"MaxListenersExceededWarning\",q.emitter=this,q.count=N,process.emitWarning(q)}else console.error(j),console.trace&&console.trace()}var b=function(N,B,j){var q=arguments.length;switch(q){case 0:return[];case 1:return[N];case 2:return[N,B];case 3:return[N,B,j];default:for(var H=new Array(q);q--;)H[q]=arguments[q];return H}};function E(N,B){for(var j={},q,H=N.length,I=B?B.length:0,U=0;U<H;U++)q=N[U],j[q]=U<I?B[U]:t;return j}function C(N,B,j){this._emitter=N,this._target=B,this._listeners={},this._listenersCount=0;var q,H;if((j.on||j.off)&&(q=j.on,H=j.off),B.addEventListener?(q=B.addEventListener,H=B.removeEventListener):B.addListener?(q=B.addListener,H=B.removeListener):B.on&&(q=B.on,H=B.off),!q&&!H)throw Error(\"target does not implement any known event API\");if(typeof q!=\"function\")throw TypeError(\"on method must be a function\");if(typeof H!=\"function\")throw TypeError(\"off method must be a function\");this._on=q,this._off=H;var I=N._observers;I?I.push(this):N._observers=[this]}Object.assign(C.prototype,{subscribe:function(N,B,j){var q=this,H=this._target,I=this._emitter,U=this._listeners,X=function(){var ee=b.apply(null,arguments),se={data:ee,name:B,original:N};if(j){var pe=j.call(H,se);pe!==!1&&I.emit.apply(I,[se.name].concat(ee));return}I.emit.apply(I,[B].concat(ee))};if(U[N])throw Error(\"Event \\'\"+N+\"\\' is already listening\");this._listenersCount++,I._newListener&&I._removeListener&&!q._onNewListener?(this._onNewListener=function(ee){ee===B&&U[N]===null&&(U[N]=X,q._on.call(H,N,X))},I.on(\"newListener\",this._onNewListener),this._onRemoveListener=function(ee){ee===B&&!I.hasListeners(ee)&&U[N]&&(U[N]=null,q._off.call(H,N,X))},U[N]=null,I.on(\"removeListener\",this._onRemoveListener)):(U[N]=X,q._on.call(H,N,X))},unsubscribe:function(N){var B=this,j=this._listeners,q=this._emitter,H,I,U=this._off,X=this._target,ee;if(N&&typeof N!=\"string\")throw TypeError(\"event must be a string\");function se(){B._onNewListener&&(q.off(\"newListener\",B._onNewListener),q.off(\"removeListener\",B._onRemoveListener),B._onNewListener=null,B._onRemoveListener=null);var pe=J.call(q,B);q._observers.splice(pe,1)}if(N){if(H=j[N],!H)return;U.call(X,N,H),delete j[N],--this._listenersCount||se()}else{for(I=d(j),ee=I.length;ee-- >0;)N=I[ee],U.call(X,N,j[N]);this._listeners={},this._listenersCount=0,se()}}});function T(N,B,j,q){var H=Object.assign({},B);if(!N)return H;if(typeof N!=\"object\")throw TypeError(\"options must be an object\");var I=Object.keys(N),U=I.length,X,ee,se;function pe(xe){throw Error(\\'Invalid \"\\'+X+\\'\" option value\\'+(xe?\". Reason: \"+xe:\"\"))}for(var ye=0;ye<U;ye++){if(X=I[ye],!q&&!e.call(B,X))throw Error(\\'Unknown \"\\'+X+\\'\" option\\');ee=N[X],ee!==t&&(se=j[X],H[X]=se?se(ee,pe):ee)}return H}function R(N,B){return(typeof N!=\"function\"||!N.hasOwnProperty(\"prototype\"))&&B(\"value must be a constructor\"),N}function L(N){var B=\"value must be type of \"+N.join(\"|\"),j=N.length,q=N[0],H=N[1];return j===1?function(I,U){if(typeof I===q)return I;U(B)}:j===2?function(I,U){var X=typeof I;if(X===q||X===H)return I;U(B)}:function(I,U){for(var X=typeof I,ee=j;ee-- >0;)if(X===N[ee])return I;U(B)}}var D=L([\"function\"]),G=L([\"object\",\"function\"]);function W(N,B,j){var q,H,I=0,U,X=new N(function(ee,se,pe){j=T(j,{timeout:0,overload:!1},{timeout:function(Me,qe){return Me*=1,(typeof Me!=\"number\"||Me<0||!Number.isFinite(Me))&&qe(\"timeout must be a positive number\"),Me}}),q=!j.overload&&typeof N.prototype.cancel==\"function\"&&typeof pe==\"function\";function ye(){H&&(H=null),I&&(clearTimeout(I),I=0)}var xe=function(Me){ye(),ee(Me)},_e=function(Me){ye(),se(Me)};q?B(xe,_e,pe):(H=[function(Me){_e(Me||Error(\"canceled\"))}],B(xe,_e,function(Me){if(U)throw Error(\"Unable to subscribe on cancel event asynchronously\");if(typeof Me!=\"function\")throw TypeError(\"onCancel callback must be a function\");H.push(Me)}),U=!0),j.timeout>0&&(I=setTimeout(function(){var Me=Error(\"timeout\");Me.code=\"ETIMEDOUT\",I=0,X.cancel(Me),se(Me)},j.timeout))});return q||(X.cancel=function(ee){if(H){for(var se=H.length,pe=1;pe<se;pe++)H[pe](ee);H[0](ee),H=null}}),X}function J(N){var B=this._observers;if(!B)return-1;for(var j=B.length,q=0;q<j;q++)if(B[q]._target===N)return q;return-1}function ne(N,B,j,q,H){if(!j)return null;if(q===0){var I=typeof B;if(I===\"string\"){var U,X,ee=0,se=0,pe=this.delimiter,ye=pe.length;if((X=B.indexOf(pe))!==-1){U=new Array(5);do U[ee++]=B.slice(se,X),se=X+ye;while((X=B.indexOf(pe,se))!==-1);U[ee++]=B.slice(se),B=U,H=ee}else B=[B],H=1}else I===\"object\"?H=B.length:(B=[B],H=1)}var xe=null,_e,Me,qe,wt,Ge,ht=B[q],Ct=B[q+1],dt,Ze;if(q===H)j._listeners&&(typeof j._listeners==\"function\"?(N&&N.push(j._listeners),xe=[j]):(N&&N.push.apply(N,j._listeners),xe=[j]));else if(ht===\"*\"){for(dt=d(j),X=dt.length;X-- >0;)_e=dt[X],_e!==\"_listeners\"&&(Ze=ne(N,B,j[_e],q+1,H),Ze&&(xe?xe.push.apply(xe,Ze):xe=Ze));return xe}else if(ht===\"**\"){for(Ge=q+1===H||q+2===H&&Ct===\"*\",Ge&&j._listeners&&(xe=ne(N,B,j,H,H)),dt=d(j),X=dt.length;X-- >0;)_e=dt[X],_e!==\"_listeners\"&&(_e===\"*\"||_e===\"**\"?(j[_e]._listeners&&!Ge&&(Ze=ne(N,B,j[_e],H,H),Ze&&(xe?xe.push.apply(xe,Ze):xe=Ze)),Ze=ne(N,B,j[_e],q,H)):_e===Ct?Ze=ne(N,B,j[_e],q+2,H):Ze=ne(N,B,j[_e],q,H),Ze&&(xe?xe.push.apply(xe,Ze):xe=Ze));return xe}else j[ht]&&(xe=ne(N,B,j[ht],q+1,H));if(Me=j[\"*\"],Me&&ne(N,B,Me,q+1,H),qe=j[\"**\"],qe)if(q<H)for(qe._listeners&&ne(N,B,qe,H,H),dt=d(qe),X=dt.length;X-- >0;)_e=dt[X],_e!==\"_listeners\"&&(_e===Ct?ne(N,B,qe[_e],q+2,H):_e===ht?ne(N,B,qe[_e],q+1,H):(wt={},wt[_e]=qe[_e],ne(N,B,{\"**\":wt},q+1,H)));else qe._listeners?ne(N,B,qe,H,H):qe[\"*\"]&&qe[\"*\"]._listeners&&ne(N,B,qe[\"*\"],H,H);return xe}function ie(N,B,j){var q=0,H=0,I,U=this.delimiter,X=U.length,ee;if(typeof N==\"string\")if((I=N.indexOf(U))!==-1){ee=new Array(5);do ee[q++]=N.slice(H,I),H=I+X;while((I=N.indexOf(U,H))!==-1);ee[q++]=N.slice(H)}else ee=[N],q=1;else ee=N,q=N.length;if(q>1){for(I=0;I+1<q;I++)if(ee[I]===\"**\"&&ee[I+1]===\"**\")return}var se=this.listenerTree,pe;for(I=0;I<q;I++)if(pe=ee[I],se=se[pe]||(se[pe]={}),I===q-1)return se._listeners?(typeof se._listeners==\"function\"&&(se._listeners=[se._listeners]),j?se._listeners.unshift(B):se._listeners.push(B),!se._listeners.warned&&this._maxListeners>0&&se._listeners.length>this._maxListeners&&(se._listeners.warned=!0,g.call(this,se._listeners.length,pe))):se._listeners=B,!0;return!0}function Z(N,B,j,q){for(var H=d(N),I=H.length,U,X,ee,se=N._listeners,pe;I-- >0;)X=H[I],U=N[X],X===\"_listeners\"?ee=j:ee=j?j.concat(X):[X],pe=q||typeof X==\"symbol\",se&&B.push(pe?ee:ee.join(this.delimiter)),typeof U==\"object\"&&Z.call(this,U,B,ee,pe);return B}function ae(N){for(var B=d(N),j=B.length,q,H,I;j-- >0;)H=B[j],q=N[H],q&&(I=!0,H!==\"_listeners\"&&!ae(q)&&delete N[H]);return I}function V(N,B,j){this.emitter=N,this.event=B,this.listener=j}V.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function $(N,B,j){if(j===!0)H=!0;else if(j===!1)q=!0;else{if(!j||typeof j!=\"object\")throw TypeError(\"options should be an object or true\");var q=j.async,H=j.promisify,I=j.nextTick,U=j.objectify}if(q||I||H){var X=B,ee=B._origin||B;if(I&&!o)throw Error(\"process.nextTick is not supported\");H===t&&(H=B.constructor.name===\"AsyncFunction\"),B=function(){var se=arguments,pe=this,ye=this.event;return H?I?Promise.resolve():new Promise(function(xe){u(xe)}).then(function(){return pe.event=ye,X.apply(pe,se)}):(I?process.nextTick:u)(function(){pe.event=ye,X.apply(pe,se)})},B._async=!0,B._origin=ee}return[B,U?new V(this,N,B):this]}function F(N){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,m.call(this,N)}F.EventEmitter2=F,F.prototype.listenTo=function(N,B,j){if(typeof N!=\"object\")throw TypeError(\"target musts be an object\");var q=this;j=T(j,{on:t,off:t,reducers:t},{on:D,off:D,reducers:G});function H(I){if(typeof I!=\"object\")throw TypeError(\"events must be an object\");var U=j.reducers,X=J.call(q,N),ee;X===-1?ee=new C(q,N,j):ee=q._observers[X];for(var se=d(I),pe=se.length,ye,xe=typeof U==\"function\",_e=0;_e<pe;_e++)ye=se[_e],ee.subscribe(ye,I[ye]||ye,xe?U:U&&U[ye])}return n(B)?H(E(B)):H(typeof B==\"string\"?E(B.split(/\\\\s+/)):B),this},F.prototype.stopListeningTo=function(N,B){var j=this._observers;if(!j)return!1;var q=j.length,H,I=!1;if(N&&typeof N!=\"object\")throw TypeError(\"target should be an object\");for(;q-- >0;)H=j[q],(!N||H._target===N)&&(H.unsubscribe(B),I=!0);return I},F.prototype.delimiter=\".\",F.prototype.setMaxListeners=function(N){N!==t&&(this._maxListeners=N,this._conf||(this._conf={}),this._conf.maxListeners=N)},F.prototype.getMaxListeners=function(){return this._maxListeners},F.prototype.event=\"\",F.prototype.once=function(N,B,j){return this._once(N,B,!1,j)},F.prototype.prependOnceListener=function(N,B,j){return this._once(N,B,!0,j)},F.prototype._once=function(N,B,j,q){return this._many(N,1,B,j,q)},F.prototype.many=function(N,B,j,q){return this._many(N,B,j,!1,q)},F.prototype.prependMany=function(N,B,j,q){return this._many(N,B,j,!0,q)},F.prototype._many=function(N,B,j,q,H){var I=this;if(typeof j!=\"function\")throw new Error(\"many only accepts instances of Function\");function U(){return--B===0&&I.off(N,U),j.apply(this,arguments)}return U._origin=j,this._on(N,U,q,H)},F.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||h.call(this);var N=arguments[0],B,j=this.wildcard,q,H,I,U,X;if(N===\"newListener\"&&!this._newListener&&!this._events.newListener)return!1;if(j&&(B=N,N!==\"newListener\"&&N!==\"removeListener\"&&typeof N==\"object\")){if(H=N.length,i){for(I=0;I<H;I++)if(typeof N[I]==\"symbol\"){X=!0;break}}X||(N=N.join(this.delimiter))}var ee=arguments.length,se;if(this._all&&this._all.length)for(se=this._all.slice(),I=0,H=se.length;I<H;I++)switch(this.event=N,ee){case 1:se[I].call(this,N);break;case 2:se[I].call(this,N,arguments[1]);break;case 3:se[I].call(this,N,arguments[1],arguments[2]);break;default:se[I].apply(this,arguments)}if(j)se=[],ne.call(this,se,B,this.listenerTree,0,H);else if(se=this._events[N],typeof se==\"function\"){switch(this.event=N,ee){case 1:se.call(this);break;case 2:se.call(this,arguments[1]);break;case 3:se.call(this,arguments[1],arguments[2]);break;default:for(q=new Array(ee-1),U=1;U<ee;U++)q[U-1]=arguments[U];se.apply(this,q)}return!0}else se&&(se=se.slice());if(se&&se.length){if(ee>3)for(q=new Array(ee-1),U=1;U<ee;U++)q[U-1]=arguments[U];for(I=0,H=se.length;I<H;I++)switch(this.event=N,ee){case 1:se[I].call(this);break;case 2:se[I].call(this,arguments[1]);break;case 3:se[I].call(this,arguments[1],arguments[2]);break;default:se[I].apply(this,q)}return!0}else if(!this.ignoreErrors&&!this._all&&N===\"error\")throw arguments[1]instanceof Error?arguments[1]:new Error(\"Uncaught, unspecified \\'error\\' event.\");return!!this._all},F.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||h.call(this);var N=arguments[0],B=this.wildcard,j,q,H,I,U,X;if(N===\"newListener\"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(B&&(j=N,N!==\"newListener\"&&N!==\"removeListener\"&&typeof N==\"object\")){if(I=N.length,i){for(U=0;U<I;U++)if(typeof N[U]==\"symbol\"){q=!0;break}}q||(N=N.join(this.delimiter))}var ee=[],se=arguments.length,pe;if(this._all)for(U=0,I=this._all.length;U<I;U++)switch(this.event=N,se){case 1:ee.push(this._all[U].call(this,N));break;case 2:ee.push(this._all[U].call(this,N,arguments[1]));break;case 3:ee.push(this._all[U].call(this,N,arguments[1],arguments[2]));break;default:ee.push(this._all[U].apply(this,arguments))}if(B?(pe=[],ne.call(this,pe,j,this.listenerTree,0)):pe=this._events[N],typeof pe==\"function\")switch(this.event=N,se){case 1:ee.push(pe.call(this));break;case 2:ee.push(pe.call(this,arguments[1]));break;case 3:ee.push(pe.call(this,arguments[1],arguments[2]));break;default:for(H=new Array(se-1),X=1;X<se;X++)H[X-1]=arguments[X];ee.push(pe.apply(this,H))}else if(pe&&pe.length){if(pe=pe.slice(),se>3)for(H=new Array(se-1),X=1;X<se;X++)H[X-1]=arguments[X];for(U=0,I=pe.length;U<I;U++)switch(this.event=N,se){case 1:ee.push(pe[U].call(this));break;case 2:ee.push(pe[U].call(this,arguments[1]));break;case 3:ee.push(pe[U].call(this,arguments[1],arguments[2]));break;default:ee.push(pe[U].apply(this,H))}}else if(!this.ignoreErrors&&!this._all&&N===\"error\")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject(\"Uncaught, unspecified \\'error\\' event.\");return Promise.all(ee)},F.prototype.on=function(N,B,j){return this._on(N,B,!1,j)},F.prototype.prependListener=function(N,B,j){return this._on(N,B,!0,j)},F.prototype.onAny=function(N){return this._onAny(N,!1)},F.prototype.prependAny=function(N){return this._onAny(N,!0)},F.prototype.addListener=F.prototype.on,F.prototype._onAny=function(N,B){if(typeof N!=\"function\")throw new Error(\"onAny only accepts instances of Function\");return this._all||(this._all=[]),B?this._all.unshift(N):this._all.push(N),this},F.prototype._on=function(N,B,j,q){if(typeof N==\"function\")return this._onAny(N,B),this;if(typeof B!=\"function\")throw new Error(\"on only accepts instances of Function\");this._events||h.call(this);var H=this,I;return q!==t&&(I=$.call(this,N,B,q),B=I[0],H=I[1]),this._newListener&&this.emit(\"newListener\",N,B),this.wildcard?(ie.call(this,N,B,j),H):(this._events[N]?(typeof this._events[N]==\"function\"&&(this._events[N]=[this._events[N]]),j?this._events[N].unshift(B):this._events[N].push(B),!this._events[N].warned&&this._maxListeners>0&&this._events[N].length>this._maxListeners&&(this._events[N].warned=!0,g.call(this,this._events[N].length,N))):this._events[N]=B,H)},F.prototype.off=function(N,B){if(typeof B!=\"function\")throw new Error(\"removeListener only takes instances of Function\");var j,q=[];if(this.wildcard){var H=typeof N==\"string\"?N.split(this.delimiter):N.slice();if(q=ne.call(this,null,H,this.listenerTree,0),!q)return this}else{if(!this._events[N])return this;j=this._events[N],q.push({_listeners:j})}for(var I=0;I<q.length;I++){var U=q[I];if(j=U._listeners,n(j)){for(var X=-1,ee=0,se=j.length;ee<se;ee++)if(j[ee]===B||j[ee].listener&&j[ee].listener===B||j[ee]._origin&&j[ee]._origin===B){X=ee;break}if(X<0)continue;return this.wildcard?U._listeners.splice(X,1):this._events[N].splice(X,1),j.length===0&&(this.wildcard?delete U._listeners:delete this._events[N]),this._removeListener&&this.emit(\"removeListener\",N,B),this}else(j===B||j.listener&&j.listener===B||j._origin&&j._origin===B)&&(this.wildcard?delete U._listeners:delete this._events[N],this._removeListener&&this.emit(\"removeListener\",N,B))}return this.listenerTree&&ae(this.listenerTree),this},F.prototype.offAny=function(N){var B=0,j=0,q;if(N&&this._all&&this._all.length>0){for(q=this._all,B=0,j=q.length;B<j;B++)if(N===q[B])return q.splice(B,1),this._removeListener&&this.emit(\"removeListenerAny\",N),this}else{if(q=this._all,this._removeListener)for(B=0,j=q.length;B<j;B++)this.emit(\"removeListenerAny\",q[B]);this._all=[]}return this},F.prototype.removeListener=F.prototype.off,F.prototype.removeAllListeners=function(N){if(N===t)return!this._events||h.call(this),this;if(this.wildcard){var B=ne.call(this,null,N,this.listenerTree,0),j,q;if(!B)return this;for(q=0;q<B.length;q++)j=B[q],j._listeners=null;this.listenerTree&&ae(this.listenerTree)}else this._events&&(this._events[N]=null);return this},F.prototype.listeners=function(N){var B=this._events,j,q,H,I,U;if(N===t){if(this.wildcard)throw Error(\"event name required for wildcard emitter\");if(!B)return[];for(j=d(B),I=j.length,H=[];I-- >0;)q=B[j[I]],typeof q==\"function\"?H.push(q):H.push.apply(H,q);return H}else{if(this.wildcard){if(U=this.listenerTree,!U)return[];var X=[],ee=typeof N==\"string\"?N.split(this.delimiter):N.slice();return ne.call(this,X,ee,U,0),X}return B?(q=B[N],q?typeof q==\"function\"?[q]:q:[]):[]}},F.prototype.eventNames=function(N){var B=this._events;return this.wildcard?Z.call(this,this.listenerTree,[],null,N):B?d(B):[]},F.prototype.listenerCount=function(N){return this.listeners(N).length},F.prototype.hasListeners=function(N){if(this.wildcard){var B=[],j=typeof N==\"string\"?N.split(this.delimiter):N.slice();return ne.call(this,B,j,this.listenerTree,0),B.length>0}var q=this._events,H=this._all;return!!(H&&H.length||q&&(N===t?d(q).length:q[N]))},F.prototype.listenersAny=function(){return this._all?this._all:[]},F.prototype.waitFor=function(N,B){var j=this,q=typeof B;return q===\"number\"?B={timeout:B}:q===\"function\"&&(B={filter:B}),B=T(B,{timeout:0,filter:t,handleError:!1,Promise,overload:!1},{filter:D,Promise:R}),W(B.Promise,function(H,I,U){function X(){var ee=B.filter;if(!(ee&&!ee.apply(j,arguments)))if(j.off(N,X),B.handleError){var se=arguments[0];se?I(se):H(b.apply(null,arguments).slice(1))}else H(b.apply(null,arguments))}U(function(){j.off(N,X)}),j._on(N,X,!1)},{timeout:B.timeout,overload:B.overload})};function _(N,B,j){j=T(j,{Promise,timeout:0,overload:!1},{Promise:R});var q=j.Promise;return W(q,function(H,I,U){var X;if(typeof N.addEventListener==\"function\"){X=function(){H(b.apply(null,arguments))},U(function(){N.removeEventListener(B,X)}),N.addEventListener(B,X,{once:!0});return}var ee=function(){se&&N.removeListener(\"error\",se),H(b.apply(null,arguments))},se;B!==\"error\"&&(se=function(pe){N.removeListener(B,ee),I(pe)},N.once(\"error\",se)),U(function(){se&&N.removeListener(\"error\",se),N.removeListener(B,ee)}),N.once(B,ee)},{timeout:j.timeout,overload:j.overload})}var O=F.prototype;if(Object.defineProperties(F,{defaultMaxListeners:{get:function(){return O._maxListeners},set:function(N){if(typeof N!=\"number\"||N<0||Number.isNaN(N))throw TypeError(\"n must be a non-negative number\");O._maxListeners=N},enumerable:!0},once:{value:_,writable:!0,configurable:!0}}),Object.defineProperties(O,{_maxListeners:{value:r,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof define==\"function\"&&define.amd)define(function(){return F});else if(typeof a_e==\"object\")c_e.exports=F;else{var z=new Function(\"\",\"return this\")();z.EventEmitter2=F}})()});function YI(){if(!Cz&&(Cz=typeof crypto<\"u\"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<\"u\"&&typeof msCrypto.getRandomValues==\"function\"&&msCrypto.getRandomValues.bind(msCrypto),!Cz))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return Cz(art)}var Cz,art,xte=ce(()=>{p();art=new Uint8Array(16)});var u_e,d_e=ce(()=>{p();u_e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function crt(t){return typeof t==\"string\"&&u_e.test(t)}var cg,QI=ce(()=>{p();d_e();cg=crt});function lrt(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=(kl[t[e+0]]+kl[t[e+1]]+kl[t[e+2]]+kl[t[e+3]]+\"-\"+kl[t[e+4]]+kl[t[e+5]]+\"-\"+kl[t[e+6]]+kl[t[e+7]]+\"-\"+kl[t[e+8]]+kl[t[e+9]]+\"-\"+kl[t[e+10]]+kl[t[e+11]]+kl[t[e+12]]+kl[t[e+13]]+kl[t[e+14]]+kl[t[e+15]]).toLowerCase();if(!cg(n))throw TypeError(\"Stringified UUID is invalid\");return n}var kl,Az,Hx,JI=ce(()=>{p();QI();kl=[];for(Az=0;Az<256;++Az)kl.push((Az+256).toString(16).substr(1));Hx=lrt});function urt(t,e,n){var r=e&&n||0,o=e||new Array(16);t=t||{};var i=t.node||f_e,a=t.clockseq!==void 0?t.clockseq:Ete;if(i==null||a==null){var c=t.random||(t.rng||YI)();i==null&&(i=f_e=[c[0]|1,c[1],c[2],c[3],c[4],c[5]]),a==null&&(a=Ete=(c[6]<<8|c[7])&16383)}var u=t.msecs!==void 0?t.msecs:Date.now(),d=t.nsecs!==void 0?t.nsecs:kte+1,h=u-Ste+(d-kte)/1e4;if(h<0&&t.clockseq===void 0&&(a=a+1&16383),(h<0||u>Ste)&&t.nsecs===void 0&&(d=0),d>=1e4)throw new Error(\"uuid.v1(): Can\\'t create more than 10M uuids/sec\");Ste=u,kte=d,Ete=a,u+=122192928e5;var m=((u&268435455)*1e4+d)%4294967296;o[r++]=m>>>24&255,o[r++]=m>>>16&255,o[r++]=m>>>8&255,o[r++]=m&255;var g=u/4294967296*1e4&268435455;o[r++]=g>>>8&255,o[r++]=g&255,o[r++]=g>>>24&15|16,o[r++]=g>>>16&255,o[r++]=a>>>8|128,o[r++]=a&255;for(var b=0;b<6;++b)o[r+b]=i[b];return e||Hx(o)}var f_e,Ete,Ste,kte,h_e,p_e=ce(()=>{p();xte();JI();Ste=0,kte=0;h_e=urt});function drt(t){if(!cg(t))throw TypeError(\"Invalid UUID\");var e,n=new Uint8Array(16);return n[0]=(e=parseInt(t.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=e&255,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=e&255,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=e&255,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=e&255,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=e&255,n}var Tz,_te=ce(()=>{p();QI();Tz=drt});function frt(t){t=unescape(encodeURIComponent(t));for(var e=[],n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e}function Rz(t,e,n){function r(o,i,a,c){if(typeof o==\"string\"&&(o=frt(o)),typeof i==\"string\"&&(i=Tz(i)),i.length!==16)throw TypeError(\"Namespace must be array-like (16 iterable integer values, 0-255)\");var u=new Uint8Array(16+o.length);if(u.set(i),u.set(o,i.length),u=n(u),u[6]=u[6]&15|e,u[8]=u[8]&63|128,a){c=c||0;for(var d=0;d<16;++d)a[c+d]=u[d];return a}return Hx(u)}try{r.name=t}catch{}return r.DNS=hrt,r.URL=prt,r}var hrt,prt,Cte=ce(()=>{p();JI();_te();hrt=\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\",prt=\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\"});function mrt(t){if(typeof t==\"string\"){var e=unescape(encodeURIComponent(t));t=new Uint8Array(e.length);for(var n=0;n<e.length;++n)t[n]=e.charCodeAt(n)}return grt(yrt(brt(t),t.length*8))}function grt(t){for(var e=[],n=t.length*32,r=\"0123456789abcdef\",o=0;o<n;o+=8){var i=t[o>>5]>>>o%32&255,a=parseInt(r.charAt(i>>>4&15)+r.charAt(i&15),16);e.push(a)}return e}function m_e(t){return(t+64>>>9<<4)+14+1}function yrt(t,e){t[e>>5]|=128<<e%32,t[m_e(e)-1]=e;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,a=0;a<t.length;a+=16){var c=n,u=r,d=o,h=i;n=bu(n,r,o,i,t[a],7,-680876936),i=bu(i,n,r,o,t[a+1],12,-389564586),o=bu(o,i,n,r,t[a+2],17,606105819),r=bu(r,o,i,n,t[a+3],22,-1044525330),n=bu(n,r,o,i,t[a+4],7,-176418897),i=bu(i,n,r,o,t[a+5],12,1200080426),o=bu(o,i,n,r,t[a+6],17,-1473231341),r=bu(r,o,i,n,t[a+7],22,-45705983),n=bu(n,r,o,i,t[a+8],7,1770035416),i=bu(i,n,r,o,t[a+9],12,-1958414417),o=bu(o,i,n,r,t[a+10],17,-42063),r=bu(r,o,i,n,t[a+11],22,-1990404162),n=bu(n,r,o,i,t[a+12],7,1804603682),i=bu(i,n,r,o,t[a+13],12,-40341101),o=bu(o,i,n,r,t[a+14],17,-1502002290),r=bu(r,o,i,n,t[a+15],22,1236535329),n=vu(n,r,o,i,t[a+1],5,-165796510),i=vu(i,n,r,o,t[a+6],9,-1069501632),o=vu(o,i,n,r,t[a+11],14,643717713),r=vu(r,o,i,n,t[a],20,-373897302),n=vu(n,r,o,i,t[a+5],5,-701558691),i=vu(i,n,r,o,t[a+10],9,38016083),o=vu(o,i,n,r,t[a+15],14,-660478335),r=vu(r,o,i,n,t[a+4],20,-405537848),n=vu(n,r,o,i,t[a+9],5,568446438),i=vu(i,n,r,o,t[a+14],9,-1019803690),o=vu(o,i,n,r,t[a+3],14,-187363961),r=vu(r,o,i,n,t[a+8],20,1163531501),n=vu(n,r,o,i,t[a+13],5,-1444681467),i=vu(i,n,r,o,t[a+2],9,-51403784),o=vu(o,i,n,r,t[a+7],14,1735328473),r=vu(r,o,i,n,t[a+12],20,-1926607734),n=wu(n,r,o,i,t[a+5],4,-378558),i=wu(i,n,r,o,t[a+8],11,-2022574463),o=wu(o,i,n,r,t[a+11],16,1839030562),r=wu(r,o,i,n,t[a+14],23,-35309556),n=wu(n,r,o,i,t[a+1],4,-1530992060),i=wu(i,n,r,o,t[a+4],11,1272893353),o=wu(o,i,n,r,t[a+7],16,-155497632),r=wu(r,o,i,n,t[a+10],23,-1094730640),n=wu(n,r,o,i,t[a+13],4,681279174),i=wu(i,n,r,o,t[a],11,-358537222),o=wu(o,i,n,r,t[a+3],16,-722521979),r=wu(r,o,i,n,t[a+6],23,76029189),n=wu(n,r,o,i,t[a+9],4,-640364487),i=wu(i,n,r,o,t[a+12],11,-421815835),o=wu(o,i,n,r,t[a+15],16,530742520),r=wu(r,o,i,n,t[a+2],23,-995338651),n=xu(n,r,o,i,t[a],6,-198630844),i=xu(i,n,r,o,t[a+7],10,1126891415),o=xu(o,i,n,r,t[a+14],15,-1416354905),r=xu(r,o,i,n,t[a+5],21,-57434055),n=xu(n,r,o,i,t[a+12],6,1700485571),i=xu(i,n,r,o,t[a+3],10,-1894986606),o=xu(o,i,n,r,t[a+10],15,-1051523),r=xu(r,o,i,n,t[a+1],21,-2054922799),n=xu(n,r,o,i,t[a+8],6,1873313359),i=xu(i,n,r,o,t[a+15],10,-30611744),o=xu(o,i,n,r,t[a+6],15,-1560198380),r=xu(r,o,i,n,t[a+13],21,1309151649),n=xu(n,r,o,i,t[a+4],6,-145523070),i=xu(i,n,r,o,t[a+11],10,-1120210379),o=xu(o,i,n,r,t[a+2],15,718787259),r=xu(r,o,i,n,t[a+9],21,-343485551),n=qx(n,c),r=qx(r,u),o=qx(o,d),i=qx(i,h)}return[n,r,o,i]}function brt(t){if(t.length===0)return[];for(var e=t.length*8,n=new Uint32Array(m_e(e)),r=0;r<e;r+=8)n[r>>5]|=(t[r/8]&255)<<r%32;return n}function qx(t,e){var n=(t&65535)+(e&65535),r=(t>>16)+(e>>16)+(n>>16);return r<<16|n&65535}function vrt(t,e){return t<<e|t>>>32-e}function Iz(t,e,n,r,o,i){return qx(vrt(qx(qx(e,t),qx(r,i)),o),n)}function bu(t,e,n,r,o,i,a){return Iz(e&n|~e&r,t,e,o,i,a)}function vu(t,e,n,r,o,i,a){return Iz(e&r|n&~r,t,e,o,i,a)}function wu(t,e,n,r,o,i,a){return Iz(e^n^r,t,e,o,i,a)}function xu(t,e,n,r,o,i,a){return Iz(n^(e|~r),t,e,o,i,a)}var g_e,y_e=ce(()=>{p();g_e=mrt});var wrt,b_e,v_e=ce(()=>{p();Cte();y_e();wrt=Rz(\"v3\",48,g_e),b_e=wrt});function xrt(t,e,n){t=t||{};var r=t.random||(t.rng||YI)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){n=n||0;for(var o=0;o<16;++o)e[n+o]=r[o];return e}return Hx(r)}var Z8,w_e=ce(()=>{p();xte();JI();Z8=xrt});function Ert(t,e,n,r){switch(t){case 0:return e&n^~e&r;case 1:return e^n^r;case 2:return e&n^e&r^n&r;case 3:return e^n^r}}function Ate(t,e){return t<<e|t>>>32-e}function Srt(t){var e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t==\"string\"){var r=unescape(encodeURIComponent(t));t=[];for(var o=0;o<r.length;++o)t.push(r.charCodeAt(o))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);for(var i=t.length/4+2,a=Math.ceil(i/16),c=new Array(a),u=0;u<a;++u){for(var d=new Uint32Array(16),h=0;h<16;++h)d[h]=t[u*64+h*4]<<24|t[u*64+h*4+1]<<16|t[u*64+h*4+2]<<8|t[u*64+h*4+3];c[u]=d}c[a-1][14]=(t.length-1)*8/Math.pow(2,32),c[a-1][14]=Math.floor(c[a-1][14]),c[a-1][15]=(t.length-1)*8&4294967295;for(var m=0;m<a;++m){for(var g=new Uint32Array(80),b=0;b<16;++b)g[b]=c[m][b];for(var E=16;E<80;++E)g[E]=Ate(g[E-3]^g[E-8]^g[E-14]^g[E-16],1);for(var C=n[0],T=n[1],R=n[2],L=n[3],D=n[4],G=0;G<80;++G){var W=Math.floor(G/20),J=Ate(C,5)+Ert(W,T,R,L)+D+e[W]+g[G]>>>0;D=L,L=R,R=Ate(T,30)>>>0,T=C,C=J}n[0]=n[0]+C>>>0,n[1]=n[1]+T>>>0,n[2]=n[2]+R>>>0,n[3]=n[3]+L>>>0,n[4]=n[4]+D>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,n[0]&255,n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,n[1]&255,n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,n[2]&255,n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,n[3]&255,n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,n[4]&255]}var x_e,E_e=ce(()=>{p();x_e=Srt});var krt,S_e,k_e=ce(()=>{p();Cte();E_e();krt=Rz(\"v5\",80,x_e),S_e=krt});var __e,C_e=ce(()=>{p();__e=\"00000000-0000-0000-0000-000000000000\"});function _rt(t){if(!cg(t))throw TypeError(\"Invalid UUID\");return parseInt(t.substr(14,1),16)}var A_e,T_e=ce(()=>{p();QI();A_e=_rt});var Tte={};ld(Tte,{NIL:()=>__e,parse:()=>Tz,stringify:()=>Hx,v1:()=>h_e,v3:()=>b_e,v4:()=>Z8,v5:()=>S_e,validate:()=>cg,version:()=>A_e});var Oz=ce(()=>{p();p_e();v_e();w_e();k_e();C_e();T_e();QI();JI();_te()});var lg,XI,eO,Pz=ce(()=>{p();lg=Object.create(null);lg.open=\"0\";lg.close=\"1\";lg.ping=\"2\";lg.pong=\"3\";lg.message=\"4\";lg.upgrade=\"5\";lg.noop=\"6\";XI=Object.create(null);Object.keys(lg).forEach(t=>{XI[lg[t]]=t});eO={type:\"error\",data:\"parser error\"}});function I_e(t){return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function N_e(t,e){if(O_e&&t.data instanceof Blob)return t.data.arrayBuffer().then(I_e).then(e);if(P_e&&(t.data instanceof ArrayBuffer||M_e(t.data)))return e(I_e(t.data));tO(t,!1,n=>{Rte||(Rte=new TextEncoder),e(Rte.encode(n))})}var O_e,P_e,M_e,tO,R_e,Rte,L_e=ce(()=>{p();Pz();O_e=typeof Blob==\"function\"||typeof Blob<\"u\"&&Object.prototype.toString.call(Blob)===\"[object BlobConstructor]\",P_e=typeof ArrayBuffer==\"function\",M_e=t=>typeof ArrayBuffer.isView==\"function\"?ArrayBuffer.isView(t):t&&t.buffer instanceof ArrayBuffer,tO=({type:t,data:e},n,r)=>O_e&&e instanceof Blob?n?r(e):R_e(e,r):P_e&&(e instanceof ArrayBuffer||M_e(e))?n?r(e):R_e(new Blob([e]),r):r(lg[t]+(e||\"\")),R_e=(t,e)=>{let n=new FileReader;return n.onload=function(){let r=n.result.split(\",\")[1];e(\"b\"+(r||\"\"))},n.readAsDataURL(t)}});var B_e,nO,D_e,F_e=ce(()=>{p();B_e=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",nO=typeof Uint8Array>\"u\"?[]:new Uint8Array(256);for(let t=0;t<B_e.length;t++)nO[B_e.charCodeAt(t)]=t;D_e=t=>{let e=t.length*.75,n=t.length,r,o=0,i,a,c,u;t[t.length-1]===\"=\"&&(e--,t[t.length-2]===\"=\"&&e--);let d=new ArrayBuffer(e),h=new Uint8Array(d);for(r=0;r<n;r+=4)i=nO[t.charCodeAt(r)],a=nO[t.charCodeAt(r+1)],c=nO[t.charCodeAt(r+2)],u=nO[t.charCodeAt(r+3)],h[o++]=i<<2|a>>4,h[o++]=(a&15)<<4|c>>2,h[o++]=(c&3)<<6|u&63;return d}});var Crt,rO,Art,U_e,j_e=ce(()=>{p();Pz();F_e();Crt=typeof ArrayBuffer==\"function\",rO=(t,e)=>{if(typeof t!=\"string\")return{type:\"message\",data:U_e(t,e)};let n=t.charAt(0);return n===\"b\"?{type:\"message\",data:Art(t.substring(1),e)}:XI[n]?t.length>1?{type:XI[n],data:t.substring(1)}:{type:XI[n]}:eO},Art=(t,e)=>{if(Crt){let n=D_e(t);return U_e(n,e)}else return{base64:!0,data:t}},U_e=(t,e)=>{switch(e){case\"blob\":return t instanceof Blob?t:new Blob([t]);case\"arraybuffer\":default:return t instanceof ArrayBuffer?t:t.buffer}}});function W_e(){return new TransformStream({transform(t,e){N_e(t,n=>{let r=n.length,o;if(r<126)o=new Uint8Array(1),new DataView(o.buffer).setUint8(0,r);else if(r<65536){o=new Uint8Array(3);let i=new DataView(o.buffer);i.setUint8(0,126),i.setUint16(1,r)}else{o=new Uint8Array(9);let i=new DataView(o.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(r))}t.data&&typeof t.data!=\"string\"&&(o[0]|=128),e.enqueue(o),e.enqueue(n)})}})}function Mz(t){return t.reduce((e,n)=>e+n.length,0)}function Nz(t,e){if(t[0].length===e)return t.shift();let n=new Uint8Array(e),r=0;for(let o=0;o<e;o++)n[o]=t[0][r++],r===t[0].length&&(t.shift(),r=0);return t.length&&r<t[0].length&&(t[0]=t[0].slice(r)),n}function V_e(t,e){Ite||(Ite=new TextDecoder);let n=[],r=0,o=-1,i=!1;return new TransformStream({transform(a,c){for(n.push(a);;){if(r===0){if(Mz(n)<1)break;let u=Nz(n,1);i=(u[0]&128)===128,o=u[0]&127,o<126?r=3:o===126?r=1:r=2}else if(r===1){if(Mz(n)<2)break;let u=Nz(n,2);o=new DataView(u.buffer,u.byteOffset,u.length).getUint16(0),r=3}else if(r===2){if(Mz(n)<8)break;let u=Nz(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),h=d.getUint32(0);if(h>Math.pow(2,21)-1){c.enqueue(eO);break}o=h*Math.pow(2,32)+d.getUint32(4),r=3}else{if(Mz(n)<o)break;let u=Nz(n,o);c.enqueue(rO(i?u:Ite.decode(u),e)),r=0}if(o===0||o>t){c.enqueue(eO);break}}}})}var z_e,H_e,q_e,Ite,Ote,Y8=ce(()=>{p();L_e();j_e();Pz();z_e=\"\\u001e\",H_e=(t,e)=>{let n=t.length,r=new Array(n),o=0;t.forEach((i,a)=>{tO(i,!1,c=>{r[a]=c,++o===n&&e(r.join(z_e))})})},q_e=(t,e)=>{let n=t.split(z_e),r=[];for(let o=0;o<n.length;o++){let i=rO(n[o],e);if(r.push(i),i.type===\"error\")break}return r};Ote=4});function Bi(t){if(t)return Trt(t)}function Trt(t){for(var e in Bi.prototype)t[e]=Bi.prototype[e];return t}var pS=ce(()=>{p();Bi.prototype.on=Bi.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[\"$\"+t]=this._callbacks[\"$\"+t]||[]).push(e),this};Bi.prototype.once=function(t,e){function n(){this.off(t,n),e.apply(this,arguments)}return n.fn=e,this.on(t,n),this};Bi.prototype.off=Bi.prototype.removeListener=Bi.prototype.removeAllListeners=Bi.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks[\"$\"+t];if(!n)return this;if(arguments.length==1)return delete this._callbacks[\"$\"+t],this;for(var r,o=0;o<n.length;o++)if(r=n[o],r===e||r.fn===e){n.splice(o,1);break}return n.length===0&&delete this._callbacks[\"$\"+t],this};Bi.prototype.emit=function(t){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),n=this._callbacks[\"$\"+t],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,o=n.length;r<o;++r)n[r].apply(this,e)}return this};Bi.prototype.emitReserved=Bi.prototype.emit;Bi.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[\"$\"+t]||[]};Bi.prototype.hasListeners=function(t){return!!this.listeners(t).length}});var Bv,_d,$_e,mS=ce(()=>{p();Bv=typeof Promise==\"function\"&&typeof Promise.resolve==\"function\"?e=>Promise.resolve().then(e):(e,n)=>n(e,0),_d=typeof self<\"u\"?self:typeof window<\"u\"?window:Function(\"return this\")(),$_e=\"arraybuffer\"});function Lz(t,...e){return e.reduce((n,r)=>(t.hasOwnProperty(r)&&(n[r]=t[r]),n),{})}function Dv(t,e){e.useNativeTimers?(t.setTimeoutFn=Rrt.bind(_d),t.clearTimeoutFn=Irt.bind(_d)):(t.setTimeoutFn=_d.setTimeout.bind(_d),t.clearTimeoutFn=_d.clearTimeout.bind(_d))}function K_e(t){return typeof t==\"string\"?Prt(t):Math.ceil((t.byteLength||t.size)*Ort)}function Prt(t){let e=0,n=0;for(let r=0,o=t.length;r<o;r++)e=t.charCodeAt(r),e<128?n+=1:e<2048?n+=2:e<55296||e>=57344?n+=3:(r++,n+=4);return n}function Bz(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var Rrt,Irt,Ort,gS=ce(()=>{p();mS();Rrt=_d.setTimeout,Irt=_d.clearTimeout;Ort=1.33});function G_e(t){let e=\"\";for(let n in t)t.hasOwnProperty(n)&&(e.length&&(e+=\"&\"),e+=encodeURIComponent(n)+\"=\"+encodeURIComponent(t[n]));return e}function Z_e(t){let e={},n=t.split(\"&\");for(let r=0,o=n.length;r<o;r++){let i=n[r].split(\"=\");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}var Pte=ce(()=>{p()});var Dz,Fv,oO=ce(()=>{p();Y8();pS();gS();Pte();Dz=class extends Error{constructor(e,n,r){super(e),this.description=n,this.context=r,this.type=\"TransportError\"}},Fv=class extends Bi{constructor(e){super(),this.writable=!1,Dv(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,n,r){return super.emitReserved(\"error\",new Dz(e,n,r)),this}open(){return this.readyState=\"opening\",this.doOpen(),this}close(){return(this.readyState===\"opening\"||this.readyState===\"open\")&&(this.doClose(),this.onClose()),this}send(e){this.readyState===\"open\"&&this.write(e)}onOpen(){this.readyState=\"open\",this.writable=!0,super.emitReserved(\"open\")}onData(e){let n=rO(e,this.socket.binaryType);this.onPacket(n)}onPacket(e){super.emitReserved(\"packet\",e)}onClose(e){this.readyState=\"closed\",super.emitReserved(\"close\",e)}pause(e){}createUri(e,n={}){return e+\"://\"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){let e=this.opts.hostname;return e.indexOf(\":\")===-1?e:\"[\"+e+\"]\"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?\":\"+this.opts.port:\"\"}_query(e){let n=G_e(e);return n.length?\"?\"+n:\"\"}}});var iO,Mte=ce(()=>{p();oO();gS();Y8();iO=class extends Fv{constructor(){super(...arguments),this._polling=!1}get name(){return\"polling\"}doOpen(){this._poll()}pause(e){this.readyState=\"pausing\";let n=()=>{this.readyState=\"paused\",e()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once(\"pollComplete\",function(){--r||n()})),this.writable||(r++,this.once(\"drain\",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved(\"poll\")}onData(e){let n=r=>{if(this.readyState===\"opening\"&&r.type===\"open\"&&this.onOpen(),r.type===\"close\")return this.onClose({description:\"transport closed by the server\"}),!1;this.onPacket(r)};q_e(e,this.socket.binaryType).forEach(n),this.readyState!==\"closed\"&&(this._polling=!1,this.emitReserved(\"pollComplete\"),this.readyState===\"open\"&&this._poll())}doClose(){let e=()=>{this.write([{type:\"close\"}])};this.readyState===\"open\"?e():this.once(\"open\",e)}write(e){this.writable=!1,H_e(e,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved(\"drain\")})})}uri(){let e=this.opts.secure?\"https\":\"http\",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=Bz()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(e,n)}}});var Y_e,Q_e,J_e=ce(()=>{p();Y_e=!1;try{Y_e=typeof XMLHttpRequest<\"u\"&&\"withCredentials\"in new XMLHttpRequest}catch{}Q_e=Y_e});function Mrt(){}function X_e(){for(let t in Wx.requests)Wx.requests.hasOwnProperty(t)&&Wx.requests[t].abort()}function e4e(t){let e=t.xdomain;try{if(typeof XMLHttpRequest<\"u\"&&(!e||Q_e))return new XMLHttpRequest}catch{}if(!e)try{return new _d[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\")}catch{}}var Nte,Wx,Nrt,Vx,Fz=ce(()=>{p();Mte();pS();gS();mS();J_e();Nte=class extends iO{constructor(e){if(super(e),typeof location<\"u\"){let n=location.protocol===\"https:\",r=location.port;r||(r=n?\"443\":\"80\"),this.xd=typeof location<\"u\"&&e.hostname!==location.hostname||r!==e.port}}doWrite(e,n){let r=this.request({method:\"POST\",data:e});r.on(\"success\",n),r.on(\"error\",(o,i)=>{this.onError(\"xhr post error\",o,i)})}doPoll(){let e=this.request();e.on(\"data\",this.onData.bind(this)),e.on(\"error\",(n,r)=>{this.onError(\"xhr poll error\",n,r)}),this.pollXhr=e}},Wx=class t extends Bi{constructor(e,n,r){super(),this.createRequest=e,Dv(this,r),this._opts=r,this._method=r.method||\"GET\",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var e;let n=Lz(this._opts,\"agent\",\"pfx\",\"key\",\"passphrase\",\"cert\",\"ca\",\"ciphers\",\"rejectUnauthorized\",\"autoUnref\");n.xdomain=!!this._opts.xd;let r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let o in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(o)&&r.setRequestHeader(o,this._opts.extraHeaders[o])}}catch{}if(this._method===\"POST\")try{r.setRequestHeader(\"Content-type\",\"text/plain;charset=UTF-8\")}catch{}try{r.setRequestHeader(\"Accept\",\"*/*\")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(r),\"withCredentials\"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var o;r.readyState===3&&((o=this._opts.cookieJar)===null||o===void 0||o.parseCookies(r.getResponseHeader(\"set-cookie\"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status==\"number\"?r.status:0)},0))},r.send(this._data)}catch(o){this.setTimeoutFn(()=>{this._onError(o)},0);return}typeof document<\"u\"&&(this._index=t.requestsCount++,t.requests[this._index]=this)}_onError(e){this.emitReserved(\"error\",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>\"u\"||this._xhr===null)){if(this._xhr.onreadystatechange=Mrt,e)try{this._xhr.abort()}catch{}typeof document<\"u\"&&delete t.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved(\"data\",e),this.emitReserved(\"success\"),this._cleanup())}abort(){this._cleanup()}};Wx.requestsCount=0;Wx.requests={};if(typeof document<\"u\"){if(typeof attachEvent==\"function\")attachEvent(\"onunload\",X_e);else if(typeof addEventListener==\"function\"){let t=\"onpagehide\"in _d?\"pagehide\":\"unload\";addEventListener(t,X_e,!1)}}Nrt=function(){let t=e4e({xdomain:!1});return t&&t.responseType!==null}(),Vx=class extends Nte{constructor(e){super(e);let n=e&&e.forceBase64;this.supportsBinary=Nrt&&!n}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new Wx(e4e,this.uri(),e)}}});var t4e,Bte,Lte,$x,Uz=ce(()=>{p();oO();gS();Y8();mS();t4e=typeof navigator<\"u\"&&typeof navigator.product==\"string\"&&navigator.product.toLowerCase()===\"reactnative\",Bte=class extends Fv{get name(){return\"websocket\"}doOpen(){let e=this.uri(),n=this.opts.protocols,r=t4e?{}:Lz(this.opts,\"agent\",\"perMessageDeflate\",\"pfx\",\"key\",\"passphrase\",\"cert\",\"ca\",\"ciphers\",\"rejectUnauthorized\",\"localAddress\",\"protocolVersion\",\"origin\",\"maxPayload\",\"family\",\"checkServerIdentity\");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,n,r)}catch(o){return this.emitReserved(\"error\",o)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:\"websocket connection closed\",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError(\"websocket error\",e)}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],o=n===e.length-1;tO(r,this.supportsBinary,i=>{try{this.doWrite(r,i)}catch{}o&&Bv(()=>{this.writable=!0,this.emitReserved(\"drain\")},this.setTimeoutFn)})}}doClose(){typeof this.ws<\"u\"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let e=this.opts.secure?\"wss\":\"ws\",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=Bz()),this.supportsBinary||(n.b64=1),this.createUri(e,n)}},Lte=_d.WebSocket||_d.MozWebSocket,$x=class extends Bte{createSocket(e,n,r){return t4e?new Lte(e,n,r):n?new Lte(e,n):new Lte(e)}doWrite(e,n){this.ws.send(n)}}});var Q8,Dte=ce(()=>{p();oO();mS();Y8();Q8=class extends Fv{get name(){return\"webtransport\"}doOpen(){try{this._transport=new WebTransport(this.createUri(\"https\"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved(\"error\",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError(\"webtransport error\",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{let n=V_e(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=e.readable.pipeThrough(n).getReader(),o=W_e();o.readable.pipeTo(e.writable),this._writer=o.writable.getWriter();let i=()=>{r.read().then(({done:c,value:u})=>{c||(this.onPacket(u),i())}).catch(c=>{})};i();let a={type:\"open\"};this.query.sid&&(a.data=`{\"sid\":\"${this.query.sid}\"}`),this._writer.write(a).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let n=0;n<e.length;n++){let r=e[n],o=n===e.length-1;this._writer.write(r).then(()=>{o&&Bv(()=>{this.writable=!0,this.emitReserved(\"drain\")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}});var Fte,Ute=ce(()=>{p();Fz();Uz();Dte();Fte={websocket:$x,webtransport:Q8,polling:Vx}});function J8(t){if(t.length>8e3)throw\"URI too long\";let e=t,n=t.indexOf(\"[\"),r=t.indexOf(\"]\");n!=-1&&r!=-1&&(t=t.substring(0,n)+t.substring(n,r).replace(/:/g,\";\")+t.substring(r,t.length));let o=Lrt.exec(t||\"\"),i={},a=14;for(;a--;)i[Brt[a]]=o[a]||\"\";return n!=-1&&r!=-1&&(i.source=e,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,\":\"),i.authority=i.authority.replace(\"[\",\"\").replace(\"]\",\"\").replace(/;/g,\":\"),i.ipv6uri=!0),i.pathNames=Drt(i,i.path),i.queryKey=Frt(i,i.query),i}function Drt(t,e){let n=/\\\\/{2,9}/g,r=e.replace(n,\"/\").split(\"/\");return(e.slice(0,1)==\"/\"||e.length===0)&&r.splice(0,1),e.slice(-1)==\"/\"&&r.splice(r.length-1,1),r}function Frt(t,e){let n={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,o,i){o&&(n[o]=i)}),n}var Lrt,Brt,jte=ce(()=>{p();Lrt=/^(?:(?![^:@\\\\/?#]+:[^:@\\\\/]*@)(http|https|ws|wss):\\\\/\\\\/)?((?:(([^:@\\\\/?#]*)(?::([^:@\\\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\\\/?#]*)(?::(\\\\d*))?)(((\\\\/(?:[^?#](?![^?#\\\\/]*\\\\.[^?#\\\\/.]+(?:[?#]|$)))*\\\\/?)?([^?#\\\\/]*))(?:\\\\?([^#]*))?(?:#(.*))?)/,Brt=[\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"relative\",\"path\",\"directory\",\"file\",\"query\",\"anchor\"]});var zte,jz,yS,zz,X8,Hte=ce(()=>{p();Ute();gS();Pte();jte();pS();Y8();mS();zte=typeof addEventListener==\"function\"&&typeof removeEventListener==\"function\",jz=[];zte&&addEventListener(\"offline\",()=>{jz.forEach(t=>t())},!1);yS=class t extends Bi{constructor(e,n){if(super(),this.binaryType=$_e,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e==\"object\"&&(n=e,e=null),e){let r=J8(e);n.hostname=r.host,n.secure=r.protocol===\"https\"||r.protocol===\"wss\",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=J8(n.host).host);Dv(this,n),this.secure=n.secure!=null?n.secure:typeof location<\"u\"&&location.protocol===\"https:\",n.hostname&&!n.port&&(n.port=this.secure?\"443\":\"80\"),this.hostname=n.hostname||(typeof location<\"u\"?location.hostname:\"localhost\"),this.port=n.port||(typeof location<\"u\"&&location.port?location.port:this.secure?\"443\":\"80\"),this.transports=[],this._transportsByName={},n.transports.forEach(r=>{let o=r.prototype.name;this.transports.push(o),this._transportsByName[o]=r}),this.opts=Object.assign({path:\"/engine.io\",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:\"t\",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\\\\/$/,\"\")+(this.opts.addTrailingSlash?\"/\":\"\"),typeof this.opts.query==\"string\"&&(this.opts.query=Z_e(this.opts.query)),zte&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener(\"beforeunload\",this._beforeunloadEventListener,!1)),this.hostname!==\"localhost\"&&(this._offlineEventListener=()=>{this._onClose(\"transport close\",{description:\"network connection lost\"})},jz.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let n=Object.assign({},this.opts.query);n.EIO=Ote,n.transport=e,this.id&&(n.sid=this.id);let r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved(\"error\",\"No transports available\")},0);return}let e=this.opts.rememberUpgrade&&t.priorWebsocketSuccess&&this.transports.indexOf(\"websocket\")!==-1?\"websocket\":this.transports[0];this.readyState=\"opening\";let n=this.createTransport(e);n.open(),this.setTransport(n)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on(\"drain\",this._onDrain.bind(this)).on(\"packet\",this._onPacket.bind(this)).on(\"error\",this._onError.bind(this)).on(\"close\",n=>this._onClose(\"transport close\",n))}onOpen(){this.readyState=\"open\",t.priorWebsocketSuccess=this.transport.name===\"websocket\",this.emitReserved(\"open\"),this.flush()}_onPacket(e){if(this.readyState===\"opening\"||this.readyState===\"open\"||this.readyState===\"closing\")switch(this.emitReserved(\"packet\",e),this.emitReserved(\"heartbeat\"),e.type){case\"open\":this.onHandshake(JSON.parse(e.data));break;case\"ping\":this._sendPacket(\"pong\"),this.emitReserved(\"ping\"),this.emitReserved(\"pong\"),this._resetPingTimeout();break;case\"error\":let n=new Error(\"server error\");n.code=e.data,this._onError(n);break;case\"message\":this.emitReserved(\"data\",e.data),this.emitReserved(\"message\",e.data);break}}onHandshake(e){this.emitReserved(\"handshake\",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!==\"closed\"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose(\"ping timeout\")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved(\"drain\"):this.flush()}flush(){if(this.readyState!==\"closed\"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved(\"flush\")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name===\"polling\"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){let o=this.writeBuffer[r].data;if(o&&(n+=K_e(o)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,Bv(()=>{this._onClose(\"ping timeout\")},this.setTimeoutFn)),e}write(e,n,r){return this._sendPacket(\"message\",e,n,r),this}send(e,n,r){return this._sendPacket(\"message\",e,n,r),this}_sendPacket(e,n,r,o){if(typeof n==\"function\"&&(o=n,n=void 0),typeof r==\"function\"&&(o=r,r=null),this.readyState===\"closing\"||this.readyState===\"closed\")return;r=r||{},r.compress=r.compress!==!1;let i={type:e,data:n,options:r};this.emitReserved(\"packetCreate\",i),this.writeBuffer.push(i),o&&this.once(\"flush\",o),this.flush()}close(){let e=()=>{this._onClose(\"forced close\"),this.transport.close()},n=()=>{this.off(\"upgrade\",n),this.off(\"upgradeError\",n),e()},r=()=>{this.once(\"upgrade\",n),this.once(\"upgradeError\",n)};return(this.readyState===\"opening\"||this.readyState===\"open\")&&(this.readyState=\"closing\",this.writeBuffer.length?this.once(\"drain\",()=>{this.upgrading?r():e()}):this.upgrading?r():e()),this}_onError(e){if(t.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState===\"opening\")return this.transports.shift(),this._open();this.emitReserved(\"error\",e),this._onClose(\"transport error\",e)}_onClose(e,n){if(this.readyState===\"opening\"||this.readyState===\"open\"||this.readyState===\"closing\"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners(\"close\"),this.transport.close(),this.transport.removeAllListeners(),zte&&(this._beforeunloadEventListener&&removeEventListener(\"beforeunload\",this._beforeunloadEventListener,!1),this._offlineEventListener)){let r=jz.indexOf(this._offlineEventListener);r!==-1&&jz.splice(r,1)}this.readyState=\"closed\",this.id=null,this.emitReserved(\"close\",e,n),this.writeBuffer=[],this._prevBufferLen=0}}};yS.protocol=Ote;zz=class extends yS{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState===\"open\"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let n=this.createTransport(e),r=!1;yS.priorWebsocketSuccess=!1;let o=()=>{r||(n.send([{type:\"ping\",data:\"probe\"}]),n.once(\"packet\",m=>{if(!r)if(m.type===\"pong\"&&m.data===\"probe\"){if(this.upgrading=!0,this.emitReserved(\"upgrading\",n),!n)return;yS.priorWebsocketSuccess=n.name===\"websocket\",this.transport.pause(()=>{r||this.readyState!==\"closed\"&&(h(),this.setTransport(n),n.send([{type:\"upgrade\"}]),this.emitReserved(\"upgrade\",n),n=null,this.upgrading=!1,this.flush())})}else{let g=new Error(\"probe error\");g.transport=n.name,this.emitReserved(\"upgradeError\",g)}}))};function i(){r||(r=!0,h(),n.close(),n=null)}let a=m=>{let g=new Error(\"probe error: \"+m);g.transport=n.name,i(),this.emitReserved(\"upgradeError\",g)};function c(){a(\"transport closed\")}function u(){a(\"socket closed\")}function d(m){n&&m.name!==n.name&&i()}let h=()=>{n.removeListener(\"open\",o),n.removeListener(\"error\",a),n.removeListener(\"close\",c),this.off(\"close\",u),this.off(\"upgrading\",d)};n.once(\"open\",o),n.once(\"error\",a),n.once(\"close\",c),this.once(\"close\",u),this.once(\"upgrading\",d),this._upgrades.indexOf(\"webtransport\")!==-1&&e!==\"webtransport\"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){let n=[];for(let r=0;r<e.length;r++)~this.transports.indexOf(e[r])&&n.push(e[r]);return n}},X8=class extends zz{constructor(e,n={}){let r=typeof e==\"object\"?e:n;(!r.transports||r.transports&&typeof r.transports[0]==\"string\")&&(r.transports=(r.transports||[\"polling\",\"websocket\",\"webtransport\"]).map(o=>Fte[o]).filter(o=>!!o)),super(e,r)}}});var n4e=ce(()=>{p();Mte()});var ahn,Hz=ce(()=>{p();Hte();Hte();oO();Ute();gS();jte();mS();n4e();Fz();Fz();Uz();Uz();Dte();ahn=X8.protocol});function r4e(t,e=\"\",n){let r=t;n=n||typeof location<\"u\"&&location,t==null&&(t=n.protocol+\"//\"+n.host),typeof t==\"string\"&&(t.charAt(0)===\"/\"&&(t.charAt(1)===\"/\"?t=n.protocol+t:t=n.host+t),/^(https?|wss?):\\\\/\\\\//.test(t)||(typeof n<\"u\"?t=n.protocol+\"//\"+t:t=\"https://\"+t),r=J8(t)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port=\"80\":/^(http|ws)s$/.test(r.protocol)&&(r.port=\"443\")),r.path=r.path||\"/\";let i=r.host.indexOf(\":\")!==-1?\"[\"+r.host+\"]\":r.host;return r.id=r.protocol+\"://\"+i+\":\"+r.port+e,r.href=r.protocol+\"://\"+i+(n&&n.port===r.port?\"\":\":\"+r.port),r}var o4e=ce(()=>{p();Hz()});function aO(t){return jrt&&(t instanceof ArrayBuffer||zrt(t))||Hrt&&t instanceof Blob||qrt&&t instanceof File}function sO(t,e){if(!t||typeof t!=\"object\")return!1;if(Array.isArray(t)){for(let n=0,r=t.length;n<r;n++)if(sO(t[n]))return!0;return!1}if(aO(t))return!0;if(t.toJSON&&typeof t.toJSON==\"function\"&&arguments.length===1)return sO(t.toJSON(),!0);for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&sO(t[n]))return!0;return!1}var jrt,zrt,i4e,Hrt,qrt,qte=ce(()=>{p();jrt=typeof ArrayBuffer==\"function\",zrt=t=>typeof ArrayBuffer.isView==\"function\"?ArrayBuffer.isView(t):t.buffer instanceof ArrayBuffer,i4e=Object.prototype.toString,Hrt=typeof Blob==\"function\"||typeof Blob<\"u\"&&i4e.call(Blob)===\"[object BlobConstructor]\",qrt=typeof File==\"function\"||typeof File<\"u\"&&i4e.call(File)===\"[object FileConstructor]\"});function s4e(t){let e=[],n=t.data,r=t;return r.data=Wte(n,e),r.attachments=e.length,{packet:r,buffers:e}}function Wte(t,e){if(!t)return t;if(aO(t)){let n={_placeholder:!0,num:e.length};return e.push(t),n}else if(Array.isArray(t)){let n=new Array(t.length);for(let r=0;r<t.length;r++)n[r]=Wte(t[r],e);return n}else if(typeof t==\"object\"&&!(t instanceof Date)){let n={};for(let r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=Wte(t[r],e));return n}return t}function a4e(t,e){return t.data=Vte(t.data,e),delete t.attachments,t}function Vte(t,e){if(!t)return t;if(t&&t._placeholder===!0){if(typeof t.num==\"number\"&&t.num>=0&&t.num<e.length)return e[t.num];throw new Error(\"illegal attachments\")}else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]=Vte(t[n],e);else if(typeof t==\"object\")for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(t[n]=Vte(t[n],e));return t}var c4e=ce(()=>{p();qte()});var Zte={};ld(Zte,{Decoder:()=>Kte,Encoder:()=>$te,PacketType:()=>Wr,protocol:()=>u4e});function l4e(t){return Object.prototype.toString.call(t)===\"[object Object]\"}var Wrt,u4e,Wr,$te,Kte,Gte,qz=ce(()=>{p();pS();c4e();qte();Wrt=[\"connect\",\"connect_error\",\"disconnect\",\"disconnecting\",\"newListener\",\"removeListener\"],u4e=5;(function(t){t[t.CONNECT=0]=\"CONNECT\",t[t.DISCONNECT=1]=\"DISCONNECT\",t[t.EVENT=2]=\"EVENT\",t[t.ACK=3]=\"ACK\",t[t.CONNECT_ERROR=4]=\"CONNECT_ERROR\",t[t.BINARY_EVENT=5]=\"BINARY_EVENT\",t[t.BINARY_ACK=6]=\"BINARY_ACK\"})(Wr||(Wr={}));$te=class{constructor(e){this.replacer=e}encode(e){return(e.type===Wr.EVENT||e.type===Wr.ACK)&&sO(e)?this.encodeAsBinary({type:e.type===Wr.EVENT?Wr.BINARY_EVENT:Wr.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let n=\"\"+e.type;return(e.type===Wr.BINARY_EVENT||e.type===Wr.BINARY_ACK)&&(n+=e.attachments+\"-\"),e.nsp&&e.nsp!==\"/\"&&(n+=e.nsp+\",\"),e.id!=null&&(n+=e.id),e.data!=null&&(n+=JSON.stringify(e.data,this.replacer)),n}encodeAsBinary(e){let n=s4e(e),r=this.encodeAsString(n.packet),o=n.buffers;return o.unshift(r),o}};Kte=class t extends Bi{constructor(e){super(),this.reviver=e}add(e){let n;if(typeof e==\"string\"){if(this.reconstructor)throw new Error(\"got plaintext data when reconstructing a packet\");n=this.decodeString(e);let r=n.type===Wr.BINARY_EVENT;r||n.type===Wr.BINARY_ACK?(n.type=r?Wr.EVENT:Wr.ACK,this.reconstructor=new Gte(n),n.attachments===0&&super.emitReserved(\"decoded\",n)):super.emitReserved(\"decoded\",n)}else if(aO(e)||e.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(e),n&&(this.reconstructor=null,super.emitReserved(\"decoded\",n));else throw new Error(\"got binary data when not reconstructing a packet\");else throw new Error(\"Unknown type: \"+e)}decodeString(e){let n=0,r={type:Number(e.charAt(0))};if(Wr[r.type]===void 0)throw new Error(\"unknown packet type \"+r.type);if(r.type===Wr.BINARY_EVENT||r.type===Wr.BINARY_ACK){let i=n+1;for(;e.charAt(++n)!==\"-\"&&n!=e.length;);let a=e.substring(i,n);if(a!=Number(a)||e.charAt(n)!==\"-\")throw new Error(\"Illegal attachments\");r.attachments=Number(a)}if(e.charAt(n+1)===\"/\"){let i=n+1;for(;++n&&!(e.charAt(n)===\",\"||n===e.length););r.nsp=e.substring(i,n)}else r.nsp=\"/\";let o=e.charAt(n+1);if(o!==\"\"&&Number(o)==o){let i=n+1;for(;++n;){let a=e.charAt(n);if(a==null||Number(a)!=a){--n;break}if(n===e.length)break}r.id=Number(e.substring(i,n+1))}if(e.charAt(++n)){let i=this.tryParse(e.substr(n));if(t.isPayloadValid(r.type,i))r.data=i;else throw new Error(\"invalid payload\")}return r}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,n){switch(e){case Wr.CONNECT:return l4e(n);case Wr.DISCONNECT:return n===void 0;case Wr.CONNECT_ERROR:return typeof n==\"string\"||l4e(n);case Wr.EVENT:case Wr.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]==\"number\"||typeof n[0]==\"string\"&&Wrt.indexOf(n[0])===-1);case Wr.ACK:case Wr.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},Gte=class{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){let n=a4e(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}});function Th(t,e,n){return t.on(e,n),function(){t.off(e,n)}}var Yte=ce(()=>{p()});var Vrt,eA,Qte=ce(()=>{p();qz();Yte();pS();Vrt=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),eA=class extends Bi{constructor(e,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let e=this.io;this.subs=[Th(e,\"open\",this.onopen.bind(this)),Th(e,\"packet\",this.onpacket.bind(this)),Th(e,\"error\",this.onerror.bind(this)),Th(e,\"close\",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState===\"open\"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift(\"message\"),this.emit.apply(this,e),this}emit(e,...n){var r,o,i;if(Vrt.hasOwnProperty(e))throw new Error(\\'\"\\'+e.toString()+\\'\" is a reserved event name\\');if(n.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;let a={type:Wr.EVENT,data:n};if(a.options={},a.options.compress=this.flags.compress!==!1,typeof n[n.length-1]==\"function\"){let h=this.ids++,m=n.pop();this._registerAckCallback(h,m),a.id=h}let c=(o=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||o===void 0?void 0:o.writable,u=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!c||(u?(this.notifyOutgoingListeners(a),this.packet(a)):this.sendBuffer.push(a)),this.flags={},this}_registerAckCallback(e,n){var r;let o=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(o===void 0){this.acks[e]=n;return}let i=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let c=0;c<this.sendBuffer.length;c++)this.sendBuffer[c].id===e&&this.sendBuffer.splice(c,1);n.call(this,new Error(\"operation has timed out\"))},o),a=(...c)=>{this.io.clearTimeoutFn(i),n.apply(this,c)};a.withError=!0,this.acks[e]=a}emitWithAck(e,...n){return new Promise((r,o)=>{let i=(a,c)=>a?o(a):r(c);i.withError=!0,n.push(i),this.emit(e,...n)})}_addToQueue(e){let n;typeof e[e.length-1]==\"function\"&&(n=e.pop());let r={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((o,...i)=>r!==this._queue[0]?void 0:(o!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(o)):(this._queue.shift(),n&&n(null,...i)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;let n=this._queue[0];n.pending&&!e||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth==\"function\"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:Wr.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved(\"connect_error\",e)}onclose(e,n){this.connected=!1,delete this.id,this.emitReserved(\"disconnect\",e,n),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(r=>String(r.id)===e)){let r=this.acks[e];delete this.acks[e],r.withError&&r.call(this,new Error(\"socket has been disconnected\"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case Wr.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved(\"connect_error\",new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));break;case Wr.EVENT:case Wr.BINARY_EVENT:this.onevent(e);break;case Wr.ACK:case Wr.BINARY_ACK:this.onack(e);break;case Wr.DISCONNECT:this.ondisconnect();break;case Wr.CONNECT_ERROR:this.destroy();let r=new Error(e.data.message);r.data=e.data.data,this.emitReserved(\"connect_error\",r);break}}onevent(e){let n=e.data||[];e.id!=null&&n.push(this.ack(e.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){let n=this._anyListeners.slice();for(let r of n)r.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]==\"string\"&&(this._lastOffset=e[e.length-1])}ack(e){let n=this,r=!1;return function(...o){r||(r=!0,n.packet({type:Wr.ACK,id:e,data:o}))}}onack(e){let n=this.acks[e.id];typeof n==\"function\"&&(delete this.acks[e.id],n.withError&&e.data.unshift(null),n.apply(this,e.data))}onconnect(e,n){this.id=e,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this.emitReserved(\"connect\"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose(\"io server disconnect\")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:Wr.DISCONNECT}),this.destroy(),this.connected&&this.onclose(\"io client disconnect\"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){let n=this._anyListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){let n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(e===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let n=this._anyOutgoingListeners.slice();for(let r of n)r.apply(this,e.data)}}}});function bS(t){t=t||{},this.ms=t.min||100,this.max=t.max||1e4,this.factor=t.factor||2,this.jitter=t.jitter>0&&t.jitter<=1?t.jitter:0,this.attempts=0}var d4e=ce(()=>{p();bS.prototype.duration=function(){var t=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),n=Math.floor(e*this.jitter*t);t=(Math.floor(e*10)&1)==0?t-n:t+n}return Math.min(t,this.max)|0};bS.prototype.reset=function(){this.attempts=0};bS.prototype.setMin=function(t){this.ms=t};bS.prototype.setMax=function(t){this.max=t};bS.prototype.setJitter=function(t){this.jitter=t}});var tA,f4e=ce(()=>{p();Hz();Qte();qz();Yte();d4e();pS();tA=class extends Bi{constructor(e,n){var r;super(),this.nsps={},this.subs=[],e&&typeof e==\"object\"&&(n=e,e=void 0),n=n||{},n.path=n.path||\"/socket.io\",this.opts=n,Dv(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new bS({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState=\"closed\",this.uri=e;let o=n.parser||Zte;this.encoder=new o.Encoder,this.decoder=new o.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var n;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(n=this.backoff)===null||n===void 0||n.setMin(e),this)}randomizationFactor(e){var n;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(n=this.backoff)===null||n===void 0||n.setJitter(e),this)}reconnectionDelayMax(e){var n;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(n=this.backoff)===null||n===void 0||n.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf(\"open\"))return this;this.engine=new X8(this.uri,this.opts);let n=this.engine,r=this;this._readyState=\"opening\",this.skipReconnect=!1;let o=Th(n,\"open\",function(){r.onopen(),e&&e()}),i=c=>{this.cleanup(),this._readyState=\"closed\",this.emitReserved(\"error\",c),e?e(c):this.maybeReconnectOnOpen()},a=Th(n,\"error\",i);if(this._timeout!==!1){let c=this._timeout,u=this.setTimeoutFn(()=>{o(),i(new Error(\"timeout\")),n.close()},c);this.opts.autoUnref&&u.unref(),this.subs.push(()=>{this.clearTimeoutFn(u)})}return this.subs.push(o),this.subs.push(a),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState=\"open\",this.emitReserved(\"open\");let e=this.engine;this.subs.push(Th(e,\"ping\",this.onping.bind(this)),Th(e,\"data\",this.ondata.bind(this)),Th(e,\"error\",this.onerror.bind(this)),Th(e,\"close\",this.onclose.bind(this)),Th(this.decoder,\"decoded\",this.ondecoded.bind(this)))}onping(){this.emitReserved(\"ping\")}ondata(e){try{this.decoder.add(e)}catch(n){this.onclose(\"parse error\",n)}}ondecoded(e){Bv(()=>{this.emitReserved(\"packet\",e)},this.setTimeoutFn)}onerror(e){this.emitReserved(\"error\",e)}socket(e,n){let r=this.nsps[e];return r?this._autoConnect&&!r.active&&r.connect():(r=new eA(this,e,n),this.nsps[e]=r),r}_destroy(e){let n=Object.keys(this.nsps);for(let r of n)if(this.nsps[r].active)return;this._close()}_packet(e){let n=this.encoder.encode(e);for(let r=0;r<n.length;r++)this.engine.write(n[r],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose(\"forced close\")}disconnect(){return this._close()}onclose(e,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState=\"closed\",this.emitReserved(\"close\",e,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved(\"reconnect_failed\"),this._reconnecting=!1;else{let n=this.backoff.duration();this._reconnecting=!0;let r=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved(\"reconnect_attempt\",e.backoff.attempts),!e.skipReconnect&&e.open(o=>{o?(e._reconnecting=!1,e.reconnect(),this.emitReserved(\"reconnect_error\",o)):e.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){let e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved(\"reconnect\",e)}}});function lO(t,e){typeof t==\"object\"&&(e=t,t=void 0),e=e||{};let n=r4e(t,e.path||\"/socket.io\"),r=n.source,o=n.id,i=n.path,a=cO[o]&&i in cO[o].nsps,c=e.forceNew||e[\"force new connection\"]||e.multiplex===!1||a,u;return c?u=new tA(r,e):(cO[o]||(cO[o]=new tA(r,e)),u=cO[o]),n.query&&!e.query&&(e.query=n.queryKey),u.socket(n.path,e)}var cO,h4e=ce(()=>{p();o4e();f4e();Qte();qz();Hz();cO={};Object.assign(lO,{Manager:tA,Socket:eA,io:lO,connect:lO})});var $rt,Jte=ce(()=>{$rt=Aue({})});var b7e={};ld(b7e,{CommunicationLayerPreference:()=>p3,ConnectionStatus:()=>Wc,DEFAULT_SERVER_URL:()=>RS,EventType:()=>vt,MessageType:()=>hs,MetaMaskSDK:()=>Sre,MetaMaskSDKEvent:()=>Rd,PROVIDER_UPDATE_TYPE:()=>mg,PlatformType:()=>Al,SDKProvider:()=>nq,default:()=>Sre});function ct(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(d){try{u(r.next(d))}catch(h){i(h)}}function c(d){try{u(r.throw(d))}catch(h){i(h)}}function u(d){var h;d.done?o(d.value):(h=d.value,h instanceof n?h:new n(function(m){m(h)})).then(a,c)}u((r=r.apply(t,e||[])).next())})}function I8e(){Ire=!0;for(var t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",e=0;e<64;++e)g1[e]=t[e],Em[t.charCodeAt(e)]=e;Em[45]=62,Em[95]=63}function Grt(t,e,n){for(var r,o,i=[],a=e;a<n;a+=3)r=(t[a]<<16)+(t[a+1]<<8)+t[a+2],i.push(g1[(o=r)>>18&63]+g1[o>>12&63]+g1[o>>6&63]+g1[63&o]);return i.join(\"\")}function p4e(t){var e;Ire||I8e();for(var n=t.length,r=n%3,o=\"\",i=[],a=16383,c=0,u=n-r;c<u;c+=a)i.push(Grt(t,c,c+a>u?u:c+a));return r===1?(e=t[n-1],o+=g1[e>>2],o+=g1[e<<4&63],o+=\"==\"):r===2&&(e=(t[n-2]<<8)+t[n-1],o+=g1[e>>10],o+=g1[e>>4&63],o+=g1[e<<2&63],o+=\"=\"),i.push(o),i.join(\"\")}function Wz(t,e,n,r,o){var i,a,c=8*o-r-1,u=(1<<c)-1,d=u>>1,h=-7,m=n?o-1:0,g=n?-1:1,b=t[e+m];for(m+=g,i=b&(1<<-h)-1,b>>=-h,h+=c;h>0;i=256*i+t[e+m],m+=g,h-=8);for(a=i&(1<<-h)-1,i>>=-h,h+=r;h>0;a=256*a+t[e+m],m+=g,h-=8);if(i===0)i=1-d;else{if(i===u)return a?NaN:1/0*(b?-1:1);a+=Math.pow(2,r),i-=d}return(b?-1:1)*a*Math.pow(2,i-r)}function O8e(t,e,n,r,o,i){var a,c,u,d=8*i-o-1,h=(1<<d)-1,m=h>>1,g=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=r?0:i-1,E=r?1:-1,C=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(c=isNaN(e)?1:0,a=h):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+m>=1?g/u:g*Math.pow(2,1-m))*u>=2&&(a++,u/=2),a+m>=h?(c=0,a=h):a+m>=1?(c=(e*u-1)*Math.pow(2,o),a+=m):(c=e*Math.pow(2,m-1)*Math.pow(2,o),a=0));o>=8;t[n+b]=255&c,b+=E,c/=256,o-=8);for(a=a<<o|c,d+=o;d>0;t[n+b]=255&a,b+=E,a/=256,d-=8);t[n+b-E]|=128*C}function TH(){return at.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Vv(t,e){if(TH()<e)throw new RangeError(\"Invalid typed array length\");return at.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=at.prototype:(t===null&&(t=new at(e)),t.length=e),t}function at(t,e,n){if(!(at.TYPED_ARRAY_SUPPORT||this instanceof at))return new at(t,e,n);if(typeof t==\"number\"){if(typeof e==\"string\")throw new Error(\"If encoding is specified then the first argument must be a string\");return Fne(this,t)}return M8e(this,t,e,n)}function M8e(t,e,n,r){if(typeof e==\"number\")throw new TypeError(\\'\"value\" argument must not be a number\\');return typeof ArrayBuffer<\"u\"&&e instanceof ArrayBuffer?function(o,i,a,c){if(i.byteLength,a<0||i.byteLength<a)throw new RangeError(\"\\'offset\\' is out of bounds\");if(i.byteLength<a+(c||0))throw new RangeError(\"\\'length\\' is out of bounds\");return i=a===void 0&&c===void 0?new Uint8Array(i):c===void 0?new Uint8Array(i,a):new Uint8Array(i,a,c),at.TYPED_ARRAY_SUPPORT?(o=i).__proto__=at.prototype:o=Xte(o,i),o}(t,e,n,r):typeof e==\"string\"?function(o,i,a){if(typeof a==\"string\"&&a!==\"\"||(a=\"utf8\"),!at.isEncoding(a))throw new TypeError(\\'\"encoding\" must be a valid string encoding\\');var c=0|L8e(i,a);o=Vv(o,c);var u=o.write(i,a);return u!==c&&(o=o.slice(0,u)),o}(t,e,n):function(o,i){if(y1(i)){var a=0|Ore(i.length);return(o=Vv(o,a)).length===0||i.copy(o,0,0,a),o}if(i){if(typeof ArrayBuffer<\"u\"&&i.buffer instanceof ArrayBuffer||\"length\"in i)return typeof i.length!=\"number\"||(c=i.length)!=c?Vv(o,0):Xte(o,i);if(i.type===\"Buffer\"&&P8e(i.data))return Xte(o,i.data)}var c;throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\")}(t,e)}function N8e(t){if(typeof t!=\"number\")throw new TypeError(\\'\"size\" argument must be a number\\');if(t<0)throw new RangeError(\\'\"size\" argument must not be negative\\')}function Fne(t,e){if(N8e(e),t=Vv(t,e<0?0:0|Ore(e)),!at.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function Xte(t,e){var n=e.length<0?0:0|Ore(e.length);t=Vv(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function Ore(t){if(t>=TH())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+TH().toString(16)+\" bytes\");return 0|t}function y1(t){return!(t==null||!t._isBuffer)}function L8e(t,e){if(y1(t))return t.length;if(typeof ArrayBuffer<\"u\"&&typeof ArrayBuffer.isView==\"function\"&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;typeof t!=\"string\"&&(t=\"\"+t);var n=t.length;if(n===0)return 0;for(var r=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":case void 0:return RH(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*n;case\"hex\":return n>>>1;case\"base64\":return U8e(t).length;default:if(r)return RH(t).length;e=(\"\"+e).toLowerCase(),r=!0}}function Qrt(t,e,n){var r=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((n===void 0||n>this.length)&&(n=this.length),n<=0)||(n>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return sot(this,e,n);case\"utf8\":case\"utf-8\":return D8e(this,e,n);case\"ascii\":return oot(this,e,n);case\"latin1\":case\"binary\":return iot(this,e,n);case\"base64\":return rot(this,e,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return aot(this,e,n);default:if(r)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),r=!0}}function vS(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function m4e(t,e,n,r,o){if(t.length===0)return-1;if(typeof n==\"string\"?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(o)return-1;n=t.length-1}else if(n<0){if(!o)return-1;n=0}if(typeof e==\"string\"&&(e=at.from(e,r)),y1(e))return e.length===0?-1:g4e(t,e,n,r,o);if(typeof e==\"number\")return e&=255,at.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf==\"function\"?o?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):g4e(t,[e],n,r,o);throw new TypeError(\"val must be string, number or Buffer\")}function g4e(t,e,n,r,o){var i,a=1,c=t.length,u=e.length;if(r!==void 0&&((r=String(r).toLowerCase())===\"ucs2\"||r===\"ucs-2\"||r===\"utf16le\"||r===\"utf-16le\")){if(t.length<2||e.length<2)return-1;a=2,c/=2,u/=2,n/=2}function d(b,E){return a===1?b[E]:b.readUInt16BE(E*a)}if(o){var h=-1;for(i=n;i<c;i++)if(d(t,i)===d(e,h===-1?0:i-h)){if(h===-1&&(h=i),i-h+1===u)return h*a}else h!==-1&&(i-=i-h),h=-1}else for(n+u>c&&(n=c-u),i=n;i>=0;i--){for(var m=!0,g=0;g<u;g++)if(d(t,i+g)!==d(e,g)){m=!1;break}if(m)return i}return-1}function Jrt(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=e.length;if(i%2!=0)throw new TypeError(\"Invalid hex string\");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var c=parseInt(e.substr(2*a,2),16);if(isNaN(c))return a;t[n+a]=c}return a}function Xrt(t,e,n,r){return lq(RH(e,t.length-n),t,n,r)}function B8e(t,e,n,r){return lq(function(o){for(var i=[],a=0;a<o.length;++a)i.push(255&o.charCodeAt(a));return i}(e),t,n,r)}function eot(t,e,n,r){return B8e(t,e,n,r)}function tot(t,e,n,r){return lq(U8e(e),t,n,r)}function not(t,e,n,r){return lq(function(o,i){for(var a,c,u,d=[],h=0;h<o.length&&!((i-=2)<0);++h)c=(a=o.charCodeAt(h))>>8,u=a%256,d.push(u),d.push(c);return d}(e,t.length-n),t,n,r)}function rot(t,e,n){return e===0&&n===t.length?p4e(t):p4e(t.slice(e,n))}function D8e(t,e,n){n=Math.min(t.length,n);for(var r=[],o=e;o<n;){var i,a,c,u,d=t[o],h=null,m=d>239?4:d>223?3:d>191?2:1;if(o+m<=n)switch(m){case 1:d<128&&(h=d);break;case 2:(192&(i=t[o+1]))==128&&(u=(31&d)<<6|63&i)>127&&(h=u);break;case 3:i=t[o+1],a=t[o+2],(192&i)==128&&(192&a)==128&&(u=(15&d)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:i=t[o+1],a=t[o+2],c=t[o+3],(192&i)==128&&(192&a)==128&&(192&c)==128&&(u=(15&d)<<18|(63&i)<<12|(63&a)<<6|63&c)>65535&&u<1114112&&(h=u)}h===null?(h=65533,m=1):h>65535&&(h-=65536,r.push(h>>>10&1023|55296),h=56320|1023&h),r.push(h),o+=m}return function(g){var b=g.length;if(b<=y4e)return String.fromCharCode.apply(String,g);for(var E=\"\",C=0;C<b;)E+=String.fromCharCode.apply(String,g.slice(C,C+=y4e));return E}(r)}function oot(t,e,n){var r=\"\";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(127&t[o]);return r}function iot(t,e,n){var r=\"\";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+=String.fromCharCode(t[o]);return r}function sot(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var o=\"\",i=e;i<n;++i)o+=lot(t[i]);return o}function aot(t,e,n){for(var r=t.slice(e,n),o=\"\",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function jc(t,e,n){if(t%1!=0||t<0)throw new RangeError(\"offset is not uint\");if(t+e>n)throw new RangeError(\"Trying to access beyond buffer length\")}function Tf(t,e,n,r,o,i){if(!y1(t))throw new TypeError(\\'\"buffer\" argument must be a Buffer instance\\');if(e>o||e<i)throw new RangeError(\\'\"value\" argument is out of bounds\\');if(n+r>t.length)throw new RangeError(\"Index out of range\")}function Vz(t,e,n,r){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-n,2);o<i;++o)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function $z(t,e,n,r){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-n,4);o<i;++o)t[n+o]=e>>>8*(r?o:3-o)&255}function F8e(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"Index out of range\")}function b4e(t,e,n,r,o){return o||F8e(t,0,n,4),O8e(t,e,n,r,23,4),n+4}function v4e(t,e,n,r,o){return o||F8e(t,0,n,8),O8e(t,e,n,r,52,8),n+8}function lot(t){return t<16?\"0\"+t.toString(16):t.toString(16)}function RH(t,e){var n;e=e||1/0;for(var r=t.length,o=null,i=[],a=0;a<r;++a){if((n=t.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function U8e(t){return function(e){var n,r,o,i,a,c;Ire||I8e();var u=e.length;if(u%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");a=e[u-2]===\"=\"?2:e[u-1]===\"=\"?1:0,c=new Krt(3*u/4-a),o=a>0?u-4:u;var d=0;for(n=0,r=0;n<o;n+=4,r+=3)i=Em[e.charCodeAt(n)]<<18|Em[e.charCodeAt(n+1)]<<12|Em[e.charCodeAt(n+2)]<<6|Em[e.charCodeAt(n+3)],c[d++]=i>>16&255,c[d++]=i>>8&255,c[d++]=255&i;return a===2?(i=Em[e.charCodeAt(n)]<<2|Em[e.charCodeAt(n+1)]>>4,c[d++]=255&i):a===1&&(i=Em[e.charCodeAt(n)]<<10|Em[e.charCodeAt(n+1)]<<4|Em[e.charCodeAt(n+2)]>>2,c[d++]=i>>8&255,c[d++]=255&i),c}(function(e){if((e=function(n){return n.trim?n.trim():n.replace(/^\\\\s+|\\\\s+$/g,\"\")}(e).replace(cot,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(t))}function lq(t,e,n,r){for(var o=0;o<r&&!(o+n>=e.length||o>=t.length);++o)e[o+n]=t[o];return o}function j8e(t){return t!=null&&(!!t._isBuffer||w4e(t)||function(e){return typeof e.readFloatLE==\"function\"&&typeof e.slice==\"function\"&&w4e(e.slice(0,0))}(t))}function w4e(t){return!!t.constructor&&typeof t.constructor.isBuffer==\"function\"&&t.constructor.isBuffer(t)}function uq(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function WO(t){if(t.__esModule)return t;var e=t.default;if(typeof e==\"function\"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,\"__esModule\",{value:!0}),Object.keys(t).forEach(function(r){var o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return t[r]}})}),n}function IH(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`positive integer expected, not ${t}`)}function z8e(t){if(typeof t!=\"boolean\")throw new Error(`boolean expected, not ${t}`)}function H8e(t){return t instanceof Uint8Array||t!=null&&typeof t==\"object\"&&t.constructor.name===\"Uint8Array\"}function Pre(t,...e){if(!H8e(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function q8e(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"hash must be wrapped by utils.wrapConstructor\");IH(t.outputLen),IH(t.blockLen)}function W8e(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function V8e(t,e){Pre(t);let n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}function PH(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`positive integer expected, not ${t}`)}function G8e(t){if(typeof t!=\"boolean\")throw new Error(`boolean expected, not ${t}`)}function Z8e(t){return t instanceof Uint8Array||t!=null&&typeof t==\"object\"&&t.constructor.name===\"Uint8Array\"}function Nre(t,...e){if(!Z8e(t))throw new Error(\"Uint8Array expected\");if(e.length>0&&!e.includes(t.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${t.length}`)}function Y8e(t){if(typeof t!=\"function\"||typeof t.create!=\"function\")throw new Error(\"Hash should be wrapped by utils.wrapConstructor\");PH(t.outputLen),PH(t.blockLen)}function Q8e(t,e=!0){if(t.destroyed)throw new Error(\"Hash instance has been destroyed\");if(e&&t.finished)throw new Error(\"Hash#digest() has already been called\")}function J8e(t,e){Nre(t);let n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}function Lre(t,e=!1){return e?{h:Number(t&Zz),l:Number(t>>Une&Zz)}:{h:0|Number(t>>Une&Zz),l:0|Number(t&Zz)}}function X8e(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let o=0;o<t.length;o++){let{h:i,l:a}=Lre(t[o],e);[n[o],r[o]]=[i,a]}return[n,r]}function hAe(t,e,n,r){let o=(e>>>0)+(r>>>0);return{h:t+n+(o/2**32|0)|0,l:0|o}}function BH(t){return t instanceof Uint8Array||t!=null&&typeof t==\"object\"&&t.constructor.name===\"Uint8Array\"}function DH(t){if(!BH(t))throw new Error(\"Uint8Array expected\")}function nne(t){DH(t);let e=\"\";for(let n=0;n<t.length;n++)e+=bot[t[n]];return e}function x4e(t){let e=t.toString(16);return 1&e.length?`0${e}`:e}function rne(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);return BigInt(t===\"\"?\"0\":`0x${t}`)}function E4e(t){return t>=Uv._0&&t<=Uv._9?t-Uv._0:t>=Uv._A&&t<=Uv._F?t-(Uv._A-10):t>=Uv._a&&t<=Uv._f?t-(Uv._a-10):void 0}function fH(t){if(typeof t!=\"string\")throw new Error(\"hex string expected, got \"+typeof t);let e=t.length,n=e/2;if(e%2)throw new Error(\"padded hex string expected, got unpadded hex of length \"+e);let r=new Uint8Array(n);for(let o=0,i=0;o<n;o++,i+=2){let a=E4e(t.charCodeAt(i)),c=E4e(t.charCodeAt(i+1));if(a===void 0||c===void 0){let u=t[i]+t[i+1];throw new Error(\\'hex string expected, got non-hex character \"\\'+u+\\'\" at index \\'+i)}r[o]=16*a+c}return r}function S4e(t,e){return fH(t.toString(16).padStart(2*e,\"0\"))}function k4e(...t){let e=0;for(let r=0;r<t.length;r++){let o=t[r];DH(o),e+=o.length}let n=new Uint8Array(e);for(let r=0,o=0;r<t.length;r++){let i=t[r];n.set(i,o),o+=i.length}return n}function _4e(t,e,n){return one(t)&&one(e)&&one(n)&&e<=t&&t<n}function Oh(t,e){let n=t%e;return n>=qc?n:e+n}function wAe(t,e,n){if(n<=qc||e<qc)throw new Error(\"Expected power/modulo > 0\");if(n===Di)return qc;let r=Di;for(;e>qc;)e&Di&&(r=r*t%n),t=t*t%n,e>>=Di;return r}function Qz(t,e){if(t===qc||e<=qc)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=Oh(t,e),r=e,o=qc,i=Di;for(;n!==qc;){let a=r%n,c=o-i*(r/n);r=n,n=a,o=i,i=c}if(r!==Di)throw new Error(\"invert: does not exist\");return Oh(o,e)}function xAe(t){let e=(t-Di)/a3,n,r,o;for(n=t-Di,r=0;n%a3===qc;n/=a3,r++);for(o=a3;o<t&&wAe(o,e,t)!==t-Di;o++);if(r===1){let a=(t+Di)/Hne;return function(c,u){let d=c.pow(u,a);if(!c.eql(c.sqr(d),u))throw new Error(\"Cannot find square root\");return d}}let i=(n+Di)/a3;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error(\"Cannot find square root\");let u=r,d=a.pow(a.mul(a.ONE,o),n),h=a.pow(c,i),m=a.pow(c,n);for(;!a.eql(m,a.ONE);){if(a.eql(m,a.ZERO))return a.ZERO;let g=1;for(let E=a.sqr(m);g<u&&!a.eql(E,a.ONE);g++)E=a.sqr(E);let b=a.pow(d,Di<<BigInt(u-g-1));d=a.sqr(b),h=a.mul(h,b),m=a.mul(m,d),u=g}return h}}function R4e(t){if(t%Hne===wot){let e=(t+Di)/Hne;return function(n,r){let o=n.pow(r,e);if(!n.eql(n.sqr(o),r))throw new Error(\"Cannot find square root\");return o}}if(t%T4e===A4e){let e=(t-A4e)/T4e;return function(n,r){let o=n.mul(r,a3),i=n.pow(o,e),a=n.mul(r,i),c=n.mul(n.mul(a,a3),i),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),r))throw new Error(\"Cannot find square root\");return u}}return xAe(t)}function I4e(t,e,n){if(n<qc)throw new Error(\"Expected power > 0\");if(n===qc)return t.ONE;if(n===Di)return e;let r=t.ONE,o=e;for(;n>qc;)n&Di&&(r=t.mul(r,o)),o=t.sqr(o),n>>=Di;return r}function O4e(t,e){let n=new Array(e.length),r=e.reduce((i,a,c)=>t.is0(a)?i:(n[c]=i,t.mul(i,a)),t.ONE),o=t.inv(r);return e.reduceRight((i,a,c)=>t.is0(a)?i:(n[c]=t.mul(i,n[c]),t.mul(i,a)),o),n}function P4e(t){let e=(t-Di)/a3;return(n,r)=>n.pow(r,e)}function sne(t,e){let n=e!==void 0?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function qne(t){if(typeof t!=\"bigint\")throw new Error(\"field order must be bigint\");let e=t.toString(2).length;return Math.ceil(e/8)}function M4e(t){let e=qne(t);return e+Math.ceil(e/2)}function r3(t,e){if(IO(t),IO(e),t<0||t>=1<<8*e)throw new Error(`bad I2OSP call: value=${t} length=${e}`);let n=Array.from({length:e}).fill(0);for(let r=e-1;r>=0;r--)n[r]=255&t,t>>>=8;return new Uint8Array(n)}function Aot(t,e){let n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t[r]^e[r];return n}function IO(t){if(!Number.isSafeInteger(t))throw new Error(\"number expected\")}function EAe(t,e,n,r){(0,Su.abytes)(t),(0,Su.abytes)(e),IO(n),e.length>255&&(e=r((0,Su.concatBytes)((0,Su.utf8ToBytes)(\"H2C-OVERSIZE-DST-\"),e)));let{outputLen:o,blockLen:i}=r,a=Math.ceil(n/o);if(n>65535||a>255)throw new Error(\"expand_message_xmd: invalid lenInBytes\");let c=(0,Su.concatBytes)(e,r3(e.length,1)),u=r3(0,i),d=r3(n,2),h=new Array(a),m=r((0,Su.concatBytes)(u,t,d,r3(0,1),c));h[0]=r((0,Su.concatBytes)(m,r3(1,1),c));for(let g=1;g<=a;g++){let b=[Aot(m,h[g-1]),r3(g+1,1),c];h[g]=r((0,Su.concatBytes)(...b))}return(0,Su.concatBytes)(...h).slice(0,n)}function SAe(t,e,n,r,o){if((0,Su.abytes)(t),(0,Su.abytes)(e),IO(n),e.length>255){let i=Math.ceil(2*r/8);e=o.create({dkLen:i}).update((0,Su.utf8ToBytes)(\"H2C-OVERSIZE-DST-\")).update(e).digest()}if(n>65535||e.length>255)throw new Error(\"expand_message_xof: invalid lenInBytes\");return o.create({dkLen:n}).update(t).update(r3(n,2)).update(e).update(r3(e.length,1)).digest()}function une(t,e,n){(0,Su.validateObject)(n,{DST:\"stringOrUint8Array\",p:\"bigint\",m:\"isSafeInteger\",k:\"isSafeInteger\",hash:\"hash\"});let{p:r,k:o,m:i,hash:a,expand:c,DST:u}=n;(0,Su.abytes)(t),IO(e);let d=typeof u==\"string\"?(0,Su.utf8ToBytes)(u):u,h=r.toString(2).length,m=Math.ceil((h+o)/8),g=e*i*m,b;if(c===\"xmd\")b=EAe(t,d,g,a);else if(c===\"xof\")b=SAe(t,d,g,o,a);else{if(c!==\"_internal_pass\")throw new Error(\\'expand must be \"xmd\" or \"xof\"\\');b=t}let E=new Array(e);for(let C=0;C<e;C++){let T=new Array(i);for(let R=0;R<i;R++){let L=m*(R+C*i),D=b.subarray(L,L+m);T[R]=(0,_ot.mod)(Cot(D),r)}E[C]=T}return E}function j4e(t){return{hash:t,hmac:(e,...n)=>(0,Rot.hmac)(t,e,(0,U4e.concatBytes)(...n)),randomBytes:U4e.randomBytes}}function AAe(t,e,n){return(0,Kne.hash)(t),n===void 0&&(n=new Uint8Array(t.outputLen)),(0,CAe.hmac)(t,(0,z4e.toBytes)(n),(0,z4e.toBytes)(e))}function TAe(t,e,n,r=32){if((0,Kne.hash)(t),(0,Kne.number)(r),r>255*t.outputLen)throw new Error(\"Length should be <= 255*HashLen\");let o=Math.ceil(r/t.outputLen);n===void 0&&(n=H4e);let i=new Uint8Array(o*t.outputLen),a=CAe.hmac.create(t,e),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let d=0;d<o;d++)hne[0]=d+1,c.update(d===0?H4e:u).update(n).update(hne).digestInto(u),i.set(u,t.outputLen*d),a._cloneInto(c);return a.destroy(),c.destroy(),u.fill(0),hne.fill(0),i.slice(0,r)}function RAe(t){t.reverse();let e=1&t[15],n=0;for(let r=0;r<t.length;r++){let o=t[r];t[r]=o>>>1|n,n=(1&o)<<7}return t[0]^=225&-e,t}function W4e(t){let e=(r,o)=>t(o,r.length).update((0,Ad.toBytes)(r)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(r,o)=>t(r,o),e}function Ure(t){return t<<1^Oot&-(t>>7)}function uA(t,e){let n=0;for(;e>0;e>>=1)n^=t&-(1&e),t=Ure(t);return n}function IAe(t,e){if(t.length!==256)throw new Error(\"Wrong sbox length\");let n=new Uint32Array(256).map((d,h)=>e(t[h])),r=n.map(pne),o=r.map(pne),i=o.map(pne),a=new Uint32Array(65536),c=new Uint32Array(65536),u=new Uint16Array(65536);for(let d=0;d<256;d++)for(let h=0;h<256;h++){let m=256*d+h;a[m]=n[d]^r[h],c[m]=o[d]^i[h],u[m]=t[d]<<8|t[h]}return{sbox:t,sbox2:u,T0:n,T1:r,T2:o,T3:i,T01:a,T23:c}}function hg(t){(0,eo.bytes)(t);let e=t.length;if(![16,24,32].includes(e))throw new Error(`aes: wrong key size: should be 16, 24 or 32, got: ${e}`);let{sbox2:n}=jre,r=[];(0,yt.isAligned32)(t)||r.push(t=(0,yt.copyBytes)(t));let o=(0,yt.u32)(t),i=o.length,a=u=>w1(n,u,u,u,u),c=new Uint32Array(e+28);c.set(o);for(let u=i;u<c.length;u++){let d=c[u-1];u%i==0?d=a(Mot(d))^Not[u/i-1]:i>6&&u%i==4&&(d=a(d)),c[u]=c[u-i]^d}return(0,yt.clean)(...r),c}function PO(t){let e=hg(t),n=e.slice(),r=e.length,{sbox2:o}=jre,{T0:i,T1:a,T2:c,T3:u}=OAe;for(let d=0;d<r;d+=4)for(let h=0;h<4;h++)n[d+h]=e[r-d-4+h];(0,yt.clean)(e);for(let d=4;d<r-4;d++){let h=n[d],m=w1(o,h,h,h,h);n[d]=i[255&m]^a[m>>>8&255]^c[m>>>16&255]^u[m>>>24]}return n}function l3(t,e,n,r,o,i){return t[n<<8&65280|r>>>8&255]^e[o>>>8&65280|i>>>24&255]}function w1(t,e,n,r,o){return t[255&e|65280&n]|t[r>>>16&255|o>>>16&65280]<<16}function Td(t,e,n,r,o){let{sbox2:i,T01:a,T23:c}=jre,u=0;e^=t[u++],n^=t[u++],r^=t[u++],o^=t[u++];let d=t.length/4-2;for(let h=0;h<d;h++){let m=t[u++]^l3(a,c,e,n,r,o),g=t[u++]^l3(a,c,n,r,o,e),b=t[u++]^l3(a,c,r,o,e,n),E=t[u++]^l3(a,c,o,e,n,r);e=m,n=g,r=b,o=E}return{s0:t[u++]^w1(i,e,n,r,o),s1:t[u++]^w1(i,n,r,o,e),s2:t[u++]^w1(i,r,o,e,n),s3:t[u++]^w1(i,o,e,n,r)}}function MO(t,e,n,r,o){let{sbox2:i,T01:a,T23:c}=OAe,u=0;e^=t[u++],n^=t[u++],r^=t[u++],o^=t[u++];let d=t.length/4-2;for(let h=0;h<d;h++){let m=t[u++]^l3(a,c,e,o,r,n),g=t[u++]^l3(a,c,n,e,o,r),b=t[u++]^l3(a,c,r,n,e,o),E=t[u++]^l3(a,c,o,r,n,e);e=m,n=g,r=b,o=E}return{s0:t[u++]^w1(i,e,o,r,n),s1:t[u++]^w1(i,n,e,o,r),s2:t[u++]^w1(i,r,n,e,o),s3:t[u++]^w1(i,o,r,n,e)}}function gA(t,e){if(e===void 0)return new Uint8Array(t);if((0,eo.bytes)(e),e.length<t)throw new Error(`aes: wrong destination length, expected at least ${t}, got: ${e.length}`);if(!(0,yt.isAligned32)(e))throw new Error(\"unaligned dst\");return e}function PAe(t,e,n,r){(0,eo.bytes)(e,Of),(0,eo.bytes)(n);let o=n.length;r=gA(o,r);let i=e,a=(0,yt.u32)(i),{s0:c,s1:u,s2:d,s3:h}=Td(t,a[0],a[1],a[2],a[3]),m=(0,yt.u32)(n),g=(0,yt.u32)(r);for(let E=0;E+4<=m.length;E+=4){g[E+0]=m[E+0]^c,g[E+1]=m[E+1]^u,g[E+2]=m[E+2]^d,g[E+3]=m[E+3]^h;let C=1;for(let T=i.length-1;T>=0;T--)C=C+(255&i[T])|0,i[T]=255&C,C>>>=8;({s0:c,s1:u,s2:d,s3:h}=Td(t,a[0],a[1],a[2],a[3]))}let b=Of*Math.floor(m.length/4);if(b<o){let E=new Uint32Array([c,u,d,h]),C=(0,yt.u8)(E);for(let T=b,R=0;T<o;T++,R++)r[T]=n[T]^C[R];(0,yt.clean)(E)}return r}function dA(t,e,n,r,o){(0,eo.bytes)(n,Of),(0,eo.bytes)(r),o=gA(r.length,o);let i=n,a=(0,yt.u32)(i),c=(0,yt.createView)(i),u=(0,yt.u32)(r),d=(0,yt.u32)(o),h=e?0:12,m=r.length,g=c.getUint32(h,e),{s0:b,s1:E,s2:C,s3:T}=Td(t,a[0],a[1],a[2],a[3]);for(let L=0;L+4<=u.length;L+=4)d[L+0]=u[L+0]^b,d[L+1]=u[L+1]^E,d[L+2]=u[L+2]^C,d[L+3]=u[L+3]^T,g=g+1>>>0,c.setUint32(h,g,e),{s0:b,s1:E,s2:C,s3:T}=Td(t,a[0],a[1],a[2],a[3]);let R=Of*Math.floor(u.length/4);if(R<m){let L=new Uint32Array([b,E,C,T]),D=(0,yt.u8)(L);for(let G=R,W=0;G<m;G++,W++)o[G]=r[G]^D[W];(0,yt.clean)(L)}return o}function V4e(t){if((0,eo.bytes)(t),t.length%Of!=0)throw new Error(\"aes/(cbc-ecb).decrypt ciphertext should consist of blocks with size 16\")}function $4e(t,e,n){(0,eo.bytes)(t);let r=t.length,o=r%Of;if(!e&&o!==0)throw new Error(\"aec/(cbc-ecb): unpadded plaintext with disabled padding\");(0,yt.isAligned32)(t)||(t=(0,yt.copyBytes)(t));let i=(0,yt.u32)(t);if(e){let c=Of-o;c||(c=Of),r+=c}let a=gA(r,n);return{b:i,o:(0,yt.u32)(a),out:a}}function K4e(t,e){if(!e)return t;let n=t.length;if(!n)throw new Error(\"aes/pcks5: empty ciphertext not allowed\");let r=t[n-1];if(r<=0||r>16)throw new Error(\"aes/pcks5: wrong padding\");let o=t.subarray(0,-r);for(let i=0;i<r;i++)if(t[n-i-1]!==r)throw new Error(\"aes/pcks5: wrong padding\");return o}function G4e(t){let e=new Uint8Array(16),n=(0,yt.u32)(e);e.set(t);let r=Of-t.length;for(let o=Of-r;o<Of;o++)e[o]=r;return n}function MAe(t,e,n,r,o){let i=o==null?0:o.length,a=t.create(n,r.length+i);o&&a.update(o),a.update(r);let c=new Uint8Array(16),u=(0,yt.createView)(c);o&&(0,yt.setBigUint64)(u,0,BigInt(8*i),e),(0,yt.setBigUint64)(u,8,BigInt(8*r.length),e),a.update(c);let d=a.digest();return(0,yt.clean)(c),d}function NAe(t){return t!=null&&typeof t==\"object\"&&(t instanceof Uint32Array||t.constructor.name===\"Uint32Array\")}function LAe(t,e){if((0,eo.bytes)(e,16),!NAe(t))throw new Error(\"_encryptBlock accepts result of expandKeyLE\");let n=(0,yt.u32)(e),{s0:r,s1:o,s2:i,s3:a}=Td(t,n[0],n[1],n[2],n[3]);return n[0]=r,n[1]=o,n[2]=i,n[3]=a,e}function BAe(t,e){if((0,eo.bytes)(e,16),!NAe(t))throw new Error(\"_decryptBlock accepts result of expandKeyLE\");let n=(0,yt.u32)(e),{s0:r,s1:o,s2:i,s3:a}=MO(t,n[0],n[1],n[2],n[3]);return n[0]=r,n[1]=o,n[2]=i,n[3]=a,e}function mne(t){return t.byteOffset%4==0}function zAe(t){let e=(r,o)=>t(o).update((0,mO.toBytes)(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}function $Ae(t){let{context:e}=t;He.RemoteCommunication(`[RemoteCommunication: clean()] context=${e}`),t.channelConfig=void 0,t.ready=!1,t.originatorConnectStarted=!1}function KAe(t,e){return ct(this,void 0,void 0,function*(){var n;let r=(n=t.state.keyExchange)===null||n===void 0?void 0:n.encryptMessage(JSON.stringify(e)),o={id:t.state.channelId,context:t.state.context,clientType:t.state.isOriginator?\"dapp\":\"wallet\",message:r,plaintext:t.state.hasPlaintext?JSON.stringify(e):void 0};return He.SocketService(`[SocketService: encryptAndSendMessage()] context=${t.state.context}`,o),e.type===hs.TERMINATE&&(t.state.manualDisconnect=!0),new Promise((i,a)=>{var c;(c=t.state.socket)===null||c===void 0||c.emit(vt.MESSAGE,o,(u,d)=>{var h;u&&(He.SocketService(`[SocketService: encryptAndSendMessage()] error=${u}`),a(u)),He.SocketService(\"[encryptAndSendMessage] response\",d),i((h=d?.success)!==null&&h!==void 0&&h)})})})}function rCe(t,e){He.SocketService(`[SocketService: setupChannelListener()] context=${t.state.context} setting socket listeners for channel ${e}...`);let{socket:n}=t.state,{keyExchange:r}=t.state;n&&t.state.isOriginator&&(t.state.debug&&(n?.io.on(\"error\",o=>{He.SocketService(`[SocketService: setupChannelListener()] context=${t.state.context} socket event=error`,o)}),n?.io.on(\"reconnect\",o=>{He.SocketService(`[SocketService: setupChannelListener()] context=${t.state.context} socket event=reconnect`,o),Xne(t).catch(i=>{})}),n?.io.on(\"reconnect_error\",o=>{He.SocketService(`[SocketService: setupChannelListener()] context=${t.state.context} socket event=reconnect_error`,o)}),n?.io.on(\"reconnect_failed\",()=>{He.SocketService(`[SocketService: setupChannelListener()] context=${t.state.context} socket event=reconnect_failed`)})),n?.on(\"disconnect\",o=>(He.SocketService(`[SocketService: setupChannelListener()] on \\'disconnect\\' -- MetaMaskSDK socket disconnected \\'${o}\\' begin recovery...`),function(i){return a=>{He.SocketService(`[SocketService: handleDisconnect()] on \\'disconnect\\' manualDisconnect=${i.state.manualDisconnect}`,a),i.state.manualDisconnect||(i.emit(vt.SOCKET_DISCONNECTED),Xne(i).catch(c=>{}))}}(t)(o)))),$ot.forEach(({event:o,handler:i})=>{n?.on(`${o}-${e}`,i(t,e))}),Kot.forEach(({event:o,handler:i})=>{r?.on(o,i(t))}),t.state.setupChannelListeners=!0}function Got(t){return()=>ct(this,void 0,void 0,function*(){var e,n,r;let{state:o}=t;if(o.authorized)return;yield ct(this,void 0,void 0,function*(){for(;!o.walletInfo;)yield yA(500)});let i=\"7.3\".localeCompare(((e=o.walletInfo)===null||e===void 0?void 0:e.version)||\"\");if(He.RemoteCommunication(`[RemoteCommunication: handleAuthorizedEvent()] HACK \\'authorized\\' version=${(n=o.walletInfo)===null||n===void 0?void 0:n.version} compareValue=${i}`),i!==1)return;let a=o.platformType===Al.MobileWeb||o.platformType===Al.ReactNative||o.platformType===Al.MetaMaskMobileWebview;He.RemoteCommunication(`[RemoteCommunication: handleAuthorizedEvent()] HACK \\'authorized\\' platform=${o.platformType} secure=${a} channel=${o.channelId} walletVersion=${(r=o.walletInfo)===null||r===void 0?void 0:r.version}`),a&&(o.authorized=!0,t.emit(vt.AUTHORIZED))})}function Zot(t){return e=>{let{state:n}=t;He.RemoteCommunication(`[RemoteCommunication: handleChannelCreatedEvent()] context=${n.context} on \\'channel_created\\' channelId=${e}`),t.emit(vt.CHANNEL_CREATED,e)}}function Yot(t,e){return()=>{var n,r,o,i;let{state:a}=t;He.RemoteCommunication(`[RemoteCommunication: handleClientsConnectedEvent()] on \\'clients_connected\\' channel=${a.channelId} keysExchanged=${(r=(n=a.communicationLayer)===null||n===void 0?void 0:n.getKeyInfo())===null||r===void 0?void 0:r.keysExchanged}`),a.analytics&&Yv(Object.assign(Object.assign({id:(o=a.channelId)!==null&&o!==void 0?o:\"\",event:a.reconnection?pa.RECONNECT:a.isOriginator?pa.REQUEST:pa.REQUEST_MOBILE},a.originatorInfo),{commLayer:e,sdkVersion:a.sdkVersion,walletVersion:(i=a.walletInfo)===null||i===void 0?void 0:i.version,commLayerVersion:h3.version}),a.communicationServerUrl).catch(c=>{}),a.clientsConnected=!0,a.originatorInfoSent=!1,t.emit(vt.CLIENTS_CONNECTED)}}function Qot(t){return e=>{let{state:n}=t;He.RemoteCommunication(`[RemoteCommunication: handleClientsDisconnectedEvent()] context=${n.context} on \\'clients_disconnected\\' channelId=${e}`),n.relayPersistence||(n.clientsConnected=!1,n.ready=!1,n.authorized=!1),t.emit(vt.CLIENTS_DISCONNECTED,n.channelId),t.setConnectionStatus(Wc.DISCONNECTED)}}function Jot(t){return e=>{var n;let{state:r}=t;if(He.RemoteCommunication(`[RemoteCommunication: handleClientsWaitingEvent()] context=${r.context} on \\'clients_waiting\\' numberUsers=${e} ready=${r.ready} autoStarted=${r.originatorConnectStarted}`),t.setConnectionStatus(Wc.WAITING),t.emit(vt.CLIENTS_WAITING,e),r.originatorConnectStarted){He.RemoteCommunication(`[RemoteCommunication: handleClientsWaitingEvent()] on \\'clients_waiting\\' watch autoStarted=${r.originatorConnectStarted} timeout`,r.autoConnectOptions);let o=((n=r.autoConnectOptions)===null||n===void 0?void 0:n.timeout)||3e3,i=setTimeout(()=>{He.RemoteCommunication(`[RemoteCommunication: handleClientsWaitingEvent()] setTimeout(${o}) terminate channelConfig`,r.autoConnectOptions),r.originatorConnectStarted=!1,r.ready||t.setConnectionStatus(Wc.TIMEOUT),clearTimeout(i)},o)}}}function Xot(t,e){return n=>{var r,o,i,a,c,u,d,h;let{state:m}=t;if(He.RemoteCommunication(`[RemoteCommunication: handleKeysExchangedEvent()] context=${m.context} on commLayer.\\'keys_exchanged\\' channel=${m.channelId}`,n),(o=(r=m.communicationLayer)===null||r===void 0?void 0:r.getKeyInfo())===null||o===void 0?void 0:o.keysExchanged){let g=Object.assign(Object.assign({},m.channelConfig),{channelId:(i=m.channelId)!==null&&i!==void 0?i:\"\",validUntil:((a=m.channelConfig)===null||a===void 0?void 0:a.validUntil)||wA,localKey:m.communicationLayer.getKeyInfo().ecies.private,otherKey:m.communicationLayer.getKeyInfo().ecies.otherPubKey});(c=m.storageManager)===null||c===void 0||c.persistChannelConfig(g).catch(b=>{}),t.setConnectionStatus(Wc.LINKED)}(function(g,b){var E,C,T,R,L,D,G,W;let{state:J}=g;He.RemoteCommunication(`[RemoteCommunication: setLastActiveDate()] channel=${J.channelId}`,b);let ne=Object.assign(Object.assign({},J.channelConfig),{channelId:(E=J.channelId)!==null&&E!==void 0?E:\"\",validUntil:(T=(C=J.channelConfig)===null||C===void 0?void 0:C.validUntil)!==null&&T!==void 0?T:0,relayPersistence:J.relayPersistence,localKey:(L=(R=J.communicationLayer)===null||R===void 0?void 0:R.state.keyExchange)===null||L===void 0?void 0:L.getKeyInfo().ecies.private,otherKey:(G=(D=J.communicationLayer)===null||D===void 0?void 0:D.state.keyExchange)===null||G===void 0?void 0:G.getKeyInfo().ecies.otherPubKey,lastActive:b.getTime()});(W=J.storageManager)===null||W===void 0||W.persistChannelConfig(ne)})(t,new Date),m.analytics&&m.channelId&&Yv(Object.assign(Object.assign({id:m.channelId,event:n.isOriginator?pa.CONNECTED:pa.CONNECTED_MOBILE},m.originatorInfo),{sdkVersion:m.sdkVersion,commLayer:e,commLayerVersion:h3.version,walletVersion:(u=m.walletInfo)===null||u===void 0?void 0:u.version}),m.communicationServerUrl).catch(g=>{}),m.isOriginator=n.isOriginator,n.isOriginator||((d=m.communicationLayer)===null||d===void 0||d.sendMessage({type:hs.READY}),m.ready=!0,m.paused=!1),n.isOriginator&&!m.originatorInfoSent&&((h=m.communicationLayer)===null||h===void 0||h.sendMessage({type:hs.ORIGINATOR_INFO,originatorInfo:m.originatorInfo,originator:m.originatorInfo}),m.originatorInfoSent=!0)}}function eit(t){return e=>{let n=e;e.message&&(n=n.message),function(r,o){let{state:i}=o;if(He.RemoteCommunication(`[RemoteCommunication: onCommunicationLayerMessage()] context=${i.context} on \\'message\\' typeof=${typeof r}`,r),o.state.ready=!0,i.isOriginator||r.type!==hs.ORIGINATOR_INFO)if(i.isOriginator&&r.type===hs.WALLET_INFO)(function(a,c){let{state:u}=a;u.walletInfo=c.walletInfo,u.paused=!1})(o,r);else{if(i.isOriginator&&r.type===hs.WALLET_INIT)(function(a,c){return ct(this,void 0,void 0,function*(){var u,d,h;let{state:m}=a;if(m.isOriginator){let g=c.data||{};if(typeof g==\"object\"&&\"accounts\"in g&&\"chainId\"in g&&\"walletKey\"in g)try{let{channelConfig:b}=a.state;if(He.RemoteCommunication(\"WALLET_INIT: channelConfig\",JSON.stringify(b,null,2)),b){let E=g.accounts,C=g.chainId,T=g.walletKey,R,L=!1;\"deeplinkProtocol\"in g&&(L=!!g.deeplinkProtocol,a.state.deeplinkProtocolAvailable=L),\"walletVersion\"in g&&(R=g.walletVersion),yield(u=a.state.storageManager)===null||u===void 0?void 0:u.persistChannelConfig(Object.assign(Object.assign({},b),{otherKey:T,walletVersion:R,deeplinkProtocolAvailable:L,relayPersistence:!0})),yield(d=a.state.storageManager)===null||d===void 0?void 0:d.persistAccounts(E),yield(h=a.state.storageManager)===null||h===void 0?void 0:h.persistChainId(C)}a.emit(vt.WALLET_INIT,{accounts:g.accounts,chainId:g.chainId})}catch{}}})})(o,r).catch(a=>{He.RemoteCommunication(`[RemoteCommunication: onCommunicationLayerMessage()] error=${a}`)});else if(r.type===hs.TERMINATE)(function(a){return ct(this,void 0,void 0,function*(){let{state:c}=a;c.isOriginator&&(yield ZAe({options:{terminate:!0,sendMessage:!1},instance:a}),a.emit(vt.TERMINATE))})})(o).catch(a=>{He.RemoteCommunication(`[RemoteCommunication: onCommunicationLayerMessage()] error=${a}`)});else if(r.type===hs.PAUSE)(function(a){let{state:c}=a;c.paused=!0,a.setConnectionStatus(Wc.PAUSED)})(o);else if(r.type===hs.READY&&i.isOriginator)(function(a){let{state:c}=a;a.setConnectionStatus(Wc.LINKED);let u=c.paused;c.paused=!1,a.emit(vt.CLIENTS_READY,{isOriginator:c.isOriginator,walletInfo:c.walletInfo}),u&&(c.authorized=!0,a.emit(vt.AUTHORIZED))})(o);else{if(r.type===hs.OTP&&i.isOriginator)return void function(a,c){var u;let{state:d}=a;a.emit(vt.OTP,c.otpAnswer),\"6.6\".localeCompare(((u=d.walletInfo)===null||u===void 0?void 0:u.version)||\"\")===1&&a.emit(vt.SDK_RPC_CALL,{method:Vot.ETH_REQUESTACCOUNTS,params:[]})}(o,r);r.type===hs.AUTHORIZED&&i.isOriginator&&function(a){let{state:c}=a;c.authorized=!0,a.emit(vt.AUTHORIZED)}(o)}o.emit(vt.MESSAGE,r)}else(function(a,c){var u;let{state:d}=a;(u=d.communicationLayer)===null||u===void 0||u.sendMessage({type:hs.WALLET_INFO,walletInfo:d.walletInfo}),d.originatorInfo=c.originatorInfo||c.originator,a.emit(vt.CLIENTS_READY,{isOriginator:d.isOriginator,originatorInfo:d.originatorInfo}),d.paused=!1})(o,r)}(n,t)}}function tit(t){return()=>{let{state:e}=t;He.RemoteCommunication(\"[RemoteCommunication: handleSocketReconnectEvent()] on \\'socket_reconnect\\' -- reset key exchange status / set ready to false\"),e.ready=!1,e.authorized=!1,$Ae(e),t.emitServiceStatusEvent({context:\"socket_reconnect\"})}}function nit(t){return()=>{let{state:e}=t;He.RemoteCommunication(\"[RemoteCommunication: handleSocketDisconnectedEvent()] on \\'socket_Disconnected\\' set ready to false\"),e.ready=!1}}function rit(t){return()=>ct(this,void 0,void 0,function*(){var e,n,r,o,i,a,c;let{state:u}=t;He.RemoteCommunication(`[RemoteCommunication: handleFullPersistenceEvent()] context=${u.context}`),t.state.ready=!0,t.state.clientsConnected=!0,t.state.authorized=!0,t.state.relayPersistence=!0,(e=t.state.communicationLayer)===null||e===void 0||e.getKeyExchange().setKeysExchanged(!0),t.emit(vt.KEYS_EXCHANGED,{keysExchanged:!0,isOriginator:!0}),t.emit(vt.AUTHORIZED),t.emit(vt.CLIENTS_READY),t.emit(vt.CHANNEL_PERSISTENCE);try{u.channelConfig=Object.assign(Object.assign({},u.channelConfig),{localKey:(n=u.communicationLayer)===null||n===void 0?void 0:n.getKeyExchange().getKeyInfo().ecies.private,otherKey:(r=u.communicationLayer)===null||r===void 0?void 0:r.getKeyExchange().getOtherPublicKey(),channelId:(o=u.channelId)!==null&&o!==void 0?o:\"\",validUntil:(a=(i=u.channelConfig)===null||i===void 0?void 0:i.validUntil)!==null&&a!==void 0?a:wA,relayPersistence:!0}),yield(c=u.storageManager)===null||c===void 0?void 0:c.persistChannelConfig(u.channelConfig)}catch{}})}function iCe({communicationLayerPreference:t,otherPublicKey:e,reconnect:n,ecies:r,communicationServerUrl:o=RS,instance:i}){var a,c,u,d,h,m,g,b,E,C,T;let{state:R}=i;if(He.RemoteCommunication(\"[initCommunicationLayer()] \",JSON.stringify(R,null,2)),t!==p3.SOCKET)throw new Error(\"Invalid communication protocol\");R.communicationLayer=new ere({communicationLayerPreference:t,otherPublicKey:e,reconnect:n,transports:R.transports,communicationServerUrl:o,context:R.context,ecies:r,logging:R.logging,remote:i});let L=typeof document<\"u\"&&document.URL||\"\",D=typeof document<\"u\"&&document.title||\"\";!((a=R.dappMetadata)===null||a===void 0)&&a.url&&(L=R.dappMetadata.url),!((c=R.dappMetadata)===null||c===void 0)&&c.name&&(D=R.dappMetadata.name);let G=(m=(d=(u=R.dappMetadata)===null||u===void 0?void 0:u.name)!==null&&d!==void 0?d:(h=R.dappMetadata)===null||h===void 0?void 0:h.url)!==null&&m!==void 0?m:\"N/A\",W=typeof window<\"u\"&&window.location!==void 0&&(g=window.location.hostname)!==null&&g!==void 0?g:G,J={url:L,title:D,source:(b=R.dappMetadata)===null||b===void 0?void 0:b.source,dappId:W,icon:((E=R.dappMetadata)===null||E===void 0?void 0:E.iconUrl)||((C=R.dappMetadata)===null||C===void 0?void 0:C.base64Icon),platform:R.platformType,apiVersion:h3.version,connector:(T=R.dappMetadata)===null||T===void 0?void 0:T.connector};R.originatorInfo=J;let ne={[vt.AUTHORIZED]:Got(i),[vt.MESSAGE]:eit(i),[vt.CHANNEL_PERSISTENCE]:rit(i),[vt.CLIENTS_CONNECTED]:Yot(i,t),[vt.KEYS_EXCHANGED]:Xot(i,t),[vt.SOCKET_DISCONNECTED]:nit(i),[vt.SOCKET_RECONNECT]:tit(i),[vt.CLIENTS_DISCONNECTED]:Qot(i),[vt.KEY_INFO]:()=>{},[vt.CHANNEL_CREATED]:Zot(i),[vt.CLIENTS_WAITING]:Jot(i),[vt.RPC_UPDATE]:ie=>{i.emit(vt.RPC_UPDATE,ie)}};for(let[ie,Z]of Object.entries(ne))try{R.communicationLayer.on(ie,Z)}catch{}}function ZAe(t){return ct(this,arguments,void 0,function*({options:e,instance:n}){let{state:r}=n;return He.RemoteCommunication(`[RemoteCommunication: disconnect()] channel=${r.channelId}`,e),new Promise((o,i)=>{var a,c,u,d,h,m;e?.terminate?(n.state.ready&&Yv({id:(a=n.state.channelId)!==null&&a!==void 0?a:\"\",event:pa.TERMINATED},n.state.communicationServerUrl).catch(g=>{}),r.ready=!1,r.paused=!1,(c=r.storageManager)===null||c===void 0||c.terminate((u=r.channelId)!==null&&u!==void 0?u:\"\"),n.state.terminated=!0,e.sendMessage?!((d=r.communicationLayer)===null||d===void 0)&&d.getKeyInfo().keysExchanged&&n.state.communicationLayer&&KAe(n.state.communicationLayer,{type:hs.TERMINATE}).then(()=>{o(!0)}).catch(g=>{i(g)}):o(!0),r.authorized=!1,r.relayPersistence=!1,r.channelId=Z8(),e.channelId=r.channelId,r.channelConfig=void 0,r.originatorConnectStarted=!1,(h=r.communicationLayer)===null||h===void 0||h.disconnect(e),n.setConnectionStatus(Wc.TERMINATED)):((m=r.communicationLayer)===null||m===void 0||m.disconnect(e),n.setConnectionStatus(Wc.DISCONNECTED),o(!0))})})}function sit(t){let e={ethDecryptDeprecation:!1,ethGetEncryptionPublicKeyDeprecation:!1,walletWatchAssetNFTExperimental:!1};return(n,r,o)=>{e.ethDecryptDeprecation||n.method!==\"eth_decrypt\"?e.ethGetEncryptionPublicKeyDeprecation||n.method!==\"eth_getEncryptionPublicKey\"?!e.walletWatchAssetNFTExperimental&&n.method===\"wallet_watchAsset\"&&[oit,iit].includes(n.params?.type||\"\")&&(t.warn(Vs.warnings.rpc.walletWatchAssetNFTExperimental),e.walletWatchAssetNFTExperimental=!0):(t.warn(Vs.warnings.rpc.ethGetEncryptionPublicKeyDeprecation),e.ethGetEncryptionPublicKeyDeprecation=!0):(t.warn(Vs.warnings.rpc.ethDecryptDeprecation),e.ethDecryptDeprecation=!0),o()}}function ait(){return(t,e,n,r)=>{let o=t.id,i=sCe=(sCe+1)%YAe;t.id=i,e.id=i,n(a=>{t.id=o,e.id=o,a()})}}function cCe(t){return!!t&&typeof t==\"object\"&&!Array.isArray(t)}function Zv(t){return typeof t==\"object\"&&t!=null}function k1(t){return typeof t==\"symbol\"?t.toString():typeof t==\"string\"?JSON.stringify(t):`${t}`}function cit(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t==\"string\"&&(t={message:t});let{path:o,branch:i}=e,{type:a}=n,{refinement:c,message:u=`Expected a value of type \\\\`${a}\\\\`${c?` with refinement \\\\`${c}\\\\``:\"\"}, but received: \\\\`${k1(r)}\\\\``}=t;return{value:r,type:a,refinement:c,key:o[o.length-1],path:o,branch:i,...t,message:u}}function*lCe(t,e,n,r){(function(o){return Zv(o)&&typeof o[Symbol.iterator]==\"function\"})(t)||(t=[t]);for(let o of t){let i=cit(o,e,n,r);i&&(yield i)}}function*Hre(t,e,n={}){let{path:r=[],branch:o=[t],coerce:i=!1,mask:a=!1}=n,c={path:r,branch:o};if(i&&(t=e.coercer(t,c),a&&e.type!==\"type\"&&Zv(e.schema)&&Zv(t)&&!Array.isArray(t)))for(let d in t)e.schema[d]===void 0&&delete t[d];let u=\"valid\";for(let d of e.validator(t,c))d.explanation=n.message,u=\"not_valid\",yield[d,void 0];for(let[d,h,m]of e.entries(t,c)){let g=Hre(h,m,{path:d===void 0?r:[...r,d],branch:d===void 0?o:[...o,h],coerce:i,mask:a,message:n.message});for(let b of g)b[0]?(u=b[0].refinement!=null?\"not_refined\":\"not_valid\",yield[b[0],void 0]):i&&(h=b[1],d===void 0?t=h:t instanceof Map?t.set(d,h):t instanceof Set?t.add(h):Zv(t)&&(h!==void 0||d in t)&&(t[d]=h))}if(u!==\"not_valid\")for(let d of e.refiner(t,c))d.explanation=n.message,u=\"not_refined\",yield[d,void 0];u===\"valid\"&&(yield[void 0,t])}function QAe(t,e,n){let r=LO(t,e,{message:n});if(r[0])throw r[0]}function JAe(t,e,n){let r=LO(t,e,{coerce:!0,message:n});if(r[0])throw r[0];return r[1]}function kA(t,e){return!LO(t,e)[0]}function LO(t,e,n={}){let r=Hre(t,e,n),o=function(i){let{done:a,value:c}=i.next();return a?void 0:c}(r);return o[0]?[new nre(o[0],function*(){for(let a of r)a[0]&&(yield a[0])}),void 0]:[void 0,o[1]]}function m3(t,e){return new Nh({type:t,schema:null,validator:e})}function uCe(t){let e;return new Nh({type:\"lazy\",schema:null,*entries(n,r){e??(e=t()),yield*e.entries(n,r)},validator:(n,r)=>(e??(e=t()),e.validator(n,r)),coercer:(n,r)=>(e??(e=t()),e.coercer(n,r)),refiner:(n,r)=>(e??(e=t()),e.refiner(n,r))})}function XAe(t){return new Nh({type:\"array\",schema:t,*entries(e){if(t&&Array.isArray(e))for(let[n,r]of e.entries())yield[n,r,t]},coercer:e=>Array.isArray(e)?e.slice():e,validator:e=>Array.isArray(e)||`Expected an array value, but received: ${k1(e)}`})}function eTe(t){let e=k1(t),n=typeof t;return new Nh({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?t:null,validator:r=>r===t||`Expected the literal \\\\`${e}\\\\`, but received: ${k1(r)}`})}function tTe(){return m3(\"number\",t=>typeof t==\"number\"&&!isNaN(t)||`Expected a number, but received: ${k1(t)}`)}function nTe(t){let e=t?Object.keys(t):[],n=m3(\"never\",()=>!1);return new Nh({type:\"object\",schema:t||null,*entries(r){if(t&&Zv(r)){let o=new Set(Object.keys(r));for(let i of e)o.delete(i),yield[i,r[i],t[i]];for(let i of o)yield[i,r[i],n]}},validator:r=>Zv(r)||`Expected an object, but received: ${k1(r)}`,coercer:r=>Zv(r)?{...r}:r})}function dCe(t){return new Nh({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function rTe(t,e){return new Nh({type:\"record\",schema:null,*entries(n){if(Zv(n))for(let r in n){let o=n[r];yield[r,r,t],yield[r,o,e]}},validator:n=>Zv(n)||`Expected an object, but received: ${k1(n)}`})}function g3(){return m3(\"string\",t=>typeof t==\"string\"||`Expected a string, but received: ${k1(t)}`)}function fq(t){let e=t.map(n=>n.type).join(\" | \");return new Nh({type:\"union\",schema:null,coercer(n){for(let r of t){let[o,i]=r.validate(n,{coerce:!0});if(!o)return i}return n},validator(n,r){let o=[];for(let i of t){let[...a]=Hre(n,i,r),[c]=a;if(!c[0])return[];for(let[u]of a)u&&o.push(u)}return[`Expected the value to satisfy a union of \\\\`${e}\\\\`, but received: ${k1(n)}`,...o]}})}function lit(t){return function(e){return function(n){return typeof n==\"object\"&&n!==null&&\"message\"in n}(e)&&typeof e.message==\"string\"?e.message:e==null?\"\":String(e)}(t).replace(/\\\\.$/u,\"\")}function uit(t,e){return n=t,typeof n?.prototype?.constructor?.name==\"string\"?new t({message:e}):t({message:e});var n}function oTe(){throw new Error(\"setTimeout has not been defined\")}function iTe(){throw new Error(\"clearTimeout has not been defined\")}function sTe(t){if(Jx===setTimeout)return setTimeout(t,0);if((Jx===oTe||!Jx)&&setTimeout)return Jx=setTimeout,setTimeout(t,0);try{return Jx(t,0)}catch{try{return Jx.call(null,t,0)}catch{return Jx.call(this,t,0)}}}function fit(){bA&&_S&&(bA=!1,_S.length?Gv=_S.concat(Gv):mH=-1,Gv.length&&aTe())}function aTe(){if(!bA){var t=sTe(fit);bA=!0;for(var e=Gv.length;e;){for(_S=Gv,Gv=[];++mH<e;)_S&&_S[mH].run();mH=-1,e=Gv.length}_S=null,bA=!1,function(n){if(Xx===clearTimeout)return clearTimeout(n);if((Xx===iTe||!Xx)&&clearTimeout)return Xx=clearTimeout,clearTimeout(n);try{return Xx(n)}catch{try{return Xx.call(null,n)}catch{return Xx.call(this,n)}}}(t)}}function cTe(t,e){this.fun=t,this.array=e}function OS(){}function fCe({path:t,branch:e}){let n=t[t.length-1];return qH(e[e.length-2],n)}function WH(t){return new Nh({...t,type:`optional ${t.type}`,validator:(e,n)=>!fCe(n)||t.validator(e,n),refiner:(e,n)=>!fCe(n)||t.refiner(e,n)})}function rre(t){try{return function(e){JAe(e,DO)}(t),!0}catch{return!1}}function mCe(t){return kA(t,Eit)}function gCe(t){return kA(t,ore)}function uTe(t,e=kit){if(function(n){return Number.isInteger(n)}(t)){let n=t.toString();if(qH(aCe,n))return aCe[n].message;if(function(r){return r>=-32099&&r<=-32e3}(t))return Cit}return e}function bCe(t,{fallbackError:e=_it,shouldIncludeStack:n=!0}={}){if(!gCe(e))throw new Error(\"Must provide fallback error with integer number code and string message.\");let r=function(o,i){if(o&&typeof o==\"object\"&&\"serialize\"in o&&typeof o.serialize==\"function\")return o.serialize();if(gCe(o))return o;let a=dTe(o);return{...i,data:{cause:a}}}(t,e);return n||delete r.stack,r}function dTe(t){return Array.isArray(t)?t.map(e=>rre(e)?e:cCe(e)?vCe(e):null):cCe(t)?vCe(t):rre(t)?t:null}function vCe(t){return Object.getOwnPropertyNames(t).reduce((e,n)=>{let r=t[n];return rre(r)&&(e[n]=r),e},{})}function pTe(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function gO(t,e,n,r){var o;r===void 0&&(r=pTe()),ire(t,\"\",0,[],void 0,0,r);try{o=CS.length===0?JSON.stringify(t,e,n):JSON.stringify(t,mTe(e),n)}catch{return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\")}finally{for(;IS.length!==0;){var i=IS.pop();i.length===4?Object.defineProperty(i[0],i[1],i[3]):i[0][i[1]]=i[2]}}return o}function vA(t,e,n,r){var o=Object.getOwnPropertyDescriptor(r,n);o.get!==void 0?o.configurable?(Object.defineProperty(r,n,{value:t}),IS.push([r,n,e,o])):CS.push([e,n,t]):(r[n]=t,IS.push([r,n,e]))}function ire(t,e,n,r,o,i,a){var c;if(i+=1,typeof t==\"object\"&&t!==null){for(c=0;c<r.length;c++)if(r[c]===t)return void vA(hTe,t,e,o);if(a.depthLimit!==void 0&&i>a.depthLimit||a.edgesLimit!==void 0&&n+1>a.edgesLimit)return void vA($H,t,e,o);if(r.push(t),Array.isArray(t))for(c=0;c<t.length;c++)ire(t[c],c,c,r,t,i,a);else{var u=Object.keys(t);for(c=0;c<u.length;c++){var d=u[c];ire(t[d],d,c,r,t,i,a)}}r.pop()}}function Ait(t,e){return t<e?-1:t>e?1:0}function wCe(t,e,n,r){r===void 0&&(r=pTe());var o,i=sre(t,\"\",0,[],void 0,0,r)||t;try{o=CS.length===0?JSON.stringify(i,e,n):JSON.stringify(i,mTe(e),n)}catch{return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\")}finally{for(;IS.length!==0;){var a=IS.pop();a.length===4?Object.defineProperty(a[0],a[1],a[3]):a[0][a[1]]=a[2]}}return o}function sre(t,e,n,r,o,i,a){var c;if(i+=1,typeof t==\"object\"&&t!==null){for(c=0;c<r.length;c++)if(r[c]===t)return void vA(hTe,t,e,o);try{if(typeof t.toJSON==\"function\")return}catch{return}if(a.depthLimit!==void 0&&i>a.depthLimit||a.edgesLimit!==void 0&&n+1>a.edgesLimit)return void vA($H,t,e,o);if(r.push(t),Array.isArray(t))for(c=0;c<t.length;c++)sre(t[c],c,c,r,t,i,a);else{var u={},d=Object.keys(t).sort(Ait);for(c=0;c<d.length;c++){var h=d[c];sre(t[h],h,c,r,t,i,a),u[h]=t[h]}if(o===void 0)return u;IS.push([o,e,t]),o[e]=u}r.pop()}}function mTe(t){return t=t!==void 0?t:function(e,n){return n},function(e,n){if(CS.length>0)for(var r=0;r<CS.length;r++){var o=CS[r];if(o[1]===e&&o[0]===n){n=o[2],CS.splice(r,1);break}}return t.call(this,e,n)}}function Rit(t,e){if(e!==\"[Circular]\")return e}function Iit(t,e){let[n,r]=function(o){if(o){if(typeof o==\"string\")return[o];if(typeof o==\"object\"&&!Array.isArray(o)){let{message:i,data:a}=o;if(i&&typeof i!=\"string\")throw new Error(\"Must specify string message.\");return[i??void 0,a]}}return[]}(e);return new Hv(t,n??uTe(t),r)}function e3(){}function Wo(){Wo.init.call(this)}function yTe(t){return t._maxListeners===void 0?Wo.defaultMaxListeners:t._maxListeners}function xCe(t,e,n,r){var o,i,a;if(typeof n!=\"function\")throw new TypeError(\\'\"listener\" argument must be a function\\');if((i=t._events)?(i.newListener&&(t.emit(\"newListener\",e,n.listener?n.listener:n),i=t._events),a=i[e]):(i=t._events=new e3,t._eventsCount=0),a){if(typeof a==\"function\"?a=i[e]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),!a.warned&&(o=yTe(t))&&o>0&&a.length>o){a.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+e+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=t,c.type=e,c.count=a.length,function(u){typeof console.warn==\"function\"?console.warn(u):console.log(u)}(c)}}else a=i[e]=n,++t._eventsCount;return t}function ECe(t,e,n){var r=!1;function o(){t.removeListener(e,o),r||(r=!0,n.apply(t,arguments))}return o.listener=n,o}function SCe(t){var e=this._events;if(e){var n=e[t];if(typeof n==\"function\")return 1;if(n)return n.length}return 0}function hO(t,e){for(var n=new Array(e);e--;)n[e]=t[e];return n}function kCe(t,e,n){try{Reflect.apply(t,e,n)}catch(r){setTimeout(()=>{throw r})}}function wne(t){return JSON.stringify(t,null,2)}function Lit(t){return(e,n,r)=>{typeof e.method==\"string\"&&e.method||(n.error=EO({message:\"The request \\'method\\' must be a non-empty string.\",data:e})),r(o=>{let{error:i}=n;return i&&t.error(`MetaMask - RPC Error: ${i.message}`,i),o()})}}async function TCe(t,e){try{let n=await async function(){return{name:Bit(window),icon:await Dit(window)}}();t.handle({jsonrpc:\"2.0\",id:1,method:\"metamask_sendDomainMetadata\",params:n},xTe)}catch(n){e.error({message:Vs.errors.sendSiteMetadata(),originalError:n})}}function Bit(t){let{document:e}=t,n=e.querySelector(\\'head > meta[property=\"og:site_name\"]\\');if(n)return n.content;let r=e.querySelector(\\'head > meta[name=\"title\"]\\');return r?r.content:e.title&&e.title.length>0?e.title:window.location.hostname}async function Dit(t){let{document:e}=t,n=e.querySelectorAll(\\'head > link[rel~=\"icon\"]\\');for(let r of Array.from(n))if(r&&await Fit(r.href))return r.href;return null}async function Fit(t){return new Promise((e,n)=>{try{let r=document.createElement(\"img\");r.onload=()=>e(!0),r.onerror=()=>e(!1),r.src=t}catch(r){n(r)}})}function RCe(t,e,n){try{Reflect.apply(t,e,n)}catch(r){setTimeout(()=>{throw r})}}function _Te(){return OCe?ICe:(OCe=1,ICe=qre.EventEmitter)}function hq(t){if(!FO(t)){for(var e=[],n=0;n<arguments.length;n++)e.push(S1(arguments[n]));return e.join(\" \")}n=1;for(var r=arguments,o=r.length,i=String(t).replace(Hit,function(c){if(c===\"%%\")return\"%\";if(n>=o)return c;switch(c){case\"%s\":return String(r[n++]);case\"%d\":return Number(r[n++]);case\"%j\":try{return JSON.stringify(r[n++])}catch{return\"[Circular]\"}default:return c}}),a=r[n];n<o;a=r[++n])VO(a)||!PS(a)?i+=\" \"+a:i+=\" \"+S1(a);return i}function $re(t,e){if(x1(Id.process))return function(){return $re(t,e).apply(this,arguments)};if(co.noDeprecation===!0)return t;var n=!1;return function(){if(!n){if(co.throwDeprecation)throw new Error(e);co.traceDeprecation?console.trace(e):console.error(e),n=!0}return t.apply(this,arguments)}}function ATe(t){return x1(xne)&&(xne=co.env.NODE_DEBUG||\"\"),t=t.toUpperCase(),!aH[t]&&(new RegExp(\"\\\\\\\\b\"+t+\"\\\\\\\\b\",\"i\").test(xne)?aH[t]=function(){var e=hq.apply(null,arguments);console.error(\"%s %d: %s\",t,0,e)}:aH[t]=function(){}),aH[t]}function S1(t,e){var n={seen:[],stylize:Wit};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),pq(e)?n.showHidden=e:e&&Yre(n,e),x1(n.showHidden)&&(n.showHidden=!1),x1(n.depth)&&(n.depth=2),x1(n.colors)&&(n.colors=!1),x1(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=qit),ZH(n,t,n.depth)}function qit(t,e){var n=S1.styles[e];return n?\"\\\\x1B[\"+S1.colors[n][0]+\"m\"+t+\"\\\\x1B[\"+S1.colors[n][1]+\"m\":t}function Wit(t,e){return t}function ZH(t,e,n){if(t.customInspect&&e&&CO(e.inspect)&&e.inspect!==S1&&(!e.constructor||e.constructor.prototype!==e)){var r=e.inspect(n,t);return FO(r)||(r=ZH(t,r,n)),r}var o=function(g,b){if(x1(b))return g.stylize(\"undefined\",\"undefined\");if(FO(b)){var E=\"\\'\"+JSON.stringify(b).replace(/^\"|\"$/g,\"\").replace(/\\'/g,\"\\\\\\\\\\'\").replace(/\\\\\\\\\"/g,\\'\"\\')+\"\\'\";return g.stylize(E,\"string\")}if(Gre(b))return g.stylize(\"\"+b,\"number\");if(pq(b))return g.stylize(\"\"+b,\"boolean\");if(VO(b))return g.stylize(\"null\",\"null\")}(t,e);if(o)return o;var i=Object.keys(e),a=function(g){var b={};return g.forEach(function(E,C){b[E]=!0}),b}(i);if(t.showHidden&&(i=Object.getOwnPropertyNames(e)),_O(e)&&(i.indexOf(\"message\")>=0||i.indexOf(\"description\")>=0))return Ene(e);if(i.length===0){if(CO(e)){var c=e.name?\": \"+e.name:\"\";return t.stylize(\"[Function\"+c+\"]\",\"special\")}if(kO(e))return t.stylize(RegExp.prototype.toString.call(e),\"regexp\");if(YH(e))return t.stylize(Date.prototype.toString.call(e),\"date\");if(_O(e))return Ene(e)}var u,d=\"\",h=!1,m=[\"{\",\"}\"];return Kre(e)&&(h=!0,m=[\"[\",\"]\"]),CO(e)&&(d=\" [Function\"+(e.name?\": \"+e.name:\"\")+\"]\"),kO(e)&&(d=\" \"+RegExp.prototype.toString.call(e)),YH(e)&&(d=\" \"+Date.prototype.toUTCString.call(e)),_O(e)&&(d=\" \"+Ene(e)),i.length!==0||h&&e.length!=0?n<0?kO(e)?t.stylize(RegExp.prototype.toString.call(e),\"regexp\"):t.stylize(\"[Object]\",\"special\"):(t.seen.push(e),u=h?function(g,b,E,C,T){for(var R=[],L=0,D=b.length;L<D;++L)MTe(b,String(L))?R.push(Sne(g,b,E,C,String(L),!0)):R.push(\"\");return T.forEach(function(G){G.match(/^\\\\d+$/)||R.push(Sne(g,b,E,C,G,!0))}),R}(t,e,n,a,i):i.map(function(g){return Sne(t,e,n,a,g,h)}),t.seen.pop(),function(g,b,E){var C=g.reduce(function(T,R){return R.indexOf(`\\n`),T+R.replace(/\\\\u001b\\\\[\\\\d\\\\d?m/g,\"\").length+1},0);return C>60?E[0]+(b===\"\"?\"\":b+`\\n `)+\" \"+g.join(`,\\n  `)+\" \"+E[1]:E[0]+b+\" \"+g.join(\", \")+\" \"+E[1]}(u,d,m)):m[0]+d+m[1]}function Ene(t){return\"[\"+Error.prototype.toString.call(t)+\"]\"}function Sne(t,e,n,r,o,i){var a,c,u;if((u=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?c=u.set?t.stylize(\"[Getter/Setter]\",\"special\"):t.stylize(\"[Getter]\",\"special\"):u.set&&(c=t.stylize(\"[Setter]\",\"special\")),MTe(r,o)||(a=\"[\"+o+\"]\"),c||(t.seen.indexOf(u.value)<0?(c=VO(n)?ZH(t,u.value,null):ZH(t,u.value,n-1)).indexOf(`\\n`)>-1&&(c=i?c.split(`\\n`).map(function(d){return\"  \"+d}).join(`\\n`).substr(2):`\\n`+c.split(`\\n`).map(function(d){return\"   \"+d}).join(`\\n`)):c=t.stylize(\"[Circular]\",\"special\")),x1(a)){if(i&&o.match(/^\\\\d+$/))return c;(a=JSON.stringify(\"\"+o)).match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,\"name\")):(a=a.replace(/\\'/g,\"\\\\\\\\\\'\").replace(/\\\\\\\\\"/g,\\'\"\\').replace(/(^\"|\"$)/g,\"\\'\"),a=t.stylize(a,\"string\"))}return a+\": \"+c}function Kre(t){return Array.isArray(t)}function pq(t){return typeof t==\"boolean\"}function VO(t){return t===null}function TTe(t){return t==null}function Gre(t){return typeof t==\"number\"}function FO(t){return typeof t==\"string\"}function RTe(t){return typeof t==\"symbol\"}function x1(t){return t===void 0}function kO(t){return PS(t)&&Zre(t)===\"[object RegExp]\"}function PS(t){return typeof t==\"object\"&&t!==null}function YH(t){return PS(t)&&Zre(t)===\"[object Date]\"}function _O(t){return PS(t)&&(Zre(t)===\"[object Error]\"||t instanceof Error)}function CO(t){return typeof t==\"function\"}function ITe(t){return t===null||typeof t==\"boolean\"||typeof t==\"number\"||typeof t==\"string\"||typeof t==\"symbol\"||t===void 0}function OTe(t){return at.isBuffer(t)}function Zre(t){return Object.prototype.toString.call(t)}function kne(t){return t<10?\"0\"+t.toString(10):t.toString(10)}function PTe(){console.log(\"%s - %s\",function(){var t=new Date,e=[kne(t.getHours()),kne(t.getMinutes()),kne(t.getSeconds())].join(\":\");return[t.getDate(),Vit[t.getMonth()],e].join(\" \")}(),hq.apply(null,arguments))}function Yre(t,e){if(!e||!PS(e))return t;for(var n=Object.keys(e),r=n.length;r--;)t[n[r]]=e[n[r]];return t}function MTe(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Qre(t){if(typeof t!=\"function\")throw new TypeError(\\'The \"original\" argument must be of type Function\\');if(ES&&t[ES]){var e;if(typeof(e=t[ES])!=\"function\")throw new TypeError(\\'The \"util.promisify.custom\" argument must be of type Function\\');return Object.defineProperty(e,ES,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var n,r,o=new Promise(function(c,u){n=c,r=u}),i=[],a=0;a<arguments.length;a++)i.push(arguments[a]);i.push(function(c,u){c?r(c):n(u)});try{t.apply(this,i)}catch(c){r(c)}return o}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),ES&&Object.defineProperty(e,ES,{value:e,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(e,CTe(t))}function $it(t,e){if(!t){var n=new Error(\"Promise was rejected with a falsy value\");n.reason=t,t=n}return e(t)}function NTe(t){if(typeof t!=\"function\")throw new TypeError(\\'The \"original\" argument must be of type Function\\');function e(){for(var n=[],r=0;r<arguments.length;r++)n.push(arguments[r]);var o=n.pop();if(typeof o!=\"function\")throw new TypeError(\"The last argument must be of type Function\");var i=this,a=function(){return o.apply(i,arguments)};t.apply(this,n).then(function(c){co.nextTick(a.bind(null,null,c))},function(c){co.nextTick($it.bind(null,c,a))})}return Object.setPrototypeOf(e,Object.getPrototypeOf(t)),Object.defineProperties(e,CTe(t)),e}function Git(){if(PCe)return _ne;function t(u,d){var h=Object.keys(u);if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(u);d&&(m=m.filter(function(g){return Object.getOwnPropertyDescriptor(u,g).enumerable})),h.push.apply(h,m)}return h}function e(u){for(var d=1;d<arguments.length;d++){var h=arguments[d]!=null?arguments[d]:{};d%2?t(Object(h),!0).forEach(function(m){n(u,m,h[m])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(h)):t(Object(h)).forEach(function(m){Object.defineProperty(u,m,Object.getOwnPropertyDescriptor(h,m))})}return u}function n(u,d,h){return(d=o(d))in u?Object.defineProperty(u,d,{value:h,enumerable:!0,configurable:!0,writable:!0}):u[d]=h,u}function r(u,d,h){return d&&function(m,g){for(var b=0;b<g.length;b++){var E=g[b];E.enumerable=E.enumerable||!1,E.configurable=!0,\"value\"in E&&(E.writable=!0),Object.defineProperty(m,o(E.key),E)}}(u.prototype,d),Object.defineProperty(u,\"prototype\",{writable:!1}),u}function o(u){var d=function(h,m){if(typeof h!=\"object\"||h===null)return h;var g=h[Symbol.toPrimitive];if(g!==void 0){var b=g.call(h,m||\"default\");if(typeof b!=\"object\")return b;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(m===\"string\"?String:Number)(h)}(u,\"string\");return typeof d==\"symbol\"?d:String(d)}PCe=1;var i=Vre.Buffer,a=LTe.inspect,c=a&&a.custom||\"inspect\";return _ne=function(){function u(){(function(d,h){if(!(d instanceof h))throw new TypeError(\"Cannot call a class as a function\")})(this,u),this.head=null,this.tail=null,this.length=0}return r(u,[{key:\"push\",value:function(d){var h={data:d,next:null};this.length>0?this.tail.next=h:this.head=h,this.tail=h,++this.length}},{key:\"unshift\",value:function(d){var h={data:d,next:this.head};this.length===0&&(this.tail=h),this.head=h,++this.length}},{key:\"shift\",value:function(){if(this.length!==0){var d=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,d}}},{key:\"clear\",value:function(){this.head=this.tail=null,this.length=0}},{key:\"join\",value:function(d){if(this.length===0)return\"\";for(var h=this.head,m=\"\"+h.data;h=h.next;)m+=d+h.data;return m}},{key:\"concat\",value:function(d){if(this.length===0)return i.alloc(0);for(var h,m,g,b=i.allocUnsafe(d>>>0),E=this.head,C=0;E;)h=E.data,m=b,g=C,i.prototype.copy.call(h,m,g),C+=E.data.length,E=E.next;return b}},{key:\"consume\",value:function(d,h){var m;return d<this.head.data.length?(m=this.head.data.slice(0,d),this.head.data=this.head.data.slice(d)):m=d===this.head.data.length?this.shift():h?this._getString(d):this._getBuffer(d),m}},{key:\"first\",value:function(){return this.head.data}},{key:\"_getString\",value:function(d){var h=this.head,m=1,g=h.data;for(d-=g.length;h=h.next;){var b=h.data,E=d>b.length?b.length:d;if(E===b.length?g+=b:g+=b.slice(0,d),(d-=E)===0){E===b.length?(++m,h.next?this.head=h.next:this.head=this.tail=null):(this.head=h,h.data=b.slice(E));break}++m}return this.length-=m,g}},{key:\"_getBuffer\",value:function(d){var h=i.allocUnsafe(d),m=this.head,g=1;for(m.data.copy(h),d-=m.data.length;m=m.next;){var b=m.data,E=d>b.length?b.length:d;if(b.copy(h,h.length-d,0,E),(d-=E)===0){E===b.length?(++g,m.next?this.head=m.next:this.head=this.tail=null):(this.head=m,m.data=b.slice(E));break}++g}return this.length-=g,h}},{key:c,value:function(d,h){return a(this,e(e({},h),{},{depth:0,customInspect:!1}))}}]),u}(),_ne}function BTe(){if(MCe)return Cne;function t(r,o){n(r,o),e(r)}function e(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit(\"close\")}function n(r,o){r.emit(\"error\",o)}return MCe=1,Cne={destroy:function(r,o){var i=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(o?o(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,co.nextTick(n,this,r)):co.nextTick(n,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(u){!o&&u?i._writableState?i._writableState.errorEmitted?co.nextTick(e,i):(i._writableState.errorEmitted=!0,co.nextTick(t,i,u)):co.nextTick(t,i,u):o?(co.nextTick(e,i),o(u)):co.nextTick(e,i)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(r,o){var i=r._readableState,a=r._writableState;i&&i.autoDestroy||a&&a.autoDestroy?r.destroy(o):r.emit(\"error\",o)}},Cne}function bm(t,e,n){n||(n=Error);var r=function(o){var i,a;function c(u,d,h){return o.call(this,function(m,g,b){return typeof e==\"string\"?e:e(m,g,b)}(u,d,h))||this}return a=o,(i=c).prototype=Object.create(a.prototype),i.prototype.constructor=i,i.__proto__=a,c}(n);r.prototype.name=n.name,r.prototype.code=t,DTe[t]=r}function BCe(t,e){if(Array.isArray(t)){var n=t.length;return t=t.map(function(r){return String(r)}),n>2?\"one of \".concat(e,\" \").concat(t.slice(0,n-1).join(\", \"),\", or \")+t[n-1]:n===2?\"one of \".concat(e,\" \").concat(t[0],\" or \").concat(t[1]):\"of \".concat(e,\" \").concat(t[0])}return\"of \".concat(e,\" \").concat(String(t))}function FTe(){if(LCe)return NCe;LCe=1;var t=MS.codes.ERR_INVALID_OPT_VALUE;return NCe={getHighWaterMark:function(e,n,r,o){var i=function(a,c,u){return a.highWaterMark!=null?a.highWaterMark:c?a[u]:null}(n,o,r);if(i!=null){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new t(o?r:\"highWaterMark\",i);return Math.floor(i)}return e.objectMode?16:16384}}}function Yit(){if(DCe)return Ane;function t(e){try{if(!_m.localStorage)return!1}catch{return!1}var n=_m.localStorage[e];return n!=null&&String(n).toLowerCase()===\"true\"}return DCe=1,Ane=function(e,n){if(t(\"noDeprecation\"))return e;var r=!1;return function(){if(!r){if(t(\"throwDeprecation\"))throw new Error(n);t(\"traceDeprecation\")?console.trace(n):console.warn(n),r=!0}return e.apply(this,arguments)}},Ane}function UTe(){if(FCe)return Tne;function t($){var F=this;this.next=null,this.entry=null,this.finish=function(){(function(_,O,z){var N=_.entry;for(_.entry=null;N;){var B=N.callback;O.pendingcb--,B(z),N=N.next}O.corkedRequestsFree.next=_})(F,$)}}var e;FCe=1,Tne=W,W.WritableState=G;var n={deprecate:Yit()},r=_Te(),o=Vre.Buffer,i=(_m!==void 0?_m:typeof window<\"u\"?window:typeof self<\"u\"?self:{}).Uint8Array||function(){},a,c=BTe(),u=FTe().getHighWaterMark,d=MS.codes,h=d.ERR_INVALID_ARG_TYPE,m=d.ERR_METHOD_NOT_IMPLEMENTED,g=d.ERR_MULTIPLE_CALLBACK,b=d.ERR_STREAM_CANNOT_PIPE,E=d.ERR_STREAM_DESTROYED,C=d.ERR_STREAM_NULL_VALUES,T=d.ERR_STREAM_WRITE_AFTER_END,R=d.ERR_UNKNOWN_ENCODING,L=c.errorOrDestroy;function D(){}function G($,F,_){e=e||xA(),$=$||{},typeof _!=\"boolean\"&&(_=F instanceof e),this.objectMode=!!$.objectMode,_&&(this.objectMode=this.objectMode||!!$.writableObjectMode),this.highWaterMark=u(this,$,\"writableHighWaterMark\",_),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var O=$.decodeStrings===!1;this.decodeStrings=!O,this.defaultEncoding=$.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(z){(function(N,B){var j=N._writableState,q=j.sync,H=j.writecb;if(typeof H!=\"function\")throw new g;if(function(U){U.writing=!1,U.writecb=null,U.length-=U.writelen,U.writelen=0}(j),B)(function(U,X,ee,se,pe){--X.pendingcb,ee?(co.nextTick(pe,se),co.nextTick(V,U,X),U._writableState.errorEmitted=!0,L(U,se)):(pe(se),U._writableState.errorEmitted=!0,L(U,se),V(U,X))})(N,j,q,B,H);else{var I=Z(j)||N.destroyed;I||j.corked||j.bufferProcessing||!j.bufferedRequest||ie(N,j),q?co.nextTick(ne,N,j,I,H):ne(N,j,I,H)}})(F,z)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=$.emitClose!==!1,this.autoDestroy=!!$.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new t(this)}function W($){var F=this instanceof(e=e||xA());if(!F&&!a.call(W,this))return new W($);this._writableState=new G($,this,F),this.writable=!0,$&&(typeof $.write==\"function\"&&(this._write=$.write),typeof $.writev==\"function\"&&(this._writev=$.writev),typeof $.destroy==\"function\"&&(this._destroy=$.destroy),typeof $.final==\"function\"&&(this._final=$.final)),r.call(this)}function J($,F,_,O,z,N,B){F.writelen=O,F.writecb=B,F.writing=!0,F.sync=!0,F.destroyed?F.onwrite(new E(\"write\")):_?$._writev(z,F.onwrite):$._write(z,N,F.onwrite),F.sync=!1}function ne($,F,_,O){_||function(z,N){N.length===0&&N.needDrain&&(N.needDrain=!1,z.emit(\"drain\"))}($,F),F.pendingcb--,O(),V($,F)}function ie($,F){F.bufferProcessing=!0;var _=F.bufferedRequest;if($._writev&&_&&_.next){var O=F.bufferedRequestCount,z=new Array(O),N=F.corkedRequestsFree;N.entry=_;for(var B=0,j=!0;_;)z[B]=_,_.isBuf||(j=!1),_=_.next,B+=1;z.allBuffers=j,J($,F,!0,F.length,z,\"\",N.finish),F.pendingcb++,F.lastBufferedRequest=null,N.next?(F.corkedRequestsFree=N.next,N.next=null):F.corkedRequestsFree=new t(F),F.bufferedRequestCount=0}else{for(;_;){var q=_.chunk,H=_.encoding,I=_.callback;if(J($,F,!1,F.objectMode?1:q.length,q,H,I),_=_.next,F.bufferedRequestCount--,F.writing)break}_===null&&(F.lastBufferedRequest=null)}F.bufferedRequest=_,F.bufferProcessing=!1}function Z($){return $.ending&&$.length===0&&$.bufferedRequest===null&&!$.finished&&!$.writing}function ae($,F){$._final(function(_){F.pendingcb--,_&&L($,_),F.prefinished=!0,$.emit(\"prefinish\"),V($,F)})}function V($,F){var _=Z(F);if(_&&(function(z,N){N.prefinished||N.finalCalled||(typeof z._final!=\"function\"||N.destroyed?(N.prefinished=!0,z.emit(\"prefinish\")):(N.pendingcb++,N.finalCalled=!0,co.nextTick(ae,z,N)))}($,F),F.pendingcb===0&&(F.finished=!0,$.emit(\"finish\"),F.autoDestroy))){var O=$._readableState;(!O||O.autoDestroy&&O.endEmitted)&&$.destroy()}return _}return $O(W,r),G.prototype.getBuffer=function(){for(var $=this.bufferedRequest,F=[];$;)F.push($),$=$.next;return F},function(){try{Object.defineProperty(G.prototype,\"buffer\",{get:n.deprecate(function(){return this.getBuffer()},\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch{}}(),typeof Symbol==\"function\"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==\"function\"?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(W,Symbol.hasInstance,{value:function($){return!!a.call(this,$)||this===W&&$&&$._writableState instanceof G}})):a=function($){return $ instanceof this},W.prototype.pipe=function(){L(this,new b)},W.prototype.write=function($,F,_){var O,z=this._writableState,N=!1,B=!z.objectMode&&(O=$,o.isBuffer(O)||O instanceof i);return B&&!o.isBuffer($)&&($=function(j){return o.from(j)}($)),typeof F==\"function\"&&(_=F,F=null),B?F=\"buffer\":F||(F=z.defaultEncoding),typeof _!=\"function\"&&(_=D),z.ending?function(j,q){var H=new T;L(j,H),co.nextTick(q,H)}(this,_):(B||function(j,q,H,I){var U;return H===null?U=new C:typeof H==\"string\"||q.objectMode||(U=new h(\"chunk\",[\"string\",\"Buffer\"],H)),!U||(L(j,U),co.nextTick(I,U),!1)}(this,z,$,_))&&(z.pendingcb++,N=function(j,q,H,I,U,X){if(!H){var ee=function(xe,_e,Me){return xe.objectMode||xe.decodeStrings===!1||typeof _e!=\"string\"||(_e=o.from(_e,Me)),_e}(q,I,U);I!==ee&&(H=!0,U=\"buffer\",I=ee)}var se=q.objectMode?1:I.length;q.length+=se;var pe=q.length<q.highWaterMark;if(pe||(q.needDrain=!0),q.writing||q.corked){var ye=q.lastBufferedRequest;q.lastBufferedRequest={chunk:I,encoding:U,isBuf:H,callback:X,next:null},ye?ye.next=q.lastBufferedRequest:q.bufferedRequest=q.lastBufferedRequest,q.bufferedRequestCount+=1}else J(j,q,!1,se,I,U,X);return pe}(this,z,B,$,F,_)),N},W.prototype.cork=function(){this._writableState.corked++},W.prototype.uncork=function(){var $=this._writableState;$.corked&&($.corked--,$.writing||$.corked||$.bufferProcessing||!$.bufferedRequest||ie(this,$))},W.prototype.setDefaultEncoding=function($){if(typeof $==\"string\"&&($=$.toLowerCase()),!([\"hex\",\"utf8\",\"utf-8\",\"ascii\",\"binary\",\"base64\",\"ucs2\",\"ucs-2\",\"utf16le\",\"utf-16le\",\"raw\"].indexOf(($+\"\").toLowerCase())>-1))throw new R($);return this._writableState.defaultEncoding=$,this},Object.defineProperty(W.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(W.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),W.prototype._write=function($,F,_){_(new m(\"_write()\"))},W.prototype._writev=null,W.prototype.end=function($,F,_){var O=this._writableState;return typeof $==\"function\"?(_=$,$=null,F=null):typeof F==\"function\"&&(_=F,F=null),$!=null&&this.write($,F),O.corked&&(O.corked=1,this.uncork()),O.ending||function(z,N,B){N.ending=!0,V(z,N),B&&(N.finished?co.nextTick(B):z.once(\"finish\",B)),N.ended=!0,z.writable=!1}(this,O,_),this},Object.defineProperty(W.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(W.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function($){this._writableState&&(this._writableState.destroyed=$)}}),W.prototype.destroy=c.destroy,W.prototype._undestroy=c.undestroy,W.prototype._destroy=function($,F){F($)},Tne}function xA(){if(UCe)return Rne;UCe=1;var t=Object.keys||function(d){var h=[];for(var m in d)h.push(m);return h};Rne=a;var e=jTe(),n=UTe();$O(a,e);for(var r=t(n.prototype),o=0;o<r.length;o++){var i=r[o];a.prototype[i]||(a.prototype[i]=n.prototype[i])}function a(d){if(!(this instanceof a))return new a(d);e.call(this,d),n.call(this,d),this.allowHalfOpen=!0,d&&(d.readable===!1&&(this.readable=!1),d.writable===!1&&(this.writable=!1),d.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once(\"end\",c)))}function c(){this._writableState.ended||co.nextTick(u,this)}function u(d){d.end()}return Object.defineProperty(a.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(a.prototype,\"writableBuffer\",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(a.prototype,\"writableLength\",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(a.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._writableState!==void 0&&this._readableState.destroyed&&this._writableState.destroyed},set:function(d){this._readableState!==void 0&&this._writableState!==void 0&&(this._readableState.destroyed=d,this._writableState.destroyed=d)}}),Rne}function SH(t){switch(this.encoding=(t||\"utf8\").toLowerCase().replace(/[-_]/,\"\"),function(e){if(e&&!Qit(e))throw new Error(\"Unknown encoding: \"+e)}(t),this.encoding){case\"utf8\":this.surrogateSize=3;break;case\"ucs2\":case\"utf16le\":this.surrogateSize=2,this.detectIncompleteChar=Xit;break;case\"base64\":this.surrogateSize=3,this.detectIncompleteChar=est;break;default:return void(this.write=Jit)}this.charBuffer=new at(6),this.charReceived=0,this.charLength=0}function Jit(t){return t.toString(this.encoding)}function Xit(t){this.charReceived=t.length%2,this.charLength=this.charReceived?2:0}function est(t){this.charReceived=t.length%3,this.charLength=this.charReceived?3:0}function tst(){}function nst(){if(HCe)return Ine;var t;function e(C,T,R){return(T=function(L){var D=function(G,W){if(typeof G!=\"object\"||G===null)return G;var J=G[Symbol.toPrimitive];if(J!==void 0){var ne=J.call(G,W||\"default\");if(typeof ne!=\"object\")return ne;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(W===\"string\"?String:Number)(G)}(L,\"string\");return typeof D==\"symbol\"?D:String(D)}(T))in C?Object.defineProperty(C,T,{value:R,enumerable:!0,configurable:!0,writable:!0}):C[T]=R,C}HCe=1;var n=Jre,r=Symbol(\"lastResolve\"),o=Symbol(\"lastReject\"),i=Symbol(\"error\"),a=Symbol(\"ended\"),c=Symbol(\"lastPromise\"),u=Symbol(\"handlePromise\"),d=Symbol(\"stream\");function h(C,T){return{value:C,done:T}}function m(C){var T=C[r];if(T!==null){var R=C[d].read();R!==null&&(C[c]=null,C[r]=null,C[o]=null,T(h(R,!1)))}}function g(C){co.nextTick(m,C)}var b=Object.getPrototypeOf(function(){}),E=Object.setPrototypeOf((e(t={get stream(){return this[d]},next:function(){var C=this,T=this[i];if(T!==null)return Promise.reject(T);if(this[a])return Promise.resolve(h(void 0,!0));if(this[d].destroyed)return new Promise(function(G,W){co.nextTick(function(){C[i]?W(C[i]):G(h(void 0,!0))})});var R,L=this[c];if(L)R=new Promise(function(G,W){return function(J,ne){G.then(function(){W[a]?J(h(void 0,!0)):W[u](J,ne)},ne)}}(L,this));else{var D=this[d].read();if(D!==null)return Promise.resolve(h(D,!1));R=new Promise(this[u])}return this[c]=R,R}},Symbol.asyncIterator,function(){return this}),e(t,\"return\",function(){var C=this;return new Promise(function(T,R){C[d].destroy(null,function(L){L?R(L):T(h(void 0,!0))})})}),t),b);return Ine=function(C){var T,R=Object.create(E,(e(T={},d,{value:C,writable:!0}),e(T,r,{value:null,writable:!0}),e(T,o,{value:null,writable:!0}),e(T,i,{value:null,writable:!0}),e(T,a,{value:C._readableState.endEmitted,writable:!0}),e(T,u,{value:function(L,D){var G=R[d].read();G?(R[c]=null,R[r]=null,R[o]=null,L(h(G,!1))):(R[r]=L,R[o]=D)},writable:!0}),T));return R[c]=null,n(C,function(L){if(L&&L.code!==\"ERR_STREAM_PREMATURE_CLOSE\"){var D=R[o];return D!==null&&(R[c]=null,R[r]=null,R[o]=null,D(L)),void(R[i]=L)}var G=R[r];G!==null&&(R[c]=null,R[r]=null,R[o]=null,G(h(void 0,!0))),R[a]=!0}),C.on(\"readable\",g.bind(null,R)),R},Ine}function jTe(){if(VCe)return One;var t;VCe=1,One=W,W.ReadableState=G,qre.EventEmitter;var e=function(I,U){return I.listeners(U).length},n=_Te(),r=Vre.Buffer,o=(_m!==void 0?_m:typeof window<\"u\"?window:typeof self<\"u\"?self:{}).Uint8Array||function(){},i,a=LTe;i=a&&a.debuglog?a.debuglog(\"stream\"):function(){};var c,u,d,h=Git(),m=BTe(),g=FTe().getHighWaterMark,b=MS.codes,E=b.ERR_INVALID_ARG_TYPE,C=b.ERR_STREAM_PUSH_AFTER_EOF,T=b.ERR_METHOD_NOT_IMPLEMENTED,R=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;$O(W,n);var L=m.errorOrDestroy,D=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function G(I,U,X){t=t||xA(),I=I||{},typeof X!=\"boolean\"&&(X=U instanceof t),this.objectMode=!!I.objectMode,X&&(this.objectMode=this.objectMode||!!I.readableObjectMode),this.highWaterMark=g(this,I,\"readableHighWaterMark\",X),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=I.emitClose!==!1,this.autoDestroy=!!I.autoDestroy,this.destroyed=!1,this.defaultEncoding=I.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,I.encoding&&(c||(c=jCe.StringDecoder),this.decoder=new c(I.encoding),this.encoding=I.encoding)}function W(I){if(t=t||xA(),!(this instanceof W))return new W(I);var U=this instanceof t;this._readableState=new G(I,this,U),this.readable=!0,I&&(typeof I.read==\"function\"&&(this._read=I.read),typeof I.destroy==\"function\"&&(this._destroy=I.destroy)),n.call(this)}function J(I,U,X,ee,se){i(\"readableAddChunk\",U);var pe,ye=I._readableState;if(U===null)ye.reading=!1,function(xe,_e){if(i(\"onEofChunk\"),!_e.ended){if(_e.decoder){var Me=_e.decoder.end();Me&&Me.length&&(_e.buffer.push(Me),_e.length+=_e.objectMode?1:Me.length)}_e.ended=!0,_e.sync?ae(xe):(_e.needReadable=!1,_e.emittedReadable||(_e.emittedReadable=!0,V(xe)))}}(I,ye);else if(se||(pe=function(xe,_e){var Me;qe=_e,r.isBuffer(qe)||qe instanceof o||typeof _e==\"string\"||_e===void 0||xe.objectMode||(Me=new E(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],_e));var qe;return Me}(ye,U)),pe)L(I,pe);else if(ye.objectMode||U&&U.length>0)if(typeof U==\"string\"||ye.objectMode||Object.getPrototypeOf(U)===r.prototype||(U=function(xe){return r.from(xe)}(U)),ee)ye.endEmitted?L(I,new R):ne(I,ye,U,!0);else if(ye.ended)L(I,new C);else{if(ye.destroyed)return!1;ye.reading=!1,ye.decoder&&!X?(U=ye.decoder.write(U),ye.objectMode||U.length!==0?ne(I,ye,U,!1):$(I,ye)):ne(I,ye,U,!1)}else ee||(ye.reading=!1,$(I,ye));return!ye.ended&&(ye.length<ye.highWaterMark||ye.length===0)}function ne(I,U,X,ee){U.flowing&&U.length===0&&!U.sync?(U.awaitDrain=0,I.emit(\"data\",X)):(U.length+=U.objectMode?1:X.length,ee?U.buffer.unshift(X):U.buffer.push(X),U.needReadable&&ae(I)),$(I,U)}Object.defineProperty(W.prototype,\"destroyed\",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._readableState.destroyed},set:function(I){this._readableState&&(this._readableState.destroyed=I)}}),W.prototype.destroy=m.destroy,W.prototype._undestroy=m.undestroy,W.prototype._destroy=function(I,U){U(I)},W.prototype.push=function(I,U){var X,ee=this._readableState;return ee.objectMode?X=!0:typeof I==\"string\"&&((U=U||ee.defaultEncoding)!==ee.encoding&&(I=r.from(I,U),U=\"\"),X=!0),J(this,I,U,!1,X)},W.prototype.unshift=function(I){return J(this,I,null,!0,!1)},W.prototype.isPaused=function(){return this._readableState.flowing===!1},W.prototype.setEncoding=function(I){c||(c=jCe.StringDecoder);var U=new c(I);this._readableState.decoder=U,this._readableState.encoding=this._readableState.decoder.encoding;for(var X=this._readableState.buffer.head,ee=\"\";X!==null;)ee+=U.write(X.data),X=X.next;return this._readableState.buffer.clear(),ee!==\"\"&&this._readableState.buffer.push(ee),this._readableState.length=ee.length,this};var ie=1073741824;function Z(I,U){return I<=0||U.length===0&&U.ended?0:U.objectMode?1:I!=I?U.flowing&&U.length?U.buffer.head.data.length:U.length:(I>U.highWaterMark&&(U.highWaterMark=function(X){return X>=ie?X=ie:(X--,X|=X>>>1,X|=X>>>2,X|=X>>>4,X|=X>>>8,X|=X>>>16,X++),X}(I)),I<=U.length?I:U.ended?U.length:(U.needReadable=!0,0))}function ae(I){var U=I._readableState;i(\"emitReadable\",U.needReadable,U.emittedReadable),U.needReadable=!1,U.emittedReadable||(i(\"emitReadable\",U.flowing),U.emittedReadable=!0,co.nextTick(V,I))}function V(I){var U=I._readableState;i(\"emitReadable_\",U.destroyed,U.length,U.ended),U.destroyed||!U.length&&!U.ended||(I.emit(\"readable\"),U.emittedReadable=!1),U.needReadable=!U.flowing&&!U.ended&&U.length<=U.highWaterMark,N(I)}function $(I,U){U.readingMore||(U.readingMore=!0,co.nextTick(F,I,U))}function F(I,U){for(;!U.reading&&!U.ended&&(U.length<U.highWaterMark||U.flowing&&U.length===0);){var X=U.length;if(i(\"maybeReadMore read 0\"),I.read(0),X===U.length)break}U.readingMore=!1}function _(I){var U=I._readableState;U.readableListening=I.listenerCount(\"readable\")>0,U.resumeScheduled&&!U.paused?U.flowing=!0:I.listenerCount(\"data\")>0&&I.resume()}function O(I){i(\"readable nexttick read 0\"),I.read(0)}function z(I,U){i(\"resume\",U.reading),U.reading||I.read(0),U.resumeScheduled=!1,I.emit(\"resume\"),N(I),U.flowing&&!U.reading&&I.read(0)}function N(I){var U=I._readableState;for(i(\"flow\",U.flowing);U.flowing&&I.read()!==null;);}function B(I,U){return U.length===0?null:(U.objectMode?X=U.buffer.shift():!I||I>=U.length?(X=U.decoder?U.buffer.join(\"\"):U.buffer.length===1?U.buffer.first():U.buffer.concat(U.length),U.buffer.clear()):X=U.buffer.consume(I,U.decoder),X);var X}function j(I){var U=I._readableState;i(\"endReadable\",U.endEmitted),U.endEmitted||(U.ended=!0,co.nextTick(q,U,I))}function q(I,U){if(i(\"endReadableNT\",I.endEmitted,I.length),!I.endEmitted&&I.length===0&&(I.endEmitted=!0,U.readable=!1,U.emit(\"end\"),I.autoDestroy)){var X=U._writableState;(!X||X.autoDestroy&&X.finished)&&U.destroy()}}function H(I,U){for(var X=0,ee=I.length;X<ee;X++)if(I[X]===U)return X;return-1}return W.prototype.read=function(I){i(\"read\",I),I=parseInt(I,10);var U=this._readableState,X=I;if(I!==0&&(U.emittedReadable=!1),I===0&&U.needReadable&&((U.highWaterMark!==0?U.length>=U.highWaterMark:U.length>0)||U.ended))return i(\"read: emitReadable\",U.length,U.ended),U.length===0&&U.ended?j(this):ae(this),null;if((I=Z(I,U))===0&&U.ended)return U.length===0&&j(this),null;var ee,se=U.needReadable;return i(\"need readable\",se),(U.length===0||U.length-I<U.highWaterMark)&&i(\"length less than watermark\",se=!0),U.ended||U.reading?i(\"reading or ended\",se=!1):se&&(i(\"do read\"),U.reading=!0,U.sync=!0,U.length===0&&(U.needReadable=!0),this._read(U.highWaterMark),U.sync=!1,U.reading||(I=Z(X,U))),(ee=I>0?B(I,U):null)===null?(U.needReadable=U.length<=U.highWaterMark,I=0):(U.length-=I,U.awaitDrain=0),U.length===0&&(U.ended||(U.needReadable=!0),X!==I&&U.ended&&j(this)),ee!==null&&this.emit(\"data\",ee),ee},W.prototype._read=function(I){L(this,new T(\"_read()\"))},W.prototype.pipe=function(I,U){var X=this,ee=this._readableState;switch(ee.pipesCount){case 0:ee.pipes=I;break;case 1:ee.pipes=[ee.pipes,I];break;default:ee.pipes.push(I)}ee.pipesCount+=1,i(\"pipe count=%d opts=%j\",ee.pipesCount,U);var se=(!U||U.end!==!1)&&I!==co.stdout&&I!==co.stderr?ye:ht;function pe(Ct,dt){i(\"onunpipe\"),Ct===X&&dt&&dt.hasUnpiped===!1&&(dt.hasUnpiped=!0,i(\"cleanup\"),I.removeListener(\"close\",wt),I.removeListener(\"finish\",Ge),I.removeListener(\"drain\",xe),I.removeListener(\"error\",qe),I.removeListener(\"unpipe\",pe),X.removeListener(\"end\",ye),X.removeListener(\"end\",ht),X.removeListener(\"data\",Me),_e=!0,!ee.awaitDrain||I._writableState&&!I._writableState.needDrain||xe())}function ye(){i(\"onend\"),I.end()}ee.endEmitted?co.nextTick(se):X.once(\"end\",se),I.on(\"unpipe\",pe);var xe=function(Ct){return function(){var dt=Ct._readableState;i(\"pipeOnDrain\",dt.awaitDrain),dt.awaitDrain&&dt.awaitDrain--,dt.awaitDrain===0&&e(Ct,\"data\")&&(dt.flowing=!0,N(Ct))}}(X);I.on(\"drain\",xe);var _e=!1;function Me(Ct){i(\"ondata\");var dt=I.write(Ct);i(\"dest.write\",dt),dt===!1&&((ee.pipesCount===1&&ee.pipes===I||ee.pipesCount>1&&H(ee.pipes,I)!==-1)&&!_e&&(i(\"false write response, pause\",ee.awaitDrain),ee.awaitDrain++),X.pause())}function qe(Ct){i(\"onerror\",Ct),ht(),I.removeListener(\"error\",qe),e(I,\"error\")===0&&L(I,Ct)}function wt(){I.removeListener(\"finish\",Ge),ht()}function Ge(){i(\"onfinish\"),I.removeListener(\"close\",wt),ht()}function ht(){i(\"unpipe\"),X.unpipe(I)}return X.on(\"data\",Me),function(Ct,dt,Ze){if(typeof Ct.prependListener==\"function\")return Ct.prependListener(dt,Ze);Ct._events&&Ct._events[dt]?Array.isArray(Ct._events[dt])?Ct._events[dt].unshift(Ze):Ct._events[dt]=[Ze,Ct._events[dt]]:Ct.on(dt,Ze)}(I,\"error\",qe),I.once(\"close\",wt),I.once(\"finish\",Ge),I.emit(\"pipe\",X),ee.flowing||(i(\"pipe resume\"),X.resume()),I},W.prototype.unpipe=function(I){var U=this._readableState,X={hasUnpiped:!1};if(U.pipesCount===0)return this;if(U.pipesCount===1)return I&&I!==U.pipes||(I||(I=U.pipes),U.pipes=null,U.pipesCount=0,U.flowing=!1,I&&I.emit(\"unpipe\",this,X)),this;if(!I){var ee=U.pipes,se=U.pipesCount;U.pipes=null,U.pipesCount=0,U.flowing=!1;for(var pe=0;pe<se;pe++)ee[pe].emit(\"unpipe\",this,{hasUnpiped:!1});return this}var ye=H(U.pipes,I);return ye===-1||(U.pipes.splice(ye,1),U.pipesCount-=1,U.pipesCount===1&&(U.pipes=U.pipes[0]),I.emit(\"unpipe\",this,X)),this},W.prototype.on=function(I,U){var X=n.prototype.on.call(this,I,U),ee=this._readableState;return I===\"data\"?(ee.readableListening=this.listenerCount(\"readable\")>0,ee.flowing!==!1&&this.resume()):I===\"readable\"&&(ee.endEmitted||ee.readableListening||(ee.readableListening=ee.needReadable=!0,ee.flowing=!1,ee.emittedReadable=!1,i(\"on readable\",ee.length,ee.reading),ee.length?ae(this):ee.reading||co.nextTick(O,this))),X},W.prototype.addListener=W.prototype.on,W.prototype.removeListener=function(I,U){var X=n.prototype.removeListener.call(this,I,U);return I===\"readable\"&&co.nextTick(_,this),X},W.prototype.removeAllListeners=function(I){var U=n.prototype.removeAllListeners.apply(this,arguments);return I!==\"readable\"&&I!==void 0||co.nextTick(_,this),U},W.prototype.resume=function(){var I=this._readableState;return I.flowing||(i(\"resume\"),I.flowing=!I.readableListening,function(U,X){X.resumeScheduled||(X.resumeScheduled=!0,co.nextTick(z,U,X))}(this,I)),I.paused=!1,this},W.prototype.pause=function(){return i(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1&&(i(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\")),this._readableState.paused=!0,this},W.prototype.wrap=function(I){var U=this,X=this._readableState,ee=!1;for(var se in I.on(\"end\",function(){if(i(\"wrapped end\"),X.decoder&&!X.ended){var ye=X.decoder.end();ye&&ye.length&&U.push(ye)}U.push(null)}),I.on(\"data\",function(ye){i(\"wrapped data\"),X.decoder&&(ye=X.decoder.write(ye)),X.objectMode&&ye==null||(X.objectMode||ye&&ye.length)&&(U.push(ye)||(ee=!0,I.pause()))}),I)this[se]===void 0&&typeof I[se]==\"function\"&&(this[se]=function(ye){return function(){return I[ye].apply(I,arguments)}}(se));for(var pe=0;pe<D.length;pe++)I.on(D[pe],this.emit.bind(this,D[pe]));return this._read=function(ye){i(\"wrapped _read\",ye),ee&&(ee=!1,I.resume())},this},typeof Symbol==\"function\"&&(W.prototype[Symbol.asyncIterator]=function(){return u===void 0&&(u=nst()),u(this)}),Object.defineProperty(W.prototype,\"readableHighWaterMark\",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(W.prototype,\"readableBuffer\",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(W.prototype,\"readableFlowing\",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(I){this._readableState&&(this._readableState.flowing=I)}}),W._fromList=B,Object.defineProperty(W.prototype,\"readableLength\",{enumerable:!1,get:function(){return this._readableState.length}}),typeof Symbol==\"function\"&&(W.from=function(I,U){return d===void 0&&(d=WCe?qCe:(WCe=1,qCe=function(){throw new Error(\"Readable.from is not available in the browser\")})),d(W,I,U)}),One}function ast(t,e){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(r===null)return this.emit(\"error\",new ost);n.writechunk=null,n.writecb=null,e!=null&&this.push(e),r(t);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function Wv(t){if(!(this instanceof Wv))return new Wv(t);kH.call(this,t),this._transformState={afterTransform:ast.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,t&&(typeof t.transform==\"function\"&&(this._transform=t.transform),typeof t.flush==\"function\"&&(this._flush=t.flush)),this.on(\"prefinish\",cst)}function cst(){var t=this;typeof this._flush!=\"function\"||this._readableState.destroyed?$Ce(this,null,null):this._flush(function(e,n){$Ce(t,e,n)})}function $Ce(t,e,n){if(e)return t.emit(\"error\",e);if(n!=null&&t.push(n),t._writableState.length)throw new sst;if(t._transformState.transforming)throw new ist;return t.push(null)}function UO(t){if(!(this instanceof UO))return new UO(t);HTe.call(this,t)}function KCe(t){if(t)throw t}function GCe(t){t()}function fst(t,e){return t.pipe(e)}function pst(t={}){let e={},n=new EA.Duplex({objectMode:!0,read:()=>{},write:function(i,a,c){let u=null;try{i.id?function(d){let{id:h}=d;if(h===null)return;let m=e[h];if(!m)return void console.warn(`StreamMiddleware - Unknown response id \"${h}\"`);delete e[h],Object.assign(m.res,d),setTimeout(m.end)}(i):function(d){t?.retryOnMessage&&d.method===t.retryOnMessage&&Object.values(e).forEach(({req:h,retryCount:m=0})=>{if(!h.id)return;if(m>=3)throw new Error(`StreamMiddleware - Retry limit exceeded for request id \"${h.id}\"`);let g=e[h.id];g&&(g.retryCount=m+1),o(h)}),r.emit(\"notification\",d)}(i)}catch(d){u=d}c(u)}}),r=new bTe;return{events:r,middleware:(i,a,c,u)=>{e[i.id]={req:i,res:a,next:c,end:u},o(i)},stream:n};function o(i){n.push(i)}}function cH(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function YCe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},n=t.name||\"Function wrapped with `once`\";return e.onceError=n+\" shouldn\\'t be called more than once\",e.called=!1,e}function Ast(t,e){if(e!==\"[Circular]\")return e}function vm(t,e){let[n,r]=$Te(e);return new eoe.EthereumRpcError(t,n||VTe.getMessageFromCode(t),r)}function pO(t,e){let[n,r]=$Te(e);return new eoe.EthereumProviderError(t,n||VTe.getMessageFromCode(t),r)}function $Te(t){if(t){if(typeof t==\"string\")return[t];if(typeof t==\"object\"&&!Array.isArray(t)){let{message:e,data:n}=t;if(e&&typeof e!=\"string\")throw new Error(\"Must specify string message.\");return[e||void 0,n]}}return[]}function Pst({instance:t,msg:e}){return ct(this,void 0,void 0,function*(){if(t._initialized||(Ve(\"[MetaMaskSDK: connectAndSign()] provider not ready -- wait for init()\"),yield t.init()),Ve(`[MetaMaskSDK: connectAndSign()] activeProvider=${t.activeProvider}`),!t.activeProvider)throw new Error(\"SDK state invalid -- undefined provider\");let n=/^0x([0-9A-Fa-f]{2})*$/u.test(e)?e:function(r){let o;if(at!==void 0)o=at.from(r,\"utf8\").toString(\"hex\");else if(typeof TextEncoder<\"u\"){let i=new TextEncoder().encode(r);o=Array.from(i).map(a=>a.toString(16).padStart(2,\"0\")).join(\"\")}else{if(typeof Id!=\"object\"||!(\"Buffer\"in Id))throw new Error(\"Unable to convert string to hex: No available method.\");o=Id.Buffer.from(r,\"utf8\").toString(\"hex\")}return`0x${o}`}(e);return t.activeProvider.request({method:yn.METAMASK_CONNECTWITH,params:[{method:yn.PERSONAL_SIGN,params:[n]}]})})}function e8e(t){var e,n;return ct(this,void 0,void 0,function*(){Ve(\"[MetaMaskSDK: connectWithExtensionProvider()] \",t),t.sdkProvider=t.activeProvider,t.activeProvider=window.extension,window.ethereum=window.extension;try{let r=yield(e=window.extension)===null||e===void 0?void 0:e.request({method:\"eth_requestAccounts\"});Ve(`[MetaMaskSDK: connectWithExtensionProvider()] accounts=${r}`)}catch(r){return void console.warn(\"[MetaMaskSDK: connectWithExtensionProvider()] can\\'t request accounts error\",r)}localStorage.setItem(oq,\"extension\"),t.extensionActive=!0,t.emit(Rd.ProviderUpdate,mg.EXTENSION),t.options.enableAnalytics&&((n=t.analytics)===null||n===void 0||n.send({event:pa.SDK_USE_EXTENSION}))})}function iq(t){let e;if(at!==void 0)e=at.from(t,\"utf8\").toString(\"base64\");else if(typeof btoa==\"function\")e=btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/gu,(n,r)=>String.fromCharCode(parseInt(r,16))));else{if(typeof Id!=\"object\"||!(\"Buffer\"in Id))throw new Error(\"Unable to base64 encode: No available method.\");e=Id.Buffer.from(t,\"utf8\").toString(\"base64\")}return e}function Mst(t,e,n,r){var o,i,a,c,u,d,h,m,g,b,E,C,T,R,L,D,G,W,J,ne;return ct(this,void 0,void 0,function*(){let ie=(o=t.state.remote)===null||o===void 0?void 0:o.isReady(),Z=(i=t.state.remote)===null||i===void 0?void 0:i.isConnected(),ae=(a=t.state.remote)===null||a===void 0?void 0:a.isPaused(),V=pg.getProvider(),$=(c=t.state.remote)===null||c===void 0?void 0:c.getChannelId(),F=(u=t.state.remote)===null||u===void 0?void 0:u.isAuthorized(),{deeplinkProtocol:_}=t.state,{method:O,data:z,triggeredInstaller:N}=(H=>{var I,U,X,ee;let se;at.isBuffer(H)?(se=H.toJSON(),se._isBuffer=!0):se=H;let pe=(I=se?.data)===null||I===void 0?void 0:I.method,ye=!1;return typeof((U=se?.data)===null||U===void 0?void 0:U.params)==\"object\"&&((ee=(X=se?.data)===null||X===void 0?void 0:X.params)===null||ee===void 0?void 0:ee.__triggeredInstaller)===!0&&(ye=!0,se.data.params=se.data.params.wrappedParams),{method:pe,data:se,triggeredInstaller:ye}})(e);if(Ve(`[RCPMS: write()] method=\\'${O}\\' isRemoteReady=${ie} channelId=${$} isSocketConnected=${Z} isRemotePaused=${ae} providerConnected=${V.isConnected()}`,e),!$)return O!==yn.METAMASK_GETPROVIDERSTATE&&Ve(`[RCPMS: write()] ${O} --> channelId is undefined`),r(new Error(\"disconnected\"));Ve(`[RCPMS: write()] remote.isPaused()=${(d=t.state.remote)===null||d===void 0?void 0:d.isPaused()} authorized=${F} ready=${ie} socketConnected=${Z}`,e);let B=(h=t.state.platformManager)===null||h===void 0?void 0:h.isSecure(),j=(g=(m=t.state.platformManager)===null||m===void 0?void 0:m.isMobileWeb())!==null&&g!==void 0&&g,q=(E=(b=t.state.remote)===null||b===void 0?void 0:b.hasDeeplinkProtocol())!==null&&E!==void 0&&E&&j&&F;try{if(!N){let U=JSON.stringify(z?.data);if(U.length>Ist)return r(new Error(`Message size ${U.length} exceeds maximum allowed size of 1000000 bytes`));(C=t.state.remote)===null||C===void 0||C.sendMessage(z?.data).then(()=>{Ve(`[RCPMS: _write()] ${O} sent successfully`)}).catch(X=>{Ve(\"[RCPMS: _write()] error sending message\",X)})}if(!B)return Ve(`[RCPMS: _write()] unsecure platform for method ${O} -- return callback`),r();if(N)return Ve(\"[RCPMS: _write()] prevent deeplink -- installation completed separately.\"),r();let H=(L=(R=(T=t.state.remote)===null||T===void 0?void 0:T.getKeyInfo())===null||R===void 0?void 0:R.ecies.public)!==null&&L!==void 0?L:\"\",I=encodeURI(`channelId=${$}&pubkey=${H}&comm=socket&t=d&v=2`);if(q){let U=JSON.stringify(z?.data),X=(D=t.state.remote)===null||D===void 0?void 0:D.encrypt(U);if(!X)return Ve(\"[RCPMS: _write()] error encrypting message\"),r(new Error(\"RemoteCommunicationPostMessageStream - disconnected\"));I+=`&scheme=${_}&rpc=${iq(X)}`}if(!(!((G=t.state.platformManager)===null||G===void 0)&&G.isMetaMaskInstalled()))return Ve(\"[RCPMS: _write()] prevent deeplink until installation is completed.\"),r();rq[O]?(Ve(`[RCPMS: _write()] redirect link for \\'${O}\\' socketConnected=${Z} connect?${I}`),(W=t.state.platformManager)===null||W===void 0||W.openDeeplink(`${zO}?${I}`,`${HO}?${I}`,\"_self\")):!((J=t.state.remote)===null||J===void 0)&&J.isPaused()?(Ve(`[RCPMS: _write()] MM is PAUSED! deeplink with connect! targetMethod=${O}`),(ne=t.state.platformManager)===null||ne===void 0||ne.openDeeplink(`${zO}?redirect=true&${I}`,`${HO}?redirect=true&${I}`,\"_self\")):Ve(`[RCPMS: _write()] method ${O} doesn\\'t need redirect.`)}catch(H){return Ve(\"[RCPMS: _write()] error sending message\",H),r(new Error(\"RemoteCommunicationPostMessageStream - disconnected\"))}return r()})}function Lst(t){var e,n,r,o;return ct(this,void 0,void 0,function*(){let{options:i}=t,a={communicationLayerPreference:(e=i.communicationLayerPreference)!==null&&e!==void 0?e:p3.SOCKET,platformManager:t.platformManager,sdk:t,checkInstallationOnAllCalls:i.checkInstallationOnAllCalls,injectProvider:(n=i.injectProvider)===null||n===void 0||n,shouldShimWeb3:(r=i.shouldShimWeb3)===null||r===void 0||r,extensionOnly:(o=i.extensionOnly)===null||o===void 0||o,installer:t.installer,remoteConnection:t.remoteConnection,debug:t.debug},c=yield Nst(a);t.activeProvider=c,function(u){var d,h,m,g;(h=(d=u.remoteConnection)===null||d===void 0?void 0:d.getConnector())===null||h===void 0||h.on(Rd.ConnectionStatus,b=>{u.emit(Rd.ConnectionStatus,b)}),(g=(m=u.remoteConnection)===null||m===void 0?void 0:m.getConnector())===null||g===void 0||g.on(Rd.ServiceStatus,b=>{u.emit(Rd.ServiceStatus,b)})}(t)})}function n8e(t){var e,n,r;let{dappMetadata:o}=t,i=function({url:h,name:m}){var g;let b=h+m,E=iq(b);if(!localStorage)return\"\";let C=(g=localStorage.getItem(E))!==null&&g!==void 0?g:\"\";if(!C){C=Z8();try{localStorage.setItem(E,C)}catch{return\"\"}}return C}({url:(e=o?.url)!==null&&e!==void 0?e:\"no_url\",name:(n=o?.name)!==null&&n!==void 0?n:\"no_name\"}),a=(r=t.platformManager)===null||r===void 0?void 0:r.getPlatformType(),c=a===Al.DesktopWeb,u=a===Al.MetaMaskMobileWebview,d=\"N/A\";return c?d=\"extension\":u&&(d=\"mobile\"),{id:i,from:d}}function Ust({mustBeMetaMask:t,sdkInstance:e}){return ct(this,void 0,void 0,function*(){if(typeof window>\"u\")throw new Error(\"window not available\");try{let n=yield new Promise((r,o)=>{let i=setTimeout(()=>{o(new Error(\"eip6963RequestProvider timed out\"))},500);window.addEventListener(sq.Announce,a=>{let c=a,{detail:{info:u,provider:d}={}}=c,{name:h,rdns:m,uuid:g}=u??{};Tst.test(g)&&h.startsWith(XCe.NAME)&&XCe.RDNS.includes(m)&&(clearTimeout(i),r(d))}),window.dispatchEvent(new Event(sq.Request))});return vre({provider:n,sdkInstance:e})}catch{if(!t&&window.ethereum)return vre({provider:window.ethereum,sdkInstance:e});throw new Error(\"Provider not found\")}})}function Hst(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(d){try{u(r.next(d))}catch(h){i(h)}}function c(d){try{u(r.throw(d))}catch(h){i(h)}}function u(d){var h;d.done?o(d.value):(h=d.value,h instanceof n?h:new n(function(m){m(h)})).then(a,c)}u((r=r.apply(t,[])).next())})}function qst(t,e){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},typeof Symbol==\"function\"&&(i[Symbol.iterator]=function(){return this}),i;function c(u){return function(d){return function(h){if(n)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(n=1,r&&(o=2&h[0]?r.return:h[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,h[1])).done)return o;switch(r=0,o&&(h=[2&h[0],o.value]),h[0]){case 0:case 1:o=h;break;case 4:return a.label++,{value:h[1],done:!1};case 5:a.label++,r=h[1],h=[0];continue;case 7:h=a.ops.pop(),a.trys.pop();continue;default:if(o=a.trys,!((o=o.length>0&&o[o.length-1])||h[0]!==6&&h[0]!==2)){a=0;continue}if(h[0]===3&&(!o||h[1]>o[0]&&h[1]<o[3])){a.label=h[1];break}if(h[0]===6&&a.label<o[1]){a.label=o[1],o=h;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(h);break}o[2]&&a.ops.pop(),a.trys.pop();continue}h=e.call(t,a)}catch(m){h=[6,m],r=0}finally{n=o=0}if(5&h[0])throw h[1];return{value:h[0]?h[1]:void 0,done:!0}}([u,d])}}}function Vst(t,{wait:e=!1}){return ct(this,void 0,void 0,function*(){return Ve(`[MetamaskInstaller: startInstaller()] wait=${e}`),e&&(yield QTe(1e3)),yield t.checkInstallation()})}function JTe(t,e){var n,r,o,i;t.connector||(Ve(\"[RemoteConnection: initializeConnector()] initialize connector\"),t.connector=new tre({platformType:e.platformManager.getPlatformType(),communicationLayerPreference:e.communicationLayerPreference,transports:e.transports,dappMetadata:Object.assign(Object.assign({},e.dappMetadata),{source:e._source}),analytics:e.enableAnalytics,communicationServerUrl:e.communicationServerUrl,sdkVersion:NS.version,context:\"dapp\",ecies:e.ecies,storage:e.storage,logging:e.logging}),e.timer&&(Ve(\"[RemoteConnection: initializeConnector()] reset background timer\",e.timer),(r=(n=e.timer)===null||n===void 0?void 0:n.stopBackgroundTimer)===null||r===void 0||r.call(n),(i=(o=e.timer)===null||o===void 0?void 0:o.runBackgroundTimer)===null||i===void 0||i.call(o,()=>!1,1e4)))}function xre(t){t.listeners.forEach(({event:e,handler:n})=>{var r;(r=t.connector)===null||r===void 0||r.off(e,n)}),t.listeners=[]}function Gst(t,e,n){return ct(this,void 0,void 0,function*(){return new Promise((r,o)=>{if(!t.connector)return void o(new Error(\"No connector available\"));Ve(\"[RemoteConnection: connectWithModalInstaller()]\",{state:t,options:e,linkParams:n});let i=`${t.useDeeplink?HO:zO}?${n}`;(function(a,c,u){var d,h,m,g;a.installModal=(h=(d=c.modals).install)===null||h===void 0?void 0:h.call(d,{link:u,preferDesktop:a.preferDesktop,installer:c.getMetaMaskInstaller(),terminate:()=>{Ve(\"[RemoteConnection: showInstallModal() => terminate()] terminate connection\"),c.sdk.terminate().catch(b=>{console.warn(\"[MMSDK] failed to terminate connection\",b)})},debug:a.developerMode,connectWithExtension:()=>{var b;return(b=c.connectWithExtensionProvider)===null||b===void 0||b.call(c),!1},onAnalyticsEvent:({event:b,params:E})=>{var C,T,R;let L=Object.assign(Object.assign({},E),{sdkVersion:c.sdk.getVersion(),dappId:(C=c.dappMetadata)===null||C===void 0?void 0:C.name,source:c._source,url:(T=c.dappMetadata)===null||T===void 0?void 0:T.url});(R=a.analytics)===null||R===void 0||R.send({event:b,params:L})}}),(g=(m=a.installModal)===null||m===void 0?void 0:m.mount)===null||g===void 0||g.call(m,u)})(t,e,i),e.sdk.once(vt.PROVIDER_UPDATE,a=>ct(this,void 0,void 0,function*(){Ve(\"[RemoteConnection: connectWithModalInstaller()] once provider_update -- resolving startConnection promise\"),a!==mg.TERMINATE?o(a):o({code:4001,message:\"User rejected the request.\"})})),t.connector.once(vt.AUTHORIZED,()=>{r()}),t.connector.once(vt.REJECTED,()=>{o(vt.REJECTED)}),t.connector.once(vt.CLIENTS_READY,()=>ct(this,void 0,void 0,function*(){Ve(\"[RemoteConnection: connectWithModalInstaller()] once clients_ready -- resolving startConnection promise\"),r()}))})})}function XTe(t,e){function n(r,o){var i;(i=t.connector)===null||i===void 0||i.on(r,o),t.listeners.push({event:r,handler:o})}t.connector&&(xre(t),n(vt.WALLET_INIT,({accounts:r,chainId:o})=>ct(this,void 0,void 0,function*(){Ve(`[RemoteConnection: setupListeners() => EventType.WALLET_INIT] \\'wallet_init\\' accounts=${r} chainId=${o}`);let i=pg.getProvider();i._setConnected();let a={accounts:r,chainId:o,isUnlocked:!1};i._initializeState(a),i.emit(\"chainChanged\",o),i.emit(\"accountsChanged\",r)})),n(vt.AUTHORIZED,()=>ct(this,void 0,void 0,function*(){var r,o,i,a;try{Ve(\"[RemoteConnection: setupListeners() => EventType.AUTHORIZED] \\'authorized\\' closing modals\",t.pendingModal,t.installModal);let c=pg.getProvider();c._setConnected(),(o=(r=t.pendingModal)===null||r===void 0?void 0:r.unmount)===null||o===void 0||o.call(r),(a=(i=t.installModal)===null||i===void 0?void 0:i.unmount)===null||a===void 0||a.call(i,!1),t.otpAnswer=void 0,t.authorized=!0,Ve(\"[RemoteConnection: setupListeners() => EventType.AUTHORIZED] \\'authorized\\' provider.state\",c.getState()),yield c.forceInitializeState()}catch{}})),n(vt.TERMINATE,()=>{var r,o,i,a,c;(o=(r=t.pendingModal)===null||r===void 0?void 0:r.unmount)===null||o===void 0||o.call(r),(a=(i=t.installModal)===null||i===void 0?void 0:i.unmount)===null||a===void 0||a.call(i,!0),t.pendingModal=void 0,t.installModal=void 0,t.otpAnswer=void 0,(c=t.connector)===null||c===void 0||c.disconnect({terminate:!0}),t.authorized=!1,pg.getProvider().handleDisconnect({terminate:!0}),xre(t),Ve(\"[RemoteConnection: setupListeners()] All listeners cleaned up\")}))}function Zst(t,e,{initialCheck:n,connectWith:r}={}){var o,i,a,c,u,d,h,m,g,b,E,C,T,R,L,D,G,W,J;return ct(this,void 0,void 0,function*(){try{if(JTe(t,e),!t.connector)throw new Error(\"no connector defined\");XTe(t);let ne=pg.getProvider();t.authorized=!1,ne.emit(\"connecting\");let ie=yield(o=t.connector)===null||o===void 0?void 0:o.originatorSessionConnect();Ve(`[RemoteConnection: startConnection()] after originatorSessionConnect initialCheck=${n}`,ie);let Z=(i=ie?.channelId)!==null&&i!==void 0?i:\"\",ae=(c=(a=t.connector.getKeyInfo())===null||a===void 0?void 0:a.ecies.public)!==null&&c!==void 0?c:\"\",V=(d=(u=t.connector.getKeyInfo())===null||u===void 0?void 0:u.ecies.private)!==null&&d!==void 0?d:\"\";if(n&&!ie)return Promise.resolve();if(!ie&&!n){let ee=yield t.connector.generateChannelIdConnect();Z=(h=ee.channelId)!==null&&h!==void 0?h:\"\",ae=(m=ee.pubKey)!==null&&m!==void 0?m:\"\",V=(g=ee.privKey)!==null&&g!==void 0?g:\"\";let se=Date.now();(b=t.connector.state.storageManager)===null||b===void 0||b.persistChannelConfig({channelId:Z,localKey:V,lastActive:se,validUntil:se+wA})}if(n&&ie?.channelId)return!((E=t.connector)===null||E===void 0)&&E.isConnected()||(Ve(`[RemoteConnection: startConnection()] reconnecting to channel initialCheck=${n}`,ie),yield(C=t.connector)===null||C===void 0?void 0:C.connectToChannel({channelId:Z})),Promise.resolve();ie&&!(!((T=t.connector)===null||T===void 0)&&T.isConnected())&&(Ve(\"[RemoteConnection: startConnection()] reconnecting to channel\",ie),yield(R=t.connector)===null||R===void 0?void 0:R.connectToChannel({channelId:Z}));let $=!((L=t.platformManager)===null||L===void 0)&&L.isSecure()?\"\":\"&t=q\",F=NS.version,{iconUrl:_,name:O,url:z,scheme:N}=e.dappMetadata||{},B=(D=t.platformManager)===null||D===void 0?void 0:D.getPlatformType(),j=\"N/A\";typeof window<\"u\"&&window.location&&window.location.hostname?j=window.location.hostname:O!==void 0?j=O:z!==void 0&&(j=z);let q={url:z??\"\",title:O??\"\",icon:_,scheme:N??\"\",apiVersion:F,dappId:j||z||\"N/A\",platform:B??\"\",source:(G=e._source)!==null&&G!==void 0?G:\"\"},H=iq(JSON.stringify(q)),I=`channelId=${Z}&v=2&comm=${(W=t.communicationLayerPreference)!==null&&W!==void 0?W:\"\"}&pubkey=${ae}${$}&originatorInfo=${H}`;if(r){I+=`&rpc=${iq(JSON.stringify(r))}`;let ee=t.connector.getRPCMethodTracker();ee&&(ee[`${r.id}`]=Object.assign(Object.assign({},r),{id:`${r.id}`,timestamp:Date.now()}))}let U=encodeURI(I),X=`${t.useDeeplink?HO:zO}?${I}`;return t.qrcodeLink=X,t.developerMode&&Ve(`[RemoteConnection: startConnection()] qrcodeLink=${U}`),ne.emit(\"display_uri\",X),!((J=t.platformManager)===null||J===void 0)&&J.isSecure()?(yield function(ee,se){var pe,ye;return ct(this,void 0,void 0,function*(){let xe=`${zO}?${se}`,_e=`${HO}?${se}`;(ye=(pe=ee.platformManager)===null||pe===void 0?void 0:pe.openDeeplink)===null||ye===void 0||ye.call(pe,xe,_e,\"_self\")})}(t,U),new Promise((ee,se)=>{var pe,ye,xe;!((pe=t.connector)===null||pe===void 0)&&pe.isAuthorized()?ee():((ye=t.connector)===null||ye===void 0||ye.once(vt.AUTHORIZED,()=>{ee()}),(xe=t.connector)===null||xe===void 0||xe.once(vt.REJECTED,()=>{se(vt.REJECTED)}))})):Gst(t,e,U)}catch(ne){throw console.error(\"[startConnection] error\",ne),ne}})}function Yst(t){var e,n,r,o,i,a,c,u,d,h,m;return ct(this,void 0,void 0,function*(){let{options:g}=t;if(g.logging=(e=g.logging)!==null&&e!==void 0?e:{},g.communicationLayerPreference=(n=g.communicationLayerPreference)!==null&&n!==void 0?n:p3.SOCKET,g.enableDebug!==void 0&&(Cu.default.enable(\"MM_SDK\"),console.warn(\"enableDebug is removed. Please use enableAnalytics instead.\")),g.enableAnalytics=(r=g.enableAnalytics)===null||r===void 0||r,g.injectProvider=(o=g.injectProvider)===null||o===void 0||o,g.shouldShimWeb3=(i=g.shouldShimWeb3)===null||i===void 0||i,g.extensionOnly=(a=g.extensionOnly)===null||a===void 0||a,g.useDeeplink=(c=g.useDeeplink)===null||c===void 0||c,g.storage=(u=g.storage)!==null&&u!==void 0?u:{enabled:!0},g.headless){(0,Cu.default)(\"[MetaMaskSDK: performSDKInitialization()] headless mode enabled\");let L=()=>{},D={install:()=>({mount:L,unmount:L})},G={installer:L};g.modals=D,g.ui=G}let b=((d=g.logging)===null||d===void 0?void 0:d.developerMode)===!0;t.debug=((h=g.logging)===null||h===void 0?void 0:h.sdk)||b,Ve(\"[MetaMaskSDK: performSDKInitialization()] options\",t.options);let E=Object.assign({},g.logging);b&&(E.sdk=!0,E.eciesLayer=!0,E.keyExchangeLayer=!0,E.remoteLayer=!0,E.serviceLayer=!0,E.plaintext=!0),yield function(L){var D;return ct(this,void 0,void 0,function*(){let{options:G}=L;L.platformManager=new tq({useDeepLink:(D=G.useDeeplink)!==null&&D!==void 0&&D,preferredOpenLink:G.openDeeplink,debug:L.debug})})}(t),yield function(L){var D,G,W,J,ne,ie,Z,ae,V;return ct(this,void 0,void 0,function*(){let{options:$}=L,F=(D=L.platformManager)===null||D===void 0?void 0:D.getPlatformType();L.analytics=new bre({serverUrl:(G=$.communicationServerUrl)!==null&&G!==void 0?G:RS,enabled:$.enableAnalytics,originatorInfo:{url:(W=$.dappMetadata.url)!==null&&W!==void 0?W:\"\",title:(J=$.dappMetadata.name)!==null&&J!==void 0?J:\"\",dappId:typeof window>\"u\"||window.location===void 0?(ae=(ie=(ne=$.dappMetadata)===null||ne===void 0?void 0:ne.name)!==null&&ie!==void 0?ie:(Z=$.dappMetadata)===null||Z===void 0?void 0:Z.url)!==null&&ae!==void 0?ae:\"N/A\":window.location.hostname,platform:F??\"\",source:(V=$._source)!==null&&V!==void 0?V:\"\"}})})}(t),yield function(L){var D;return ct(this,void 0,void 0,function*(){let{options:G}=L;((D=G.storage)===null||D===void 0?void 0:D.enabled)!==!0||G.storage.storageManager||(G.storage.storageManager=yield ZTe(G.storage))})}(t),yield function(L){return ct(this,void 0,void 0,function*(){let{options:D}=L,G=/^(http|https):\\\\/\\\\/[^\\\\s]*$/;if(D.dappMetadata){D.dappMetadata.iconUrl&&!G.test(D.dappMetadata.iconUrl)&&(console.warn(\"Invalid dappMetadata.iconUrl: URL must start with http:// or https://\"),D.dappMetadata.iconUrl=void 0),D.dappMetadata.base64Icon&&D.dappMetadata.base64Icon.length>Fst&&(console.warn(\"Invalid dappMetadata.base64Icon: Base64-encoded icon string length must be less than 163400 characters\"),D.dappMetadata.base64Icon=void 0),D.dappMetadata.url&&!G.test(D.dappMetadata.url)&&console.warn(\"Invalid dappMetadata.url: URL must start with http:// or https://\");let W=Dst();if(W&&!D.dappMetadata.iconUrl&&!D.dappMetadata.base64Icon){let J=`${window.location.protocol}//${window.location.host}${W}`;D.dappMetadata.iconUrl=J}}L.dappMetadata=D.dappMetadata})}(t),yield jst(t),yield zst(t);let{metamaskBrowserExtension:C,preferExtension:T,shouldReturn:R}=yield function(L){var D,G,W,J;return ct(this,void 0,void 0,function*(){let{options:ne}=L,ie,Z=!1,ae=!1;if(typeof window<\"u\"&&window.ethereum&&!(!((D=L.platformManager)===null||D===void 0)&&D.isMetaMaskMobileWebView())){Z=localStorage.getItem(oq)===\"extension\";try{ie=yield Ust({mustBeMetaMask:!0,sdkInstance:L}),window.extension=ie,ie.on(h1.CHAIN_CHANGED,V=>{Ve(`[MetaMaskSDK: setupExtensionPreferences()] PROPAGATE chainChanged chainId=${V}`),L.sdkProvider&&L.getMobileProvider().emit(h1.CHAIN_CHANGED,V)}),ie.on(h1.ACCOUNTS_CHANGED,V=>ct(this,void 0,void 0,function*(){var $;Ve(`[MetaMaskSDK: setupExtensionPreferences()] PROPAGATE accountsChanged accounts=${V}`);let F=!!L.sdkProvider,_=!!L.extensionActive;if(F&&L.getMobileProvider().emit(h1.ACCOUNTS_CHANGED,V),_&&V?.length===0&&(yield($=L.getProvider())===null||$===void 0?void 0:$.request({method:yn.WALLET_GETPERMISSIONS,params:[]})).length===0)try{yield L.terminate()}catch(O){Ve(\"[MetaMaskSDK: setupExtensionPreferences()] error terminating on permissions revoked\",O)}})),ie.on(h1.DISCONNECT,V=>{Ve(`[MetaMaskSDK: setupExtensionPreferences()] PROPAGATE disconnect error=${V}`),L.sdkProvider&&L.getMobileProvider().emit(h1.DISCONNECT,V)}),ie.on(h1.CONNECT,V=>{Ve(`[MetaMaskSDK: setupExtensionPreferences()] PROPAGATE connect args=${V}`),L.sdkProvider&&L.getMobileProvider().emit(h1.CONNECT,V)}),ie.on(h1.CONNECTED,V=>{Ve(\"[MetaMaskSDK: setupExtensionPreferences()] PROPAGATE connected\",V),L.sdkProvider&&L.getMobileProvider().emit(h1.CONNECTED,V)})}catch{window.extension=void 0}}else!((G=L.platformManager)===null||G===void 0)&&G.isMetaMaskMobileWebView()&&((W=L.analytics)===null||W===void 0||W.send({event:pa.SDK_USE_INAPP_BROWSER}),L.activeProvider=vre({provider:window.ethereum,sdkInstance:L}),L._initialized=!0,ae=!0);return ie&&ne.extensionOnly&&(Ve(\"[MetaMaskSDK: setupExtensionPreferences()] EXTENSION ONLY --- prevent sdk initialization\"),(J=L.analytics)===null||J===void 0||J.send({event:pa.SDK_USE_EXTENSION}),L.activeProvider=ie,L.extensionActive=!0,L.extension=ie,L._initialized=!0,ae=!0),{preferExtension:Z,shouldReturn:ae,metamaskBrowserExtension:ie}})}(t);if(R)Ve(\"[MetaMaskSDK: performSDKInitialization()] shouldReturn=true --- prevent sdk initialization\");else{yield function(L,D){var G,W,J,ne,ie;return ct(this,void 0,void 0,function*(){let{options:Z}=L,ae=Object.assign({},Z.logging);L.remoteConnection=new Ere({preferDesktop:(G=Z.preferDesktop)!==null&&G!==void 0&&G,communicationLayerPreference:(W=Z.communicationLayerPreference)!==null&&W!==void 0?W:p3.SOCKET,analytics:L.analytics,dappMetadata:Z.dappMetadata,_source:Z._source,enableAnalytics:(J=Z.enableAnalytics)===null||J===void 0||J,timer:Z.timer,sdk:L,platformManager:L.platformManager,transports:Z.transports,communicationServerUrl:Z.communicationServerUrl,storage:(ne=Z.storage)!==null&&ne!==void 0?ne:{enabled:!0},getMetaMaskInstaller:()=>{if(!L.installer)throw new Error(\"Invalid SDK status -- installer not initialized\");return L.installer},logging:ae,connectWithExtensionProvider:D===void 0?void 0:()=>e8e(L),modals:Object.assign(Object.assign({},Z.modals),{onPendingModalDisconnect:L.terminate.bind(L)})}),yield L.remoteConnection.initRemoteCommunication({sdkInstance:L}),L.installer=new wre({remote:L.remoteConnection,preferDesktop:(ie=Z.preferDesktop)!==null&&ie!==void 0&&ie,platformManager:L.platformManager,debug:L.debug})})}(t,C),yield Lst(t),yield function(L,D){var G,W;return ct(this,void 0,void 0,function*(){let{options:J}=L;D?(Ve(\"[MetaMaskSDK: handleAutoAndExtensionConnections()] preferExtension is detected -- connect with it.\"),(G=L.analytics)===null||G===void 0||G.send({event:pa.SDK_EXTENSION_UTILIZED}),e8e(L).catch(ne=>{console.warn(\"Can\\'t connect with MetaMask extension...\",ne),localStorage.removeItem(oq)})):J.checkInstallationImmediately&&(!((W=L.platformManager)===null||W===void 0)&&W.isDesktopWeb()?(Ve(\"[MetaMaskSDK: handleAutoAndExtensionConnections()] checkInstallationImmediately\"),L.connect().catch(ne=>{Ve(`[MetaMaskSDK: handleAutoAndExtensionConnections()] checkInstallationImmediately --- IGNORED --- error on autoconnect _err=${ne}`)})):console.warn(\"[handleAutoAndExtensionConnections()] checkInstallationImmediately --- IGNORED --- only for web desktop\")),L._initialized=!0})}(t,T);try{yield(m=t.remoteConnection)===null||m===void 0?void 0:m.startConnection({initialCheck:!0})}catch(L){console.error(\"[MetaMaskSDK: setupRemoteConnectionAndInstaller()] Error while checking installation\",L)}t.emit(Rd.ProviderUpdate,mg.INITIALIZED)}})}function r7e(t){var e,n,r;return(r=(n=(e=t.head)==null?void 0:e.querySelector(\\'meta[name=\"csp-nonce\"]\\'))==null?void 0:n.getAttribute(\"content\"))!=null?r:void 0}function iat(t,e){if(t.isOk){let n=e(t.value);return n instanceof Promise?n.then(r=>Cre(r)):Cre(n)}if(t.isErr){let n=t.value;return o7e(n)}throw\"should never get here\"}function b8e(t){return t.includes(\"ref\")?[...t.filter(e=>e!==\"ref\"),\"ref\"]:t}function uoe({version:t}){return ve(\"div\",{style:{textAlign:\"center\",color:\"#BBC0C5\",fontSize:\"12\"}},\"SDK Version \",t?`v${t}`:\"unknown\")}function wS(t,e){return t.toString(2).padStart(e,\"0\")}function E8e(t,e){let n=t%e;return n>=0?n:e+n}function Mh(t,e){return new Array(t).fill(e)}function S8e(...t){let e=0;for(let r of t)e=Math.max(e,r.length);let n=[];for(let r=0;r<e;r++)for(let o of t)r>=o.length||n.push(o[r]);return new Uint8Array(n)}function k8e(t,e,n){if(n<0||n+e.length>t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[n+r])return!1;return!0}function _8e(t){return{has:e=>t.includes(e),decode:e=>{if(!Array.isArray(e)||e.length&&typeof e[0]!=\"string\")throw new Error(\"alphabet.decode input should be array of strings\");return e.map(n=>{if(typeof n!=\"string\")throw new Error(`alphabet.decode: not string element=${n}`);let r=t.indexOf(n);if(r===-1)throw new Error(`Unknown letter: \"${n}\". Allowed: ${t}`);return r})},encode:e=>{if(!Array.isArray(e)||e.length&&typeof e[0]!=\"number\")throw new Error(\"alphabet.encode input should be an array of numbers\");return e.map(n=>{if(function(r){if(!Number.isSafeInteger(r))throw new Error(`Wrong integer: ${r}`)}(n),n<0||n>=t.length)throw new Error(`Digit index outside alphabet: ${n} (alphabet: ${t.length})`);return t[n]})}}}function Mat(t,e){let{words:n,shortBlocks:r,numBlocks:o,blockLen:i,total:a}=_u.capacity(t,e),c=(u=n,{encode(d){let h=Xt.divisorPoly(u),m=Array.from(d);return m.push(...h.slice(0,-1).fill(0)),Uint8Array.from(Xt.remainderPoly(m,h))},decode(d){let h=d.slice(),m=Xt.polynomial(Array.from(d)),g=Mh(u,0),b=!1;for(let D=0;D<u;D++){let G=Xt.evalPoly(m,Xt.exp(D));g[g.length-1-D]=G,G!==0&&(b=!0)}if(!b)return h;g=Xt.polynomial(g);let E=Xt.monomial(u,1),[C,T]=Xt.euclidian(E,g,u),R=Mh(Xt.degree(C),0),L=0;for(let D=1;D<256&&L<R.length;D++)Xt.evalPoly(C,D)===0&&(R[L++]=Xt.inv(D));if(L!==R.length)throw new Error(\"RS.decode: wrong errors number\");for(let D=0;D<R.length;D++){let G=h.length-1-Xt.log(R[D]);if(G<0)throw new Error(\"RS.decode: wrong error location\");let W=Xt.inv(R[D]),J=1;for(let ne=0;ne<R.length;ne++)D!==ne&&(J=Xt.mul(J,Xt.add(1,Xt.mul(R[ne],W))));h[G]=Xt.add(h[G],Xt.mul(Xt.evalPoly(T,W),Xt.inv(J)))}return h}});var u;return{encode(d){let h=[],m=[];for(let C=0;C<o;C++){let T=i+(C<r?0:1);h.push(d.subarray(0,T)),m.push(c.encode(d.subarray(0,T))),d=d.subarray(T)}let g=S8e(...h),b=S8e(...m),E=new Uint8Array(g.length+b.length);return E.set(g),E.set(b,g.length),E},decode(d){if(d.length!==a)throw new Error(`interleave.decode: len(data)=${d.length}, total=${a}`);let h=[];for(let b=0;b<o;b++){let E=b<r;h.push(new Uint8Array(n+i+(E?0:1)))}let m=0;for(let b=0;b<i;b++)for(let E=0;E<o;E++)h[E][b]=d[m++];for(let b=r;b<o;b++)h[b][i]=d[m++];for(let b=i;b<i+n;b++)for(let E=0;E<o;E++){let C=E<r;h[E][b+(C?0:1)]=d[m++]}let g=[];for(let b of h)g.push(...Array.from(c.decode(b)).slice(0,-n));return Uint8Array.from(g)}}}function T8e(t,e,n,r){let o=\"\",i=n.length;if(r===\"numeric\"){let m=_u.alphabet.numeric.decode(n.split(\"\")),g=m.length;for(let b=0;b<g-2;b+=3)o+=wS(100*m[b]+10*m[b+1]+m[b+2],10);g%3==1?o+=wS(m[g-1],4):g%3==2&&(o+=wS(10*m[g-2]+m[g-1],7))}else if(r===\"alphanumeric\"){let m=_u.alphabet.alphanumerc.decode(n.split(\"\")),g=m.length;for(let b=0;b<g-1;b+=2)o+=wS(45*m[b]+m[b+1],11);g%2==1&&(o+=wS(m[g-1],6))}else{if(r!==\"byte\")throw new Error(\"encode: unsupported type\");{let m=function(g){if(typeof g!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof g);return new Uint8Array(new TextEncoder().encode(g))}(n);i=m.length,o=Array.from(m).map(g=>wS(g,8)).join(\"\")}}let{capacity:a}=_u.capacity(t,e),c=wS(i,_u.lengthBits(t,r)),u=_u.modeBits[r]+c+o;if(u.length>a)throw new Error(\"Capacity overflow\");u+=\"0\".repeat(Math.min(4,Math.max(0,a-u.length))),u.length%8&&(u+=\"0\".repeat(8-u.length%8));let d=\"1110110000010001\";for(let m=0;u.length!==a;m++)u+=d[m%16];let h=Uint8Array.from(u.match(/(.{8})/g).map(m=>+`0b${m}`));return Mat(t,e).encode(h)}function R8e(t,e,n,r,o=!1){let i=function(u,d,h,m=!1){let g=_u.size.encode(u),b=new AO(g+2),E=new AO(3).rect(0,3,!0).border(1,!1).border(1,!0).border(1,!1);b=b.embed(0,E).embed({x:-E.width,y:0},E).embed({x:0,y:-E.height},E),b=b.rectSlice(1,g);let C=new AO(1).rect(0,1,!0).border(1,!1).border(1,!0),T=_u.alignmentPatterns(u);for(let R of T)for(let L of T)b.data[R][L]===void 0&&b.embed({x:L-2,y:R-2},C);b=b.hLine({x:0,y:6},1/0,({x:R},L)=>L===void 0?R%2==0:L).vLine({x:6,y:0},1/0,({y:R},L)=>L===void 0?R%2==0:L);{let R=_u.formatBits(d,h),L=D=>!m&&(R>>D&1)==1;for(let D=0;D<6;D++)b.data[D][8]=L(D);for(let D=6;D<8;D++)b.data[D+1][8]=L(D);for(let D=8;D<15;D++)b.data[g-15+D][8]=L(D);for(let D=0;D<8;D++)b.data[8][g-D-1]=L(D);for(let D=8;D<9;D++)b.data[8][15-D-1+1]=L(D);for(let D=9;D<15;D++)b.data[8][15-D-1]=L(D);b.data[g-8][8]=!m}if(u>=7){let R=_u.versionBits(u);for(let L=0;L<18;L+=1){let D=!m&&(R>>L&1)==1,G=Math.floor(L/3),W=L%3+g-8-3;b.data[G][W]=D,b.data[W][G]=D}}return b}(t,e,r,o),a=0,c=8*n.length;if(function(u,d,h){let m=u.height,g=Tre[d],b=-1,E=m-1;for(let C=m-1;C>0;C-=2){for(C==6&&(C=5);;E+=b){for(let T=0;T<2;T+=1){let R=C-T;u.data[E][R]===void 0&&h(R,E,g(R,E))}if(E+b<0||E+b>=m)break}b=-b}}(i,r,(u,d,h)=>{let m=!1;a<c&&(m=(n[a>>>3]>>(7-a&7)&1)!=0,a++),i.data[d][u]=m!==h}),a!==c)throw new Error(\"QR: bytes left after draw\");return i}function Nat(t){let e=t.inverse(),n=b=>{let E=0;for(let C,T=0,R=1;T<b.length;T++)C===b[T]&&(R++,T!==b.length-1)||(R>=5&&(E+=R-5+3),C=b[T],R=1);return E},r=0;t.data.forEach(b=>r+=n(b)),e.data.forEach(b=>r+=n(b));let o=0,i=t.data,a=t.width-1,c=t.height-1;for(let b=0;b<a;b++)for(let E=0;E<c;E++){let C=b+1,T=E+1;i[b][E]===i[C][E]&&i[C][E]===i[b][T]&&i[C][E]===i[C][T]&&(o+=3)}let u=b=>{let E=[!0,!1,!0,!0,!0,!1,!0],C=[!1,!1,!1,!1],T=[...E,...C],R=[...C,...E],L=0;for(let D=0;D<b.length;D++)k8e(b,T,D)&&(L+=40),k8e(b,R,D)&&(L+=40);return L},d=0;for(let b of t.data)d+=u(b);for(let b of e.data)d+=u(b);let h=0;t.rectRead(0,1/0,(b,E)=>h+=E?1:0);let m=h/(t.height*t.width)*100,g=10*Math.floor(Math.abs(m-50)/5);return r+o+d+g}function p7e(t,e=\"raw\",n={}){let r=n.ecc!==void 0?n.ecc:\"medium\";(function(h){if(!C8e.includes(h))throw new Error(`Invalid error correction mode=${h}. Expected: ${C8e}`)})(r);let o=n.encoding!==void 0?n.encoding:function(h){let m=\"numeric\";for(let g of h)if(!_u.alphabet.numeric.has(g)&&(m=\"alphanumeric\",!_u.alphabet.alphanumerc.has(g)))return\"byte\";return m}(t);(function(h){if(!A8e.includes(h))throw new Error(`Encoding: invalid mode=${h}. Expected: ${A8e}`);if(h===\"kanji\"||h===\"eci\")throw new Error(`Encoding: ${h} is not supported (yet?).`)})(o),n.mask!==void 0&&function(h){if(![0,1,2,3,4,5,6,7].includes(h)||!Tre[h])throw new Error(`Invalid mask=${h}. Expected number [0..7]`)}(n.mask);let i,a=n.version,c=new Error(\"Unknown error\");if(a!==void 0)(function(h){if(!Number.isSafeInteger(h)||h<1||h>40)throw new Error(`Invalid version=${h}. Expected number [1..40]`)})(a),i=T8e(a,r,t,o);else for(let h=1;h<=40;h++)try{i=T8e(h,r,t,o),a=h;break}catch(m){c=m}if(!a||!i)throw c;let u=function(h,m,g,b){if(b===void 0){let E=function(){let C,T=1/0;return{add(R,L){R>=T||(C=L,T=R)},get:()=>C,score:()=>T}}();for(let C=0;C<Tre.length;C++)E.add(Nat(R8e(h,m,g,C,!0)),C);b=E.get()}if(b===void 0)throw new Error(\"Cannot find mask\");return R8e(h,m,g,b)}(a,r,i,n.mask);u.assertDrawn();let d=n.border===void 0?2:n.border;if(!Number.isSafeInteger(d))throw new Error(\"Wrong border type=\"+typeof d);if(u=u.border(d,!1),n.scale!==void 0&&(u=u.scale(n.scale)),e===\"raw\")return u.data;if(e===\"ascii\")return u.toASCII();if(e===\"svg\")return u.toSVG();if(e===\"gif\")return u.toGIF();if(e===\"term\")return u.toTerm();throw new Error(`Unknown output: ${e}`)}var Rre,Cu,SA,Id,g1,Em,Krt,Ire,Zrt,P8e,Yrt,y4e,cot,uot,_m,sA,Lh,ku,dot,RO,zc,ene,OH,dq,$8e,Mre,Kz,K8e,Hc,$v,Ph,fot,Qv,Gz,tne,uO,$n,Zz,Une,eAe,tAe,nAe,rAe,oAe,iAe,sAe,aAe,cAe,lAe,uAe,dAe,fAe,pAe,mAe,gAe,yAe,bAe,vAe,hot,pot,gr,Yz,mot,got,Kx,Gx,TS,MH,NH,LH,jne,cA,$o,_r,zne,dH,yot,bot,Uv,one,ine,C4e,vot,Rh,qc,Di,a3,wot,Hne,A4e,T4e,xot,N4e,L4e,Eot,ane,cne,B4e,lne,D4e,Rf,Ih,ug,If,Jz,Sot,kot,n3,_ot,Su,Cot,Wne,F4e,Zx,nA,dne,kAe,Kv,fne,wm,Tot,Yx,Qx,OO,Vne,hH,Bre,Dre,Rot,U4e,Iot,$ne,_Ae,lA,Kne,z4e,CAe,hne,H4e,q4e,mA,Ws,SS,kS,Ad,zv,Fre,b1,Sm,FH,Gne,eo,Zne,yt,Of,Xz,Oot,Yne,Pot,Mot,pne,UH,jre,OAe,Not,eH,jH,Z4e,Y4e,DAe,zH,FAe,fA,jv,xm,UAe,Lot,Bot,Dot,jAe,tH,Fot,Q4e,J4e,vO,nH,mO,_l,Qne,rA,X4e,dO,Uot,NO,eCe,rH,jot,tCe,oA,zot,Hot,HAe,qAe,WAe,VAe,He,fO,oH,gne,Yv,wO,h3,RS,qot,wA,Wot,Vot,Wc,vt,HH,Vo,hs,pa,iA,Jne,pH,yA,nCe,Xne,hA,GAe,$ot,Kot,ere,p3,Al,oCe,tre,oit,iit,Vs,YAe,sCe,zre,c3,fg,iH,Cd,o3,aCe,qH,nre,Nh,dit,Jx,Xx,_S,Gv,bA,mH,hit,pit,mit,git,yit,bit,vit,aA,wit,xit,co,BO,sH,hCe,pCe,VH,DO,xO,gH,ore,lTe,Eit,Sit,yCe,kit,_it,Cit,fTe,$H,hTe,IS,CS,Tit,Hv,EO,gTe,qre,Oit,Pit,KH,i3,pA,yO,yH,bH,are,vH,cre,yne,_Ce,wH,lre,bne,CCe,SO,GH,vne,ACe,bTe,dg,Mit,vTe,Nit,EH,wTe,xTe,ETe,v1,ure,qv,dre,t3,xS,Uit,jit,STe,ICe,OCe,zit,fre,Wre,Vre,CTe,Hit,xne,aH,Vit,ES,_ne,PCe,Cne,MCe,Kit,LTe,MS,NCe,LCe,DTe,Ane,DCe,Tne,FCe,Rne,UCe,Zit,$O,Qit,jCe,zCe,Ine,HCe,qCe,WCe,One,VCe,Jre,zTe,mq,rst,ost,ist,sst,kH,Pne,lst,HTe,qTe,ust,dst,hst,EA,QH,hre,mst,ZCe,gst,JH,yst,pre,bst,Mne,vst,wst,QCe,xst,Est,p1,m1,Sst,kst,_st,Ve,WTe,d3,Cst,XH,Xre,s3,eq,eoe,VTe,Eu,KTe,GTe,Rd,pg,tq,ZTe,nq,jO,NS,JCe,zO,HO,XCe,Tst,yn,rq,Rst,YTe,Nne,oq,mre,gre,h1,Ist,mg,Ost,yre,t8e,QTe,Nst,Bst,bre,Dst,Fst,vre,sq,jst,zst,r8e,o8e,i8e,s8e,a8e,c8e,lH,l8e,Wst,wre,aq,$st,Kst,Ere,Sre,Qst,Jst,Xst,eat,tat,nat,toe,u3,noe,u8e,AS,Lne,_H,e7e,gq,E1,Cl,t7e,kre,d8e,n7e,rat,f8e,_re,roe,oat,h8e,ooe,Cre,o7e,CH,ioe,sat,aat,ve,cq,cat,lat,p8e,uat,yq,f3,i7e,m8e,dat,s7e,g8e,fat,y8e,a7e,hat,c7e,l7e,km,soe,v8e,w8e,uH,bO,AH,pat,u7e,aoe,mat,gat,yat,bat,vat,wat,d7e,coe,f7e,xat,h7e,Eat,Are,x8e,Sat,kat,_at,loe,Bne,Cat,Aat,Tat,Rat,doe,foe,AO,C8e,A8e,Iat,Oat,Pat,_u,Tre,Xt,Dne,qO,TO,m7e,g7e,Lat,Bat,y7e,Dat,v7e=ce(()=>{p();Rre=he(s_e()),Cu=he(xee()),SA=he(l_e());Oz();h4e();Jte();Id=typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:typeof window<\"u\"?window:{},g1=[],Em=[],Krt=typeof Uint8Array<\"u\"?Uint8Array:Array,Ire=!1;Zrt={}.toString,P8e=Array.isArray||function(t){return Zrt.call(t)==\"[object Array]\"};at.TYPED_ARRAY_SUPPORT=Id.TYPED_ARRAY_SUPPORT===void 0||Id.TYPED_ARRAY_SUPPORT;Yrt=TH();at.poolSize=8192,at._augment=function(t){return t.__proto__=at.prototype,t},at.from=function(t,e,n){return M8e(null,t,e,n)},at.TYPED_ARRAY_SUPPORT&&(at.prototype.__proto__=Uint8Array.prototype,at.__proto__=Uint8Array,typeof Symbol<\"u\"&&Symbol.species&&at[Symbol.species]),at.alloc=function(t,e,n){return function(r,o,i,a){return N8e(o),o<=0?Vv(r,o):i!==void 0?typeof a==\"string\"?Vv(r,o).fill(i,a):Vv(r,o).fill(i):Vv(r,o)}(null,t,e,n)},at.allocUnsafe=function(t){return Fne(null,t)},at.allocUnsafeSlow=function(t){return Fne(null,t)},at.isBuffer=j8e,at.compare=function(t,e){if(!y1(t)||!y1(e))throw new TypeError(\"Arguments must be Buffers\");if(t===e)return 0;for(var n=t.length,r=e.length,o=0,i=Math.min(n,r);o<i;++o)if(t[o]!==e[o]){n=t[o],r=e[o];break}return n<r?-1:r<n?1:0},at.isEncoding=function(t){switch(String(t).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},at.concat=function(t,e){if(!P8e(t))throw new TypeError(\\'\"list\" argument must be an Array of Buffers\\');if(t.length===0)return at.alloc(0);var n;if(e===void 0)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=at.allocUnsafe(e),o=0;for(n=0;n<t.length;++n){var i=t[n];if(!y1(i))throw new TypeError(\\'\"list\" argument must be an Array of Buffers\\');i.copy(r,o),o+=i.length}return r},at.byteLength=L8e,at.prototype._isBuffer=!0,at.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(var e=0;e<t;e+=2)vS(this,e,e+1);return this},at.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(var e=0;e<t;e+=4)vS(this,e,e+3),vS(this,e+1,e+2);return this},at.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(var e=0;e<t;e+=8)vS(this,e,e+7),vS(this,e+1,e+6),vS(this,e+2,e+5),vS(this,e+3,e+4);return this},at.prototype.toString=function(){var t=0|this.length;return t===0?\"\":arguments.length===0?D8e(this,0,t):Qrt.apply(this,arguments)},at.prototype.equals=function(t){if(!y1(t))throw new TypeError(\"Argument must be a Buffer\");return this===t||at.compare(this,t)===0},at.prototype.inspect=function(){var t=\"\";return this.length>0&&(t=this.toString(\"hex\",0,50).match(/.{2}/g).join(\" \"),this.length>50&&(t+=\" ... \")),\"<Buffer \"+t+\">\"},at.prototype.compare=function(t,e,n,r,o){if(!y1(t))throw new TypeError(\"Argument must be a Buffer\");if(e===void 0&&(e=0),n===void 0&&(n=t?t.length:0),r===void 0&&(r=0),o===void 0&&(o=this.length),e<0||n>t.length||r<0||o>this.length)throw new RangeError(\"out of range index\");if(r>=o&&e>=n)return 0;if(r>=o)return-1;if(e>=n)return 1;if(this===t)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(e>>>=0),c=Math.min(i,a),u=this.slice(r,o),d=t.slice(e,n),h=0;h<c;++h)if(u[h]!==d[h]){i=u[h],a=d[h];break}return i<a?-1:a<i?1:0},at.prototype.includes=function(t,e,n){return this.indexOf(t,e,n)!==-1},at.prototype.indexOf=function(t,e,n){return m4e(this,t,e,n,!0)},at.prototype.lastIndexOf=function(t,e,n){return m4e(this,t,e,n,!1)},at.prototype.write=function(t,e,n,r){if(e===void 0)r=\"utf8\",n=this.length,e=0;else if(n===void 0&&typeof e==\"string\")r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");e|=0,isFinite(n)?(n|=0,r===void 0&&(r=\"utf8\")):(r=n,n=void 0)}var o=this.length-e;if((n===void 0||n>o)&&(n=o),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");r||(r=\"utf8\");for(var i=!1;;)switch(r){case\"hex\":return Jrt(this,t,e,n);case\"utf8\":case\"utf-8\":return Xrt(this,t,e,n);case\"ascii\":return B8e(this,t,e,n);case\"latin1\":case\"binary\":return eot(this,t,e,n);case\"base64\":return tot(this,t,e,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return not(this,t,e,n);default:if(i)throw new TypeError(\"Unknown encoding: \"+r);r=(\"\"+r).toLowerCase(),i=!0}},at.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};y4e=4096;at.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=e===void 0?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),at.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=at.prototype;else{var o=e-t;n=new at(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+t]}return n},at.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||jc(t,e,this.length);for(var r=this[t],o=1,i=0;++i<e&&(o*=256);)r+=this[t+i]*o;return r},at.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||jc(t,e,this.length);for(var r=this[t+--e],o=1;e>0&&(o*=256);)r+=this[t+--e]*o;return r},at.prototype.readUInt8=function(t,e){return e||jc(t,1,this.length),this[t]},at.prototype.readUInt16LE=function(t,e){return e||jc(t,2,this.length),this[t]|this[t+1]<<8},at.prototype.readUInt16BE=function(t,e){return e||jc(t,2,this.length),this[t]<<8|this[t+1]},at.prototype.readUInt32LE=function(t,e){return e||jc(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},at.prototype.readUInt32BE=function(t,e){return e||jc(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},at.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||jc(t,e,this.length);for(var r=this[t],o=1,i=0;++i<e&&(o*=256);)r+=this[t+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*e)),r},at.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||jc(t,e,this.length);for(var r=e,o=1,i=this[t+--r];r>0&&(o*=256);)i+=this[t+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},at.prototype.readInt8=function(t,e){return e||jc(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},at.prototype.readInt16LE=function(t,e){e||jc(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},at.prototype.readInt16BE=function(t,e){e||jc(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},at.prototype.readInt32LE=function(t,e){return e||jc(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},at.prototype.readInt32BE=function(t,e){return e||jc(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},at.prototype.readFloatLE=function(t,e){return e||jc(t,4,this.length),Wz(this,t,!0,23,4)},at.prototype.readFloatBE=function(t,e){return e||jc(t,4,this.length),Wz(this,t,!1,23,4)},at.prototype.readDoubleLE=function(t,e){return e||jc(t,8,this.length),Wz(this,t,!0,52,8)},at.prototype.readDoubleBE=function(t,e){return e||jc(t,8,this.length),Wz(this,t,!1,52,8)},at.prototype.writeUIntLE=function(t,e,n,r){t=+t,e|=0,n|=0,r||Tf(this,t,e,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[e]=255&t;++i<n&&(o*=256);)this[e+i]=t/o&255;return e+n},at.prototype.writeUIntBE=function(t,e,n,r){t=+t,e|=0,n|=0,r||Tf(this,t,e,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[e+o]=255&t;--o>=0&&(i*=256);)this[e+o]=t/i&255;return e+n},at.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,1,255,0),at.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},at.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Vz(this,t,e,!0),e+2},at.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,2,65535,0),at.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Vz(this,t,e,!1),e+2},at.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):$z(this,t,e,!0),e+4},at.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,4,4294967295,0),at.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):$z(this,t,e,!1),e+4},at.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);Tf(this,t,e,n,o-1,-o)}var i=0,a=1,c=0;for(this[e]=255&t;++i<n&&(a*=256);)t<0&&c===0&&this[e+i-1]!==0&&(c=1),this[e+i]=(t/a>>0)-c&255;return e+n},at.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var o=Math.pow(2,8*n-1);Tf(this,t,e,n,o-1,-o)}var i=n-1,a=1,c=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&c===0&&this[e+i+1]!==0&&(c=1),this[e+i]=(t/a>>0)-c&255;return e+n},at.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,1,127,-128),at.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},at.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):Vz(this,t,e,!0),e+2},at.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,2,32767,-32768),at.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):Vz(this,t,e,!1),e+2},at.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,4,2147483647,-2147483648),at.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):$z(this,t,e,!0),e+4},at.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||Tf(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),at.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):$z(this,t,e,!1),e+4},at.prototype.writeFloatLE=function(t,e,n){return b4e(this,t,e,!0,n)},at.prototype.writeFloatBE=function(t,e,n){return b4e(this,t,e,!1,n)},at.prototype.writeDoubleLE=function(t,e,n){return v4e(this,t,e,!0,n)},at.prototype.writeDoubleBE=function(t,e,n){return v4e(this,t,e,!1,n)},at.prototype.copy=function(t,e,n,r){if(n||(n=0),r||r===0||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n||t.length===0||this.length===0)return 0;if(e<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"sourceStart out of bounds\");if(r<0)throw new RangeError(\"sourceEnd out of bounds\");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var o,i=r-n;if(this===t&&n<e&&e<r)for(o=i-1;o>=0;--o)t[o+e]=this[o+n];else if(i<1e3||!at.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)t[o+e]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+i),e);return i},at.prototype.fill=function(t,e,n,r){if(typeof t==\"string\"){if(typeof e==\"string\"?(r=e,e=0,n=this.length):typeof n==\"string\"&&(r=n,n=this.length),t.length===1){var o=t.charCodeAt(0);o<256&&(t=o)}if(r!==void 0&&typeof r!=\"string\")throw new TypeError(\"encoding must be a string\");if(typeof r==\"string\"&&!at.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r)}else typeof t==\"number\"&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError(\"Out of range index\");if(n<=e)return this;var i;if(e>>>=0,n=n===void 0?this.length:n>>>0,t||(t=0),typeof t==\"number\")for(i=e;i<n;++i)this[i]=t;else{var a=y1(t)?t:RH(new at(t,r).toString()),c=a.length;for(i=0;i<n-e;++i)this[i+e]=a[i%c]}return this};cot=/[^+\\\\/0-9A-Za-z-_]/g;uot=Object.freeze({__proto__:null,Buffer:at,INSPECT_MAX_BYTES:50,SlowBuffer:function(t){return+t!=t&&(t=0),at.alloc(+t)},isBuffer:j8e,kMaxLength:Yrt}),_m=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:{};sA={},Lh={},ku={};Object.defineProperty(ku,\"__esModule\",{value:!0}),ku.isBytes=H8e,ku.number=IH,ku.bool=z8e,ku.bytes=Pre,ku.hash=q8e,ku.exists=W8e,ku.output=V8e;dot={number:IH,bool:z8e,bytes:Pre,hash:q8e,exists:W8e,output:V8e};ku.default=dot,function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.wrapCipher=t.Hash=t.nextTick=t.isLE=t.createView=t.u32=t.u16=t.u8=void 0,t.bytesToHex=r,t.hexToBytes=a,t.hexToNumber=c,t.bytesToNumberBE=function(m){return c(r(m))},t.numberToBytesBE=function(m,g){return a(m.toString(16).padStart(2*g,\"0\"))},t.asyncLoop=async function(m,g,b){let E=Date.now();for(let C=0;C<m;C++){b(C);let T=Date.now()-E;T>=0&&T<g||(await(0,t.nextTick)(),E+=T)}},t.utf8ToBytes=u,t.bytesToUtf8=function(m){return new TextDecoder().decode(m)},t.toBytes=function(m){if(typeof m==\"string\")m=u(m);else{if(!(0,e.isBytes)(m))throw new Error(\"Uint8Array expected, got \"+typeof m);m=h(m)}return m},t.concatBytes=function(...m){let g=0;for(let E=0;E<m.length;E++){let C=m[E];(0,e.bytes)(C),g+=C.length}let b=new Uint8Array(g);for(let E=0,C=0;E<m.length;E++){let T=m[E];b.set(T,C),C+=T.length}return b},t.checkOpts=function(m,g){if(g==null||typeof g!=\"object\")throw new Error(\"options must be defined\");return Object.assign(m,g)},t.equalBytes=function(m,g){if(m.length!==g.length)return!1;let b=0;for(let E=0;E<m.length;E++)b|=m[E]^g[E];return b===0},t.setBigUint64=d,t.u64Lengths=function(m,g){let b=new Uint8Array(16),E=(0,t.createView)(b);return d(E,0,BigInt(g?g.length:0),!0),d(E,8,BigInt(m.length),!0),b},t.isAligned32=function(m){return m.byteOffset%4==0},t.copyBytes=h,t.clean=function(...m){for(let g=0;g<m.length;g++)m[g].fill(0)};let e=ku;if(t.u8=m=>new Uint8Array(m.buffer,m.byteOffset,m.byteLength),t.u16=m=>new Uint16Array(m.buffer,m.byteOffset,Math.floor(m.byteLength/2)),t.u32=m=>new Uint32Array(m.buffer,m.byteOffset,Math.floor(m.byteLength/4)),t.createView=m=>new DataView(m.buffer,m.byteOffset,m.byteLength),t.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,!t.isLE)throw new Error(\"Non little-endian hardware is not supported\");let n=Array.from({length:256},(m,g)=>g.toString(16).padStart(2,\"0\"));function r(m){(0,e.bytes)(m);let g=\"\";for(let b=0;b<m.length;b++)g+=n[m[b]];return g}let o={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function i(m){return m>=o._0&&m<=o._9?m-o._0:m>=o._A&&m<=o._F?m-(o._A-10):m>=o._a&&m<=o._f?m-(o._a-10):void 0}function a(m){if(typeof m!=\"string\")throw new Error(\"hex string expected, got \"+typeof m);let g=m.length,b=g/2;if(g%2)throw new Error(\"padded hex string expected, got unpadded hex of length \"+g);let E=new Uint8Array(b);for(let C=0,T=0;C<b;C++,T+=2){let R=i(m.charCodeAt(T)),L=i(m.charCodeAt(T+1));if(R===void 0||L===void 0){let D=m[T]+m[T+1];throw new Error(\\'hex string expected, got non-hex character \"\\'+D+\\'\" at index \\'+T)}E[C]=16*R+L}return E}function c(m){if(typeof m!=\"string\")throw new Error(\"hex string expected, got \"+typeof m);return BigInt(m===\"\"?\"0\":`0x${m}`)}function u(m){if(typeof m!=\"string\")throw new Error(\"string expected, got \"+typeof m);return new Uint8Array(new TextEncoder().encode(m))}t.nextTick=async()=>{},t.Hash=class{};function d(m,g,b,E){if(typeof m.setBigUint64==\"function\")return m.setBigUint64(g,b,E);let C=BigInt(32),T=BigInt(4294967295),R=Number(b>>C&T),L=Number(b&T),D=E?4:0,G=E?0:4;m.setUint32(g+D,R,E),m.setUint32(g+G,L,E)}function h(m){return Uint8Array.from(m)}t.wrapCipher=(m,g)=>(Object.assign(g,m),g)}(Lh);RO={},zc={};Object.defineProperty(zc,\"__esModule\",{value:!0}),zc.AEAD_TAG_LENGTH=zc.XCHACHA20_NONCE_LENGTH=zc.CURVE25519_PUBLIC_KEY_SIZE=zc.ETH_PUBLIC_KEY_SIZE=zc.UNCOMPRESSED_PUBLIC_KEY_SIZE=zc.COMPRESSED_PUBLIC_KEY_SIZE=zc.SECRET_KEY_LENGTH=void 0,zc.SECRET_KEY_LENGTH=32,zc.COMPRESSED_PUBLIC_KEY_SIZE=33,zc.UNCOMPRESSED_PUBLIC_KEY_SIZE=65,zc.ETH_PUBLIC_KEY_SIZE=64,zc.CURVE25519_PUBLIC_KEY_SIZE=32,zc.XCHACHA20_NONCE_LENGTH=24,zc.AEAD_TAG_LENGTH=16,function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.ephemeralKeySize=t.symmetricNonceLength=t.symmetricAlgorithm=t.isHkdfKeyCompressed=t.isEphemeralKeyCompressed=t.ellipticCurve=t.ECIES_CONFIG=void 0;var e=zc,n=function(){this.ellipticCurve=\"secp256k1\",this.isEphemeralKeyCompressed=!1,this.isHkdfKeyCompressed=!1,this.symmetricAlgorithm=\"aes-256-gcm\",this.symmetricNonceLength=16};t.ECIES_CONFIG=new n,t.ellipticCurve=function(){return t.ECIES_CONFIG.ellipticCurve},t.isEphemeralKeyCompressed=function(){return t.ECIES_CONFIG.isEphemeralKeyCompressed},t.isHkdfKeyCompressed=function(){return t.ECIES_CONFIG.isHkdfKeyCompressed},t.symmetricAlgorithm=function(){return t.ECIES_CONFIG.symmetricAlgorithm},t.symmetricNonceLength=function(){return t.ECIES_CONFIG.symmetricNonceLength},t.ephemeralKeySize=function(){var r={secp256k1:t.ECIES_CONFIG.isEphemeralKeyCompressed?e.COMPRESSED_PUBLIC_KEY_SIZE:e.UNCOMPRESSED_PUBLIC_KEY_SIZE,x25519:e.CURVE25519_PUBLIC_KEY_SIZE,ed25519:e.CURVE25519_PUBLIC_KEY_SIZE};if(t.ECIES_CONFIG.ellipticCurve in r)return r[t.ECIES_CONFIG.ellipticCurve];throw new Error(\"Not implemented\")}}(RO);ene={},OH={},dq={},$8e={},Mre={},Kz={};Object.defineProperty(Kz,\"__esModule\",{value:!0}),Kz.crypto=void 0,Kz.crypto=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0,function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.gcm=t.ctr=t.cbc=t.utils=void 0,t.randomBytes=o,t.getWebcryptoSubtle=i,t.managedNonce=function(u){return(0,n.number)(u.nonceLength),(d,...h)=>({encrypt(m,...g){let{nonceLength:b}=u,E=o(b),C=u(d,E,...h).encrypt(m,...g),T=(0,r.concatBytes)(E,C);return C.fill(0),T},decrypt(m,...g){let{nonceLength:b}=u,E=m.subarray(0,b),C=m.subarray(b);return u(d,E,...h).decrypt(C,...g)}})};let e=Kz,n=ku,r=Lh;function o(u=32){if(e.crypto&&typeof e.crypto.getRandomValues==\"function\")return e.crypto.getRandomValues(new Uint8Array(u));if(e.crypto&&typeof e.crypto.randomBytes==\"function\")return e.crypto.randomBytes(u);throw new Error(\"crypto.getRandomValues must be defined\")}function i(){if(e.crypto&&typeof e.crypto.subtle==\"object\"&&e.crypto.subtle!=null)return e.crypto.subtle;throw new Error(\"crypto.subtle must be defined\")}t.utils={async encrypt(u,d,h,m){let g=i(),b=await g.importKey(\"raw\",u,d,!0,[\"encrypt\"]),E=await g.encrypt(h,b,m);return new Uint8Array(E)},async decrypt(u,d,h,m){let g=i(),b=await g.importKey(\"raw\",u,d,!0,[\"decrypt\"]),E=await g.decrypt(h,b,m);return new Uint8Array(E)}};let a={CBC:\"AES-CBC\",CTR:\"AES-CTR\",GCM:\"AES-GCM\"};function c(u){return(d,h,m)=>{(0,n.bytes)(d),(0,n.bytes)(h);let g={name:u,length:8*d.length},b=function(E,C,T){if(E===a.CBC)return{name:a.CBC,iv:C};if(E===a.CTR)return{name:a.CTR,counter:C,length:64};if(E===a.GCM)return T?{name:a.GCM,iv:C,additionalData:T}:{name:a.GCM,iv:C};throw new Error(\"unknown aes block mode\")}(u,h,m);return{encrypt:E=>((0,n.bytes)(E),t.utils.encrypt(d,g,b,E)),decrypt:E=>((0,n.bytes)(E),t.utils.decrypt(d,g,b,E))}}}t.cbc=c(a.CBC),t.ctr=c(a.CTR),t.gcm=c(a.GCM)}(Mre);K8e={},Hc={},$v={},Ph={};Object.defineProperty(Ph,\"__esModule\",{value:!0}),Ph.isBytes=Z8e,Ph.number=PH,Ph.bool=G8e,Ph.bytes=Nre,Ph.hash=Y8e,Ph.exists=Q8e,Ph.output=J8e;fot={number:PH,bool:G8e,bytes:Nre,hash:Y8e,exists:Q8e,output:J8e};Ph.default=fot;Qv={},Gz={};Object.defineProperty(Gz,\"__esModule\",{value:!0}),Gz.crypto=void 0,Gz.crypto=typeof globalThis==\"object\"&&\"crypto\"in globalThis?globalThis.crypto:void 0,function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.Hash=t.nextTick=t.byteSwapIfBE=t.byteSwap=t.isLE=t.rotl=t.rotr=t.createView=t.u32=t.u8=void 0,t.isBytes=function(d){return d instanceof Uint8Array||d!=null&&typeof d==\"object\"&&d.constructor.name===\"Uint8Array\"},t.byteSwap32=function(d){for(let h=0;h<d.length;h++)d[h]=(0,t.byteSwap)(d[h])},t.bytesToHex=function(d){(0,n.bytes)(d);let h=\"\";for(let m=0;m<d.length;m++)h+=r[d[m]];return h},t.hexToBytes=function(d){if(typeof d!=\"string\")throw new Error(\"hex string expected, got \"+typeof d);let h=d.length,m=h/2;if(h%2)throw new Error(\"padded hex string expected, got unpadded hex of length \"+h);let g=new Uint8Array(m);for(let b=0,E=0;b<m;b++,E+=2){let C=i(d.charCodeAt(E)),T=i(d.charCodeAt(E+1));if(C===void 0||T===void 0){let R=d[E]+d[E+1];throw new Error(\\'hex string expected, got non-hex character \"\\'+R+\\'\" at index \\'+E)}g[b]=16*C+T}return g},t.asyncLoop=async function(d,h,m){let g=Date.now();for(let b=0;b<d;b++){m(b);let E=Date.now()-g;E>=0&&E<h||(await(0,t.nextTick)(),g+=E)}},t.utf8ToBytes=a,t.toBytes=c,t.concatBytes=function(...d){let h=0;for(let g=0;g<d.length;g++){let b=d[g];(0,n.bytes)(b),h+=b.length}let m=new Uint8Array(h);for(let g=0,b=0;g<d.length;g++){let E=d[g];m.set(E,b),b+=E.length}return m},t.checkOpts=function(d,h){if(h!==void 0&&u.call(h)!==\"[object Object]\")throw new Error(\"Options should be object or undefined\");return Object.assign(d,h)},t.wrapConstructor=function(d){let h=g=>d().update(c(g)).digest(),m=d();return h.outputLen=m.outputLen,h.blockLen=m.blockLen,h.create=()=>d(),h},t.wrapConstructorWithOpts=function(d){let h=(g,b)=>d(b).update(c(g)).digest(),m=d({});return h.outputLen=m.outputLen,h.blockLen=m.blockLen,h.create=g=>d(g),h},t.wrapXOFConstructorWithOpts=function(d){let h=(g,b)=>d(b).update(c(g)).digest(),m=d({});return h.outputLen=m.outputLen,h.blockLen=m.blockLen,h.create=g=>d(g),h},t.randomBytes=function(d=32){if(e.crypto&&typeof e.crypto.getRandomValues==\"function\")return e.crypto.getRandomValues(new Uint8Array(d));if(e.crypto&&typeof e.crypto.randomBytes==\"function\")return e.crypto.randomBytes(d);throw new Error(\"crypto.getRandomValues must be defined\")};let e=Gz,n=Ph;t.u8=d=>new Uint8Array(d.buffer,d.byteOffset,d.byteLength),t.u32=d=>new Uint32Array(d.buffer,d.byteOffset,Math.floor(d.byteLength/4)),t.createView=d=>new DataView(d.buffer,d.byteOffset,d.byteLength),t.rotr=(d,h)=>d<<32-h|d>>>h,t.rotl=(d,h)=>d<<h|d>>>32-h>>>0,t.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,t.byteSwap=d=>d<<24&4278190080|d<<8&16711680|d>>>8&65280|d>>>24&255,t.byteSwapIfBE=t.isLE?d=>d:d=>(0,t.byteSwap)(d);let r=Array.from({length:256},(d,h)=>h.toString(16).padStart(2,\"0\")),o={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function i(d){return d>=o._0&&d<=o._9?d-o._0:d>=o._A&&d<=o._F?d-(o._A-10):d>=o._a&&d<=o._f?d-(o._a-10):void 0}function a(d){if(typeof d!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof d);return new Uint8Array(new TextEncoder().encode(d))}function c(d){return typeof d==\"string\"&&(d=a(d)),(0,n.bytes)(d),d}t.nextTick=async()=>{},t.Hash=class{clone(){return this._cloneInto()}};let u={}.toString}(Qv),Object.defineProperty($v,\"__esModule\",{value:!0}),$v.HashMD=$v.Maj=$v.Chi=void 0;tne=Ph,uO=Qv;$v.Chi=(t,e,n)=>t&e^~t&n;$v.Maj=(t,e,n)=>t&e^t&n^e&n;$v.HashMD=class extends uO.Hash{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=(0,uO.createView)(this.buffer)}update(t){(0,tne.exists)(this);let{view:e,buffer:n,blockLen:r}=this,o=(t=(0,uO.toBytes)(t)).length;for(let i=0;i<o;){let a=Math.min(r-this.pos,o-i);if(a!==r)n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===r&&(this.process(e,0),this.pos=0);else{let c=(0,uO.createView)(t);for(;r<=o-i;i+=r)this.process(c,i)}}return this.length+=t.length,this.roundClean(),this}digestInto(t){(0,tne.exists)(this),(0,tne.output)(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:r,isLE:o}=this,{pos:i}=this;e[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let h=i;h<r;h++)e[h]=0;(function(h,m,g,b){if(typeof h.setBigUint64==\"function\")return h.setBigUint64(m,g,b);let E=BigInt(32),C=BigInt(4294967295),T=Number(g>>E&C),R=Number(g&C),L=b?4:0,D=b?0:4;h.setUint32(m+L,T,b),h.setUint32(m+D,R,b)})(n,r-8,BigInt(8*this.length),o),this.process(n,0);let a=(0,uO.createView)(t),c=this.outputLen;if(c%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");let u=c/4,d=this.get();if(u>d.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let h=0;h<u;h++)a.setUint32(4*h,d[h],o)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:r,finished:o,destroyed:i,pos:a}=this;return t.length=r,t.pos=a,t.finished=o,t.destroyed=i,r%e&&t.buffer.set(n),t}};$n={};Object.defineProperty($n,\"__esModule\",{value:!0}),$n.add5L=$n.add5H=$n.add4H=$n.add4L=$n.add3H=$n.add3L=$n.rotlBL=$n.rotlBH=$n.rotlSL=$n.rotlSH=$n.rotr32L=$n.rotr32H=$n.rotrBL=$n.rotrBH=$n.rotrSL=$n.rotrSH=$n.shrSL=$n.shrSH=$n.toBig=void 0,$n.fromBig=Lre,$n.split=X8e,$n.add=hAe;Zz=BigInt(2**32-1),Une=BigInt(32);eAe=(t,e)=>BigInt(t>>>0)<<Une|BigInt(e>>>0);$n.toBig=eAe;tAe=(t,e,n)=>t>>>n;$n.shrSH=tAe;nAe=(t,e,n)=>t<<32-n|e>>>n;$n.shrSL=nAe;rAe=(t,e,n)=>t>>>n|e<<32-n;$n.rotrSH=rAe;oAe=(t,e,n)=>t<<32-n|e>>>n;$n.rotrSL=oAe;iAe=(t,e,n)=>t<<64-n|e>>>n-32;$n.rotrBH=iAe;sAe=(t,e,n)=>t>>>n-32|e<<64-n;$n.rotrBL=sAe;aAe=(t,e)=>e;$n.rotr32H=aAe;cAe=(t,e)=>t;$n.rotr32L=cAe;lAe=(t,e,n)=>t<<n|e>>>32-n;$n.rotlSH=lAe;uAe=(t,e,n)=>e<<n|t>>>32-n;$n.rotlSL=uAe;dAe=(t,e,n)=>e<<n-32|t>>>64-n;$n.rotlBH=dAe;fAe=(t,e,n)=>t<<n-32|e>>>64-n;$n.rotlBL=fAe;pAe=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0);$n.add3L=pAe;mAe=(t,e,n,r)=>e+n+r+(t/2**32|0)|0;$n.add3H=mAe;gAe=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0);$n.add4L=gAe;yAe=(t,e,n,r,o)=>e+n+r+o+(t/2**32|0)|0;$n.add4H=yAe;bAe=(t,e,n,r,o)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(o>>>0);$n.add5L=bAe;vAe=(t,e,n,r,o,i)=>e+n+r+o+i+(t/2**32|0)|0;$n.add5H=vAe;hot={fromBig:Lre,split:X8e,toBig:eAe,shrSH:tAe,shrSL:nAe,rotrSH:rAe,rotrSL:oAe,rotrBH:iAe,rotrBL:sAe,rotr32H:aAe,rotr32L:cAe,rotlSH:lAe,rotlSL:uAe,rotlBH:dAe,rotlBL:fAe,add:hAe,add3L:pAe,add3H:mAe,add4L:gAe,add4H:yAe,add5H:vAe,add5L:bAe};$n.default=hot,Object.defineProperty(Hc,\"__esModule\",{value:!0}),Hc.sha384=Hc.sha512_256=Hc.sha512_224=Hc.sha512=Hc.SHA384=Hc.SHA512_256=Hc.SHA512_224=Hc.SHA512=void 0;pot=$v,gr=$n,Yz=Qv,[mot,got]=gr.default.split([\"0x428a2f98d728ae22\",\"0x7137449123ef65cd\",\"0xb5c0fbcfec4d3b2f\",\"0xe9b5dba58189dbbc\",\"0x3956c25bf348b538\",\"0x59f111f1b605d019\",\"0x923f82a4af194f9b\",\"0xab1c5ed5da6d8118\",\"0xd807aa98a3030242\",\"0x12835b0145706fbe\",\"0x243185be4ee4b28c\",\"0x550c7dc3d5ffb4e2\",\"0x72be5d74f27b896f\",\"0x80deb1fe3b1696b1\",\"0x9bdc06a725c71235\",\"0xc19bf174cf692694\",\"0xe49b69c19ef14ad2\",\"0xefbe4786384f25e3\",\"0x0fc19dc68b8cd5b5\",\"0x240ca1cc77ac9c65\",\"0x2de92c6f592b0275\",\"0x4a7484aa6ea6e483\",\"0x5cb0a9dcbd41fbd4\",\"0x76f988da831153b5\",\"0x983e5152ee66dfab\",\"0xa831c66d2db43210\",\"0xb00327c898fb213f\",\"0xbf597fc7beef0ee4\",\"0xc6e00bf33da88fc2\",\"0xd5a79147930aa725\",\"0x06ca6351e003826f\",\"0x142929670a0e6e70\",\"0x27b70a8546d22ffc\",\"0x2e1b21385c26c926\",\"0x4d2c6dfc5ac42aed\",\"0x53380d139d95b3df\",\"0x650a73548baf63de\",\"0x766a0abb3c77b2a8\",\"0x81c2c92e47edaee6\",\"0x92722c851482353b\",\"0xa2bfe8a14cf10364\",\"0xa81a664bbc423001\",\"0xc24b8b70d0f89791\",\"0xc76c51a30654be30\",\"0xd192e819d6ef5218\",\"0xd69906245565a910\",\"0xf40e35855771202a\",\"0x106aa07032bbd1b8\",\"0x19a4c116b8d2d0c8\",\"0x1e376c085141ab53\",\"0x2748774cdf8eeb99\",\"0x34b0bcb5e19b48a8\",\"0x391c0cb3c5c95a63\",\"0x4ed8aa4ae3418acb\",\"0x5b9cca4f7763e373\",\"0x682e6ff3d6b2b8a3\",\"0x748f82ee5defb2fc\",\"0x78a5636f43172f60\",\"0x84c87814a1f0ab72\",\"0x8cc702081a6439ec\",\"0x90befffa23631e28\",\"0xa4506cebde82bde9\",\"0xbef9a3f7b2c67915\",\"0xc67178f2e372532b\",\"0xca273eceea26619c\",\"0xd186b8c721c0c207\",\"0xeada7dd6cde0eb1e\",\"0xf57d4f7fee6ed178\",\"0x06f067aa72176fba\",\"0x0a637dc5a2c898a6\",\"0x113f9804bef90dae\",\"0x1b710b35131c471b\",\"0x28db77f523047d84\",\"0x32caab7b40c72493\",\"0x3c9ebe0a15c9bebc\",\"0x431d67c49c100d4c\",\"0x4cc5d4becb3e42b6\",\"0x597f299cfc657e2a\",\"0x5fcb6fab3ad6faec\",\"0x6c44198c4a475817\"].map(t=>BigInt(t))),Kx=new Uint32Array(80),Gx=new Uint32Array(80),TS=class extends pot.HashMD{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:n,Bh:r,Bl:o,Ch:i,Cl:a,Dh:c,Dl:u,Eh:d,El:h,Fh:m,Fl:g,Gh:b,Gl:E,Hh:C,Hl:T}=this;return[e,n,r,o,i,a,c,u,d,h,m,g,b,E,C,T]}set(e,n,r,o,i,a,c,u,d,h,m,g,b,E,C,T){this.Ah=0|e,this.Al=0|n,this.Bh=0|r,this.Bl=0|o,this.Ch=0|i,this.Cl=0|a,this.Dh=0|c,this.Dl=0|u,this.Eh=0|d,this.El=0|h,this.Fh=0|m,this.Fl=0|g,this.Gh=0|b,this.Gl=0|E,this.Hh=0|C,this.Hl=0|T}process(e,n){for(let D=0;D<16;D++,n+=4)Kx[D]=e.getUint32(n),Gx[D]=e.getUint32(n+=4);for(let D=16;D<80;D++){let G=0|Kx[D-15],W=0|Gx[D-15],J=gr.default.rotrSH(G,W,1)^gr.default.rotrSH(G,W,8)^gr.default.shrSH(G,W,7),ne=gr.default.rotrSL(G,W,1)^gr.default.rotrSL(G,W,8)^gr.default.shrSL(G,W,7),ie=0|Kx[D-2],Z=0|Gx[D-2],ae=gr.default.rotrSH(ie,Z,19)^gr.default.rotrBH(ie,Z,61)^gr.default.shrSH(ie,Z,6),V=gr.default.rotrSL(ie,Z,19)^gr.default.rotrBL(ie,Z,61)^gr.default.shrSL(ie,Z,6),$=gr.default.add4L(ne,V,Gx[D-7],Gx[D-16]),F=gr.default.add4H($,J,ae,Kx[D-7],Kx[D-16]);Kx[D]=0|F,Gx[D]=0|$}let{Ah:r,Al:o,Bh:i,Bl:a,Ch:c,Cl:u,Dh:d,Dl:h,Eh:m,El:g,Fh:b,Fl:E,Gh:C,Gl:T,Hh:R,Hl:L}=this;for(let D=0;D<80;D++){let G=gr.default.rotrSH(m,g,14)^gr.default.rotrSH(m,g,18)^gr.default.rotrBH(m,g,41),W=gr.default.rotrSL(m,g,14)^gr.default.rotrSL(m,g,18)^gr.default.rotrBL(m,g,41),J=m&b^~m&C,ne=g&E^~g&T,ie=gr.default.add5L(L,W,ne,got[D],Gx[D]),Z=gr.default.add5H(ie,R,G,J,mot[D],Kx[D]),ae=0|ie,V=gr.default.rotrSH(r,o,28)^gr.default.rotrBH(r,o,34)^gr.default.rotrBH(r,o,39),$=gr.default.rotrSL(r,o,28)^gr.default.rotrBL(r,o,34)^gr.default.rotrBL(r,o,39),F=r&i^r&c^i&c,_=o&a^o&u^a&u;R=0|C,L=0|T,C=0|b,T=0|E,b=0|m,E=0|g,{h:m,l:g}=gr.default.add(0|d,0|h,0|Z,0|ae),d=0|c,h=0|u,c=0|i,u=0|a,i=0|r,a=0|o;let O=gr.default.add3L(ae,$,_);r=gr.default.add3H(O,Z,V,F),o=0|O}({h:r,l:o}=gr.default.add(0|this.Ah,0|this.Al,0|r,0|o)),{h:i,l:a}=gr.default.add(0|this.Bh,0|this.Bl,0|i,0|a),{h:c,l:u}=gr.default.add(0|this.Ch,0|this.Cl,0|c,0|u),{h:d,l:h}=gr.default.add(0|this.Dh,0|this.Dl,0|d,0|h),{h:m,l:g}=gr.default.add(0|this.Eh,0|this.El,0|m,0|g),{h:b,l:E}=gr.default.add(0|this.Fh,0|this.Fl,0|b,0|E),{h:C,l:T}=gr.default.add(0|this.Gh,0|this.Gl,0|C,0|T),{h:R,l:L}=gr.default.add(0|this.Hh,0|this.Hl,0|R,0|L),this.set(r,o,i,a,c,u,d,h,m,g,b,E,C,T,R,L)}roundClean(){Kx.fill(0),Gx.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};Hc.SHA512=TS;MH=class extends TS{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}};Hc.SHA512_224=MH;NH=class extends TS{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}};Hc.SHA512_256=NH;LH=class extends TS{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}};Hc.SHA384=LH,Hc.sha512=(0,Yz.wrapConstructor)(()=>new TS),Hc.sha512_224=(0,Yz.wrapConstructor)(()=>new MH),Hc.sha512_256=(0,Yz.wrapConstructor)(()=>new NH),Hc.sha384=(0,Yz.wrapConstructor)(()=>new LH);jne={},cA={},$o={},_r={};Object.defineProperty(_r,\"__esModule\",{value:!0}),_r.notImplemented=_r.bitMask=void 0,_r.isBytes=BH,_r.abytes=DH,_r.abool=function(t,e){if(typeof e!=\"boolean\")throw new Error(`${t} must be valid boolean, got \"${e}\".`)},_r.bytesToHex=nne,_r.numberToHexUnpadded=x4e,_r.hexToNumber=rne,_r.hexToBytes=fH,_r.bytesToNumberBE=function(t){return rne(nne(t))},_r.bytesToNumberLE=function(t){return DH(t),rne(nne(Uint8Array.from(t).reverse()))},_r.numberToBytesBE=S4e,_r.numberToBytesLE=function(t,e){return S4e(t,e).reverse()},_r.numberToVarBytesBE=function(t){return fH(x4e(t))},_r.ensureBytes=function(t,e,n){let r;if(typeof e==\"string\")try{r=fH(e)}catch(i){throw new Error(`${t} must be valid hex string, got \"${e}\". Cause: ${i}`)}else{if(!BH(e))throw new Error(`${t} must be hex string or Uint8Array`);r=Uint8Array.from(e)}let o=r.length;if(typeof n==\"number\"&&o!==n)throw new Error(`${t} expected ${n} bytes, got ${o}`);return r},_r.concatBytes=k4e,_r.equalBytes=function(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0},_r.utf8ToBytes=function(t){if(typeof t!=\"string\")throw new Error(\"utf8ToBytes expected string, got \"+typeof t);return new Uint8Array(new TextEncoder().encode(t))},_r.inRange=_4e,_r.aInRange=function(t,e,n,r){if(!_4e(e,n,r))throw new Error(`expected valid ${t}: ${n} <= n < ${r}, got ${typeof e} ${e}`)},_r.bitLen=function(t){let e;for(e=0;t>zne;t>>=dH,e+=1);return e},_r.bitGet=function(t,e){return t>>BigInt(e)&dH},_r.bitSet=function(t,e,n){return t|(n?dH:zne)<<BigInt(e)},_r.createHmacDrbg=function(t,e,n){if(typeof t!=\"number\"||t<2)throw new Error(\"hashLen must be a number\");if(typeof e!=\"number\"||e<2)throw new Error(\"qByteLen must be a number\");if(typeof n!=\"function\")throw new Error(\"hmacFn must be a function\");let r=ine(t),o=ine(t),i=0,a=()=>{r.fill(1),o.fill(0),i=0},c=(...h)=>n(o,r,...h),u=(h=ine())=>{o=c(C4e([0]),h),r=c(),h.length!==0&&(o=c(C4e([1]),h),r=c())},d=()=>{if(i++>=1e3)throw new Error(\"drbg: tried 1000 values\");let h=0,m=[];for(;h<e;){r=c();let g=r.slice();m.push(g),h+=r.length}return k4e(...m)};return(h,m)=>{let g;for(a(),u(h);!(g=m(d()));)u();return a(),g}},_r.validateObject=function(t,e,n={}){let r=(o,i,a)=>{let c=vot[i];if(typeof c!=\"function\")throw new Error(`Invalid validator \"${i}\", expected function`);let u=t[o];if(!(a&&u===void 0||c(u,t)))throw new Error(`Invalid param ${String(o)}=${u} (${typeof u}), expected ${i}`)};for(let[o,i]of Object.entries(e))r(o,i,!1);for(let[o,i]of Object.entries(n))r(o,i,!0);return t},_r.memoized=function(t){let e=new WeakMap;return(n,...r)=>{let o=e.get(n);if(o!==void 0)return o;let i=t(n,...r);return e.set(n,i),i}};zne=BigInt(0),dH=BigInt(1),yot=BigInt(2);bot=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,\"0\"));Uv={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};one=t=>typeof t==\"bigint\"&&zne<=t;_r.bitMask=t=>(yot<<BigInt(t-1))-dH;ine=t=>new Uint8Array(t),C4e=t=>Uint8Array.from(t),vot={bigint:t=>typeof t==\"bigint\",function:t=>typeof t==\"function\",boolean:t=>typeof t==\"boolean\",string:t=>typeof t==\"string\",stringOrUint8Array:t=>typeof t==\"string\"||BH(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t==\"function\"&&Number.isSafeInteger(t.outputLen)};_r.notImplemented=()=>{throw new Error(\"not implemented\")},Object.defineProperty($o,\"__esModule\",{value:!0}),$o.isNegativeLE=void 0,$o.mod=Oh,$o.pow=wAe,$o.pow2=function(t,e,n){let r=t;for(;e-- >qc;)r*=r,r%=n;return r},$o.invert=Qz,$o.tonelliShanks=xAe,$o.FpSqrt=R4e,$o.validateField=function(t){let e=xot.reduce((n,r)=>(n[r]=\"function\",n),{ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"});return(0,Rh.validateObject)(t,e)},$o.FpPow=I4e,$o.FpInvertBatch=O4e,$o.FpDiv=function(t,e,n){return t.mul(e,typeof n==\"bigint\"?Qz(n,t.ORDER):t.inv(n))},$o.FpLegendre=P4e,$o.FpIsSquare=function(t){let e=P4e(t.ORDER);return n=>{let r=e(t,n);return t.eql(r,t.ZERO)||t.eql(r,t.ONE)}},$o.nLength=sne,$o.Field=function(t,e,n=!1,r={}){if(t<=qc)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:o,nByteLength:i}=sne(t,e);if(i>2048)throw new Error(\"Field lengths over 2048 bytes are not supported\");let a=R4e(t),c=Object.freeze({ORDER:t,BITS:o,BYTES:i,MASK:(0,Rh.bitMask)(o),ZERO:qc,ONE:Di,create:u=>Oh(u,t),isValid:u=>{if(typeof u!=\"bigint\")throw new Error(\"Invalid field element: expected bigint, got \"+typeof u);return qc<=u&&u<t},is0:u=>u===qc,isOdd:u=>(u&Di)===Di,neg:u=>Oh(-u,t),eql:(u,d)=>u===d,sqr:u=>Oh(u*u,t),add:(u,d)=>Oh(u+d,t),sub:(u,d)=>Oh(u-d,t),mul:(u,d)=>Oh(u*d,t),pow:(u,d)=>I4e(c,u,d),div:(u,d)=>Oh(u*Qz(d,t),t),sqrN:u=>u*u,addN:(u,d)=>u+d,subN:(u,d)=>u-d,mulN:(u,d)=>u*d,inv:u=>Qz(u,t),sqrt:r.sqrt||(u=>a(c,u)),invertBatch:u=>O4e(c,u),cmov:(u,d,h)=>h?d:u,toBytes:u=>n?(0,Rh.numberToBytesLE)(u,i):(0,Rh.numberToBytesBE)(u,i),fromBytes:u=>{if(u.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${u.length}`);return n?(0,Rh.bytesToNumberLE)(u):(0,Rh.bytesToNumberBE)(u)}});return Object.freeze(c)},$o.FpSqrtOdd=function(t,e){if(!t.isOdd)throw new Error(\"Field doesn\\'t have isOdd\");let n=t.sqrt(e);return t.isOdd(n)?n:t.neg(n)},$o.FpSqrtEven=function(t,e){if(!t.isOdd)throw new Error(\"Field doesn\\'t have isOdd\");let n=t.sqrt(e);return t.isOdd(n)?t.neg(n):n},$o.hashToPrivateScalar=function(t,e,n=!1){t=(0,Rh.ensureBytes)(\"privateHash\",t);let r=t.length,o=sne(e).nByteLength+8;if(o<24||r<o||r>1024)throw new Error(`hashToPrivateScalar: expected ${o}-1024 bytes of input, got ${r}`);let i=n?(0,Rh.bytesToNumberLE)(t):(0,Rh.bytesToNumberBE)(t);return Oh(i,e-Di)+Di},$o.getFieldBytesLength=qne,$o.getMinHashLength=M4e,$o.mapHashToField=function(t,e,n=!1){let r=t.length,o=qne(e),i=M4e(e);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);let a=Oh(n?(0,Rh.bytesToNumberBE)(t):(0,Rh.bytesToNumberLE)(t),e-Di)+Di;return n?(0,Rh.numberToBytesLE)(a,o):(0,Rh.numberToBytesBE)(a,o)};Rh=_r,qc=BigInt(0),Di=BigInt(1),a3=BigInt(2),wot=BigInt(3),Hne=BigInt(4),A4e=BigInt(5),T4e=BigInt(8);BigInt(9),BigInt(16);$o.isNegativeLE=(t,e)=>(Oh(t,e)&Di)===Di;xot=[\"create\",\"isValid\",\"is0\",\"neg\",\"inv\",\"sqrt\",\"sqr\",\"eql\",\"add\",\"sub\",\"mul\",\"pow\",\"div\",\"addN\",\"subN\",\"mulN\",\"sqrN\"];Object.defineProperty(cA,\"__esModule\",{value:!0}),cA.wNAF=function(t,e){let n=(i,a)=>{let c=a.negate();return i?c:a},r=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},o=i=>(r(i),{windows:Math.ceil(e/i)+1,windowSize:2**(i-1)});return{constTimeNegate:n,unsafeLadder(i,a){let c=t.ZERO,u=i;for(;a>Eot;)a&ane&&(c=c.add(u)),u=u.double(),a>>=ane;return c},precomputeWindow(i,a){let{windows:c,windowSize:u}=o(a),d=[],h=i,m=h;for(let g=0;g<c;g++){m=h,d.push(m);for(let b=1;b<u;b++)m=m.add(h),d.push(m);h=m.double()}return d},wNAF(i,a,c){let{windows:u,windowSize:d}=o(i),h=t.ZERO,m=t.BASE,g=BigInt(2**i-1),b=2**i,E=BigInt(i);for(let C=0;C<u;C++){let T=C*d,R=Number(c&g);c>>=E,R>d&&(R-=b,c+=ane);let L=T,D=T+Math.abs(R)-1,G=C%2!=0,W=R<0;R===0?m=m.add(n(G,a[L])):h=h.add(n(W,a[D]))}return{p:h,f:m}},wNAFCached(i,a,c){let u=B4e.get(i)||1,d=cne.get(i);return d||(d=this.precomputeWindow(i,u),u!==1&&cne.set(i,c(d))),this.wNAF(u,d,a)},setWindowSize(i,a){r(a),B4e.set(i,a),cne.delete(i)}}},cA.pippenger=function(t,e,n,r){if(!Array.isArray(n)||!Array.isArray(r)||r.length!==n.length)throw new Error(\"arrays of points and scalars must have equal length\");r.forEach((h,m)=>{if(!e.isValid(h))throw new Error(`wrong scalar at index ${m}`)}),n.forEach((h,m)=>{if(!(h instanceof t))throw new Error(`wrong point at index ${m}`)});let o=(0,L4e.bitLen)(BigInt(n.length)),i=o>12?o-3:o>4?o-2:o?2:1,a=(1<<i)-1,c=new Array(a+1).fill(t.ZERO),u=Math.floor((e.BITS-1)/i)*i,d=t.ZERO;for(let h=u;h>=0;h-=i){c.fill(t.ZERO);for(let g=0;g<r.length;g++){let b=r[g],E=Number(b>>BigInt(h)&BigInt(a));c[E]=c[E].add(n[g])}let m=t.ZERO;for(let g=c.length-1,b=t.ZERO;g>0;g--)b=b.add(c[g]),m=m.add(b);if(d=d.add(m),h!==0)for(let g=0;g<i;g++)d=d.double()}return d},cA.validateBasic=function(t){return(0,N4e.validateField)(t.Fp),(0,L4e.validateObject)(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...(0,N4e.nLength)(t.n,t.nBitLength),...t,p:t.Fp.ORDER})};N4e=$o,L4e=_r,Eot=BigInt(0),ane=BigInt(1),cne=new WeakMap,B4e=new WeakMap;Object.defineProperty(jne,\"__esModule\",{value:!0}),jne.twistedEdwards=function(t){let e=function(F){let _=(0,lne.validateBasic)(F);return Rf.validateObject(F,{hash:\"function\",a:\"bigint\",d:\"bigint\",randomBytes:\"function\"},{adjustScalarBytes:\"function\",domain:\"function\",uvRatio:\"function\",mapToCurve:\"function\"}),Object.freeze({..._})}(t),{Fp:n,n:r,prehash:o,hash:i,randomBytes:a,nByteLength:c,h:u}=e,d=Jz<<BigInt(8*c)-If,h=n.create,m=(0,D4e.Field)(e.n,e.nBitLength),g=e.uvRatio||((F,_)=>{try{return{isValid:!0,value:n.sqrt(F*n.inv(_))}}catch{return{isValid:!1,value:ug}}}),b=e.adjustScalarBytes||(F=>F),E=e.domain||((F,_,O)=>{if((0,Ih.abool)(\"phflag\",O),_.length||O)throw new Error(\"Contexts/pre-hash are not supported\");return F});function C(F,_){Rf.aInRange(\"coordinate \"+F,_,ug,d)}function T(F){if(!(F instanceof D))throw new Error(\"ExtendedPoint expected\")}let R=(0,Ih.memoized)((F,_)=>{let{ex:O,ey:z,ez:N}=F,B=F.is0();_==null&&(_=B?Sot:n.inv(N));let j=h(O*_),q=h(z*_),H=h(N*_);if(B)return{x:ug,y:If};if(H!==If)throw new Error(\"invZ was invalid\");return{x:j,y:q}}),L=(0,Ih.memoized)(F=>{let{a:_,d:O}=e;if(F.is0())throw new Error(\"bad point: ZERO\");let{ex:z,ey:N,ez:B,et:j}=F,q=h(z*z),H=h(N*N),I=h(B*B),U=h(I*I),X=h(q*_);if(h(I*h(X+H))!==h(U+h(O*h(q*H))))throw new Error(\"bad point: equation left != right (1)\");if(h(z*N)!==h(B*j))throw new Error(\"bad point: equation left != right (2)\");return!0});class D{constructor(_,O,z,N){this.ex=_,this.ey=O,this.ez=z,this.et=N,C(\"x\",_),C(\"y\",O),C(\"z\",z),C(\"t\",N),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(_){if(_ instanceof D)throw new Error(\"extended point not allowed\");let{x:O,y:z}=_||{};return C(\"x\",O),C(\"y\",z),new D(O,z,If,h(O*z))}static normalizeZ(_){let O=n.invertBatch(_.map(z=>z.ez));return _.map((z,N)=>z.toAffine(O[N])).map(D.fromAffine)}static msm(_,O){return(0,lne.pippenger)(D,m,_,O)}_setWindowSize(_){J.setWindowSize(this,_)}assertValidity(){L(this)}equals(_){T(_);let{ex:O,ey:z,ez:N}=this,{ex:B,ey:j,ez:q}=_,H=h(O*q),I=h(B*N),U=h(z*q),X=h(j*N);return H===I&&U===X}is0(){return this.equals(D.ZERO)}negate(){return new D(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){let{a:_}=e,{ex:O,ey:z,ez:N}=this,B=h(O*O),j=h(z*z),q=h(Jz*h(N*N)),H=h(_*B),I=O+z,U=h(h(I*I)-B-j),X=H+j,ee=X-q,se=H-j,pe=h(U*ee),ye=h(X*se),xe=h(U*se),_e=h(ee*X);return new D(pe,ye,_e,xe)}add(_){T(_);let{a:O,d:z}=e,{ex:N,ey:B,ez:j,et:q}=this,{ex:H,ey:I,ez:U,et:X}=_;if(O===BigInt(-1)){let dt=h((B-N)*(I+H)),Ze=h((B+N)*(I-H)),rn=h(Ze-dt);if(rn===ug)return this.double();let zt=h(j*Jz*X),Bt=h(q*Jz*U),Mt=Bt+zt,qt=Ze+dt,Wt=Bt-zt,zn=h(Mt*rn),Mn=h(qt*Wt),br=h(Mt*Wt),Zs=h(rn*qt);return new D(zn,Mn,Zs,br)}let ee=h(N*H),se=h(B*I),pe=h(q*z*X),ye=h(j*U),xe=h((N+B)*(H+I)-ee-se),_e=ye-pe,Me=ye+pe,qe=h(se-O*ee),wt=h(xe*_e),Ge=h(Me*qe),ht=h(xe*qe),Ct=h(_e*Me);return new D(wt,Ge,Ct,ht)}subtract(_){return this.add(_.negate())}wNAF(_){return J.wNAFCached(this,_,D.normalizeZ)}multiply(_){let O=_;Rf.aInRange(\"scalar\",O,If,r);let{p:z,f:N}=this.wNAF(O);return D.normalizeZ([z,N])[0]}multiplyUnsafe(_){let O=_;return Rf.aInRange(\"scalar\",O,ug,r),O===ug?W:this.equals(W)||O===If?this:this.equals(G)?this.wNAF(O).p:J.unsafeLadder(this,O)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return J.unsafeLadder(this,r).is0()}toAffine(_){return R(this,_)}clearCofactor(){let{h:_}=e;return _===If?this:this.multiplyUnsafe(_)}static fromHex(_,O=!1){let{d:z,a:N}=e,B=n.BYTES;_=(0,Ih.ensureBytes)(\"pointHex\",_,B),(0,Ih.abool)(\"zip215\",O);let j=_.slice(),q=_[B-1];j[B-1]=-129&q;let H=Rf.bytesToNumberLE(j),I=O?d:n.ORDER;Rf.aInRange(\"pointHex.y\",H,ug,I);let U=h(H*H),X=h(U-If),ee=h(z*U-N),{isValid:se,value:pe}=g(X,ee);if(!se)throw new Error(\"Point.fromHex: invalid y coordinate\");let ye=(pe&If)===If,xe=(128&q)!=0;if(!O&&pe===ug&&xe)throw new Error(\"Point.fromHex: x=0 and x_0=1\");return xe!==ye&&(pe=h(-pe)),D.fromAffine({x:pe,y:H})}static fromPrivateKey(_){return Z(_).point}toRawBytes(){let{x:_,y:O}=this.toAffine(),z=Rf.numberToBytesLE(O,n.BYTES);return z[z.length-1]|=_&If?128:0,z}toHex(){return Rf.bytesToHex(this.toRawBytes())}}D.BASE=new D(e.Gx,e.Gy,If,h(e.Gx*e.Gy)),D.ZERO=new D(ug,If,If,ug);let{BASE:G,ZERO:W}=D,J=(0,lne.wNAF)(D,8*c);function ne(F){return(0,D4e.mod)(F,r)}function ie(F){return ne(Rf.bytesToNumberLE(F))}function Z(F){let _=c;F=(0,Ih.ensureBytes)(\"private key\",F,_);let O=(0,Ih.ensureBytes)(\"hashed private key\",i(F),2*_),z=b(O.slice(0,_)),N=O.slice(_,2*_),B=ie(z),j=G.multiply(B),q=j.toRawBytes();return{head:z,prefix:N,scalar:B,point:j,pointBytes:q}}function ae(F=new Uint8Array,..._){let O=Rf.concatBytes(..._);return ie(i(E(O,(0,Ih.ensureBytes)(\"context\",F),!!o)))}let V=kot;return G._setWindowSize(8),{CURVE:e,getPublicKey:function(F){return Z(F).pointBytes},sign:function(F,_,O={}){F=(0,Ih.ensureBytes)(\"message\",F),o&&(F=o(F));let{prefix:z,scalar:N,pointBytes:B}=Z(_),j=ae(O.context,z,F),q=G.multiply(j).toRawBytes(),H=ne(j+ae(O.context,q,B,F)*N);Rf.aInRange(\"signature.s\",H,ug,r);let I=Rf.concatBytes(q,Rf.numberToBytesLE(H,n.BYTES));return(0,Ih.ensureBytes)(\"result\",I,2*c)},verify:function(F,_,O,z=V){let{context:N,zip215:B}=z,j=n.BYTES;F=(0,Ih.ensureBytes)(\"signature\",F,2*j),_=(0,Ih.ensureBytes)(\"message\",_),B!==void 0&&(0,Ih.abool)(\"zip215\",B),o&&(_=o(_));let q=Rf.bytesToNumberLE(F.slice(j,2*j)),H,I,U;try{H=D.fromHex(O,B),I=D.fromHex(F.slice(0,j),B),U=G.multiplyUnsafe(q)}catch{return!1}if(!B&&H.isSmallOrder())return!1;let X=ae(N,I.toRawBytes(),H.toRawBytes(),_);return I.add(H.multiplyUnsafe(X)).subtract(U).clearCofactor().equals(D.ZERO)},ExtendedPoint:D,utils:{getExtendedPublicKey:Z,randomPrivateKey:()=>a(n.BYTES),precompute:(F=8,_=D.BASE)=>(_._setWindowSize(F),_.multiply(BigInt(3)),_)}}};lne=cA,D4e=$o,Rf=_r,Ih=_r,ug=BigInt(0),If=BigInt(1),Jz=BigInt(2),Sot=BigInt(8),kot={zip215:!0},n3={};Object.defineProperty(n3,\"__esModule\",{value:!0}),n3.expand_message_xmd=EAe,n3.expand_message_xof=SAe,n3.hash_to_field=une,n3.isogenyMap=function(t,e){let n=e.map(r=>Array.from(r).reverse());return(r,o)=>{let[i,a,c,u]=n.map(d=>d.reduce((h,m)=>t.add(t.mul(h,r),m)));return r=t.div(i,a),o=t.mul(o,t.div(c,u)),{x:r,y:o}}},n3.createHasher=function(t,e,n){if(typeof e!=\"function\")throw new Error(\"mapToCurve() must be defined\");return{hashToCurve(r,o){let i=une(r,2,{...n,DST:n.DST,...o}),a=t.fromAffine(e(i[0])),c=t.fromAffine(e(i[1])),u=a.add(c).clearCofactor();return u.assertValidity(),u},encodeToCurve(r,o){let i=une(r,1,{...n,DST:n.encodeDST,...o}),a=t.fromAffine(e(i[0])).clearCofactor();return a.assertValidity(),a},mapToCurve(r){if(!Array.isArray(r))throw new Error(\"mapToCurve: expected array of bigints\");for(let i of r)if(typeof i!=\"bigint\")throw new Error(`mapToCurve: expected array of bigints, got ${i} in array`);let o=t.fromAffine(e(r)).clearCofactor();return o.assertValidity(),o}}};_ot=$o,Su=_r,Cot=Su.bytesToNumberBE;Wne={};Object.defineProperty(Wne,\"__esModule\",{value:!0}),Wne.montgomery=function(t){let e=function(C){return(0,Zx.validateObject)(C,{a:\"bigint\"},{montgomeryBits:\"isSafeInteger\",nByteLength:\"isSafeInteger\",adjustScalarBytes:\"function\",domain:\"function\",powPminus2:\"function\",Gu:\"bigint\"}),Object.freeze({...C})}(t),{P:n}=e,r=C=>(0,F4e.mod)(C,n),o=e.montgomeryBits,i=Math.ceil(o/8),a=e.nByteLength,c=e.adjustScalarBytes||(C=>C),u=e.powPminus2||(C=>(0,F4e.pow)(C,n-BigInt(2),n));function d(C,T,R){let L=r(C*(T-R));return[T=r(T-L),R=r(R+L)]}let h=(e.a-BigInt(2))/BigInt(4);function m(C){return(0,Zx.numberToBytesLE)(r(C),i)}function g(C,T){let R=function(G){let W=(0,Zx.ensureBytes)(\"u coordinate\",G,i);return a===32&&(W[31]&=127),(0,Zx.bytesToNumberLE)(W)}(T),L=function(G){let W=(0,Zx.ensureBytes)(\"scalar\",G),J=W.length;if(J!==i&&J!==a)throw new Error(`Expected ${i} or ${a} bytes, got ${J}`);return(0,Zx.bytesToNumberLE)(c(W))}(C),D=function(G,W){(0,Zx.aInRange)(\"u\",G,nA,n),(0,Zx.aInRange)(\"scalar\",W,nA,n);let J=W,ne=G,ie,Z=dne,ae=nA,V=G,$=dne,F=nA;for(let O=BigInt(o-1);O>=nA;O--){let z=J>>O&dne;F^=z,ie=d(F,Z,V),Z=ie[0],V=ie[1],ie=d(F,ae,$),ae=ie[0],$=ie[1],F=z;let N=Z+ae,B=r(N*N),j=Z-ae,q=r(j*j),H=B-q,I=V+$,U=r((V-$)*N),X=r(I*j),ee=U+X,se=U-X;V=r(ee*ee),$=r(ne*r(se*se)),Z=r(B*q),ae=r(H*(B+r(h*H)))}ie=d(F,Z,V),Z=ie[0],V=ie[1],ie=d(F,ae,$),ae=ie[0],$=ie[1];let _=u(ae);return r(Z*_)}(R,L);if(D===nA)throw new Error(\"Invalid private or public key received\");return m(D)}let b=m(e.Gu);function E(C){return g(C,b)}return{scalarMult:g,scalarMultBase:E,getSharedSecret:(C,T)=>g(C,T),getPublicKey:C=>E(C),utils:{randomPrivateKey:()=>e.randomBytes(e.nByteLength)},GuBytes:b}};F4e=$o,Zx=_r,nA=BigInt(0),dne=BigInt(1);(function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.hash_to_ristretto255=t.hashToRistretto255=t.RistrettoPoint=t.encodeToCurve=t.hashToCurve=t.edwardsToMontgomery=t.x25519=t.ed25519ph=t.ed25519ctx=t.ed25519=t.ED25519_TORSION_SUBGROUP=void 0,t.edwardsToMontgomeryPub=J,t.edwardsToMontgomeryPriv=function(X){let ee=G.hash(X.subarray(0,32));return G.adjustScalarBytes(ee).subarray(0,32)};let e=Hc,n=Qv,r=jne,o=n3,i=$o,a=Wne,c=_r,u=BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\"),d=BigInt(\"19681161376707505956807079304988542015446066515923890162744021073123829784752\"),h=BigInt(0),m=BigInt(1),g=BigInt(2),b=BigInt(3),E=BigInt(5),C=BigInt(8);function T(X){let ee=BigInt(10),se=BigInt(20),pe=BigInt(40),ye=BigInt(80),xe=u,_e=X*X%xe*X%xe,Me=(0,i.pow2)(_e,g,xe)*_e%xe,qe=(0,i.pow2)(Me,m,xe)*X%xe,wt=(0,i.pow2)(qe,E,xe)*qe%xe,Ge=(0,i.pow2)(wt,ee,xe)*wt%xe,ht=(0,i.pow2)(Ge,se,xe)*Ge%xe,Ct=(0,i.pow2)(ht,pe,xe)*ht%xe,dt=(0,i.pow2)(Ct,ye,xe)*Ct%xe,Ze=(0,i.pow2)(dt,ye,xe)*Ct%xe,rn=(0,i.pow2)(Ze,ee,xe)*wt%xe;return{pow_p_5_8:(0,i.pow2)(rn,g,xe)*X%xe,b2:_e}}function R(X){return X[0]&=248,X[31]&=127,X[31]|=64,X}function L(X,ee){let se=u,pe=(0,i.mod)(ee*ee*ee,se),ye=T(X*(0,i.mod)(pe*pe*ee,se)).pow_p_5_8,xe=(0,i.mod)(X*pe*ye,se),_e=(0,i.mod)(ee*xe*xe,se),Me=xe,qe=(0,i.mod)(xe*d,se),wt=_e===X,Ge=_e===(0,i.mod)(-X,se),ht=_e===(0,i.mod)(-X*d,se);return wt&&(xe=Me),(Ge||ht)&&(xe=qe),(0,i.isNegativeLE)(xe,se)&&(xe=(0,i.mod)(-xe,se)),{isValid:wt||Ge,value:xe}}t.ED25519_TORSION_SUBGROUP=[\"0100000000000000000000000000000000000000000000000000000000000000\",\"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a\",\"0000000000000000000000000000000000000000000000000000000000000080\",\"26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05\",\"ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\"26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85\",\"0000000000000000000000000000000000000000000000000000000000000000\",\"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa\"];let D=(0,i.Field)(u,void 0,!0),G={a:BigInt(-1),d:BigInt(\"37095705934669439343138083508754565189542113879843219016388785533085940283555\"),Fp:D,n:BigInt(\"7237005577332262213973186563042994240857116359379907606001950938285454250989\"),h:C,Gx:BigInt(\"15112221349535400772501151409588531511454012693041857206046113283949847762202\"),Gy:BigInt(\"46316835694926478169428394003475163141307993866256225615783033603165251855960\"),hash:e.sha512,randomBytes:n.randomBytes,adjustScalarBytes:R,uvRatio:L};function W(X,ee,se){if(ee.length>255)throw new Error(\"Context is too big\");return(0,n.concatBytes)((0,n.utf8ToBytes)(\"SigEd25519 no Ed25519 collisions\"),new Uint8Array([se?1:0,ee.length]),ee,X)}function J(X){let{y:ee}=t.ed25519.ExtendedPoint.fromHex(X),se=BigInt(1);return D.toBytes(D.create((se+ee)*D.inv(se-ee)))}t.ed25519=(0,r.twistedEdwards)(G),t.ed25519ctx=(0,r.twistedEdwards)({...G,domain:W}),t.ed25519ph=(0,r.twistedEdwards)(Object.assign({},G,{domain:W,prehash:e.sha512})),t.x25519=(0,a.montgomery)({P:u,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:X=>{let ee=u,{pow_p_5_8:se,b2:pe}=T(X);return(0,i.mod)((0,i.pow2)(se,b,ee)*pe,ee)},adjustScalarBytes:R,randomBytes:n.randomBytes}),t.edwardsToMontgomery=J;let ne=(D.ORDER+b)/C,ie=D.pow(g,ne),Z=D.sqrt(D.neg(D.ONE)),ae=(0,i.FpSqrtEven)(D,D.neg(BigInt(486664)));function V(X){let{xMn:ee,xMd:se,yMn:pe,yMd:ye}=function(Ct){let dt=(D.ORDER-E)/C,Ze=BigInt(486662),rn=D.sqr(Ct);rn=D.mul(rn,g);let zt=D.add(rn,D.ONE),Bt=D.neg(Ze),Mt=D.sqr(zt),qt=D.mul(Mt,zt),Wt=D.mul(rn,Ze);Wt=D.mul(Wt,Bt),Wt=D.add(Wt,Mt),Wt=D.mul(Wt,Bt);let zn=D.sqr(qt);Mt=D.sqr(zn),zn=D.mul(zn,qt),zn=D.mul(zn,Wt),Mt=D.mul(Mt,zn);let Mn=D.pow(Mt,dt);Mn=D.mul(Mn,zn);let br=D.mul(Mn,Z);Mt=D.sqr(Mn),Mt=D.mul(Mt,qt);let Zs=D.eql(Mt,Wt),Pr=D.cmov(br,Mn,Zs),vr=D.mul(Bt,rn),hi=D.mul(Mn,Ct);hi=D.mul(hi,ie);let er=D.mul(hi,Z),wr=D.mul(Wt,rn);Mt=D.sqr(hi),Mt=D.mul(Mt,qt);let Ri=D.eql(Mt,wr),le=D.cmov(er,hi,Ri);Mt=D.sqr(Pr),Mt=D.mul(Mt,qt);let Te=D.eql(Mt,Wt),xt=D.cmov(vr,Bt,Te),tt=D.cmov(le,Pr,Te),It=D.isOdd(tt);return tt=D.cmov(tt,D.neg(tt),Te!==It),{xMn:xt,xMd:zt,yMn:tt,yMd:m}}(X),xe=D.mul(ee,ye);xe=D.mul(xe,ae);let _e=D.mul(se,pe),Me=D.sub(ee,se),qe=D.add(ee,se),wt=D.mul(_e,qe),Ge=D.eql(wt,D.ZERO);xe=D.cmov(xe,D.ZERO,Ge),_e=D.cmov(_e,D.ONE,Ge),Me=D.cmov(Me,D.ONE,Ge),qe=D.cmov(qe,D.ONE,Ge);let ht=D.invertBatch([_e,qe]);return{x:D.mul(xe,ht[0]),y:D.mul(Me,ht[1])}}let $=(0,o.createHasher)(t.ed25519.ExtendedPoint,X=>V(X[0]),{DST:\"edwards25519_XMD:SHA-512_ELL2_RO_\",encodeDST:\"edwards25519_XMD:SHA-512_ELL2_NU_\",p:D.ORDER,m:1,k:128,expand:\"xmd\",hash:e.sha512});function F(X){if(!(X instanceof U))throw new Error(\"RistrettoPoint expected\")}t.hashToCurve=$.hashToCurve,t.encodeToCurve=$.encodeToCurve;let _=d,O=BigInt(\"25063068953384623474111414158702152701244531502492656460079210482610430750235\"),z=BigInt(\"54469307008909316920995813868745141605393597292927456921205312896311721017578\"),N=BigInt(\"1159843021668779879193775521855586647937357759715417654439879720876111806838\"),B=BigInt(\"40440834346308536858101042469323190826248399146238708352240133220865137265952\"),j=X=>L(m,X),q=BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),H=X=>t.ed25519.CURVE.Fp.create((0,c.bytesToNumberLE)(X)&q);function I(X){let{d:ee}=t.ed25519.CURVE,se=t.ed25519.CURVE.Fp.ORDER,pe=t.ed25519.CURVE.Fp.create,ye=pe(_*X*X),xe=pe((ye+m)*N),_e=BigInt(-1),Me=pe((_e-ee*ye)*pe(ye+ee)),{isValid:qe,value:wt}=L(xe,Me),Ge=pe(wt*X);(0,i.isNegativeLE)(Ge,se)||(Ge=pe(-Ge)),qe||(wt=Ge),qe||(_e=ye);let ht=pe(_e*(ye-m)*B-Me),Ct=wt*wt,dt=pe((wt+wt)*Me),Ze=pe(ht*O),rn=pe(m-Ct),zt=pe(m+Ct);return new t.ed25519.ExtendedPoint(pe(dt*zt),pe(rn*Ze),pe(Ze*zt),pe(dt*rn))}class U{constructor(ee){this.ep=ee}static fromAffine(ee){return new U(t.ed25519.ExtendedPoint.fromAffine(ee))}static hashToCurve(ee){ee=(0,c.ensureBytes)(\"ristrettoHash\",ee,64);let se=I(H(ee.slice(0,32))),pe=I(H(ee.slice(32,64)));return new U(se.add(pe))}static fromHex(ee){ee=(0,c.ensureBytes)(\"ristrettoHex\",ee,32);let{a:se,d:pe}=t.ed25519.CURVE,ye=t.ed25519.CURVE.Fp.ORDER,xe=t.ed25519.CURVE.Fp.create,_e=\"RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint\",Me=H(ee);if(!(0,c.equalBytes)((0,c.numberToBytesLE)(Me,32),ee)||(0,i.isNegativeLE)(Me,ye))throw new Error(_e);let qe=xe(Me*Me),wt=xe(m+se*qe),Ge=xe(m-se*qe),ht=xe(wt*wt),Ct=xe(Ge*Ge),dt=xe(se*pe*ht-Ct),{isValid:Ze,value:rn}=j(xe(dt*Ct)),zt=xe(rn*Ge),Bt=xe(rn*zt*dt),Mt=xe((Me+Me)*zt);(0,i.isNegativeLE)(Mt,ye)&&(Mt=xe(-Mt));let qt=xe(wt*Bt),Wt=xe(Mt*qt);if(!Ze||(0,i.isNegativeLE)(Wt,ye)||qt===h)throw new Error(_e);return new U(new t.ed25519.ExtendedPoint(Mt,qt,m,Wt))}toRawBytes(){let{ex:ee,ey:se,ez:pe,et:ye}=this.ep,xe=t.ed25519.CURVE.Fp.ORDER,_e=t.ed25519.CURVE.Fp.create,Me=_e(_e(pe+se)*_e(pe-se)),qe=_e(ee*se),wt=_e(qe*qe),{value:Ge}=j(_e(Me*wt)),ht=_e(Ge*Me),Ct=_e(Ge*qe),dt=_e(ht*Ct*ye),Ze;if((0,i.isNegativeLE)(ye*dt,xe)){let zt=_e(se*_),Bt=_e(ee*_);ee=zt,se=Bt,Ze=_e(ht*z)}else Ze=Ct;(0,i.isNegativeLE)(ee*dt,xe)&&(se=_e(-se));let rn=_e((pe-se)*Ze);return(0,i.isNegativeLE)(rn,xe)&&(rn=_e(-rn)),(0,c.numberToBytesLE)(rn,32)}toHex(){return(0,c.bytesToHex)(this.toRawBytes())}toString(){return this.toHex()}equals(ee){F(ee);let{ex:se,ey:pe}=this.ep,{ex:ye,ey:xe}=ee.ep,_e=t.ed25519.CURVE.Fp.create,Me=_e(se*xe)===_e(pe*ye),qe=_e(pe*xe)===_e(se*ye);return Me||qe}add(ee){return F(ee),new U(this.ep.add(ee.ep))}subtract(ee){return F(ee),new U(this.ep.subtract(ee.ep))}multiply(ee){return new U(this.ep.multiply(ee))}multiplyUnsafe(ee){return new U(this.ep.multiplyUnsafe(ee))}double(){return new U(this.ep.double())}negate(){return new U(this.ep.negate())}}t.RistrettoPoint=(U.BASE||(U.BASE=new U(t.ed25519.ExtendedPoint.BASE)),U.ZERO||(U.ZERO=new U(t.ed25519.ExtendedPoint.ZERO)),U),t.hashToRistretto255=(X,ee)=>{let se=ee.DST,pe=typeof se==\"string\"?(0,n.utf8ToBytes)(se):se,ye=(0,o.expand_message_xmd)(X,pe,64,e.sha512);return U.hashToCurve(ye)},t.hash_to_ristretto255=t.hashToRistretto255})(K8e);kAe={},Kv={};Object.defineProperty(Kv,\"__esModule\",{value:!0}),Kv.sha224=Kv.sha256=Kv.SHA256=void 0;fne=$v,wm=Qv,Tot=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Yx=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Qx=new Uint32Array(64),OO=class extends fne.HashMD{constructor(){super(64,32,8,!1),this.A=0|Yx[0],this.B=0|Yx[1],this.C=0|Yx[2],this.D=0|Yx[3],this.E=0|Yx[4],this.F=0|Yx[5],this.G=0|Yx[6],this.H=0|Yx[7]}get(){let{A:e,B:n,C:r,D:o,E:i,F:a,G:c,H:u}=this;return[e,n,r,o,i,a,c,u]}set(e,n,r,o,i,a,c,u){this.A=0|e,this.B=0|n,this.C=0|r,this.D=0|o,this.E=0|i,this.F=0|a,this.G=0|c,this.H=0|u}process(e,n){for(let m=0;m<16;m++,n+=4)Qx[m]=e.getUint32(n,!1);for(let m=16;m<64;m++){let g=Qx[m-15],b=Qx[m-2],E=(0,wm.rotr)(g,7)^(0,wm.rotr)(g,18)^g>>>3,C=(0,wm.rotr)(b,17)^(0,wm.rotr)(b,19)^b>>>10;Qx[m]=C+Qx[m-7]+E+Qx[m-16]|0}let{A:r,B:o,C:i,D:a,E:c,F:u,G:d,H:h}=this;for(let m=0;m<64;m++){let g=h+((0,wm.rotr)(c,6)^(0,wm.rotr)(c,11)^(0,wm.rotr)(c,25))+(0,fne.Chi)(c,u,d)+Tot[m]+Qx[m]|0,b=((0,wm.rotr)(r,2)^(0,wm.rotr)(r,13)^(0,wm.rotr)(r,22))+(0,fne.Maj)(r,o,i)|0;h=d,d=u,u=c,c=a+g|0,a=i,i=o,o=r,r=g+b|0}r=r+this.A|0,o=o+this.B|0,i=i+this.C|0,a=a+this.D|0,c=c+this.E|0,u=u+this.F|0,d=d+this.G|0,h=h+this.H|0,this.set(r,o,i,a,c,u,d,h)}roundClean(){Qx.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};Kv.SHA256=OO;Vne=class extends OO{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};Kv.sha256=(0,wm.wrapConstructor)(()=>new OO),Kv.sha224=(0,wm.wrapConstructor)(()=>new Vne);hH={},Bre={};(function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.hmac=t.HMAC=void 0;let e=Ph,n=Qv;class r extends n.Hash{constructor(i,a){super(),this.finished=!1,this.destroyed=!1,(0,e.hash)(i);let c=(0,n.toBytes)(a);if(this.iHash=i.create(),typeof this.iHash.update!=\"function\")throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let u=this.blockLen,d=new Uint8Array(u);d.set(c.length>u?i.create().update(c).digest():c);for(let h=0;h<d.length;h++)d[h]^=54;this.iHash.update(d),this.oHash=i.create();for(let h=0;h<d.length;h++)d[h]^=106;this.oHash.update(d),d.fill(0)}update(i){return(0,e.exists)(this),this.iHash.update(i),this}digestInto(i){(0,e.exists)(this),(0,e.bytes)(i,this.outputLen),this.finished=!0,this.iHash.digestInto(i),this.oHash.update(i),this.oHash.digestInto(i),this.destroy()}digest(){let i=new Uint8Array(this.oHash.outputLen);return this.digestInto(i),i}_cloneInto(i){i||(i=Object.create(Object.getPrototypeOf(this),{}));let{oHash:a,iHash:c,finished:u,destroyed:d,blockLen:h,outputLen:m}=this;return i.finished=u,i.destroyed=d,i.blockLen=h,i.outputLen=m,i.oHash=a._cloneInto(i.oHash),i.iHash=c._cloneInto(i.iHash),i}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}t.HMAC=r,t.hmac=(o,i,a)=>new r(o,i).update(a).digest(),t.hmac.create=(o,i)=>new r(o,i)})(Bre);Dre={};(function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.DER=void 0,t.weierstrassPoints=b,t.weierstrass=function(C){let T=function(X){let ee=(0,e.validateBasic)(X);return r.validateObject(ee,{hash:\"hash\",hmac:\"function\",randomBytes:\"function\"},{bits2int:\"function\",bits2int_modN:\"function\",lowS:\"boolean\"}),Object.freeze({lowS:!0,...ee})}(C),{Fp:R,n:L}=T,D=R.BYTES+1,G=2*R.BYTES+1;function W(X){return n.mod(X,L)}function J(X){return n.invert(X,L)}let{ProjectivePoint:ne,normPrivateKeyToScalar:ie,weierstrassEquation:Z,isWithinCurveOrder:ae}=b({...T,toBytes(X,ee,se){let pe=ee.toAffine(),ye=R.toBytes(pe.x),xe=r.concatBytes;return(0,o.abool)(\"isCompressed\",se),se?xe(Uint8Array.from([ee.hasEvenY()?2:3]),ye):xe(Uint8Array.from([4]),ye,R.toBytes(pe.y))},fromBytes(X){let ee=X.length,se=X[0],pe=X.subarray(1);if(ee!==D||se!==2&&se!==3){if(ee===G&&se===4)return{x:R.fromBytes(pe.subarray(0,R.BYTES)),y:R.fromBytes(pe.subarray(R.BYTES,2*R.BYTES))};throw new Error(`Point of length ${ee} was invalid. Expected ${D} compressed bytes or ${G} uncompressed bytes`)}{let ye=r.bytesToNumberBE(pe);if(!r.inRange(ye,d,R.ORDER))throw new Error(\"Point is not on curve\");let xe=Z(ye),_e;try{_e=R.sqrt(xe)}catch(Me){let qe=Me instanceof Error?\": \"+Me.message:\"\";throw new Error(\"Point is not on curve\"+qe)}return(1&se)==1!=((_e&d)===d)&&(_e=R.neg(_e)),{x:ye,y:_e}}}}),V=X=>r.bytesToHex(r.numberToBytesBE(X,T.nByteLength));function $(X){return X>L>>d}let F=(X,ee,se)=>r.bytesToNumberBE(X.slice(ee,se));class _{constructor(ee,se,pe){this.r=ee,this.s=se,this.recovery=pe,this.assertValidity()}static fromCompact(ee){let se=T.nByteLength;return ee=(0,o.ensureBytes)(\"compactSignature\",ee,2*se),new _(F(ee,0,se),F(ee,se,2*se))}static fromDER(ee){let{r:se,s:pe}=t.DER.toSig((0,o.ensureBytes)(\"DER\",ee));return new _(se,pe)}assertValidity(){r.aInRange(\"r\",this.r,d,L),r.aInRange(\"s\",this.s,d,L)}addRecoveryBit(ee){return new _(this.r,this.s,ee)}recoverPublicKey(ee){let{r:se,s:pe,recovery:ye}=this,xe=B((0,o.ensureBytes)(\"msgHash\",ee));if(ye==null||![0,1,2,3].includes(ye))throw new Error(\"recovery id invalid\");let _e=ye===2||ye===3?se+T.n:se;if(_e>=R.ORDER)throw new Error(\"recovery id 2 or 3 invalid\");let Me=(1&ye)==0?\"02\":\"03\",qe=ne.fromHex(Me+V(_e)),wt=J(_e),Ge=W(-xe*wt),ht=W(pe*wt),Ct=ne.BASE.multiplyAndAddUnsafe(qe,Ge,ht);if(!Ct)throw new Error(\"point at infinify\");return Ct.assertValidity(),Ct}hasHighS(){return $(this.s)}normalizeS(){return this.hasHighS()?new _(this.r,W(-this.s),this.recovery):this}toDERRawBytes(){return r.hexToBytes(this.toDERHex())}toDERHex(){return t.DER.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return r.hexToBytes(this.toCompactHex())}toCompactHex(){return V(this.r)+V(this.s)}}let O={isValidPrivateKey(X){try{return ie(X),!0}catch{return!1}},normPrivateKeyToScalar:ie,randomPrivateKey:()=>{let X=n.getMinHashLength(T.n);return n.mapHashToField(T.randomBytes(X),T.n)},precompute:(X=8,ee=ne.BASE)=>(ee._setWindowSize(X),ee.multiply(BigInt(3)),ee)};function z(X){let ee=r.isBytes(X),se=typeof X==\"string\",pe=(ee||se)&&X.length;return ee?pe===D||pe===G:se?pe===2*D||pe===2*G:X instanceof ne}let N=T.bits2int||function(X){let ee=r.bytesToNumberBE(X),se=8*X.length-T.nBitLength;return se>0?ee>>BigInt(se):ee},B=T.bits2int_modN||function(X){return W(N(X))},j=r.bitMask(T.nBitLength);function q(X){return r.aInRange(`num < 2^${T.nBitLength}`,X,u,j),r.numberToBytesBE(X,T.nByteLength)}function H(X,ee,se=I){if([\"recovered\",\"canonical\"].some(dt=>dt in se))throw new Error(\"sign() legacy options not supported\");let{hash:pe,randomBytes:ye}=T,{lowS:xe,prehash:_e,extraEntropy:Me}=se;xe==null&&(xe=!0),X=(0,o.ensureBytes)(\"msgHash\",X),i(se),_e&&(X=(0,o.ensureBytes)(\"prehashed msgHash\",pe(X)));let qe=B(X),wt=ie(ee),Ge=[q(wt),q(qe)];if(Me!=null&&Me!==!1){let dt=Me===!0?ye(R.BYTES):Me;Ge.push((0,o.ensureBytes)(\"extraEntropy\",dt))}let ht=r.concatBytes(...Ge),Ct=qe;return{seed:ht,k2sig:function(dt){let Ze=N(dt);if(!ae(Ze))return;let rn=J(Ze),zt=ne.BASE.multiply(Ze).toAffine(),Bt=W(zt.x);if(Bt===u)return;let Mt=W(rn*W(Ct+Bt*wt));if(Mt===u)return;let qt=(zt.x===Bt?0:2)|Number(zt.y&d),Wt=Mt;return xe&&$(Mt)&&(Wt=function(zn){return $(zn)?W(-zn):zn}(Mt),qt^=1),new _(Bt,Wt,qt)}}}let I={lowS:T.lowS,prehash:!1},U={lowS:T.lowS,prehash:!1};return ne.BASE._setWindowSize(8),{CURVE:T,getPublicKey:function(X,ee=!0){return ne.fromPrivateKey(X).toRawBytes(ee)},getSharedSecret:function(X,ee,se=!0){if(z(X))throw new Error(\"first arg must be private key\");if(!z(ee))throw new Error(\"second arg must be public key\");return ne.fromHex(ee).multiply(ie(X)).toRawBytes(se)},sign:function(X,ee,se=I){let{seed:pe,k2sig:ye}=H(X,ee,se),xe=T;return r.createHmacDrbg(xe.hash.outputLen,xe.nByteLength,xe.hmac)(pe,ye)},verify:function(X,ee,se,pe=U){let ye=X;if(ee=(0,o.ensureBytes)(\"msgHash\",ee),se=(0,o.ensureBytes)(\"publicKey\",se),\"strict\"in pe)throw new Error(\"options.strict was renamed to lowS\");i(pe);let{lowS:xe,prehash:_e}=pe,Me,qe;try{if(typeof ye==\"string\"||r.isBytes(ye))try{Me=_.fromDER(ye)}catch(Bt){if(!(Bt instanceof t.DER.Err))throw Bt;Me=_.fromCompact(ye)}else{if(typeof ye!=\"object\"||typeof ye.r!=\"bigint\"||typeof ye.s!=\"bigint\")throw new Error(\"PARSE\");{let{r:Bt,s:Mt}=ye;Me=new _(Bt,Mt)}}qe=ne.fromHex(se)}catch(Bt){if(Bt.message===\"PARSE\")throw new Error(\"signature must be Signature instance, Uint8Array or hex string\");return!1}if(xe&&Me.hasHighS())return!1;_e&&(ee=T.hash(ee));let{r:wt,s:Ge}=Me,ht=B(ee),Ct=J(Ge),dt=W(ht*Ct),Ze=W(wt*Ct),rn=ne.BASE.multiplyAndAddUnsafe(qe,dt,Ze)?.toAffine();return rn?W(rn.x)===wt:!1},ProjectivePoint:ne,Signature:_,utils:O}},t.SWUFpSqrtRatio=E,t.mapToCurveSimpleSWU=function(C,T){if(n.validateField(C),!C.isValid(T.A)||!C.isValid(T.B)||!C.isValid(T.Z))throw new Error(\"mapToCurveSimpleSWU: invalid opts\");let R=E(C,T.Z);if(!C.isOdd)throw new Error(\"Fp.isOdd is not implemented!\");return L=>{let D,G,W,J,ne,ie,Z,ae;D=C.sqr(L),D=C.mul(D,T.Z),G=C.sqr(D),G=C.add(G,D),W=C.add(G,C.ONE),W=C.mul(W,T.B),J=C.cmov(T.Z,C.neg(G),!C.eql(G,C.ZERO)),J=C.mul(J,T.A),G=C.sqr(W),ie=C.sqr(J),ne=C.mul(ie,T.A),G=C.add(G,ne),G=C.mul(G,W),ie=C.mul(ie,J),ne=C.mul(ie,T.B),G=C.add(G,ne),Z=C.mul(D,W);let{isValid:V,value:$}=R(G,ie);ae=C.mul(D,L),ae=C.mul(ae,$),Z=C.cmov(Z,W,V),ae=C.cmov(ae,$,V);let F=C.isOdd(L)===C.isOdd(ae);return ae=C.cmov(C.neg(ae),ae,F),Z=C.div(Z,J),{x:Z,y:ae}}};let e=cA,n=$o,r=_r,o=_r;function i(C){C.lowS!==void 0&&(0,o.abool)(\"lowS\",C.lowS),C.prehash!==void 0&&(0,o.abool)(\"prehash\",C.prehash)}let{bytesToNumberBE:a,hexToBytes:c}=r;t.DER={Err:class extends Error{constructor(C=\"\"){super(C)}},_tlv:{encode:(C,T)=>{let{Err:R}=t.DER;if(C<0||C>256)throw new R(\"tlv.encode: wrong tag\");if(1&T.length)throw new R(\"tlv.encode: unpadded data\");let L=T.length/2,D=r.numberToHexUnpadded(L);if(D.length/2&128)throw new R(\"tlv.encode: long form length too big\");let G=L>127?r.numberToHexUnpadded(D.length/2|128):\"\";return`${r.numberToHexUnpadded(C)}${G}${D}${T}`},decode(C,T){let{Err:R}=t.DER,L=0;if(C<0||C>256)throw new R(\"tlv.encode: wrong tag\");if(T.length<2||T[L++]!==C)throw new R(\"tlv.decode: wrong tlv\");let D=T[L++],G=0;if(128&D){let J=127&D;if(!J)throw new R(\"tlv.decode(long): indefinite length not supported\");if(J>4)throw new R(\"tlv.decode(long): byte length is too big\");let ne=T.subarray(L,L+J);if(ne.length!==J)throw new R(\"tlv.decode: length bytes not complete\");if(ne[0]===0)throw new R(\"tlv.decode(long): zero leftmost byte\");for(let ie of ne)G=G<<8|ie;if(L+=J,G<128)throw new R(\"tlv.decode(long): not minimal encoding\")}else G=D;let W=T.subarray(L,L+G);if(W.length!==G)throw new R(\"tlv.decode: wrong value length\");return{v:W,l:T.subarray(L+G)}}},_int:{encode(C){let{Err:T}=t.DER;if(C<u)throw new T(\"integer: negative integers are not allowed\");let R=r.numberToHexUnpadded(C);if(8&Number.parseInt(R[0],16)&&(R=\"00\"+R),1&R.length)throw new T(\"unexpected assertion\");return R},decode(C){let{Err:T}=t.DER;if(128&C[0])throw new T(\"Invalid signature integer: negative\");if(C[0]===0&&!(128&C[1]))throw new T(\"Invalid signature integer: unnecessary leading zero\");return a(C)}},toSig(C){let{Err:T,_int:R,_tlv:L}=t.DER,D=typeof C==\"string\"?c(C):C;r.abytes(D);let{v:G,l:W}=L.decode(48,D);if(W.length)throw new T(\"Invalid signature: left bytes after parsing\");let{v:J,l:ne}=L.decode(2,G),{v:ie,l:Z}=L.decode(2,ne);if(Z.length)throw new T(\"Invalid signature: left bytes after parsing\");return{r:R.decode(J),s:R.decode(ie)}},hexFromSig(C){let{_tlv:T,_int:R}=t.DER,L=`${T.encode(2,R.encode(C.r))}${T.encode(2,R.encode(C.s))}`;return T.encode(48,L)}};let u=BigInt(0),d=BigInt(1),h=BigInt(2),m=BigInt(3),g=BigInt(4);function b(C){let T=function(F){let _=(0,e.validateBasic)(F);r.validateObject(_,{a:\"field\",b:\"field\"},{allowedPrivateKeyLengths:\"array\",wrapPrivateKey:\"boolean\",isTorsionFree:\"function\",clearCofactor:\"function\",allowInfinityPoint:\"boolean\",fromBytes:\"function\",toBytes:\"function\"});let{endo:O,Fp:z,a:N}=_;if(O){if(!z.eql(N,z.ZERO))throw new Error(\"Endomorphism can only be defined for Koblitz curves that have a=0\");if(typeof O!=\"object\"||typeof O.beta!=\"bigint\"||typeof O.splitScalar!=\"function\")throw new Error(\"Expected endomorphism with beta: bigint and splitScalar: function\")}return Object.freeze({..._})}(C),{Fp:R}=T,L=n.Field(T.n,T.nBitLength),D=T.toBytes||((F,_,O)=>{let z=_.toAffine();return r.concatBytes(Uint8Array.from([4]),R.toBytes(z.x),R.toBytes(z.y))}),G=T.fromBytes||(F=>{let _=F.subarray(1);return{x:R.fromBytes(_.subarray(0,R.BYTES)),y:R.fromBytes(_.subarray(R.BYTES,2*R.BYTES))}});function W(F){let{a:_,b:O}=T,z=R.sqr(F),N=R.mul(z,F);return R.add(R.add(N,R.mul(F,_)),O)}if(!R.eql(R.sqr(T.Gy),W(T.Gx)))throw new Error(\"bad generator point: equation left != right\");function J(F){let{allowedPrivateKeyLengths:_,nByteLength:O,wrapPrivateKey:z,n:N}=T;if(_&&typeof F!=\"bigint\"){if(r.isBytes(F)&&(F=r.bytesToHex(F)),typeof F!=\"string\"||!_.includes(F.length))throw new Error(\"Invalid key\");F=F.padStart(2*O,\"0\")}let B;try{B=typeof F==\"bigint\"?F:r.bytesToNumberBE((0,o.ensureBytes)(\"private key\",F,O))}catch{throw new Error(`private key must be ${O} bytes, hex or bigint, not ${typeof F}`)}return z&&(B=n.mod(B,N)),r.aInRange(\"private key\",B,d,N),B}function ne(F){if(!(F instanceof ae))throw new Error(\"ProjectivePoint expected\")}let ie=(0,o.memoized)((F,_)=>{let{px:O,py:z,pz:N}=F;if(R.eql(N,R.ONE))return{x:O,y:z};let B=F.is0();_==null&&(_=B?R.ONE:R.inv(N));let j=R.mul(O,_),q=R.mul(z,_),H=R.mul(N,_);if(B)return{x:R.ZERO,y:R.ZERO};if(!R.eql(H,R.ONE))throw new Error(\"invZ was invalid\");return{x:j,y:q}}),Z=(0,o.memoized)(F=>{if(F.is0()){if(T.allowInfinityPoint&&!R.is0(F.py))return;throw new Error(\"bad point: ZERO\")}let{x:_,y:O}=F.toAffine();if(!R.isValid(_)||!R.isValid(O))throw new Error(\"bad point: x or y not FE\");let z=R.sqr(O),N=W(_);if(!R.eql(z,N))throw new Error(\"bad point: equation left != right\");if(!F.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\");return!0});class ae{constructor(_,O,z){if(this.px=_,this.py=O,this.pz=z,_==null||!R.isValid(_))throw new Error(\"x required\");if(O==null||!R.isValid(O))throw new Error(\"y required\");if(z==null||!R.isValid(z))throw new Error(\"z required\");Object.freeze(this)}static fromAffine(_){let{x:O,y:z}=_||{};if(!_||!R.isValid(O)||!R.isValid(z))throw new Error(\"invalid affine point\");if(_ instanceof ae)throw new Error(\"projective point not allowed\");let N=B=>R.eql(B,R.ZERO);return N(O)&&N(z)?ae.ZERO:new ae(O,z,R.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(_){let O=R.invertBatch(_.map(z=>z.pz));return _.map((z,N)=>z.toAffine(O[N])).map(ae.fromAffine)}static fromHex(_){let O=ae.fromAffine(G((0,o.ensureBytes)(\"pointHex\",_)));return O.assertValidity(),O}static fromPrivateKey(_){return ae.BASE.multiply(J(_))}static msm(_,O){return(0,e.pippenger)(ae,L,_,O)}_setWindowSize(_){$.setWindowSize(this,_)}assertValidity(){Z(this)}hasEvenY(){let{y:_}=this.toAffine();if(R.isOdd)return!R.isOdd(_);throw new Error(\"Field doesn\\'t support isOdd\")}equals(_){ne(_);let{px:O,py:z,pz:N}=this,{px:B,py:j,pz:q}=_,H=R.eql(R.mul(O,q),R.mul(B,N)),I=R.eql(R.mul(z,q),R.mul(j,N));return H&&I}negate(){return new ae(this.px,R.neg(this.py),this.pz)}double(){let{a:_,b:O}=T,z=R.mul(O,m),{px:N,py:B,pz:j}=this,q=R.ZERO,H=R.ZERO,I=R.ZERO,U=R.mul(N,N),X=R.mul(B,B),ee=R.mul(j,j),se=R.mul(N,B);return se=R.add(se,se),I=R.mul(N,j),I=R.add(I,I),q=R.mul(_,I),H=R.mul(z,ee),H=R.add(q,H),q=R.sub(X,H),H=R.add(X,H),H=R.mul(q,H),q=R.mul(se,q),I=R.mul(z,I),ee=R.mul(_,ee),se=R.sub(U,ee),se=R.mul(_,se),se=R.add(se,I),I=R.add(U,U),U=R.add(I,U),U=R.add(U,ee),U=R.mul(U,se),H=R.add(H,U),ee=R.mul(B,j),ee=R.add(ee,ee),U=R.mul(ee,se),q=R.sub(q,U),I=R.mul(ee,X),I=R.add(I,I),I=R.add(I,I),new ae(q,H,I)}add(_){ne(_);let{px:O,py:z,pz:N}=this,{px:B,py:j,pz:q}=_,H=R.ZERO,I=R.ZERO,U=R.ZERO,X=T.a,ee=R.mul(T.b,m),se=R.mul(O,B),pe=R.mul(z,j),ye=R.mul(N,q),xe=R.add(O,z),_e=R.add(B,j);xe=R.mul(xe,_e),_e=R.add(se,pe),xe=R.sub(xe,_e),_e=R.add(O,N);let Me=R.add(B,q);return _e=R.mul(_e,Me),Me=R.add(se,ye),_e=R.sub(_e,Me),Me=R.add(z,N),H=R.add(j,q),Me=R.mul(Me,H),H=R.add(pe,ye),Me=R.sub(Me,H),U=R.mul(X,_e),H=R.mul(ee,ye),U=R.add(H,U),H=R.sub(pe,U),U=R.add(pe,U),I=R.mul(H,U),pe=R.add(se,se),pe=R.add(pe,se),ye=R.mul(X,ye),_e=R.mul(ee,_e),pe=R.add(pe,ye),ye=R.sub(se,ye),ye=R.mul(X,ye),_e=R.add(_e,ye),se=R.mul(pe,_e),I=R.add(I,se),se=R.mul(Me,_e),H=R.mul(xe,H),H=R.sub(H,se),se=R.mul(xe,pe),U=R.mul(Me,U),U=R.add(U,se),new ae(H,I,U)}subtract(_){return this.add(_.negate())}is0(){return this.equals(ae.ZERO)}wNAF(_){return $.wNAFCached(this,_,ae.normalizeZ)}multiplyUnsafe(_){r.aInRange(\"scalar\",_,u,T.n);let O=ae.ZERO;if(_===u)return O;if(_===d)return this;let{endo:z}=T;if(!z)return $.unsafeLadder(this,_);let{k1neg:N,k1:B,k2neg:j,k2:q}=z.splitScalar(_),H=O,I=O,U=this;for(;B>u||q>u;)B&d&&(H=H.add(U)),q&d&&(I=I.add(U)),U=U.double(),B>>=d,q>>=d;return N&&(H=H.negate()),j&&(I=I.negate()),I=new ae(R.mul(I.px,z.beta),I.py,I.pz),H.add(I)}multiply(_){let{endo:O,n:z}=T,N,B;if(r.aInRange(\"scalar\",_,d,z),O){let{k1neg:j,k1:q,k2neg:H,k2:I}=O.splitScalar(_),{p:U,f:X}=this.wNAF(q),{p:ee,f:se}=this.wNAF(I);U=$.constTimeNegate(j,U),ee=$.constTimeNegate(H,ee),ee=new ae(R.mul(ee.px,O.beta),ee.py,ee.pz),N=U.add(ee),B=X.add(se)}else{let{p:j,f:q}=this.wNAF(_);N=j,B=q}return ae.normalizeZ([N,B])[0]}multiplyAndAddUnsafe(_,O,z){let N=ae.BASE,B=(q,H)=>H!==u&&H!==d&&q.equals(N)?q.multiply(H):q.multiplyUnsafe(H),j=B(this,O).add(B(_,z));return j.is0()?void 0:j}toAffine(_){return ie(this,_)}isTorsionFree(){let{h:_,isTorsionFree:O}=T;if(_===d)return!0;if(O)return O(ae,this);throw new Error(\"isTorsionFree() has not been declared for the elliptic curve\")}clearCofactor(){let{h:_,clearCofactor:O}=T;return _===d?this:O?O(ae,this):this.multiplyUnsafe(T.h)}toRawBytes(_=!0){return(0,o.abool)(\"isCompressed\",_),this.assertValidity(),D(ae,this,_)}toHex(_=!0){return(0,o.abool)(\"isCompressed\",_),r.bytesToHex(this.toRawBytes(_))}}ae.BASE=new ae(T.Gx,T.Gy,R.ONE),ae.ZERO=new ae(R.ZERO,R.ONE,R.ZERO);let V=T.nBitLength,$=(0,e.wNAF)(ae,T.endo?Math.ceil(V/2):V);return{CURVE:T,ProjectivePoint:ae,normPrivateKeyToScalar:J,weierstrassEquation:W,isWithinCurveOrder:function(F){return r.inRange(F,d,T.n)}}}function E(C,T){let R=C.ORDER,L=u;for(let F=R-d;F%h===u;F/=h)L+=d;let D=L,G=h<<D-d-d,W=G*h,J=(R-d)/W,ne=(J-d)/h,ie=W-d,Z=G,ae=C.pow(T,J),V=C.pow(T,(J+d)/h),$=(F,_)=>{let O=ae,z=C.pow(_,ie),N=C.sqr(z);N=C.mul(N,_);let B=C.mul(F,N);B=C.pow(B,ne),B=C.mul(B,z),z=C.mul(B,_),N=C.mul(B,F);let j=C.mul(N,z);B=C.pow(j,Z);let q=C.eql(B,C.ONE);z=C.mul(N,V),B=C.mul(j,O),N=C.cmov(z,N,q),j=C.cmov(B,j,q);for(let H=D;H>d;H--){let I=H-h;I=h<<I-d;let U=C.pow(j,I),X=C.eql(U,C.ONE);z=C.mul(N,O),O=C.mul(O,O),U=C.mul(j,O),N=C.cmov(z,N,X),j=C.cmov(U,j,X)}return{isValid:q,value:N}};if(C.ORDER%g===m){let F=(C.ORDER-m)/g,_=C.sqrt(C.neg(T));$=(O,z)=>{let N=C.sqr(z),B=C.mul(O,z);N=C.mul(N,B);let j=C.pow(N,F);j=C.mul(j,B);let q=C.mul(j,_),H=C.mul(C.sqr(j),z),I=C.eql(H,O);return{isValid:I,value:C.cmov(q,j,I)}}}return $}})(Dre),Object.defineProperty(hH,\"__esModule\",{value:!0}),hH.getHash=j4e,hH.createCurve=function(t,e){let n=r=>(0,Iot.weierstrass)({...t,...j4e(r)});return Object.freeze({...n(e),create:n})};Rot=Bre,U4e=Qv,Iot=Dre;(function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.encodeToCurve=t.hashToCurve=t.schnorr=t.secp256k1=void 0;let e=Kv,n=Qv,r=hH,o=n3,i=$o,a=_r,c=Dre,u=BigInt(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\"),d=BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\"),h=BigInt(1),m=BigInt(2),g=(B,j)=>(B+j/m)/j;function b(B){let j=u,q=BigInt(3),H=BigInt(6),I=BigInt(11),U=BigInt(22),X=BigInt(23),ee=BigInt(44),se=BigInt(88),pe=B*B*B%j,ye=pe*pe*B%j,xe=(0,i.pow2)(ye,q,j)*ye%j,_e=(0,i.pow2)(xe,q,j)*ye%j,Me=(0,i.pow2)(_e,m,j)*pe%j,qe=(0,i.pow2)(Me,I,j)*Me%j,wt=(0,i.pow2)(qe,U,j)*qe%j,Ge=(0,i.pow2)(wt,ee,j)*wt%j,ht=(0,i.pow2)(Ge,se,j)*Ge%j,Ct=(0,i.pow2)(ht,ee,j)*wt%j,dt=(0,i.pow2)(Ct,q,j)*ye%j,Ze=(0,i.pow2)(dt,X,j)*qe%j,rn=(0,i.pow2)(Ze,H,j)*pe%j,zt=(0,i.pow2)(rn,m,j);if(!E.eql(E.sqr(zt),B))throw new Error(\"Cannot find square root\");return zt}let E=(0,i.Field)(u,void 0,void 0,{sqrt:b});t.secp256k1=(0,r.createCurve)({a:BigInt(0),b:BigInt(7),Fp:E,n:d,Gx:BigInt(\"55066263022277343669578718895168534326250603453777594175500187360389116729240\"),Gy:BigInt(\"32670510020758816978083085130507043184471273380659243275938904335757337482424\"),h:BigInt(1),lowS:!0,endo:{beta:BigInt(\"0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\"),splitScalar:B=>{let j=d,q=BigInt(\"0x3086d221a7d46bcde86c90e49284eb15\"),H=-h*BigInt(\"0xe4437ed6010e88286f547fa90abfe4c3\"),I=BigInt(\"0x114ca50f7a8e2f3f657c1108d9d44cfd8\"),U=q,X=BigInt(\"0x100000000000000000000000000000000\"),ee=g(U*B,j),se=g(-H*B,j),pe=(0,i.mod)(B-ee*q-se*I,j),ye=(0,i.mod)(-ee*H-se*U,j),xe=pe>X,_e=ye>X;if(xe&&(pe=j-pe),_e&&(ye=j-ye),pe>X||ye>X)throw new Error(\"splitScalar: Endomorphism failed, k=\"+B);return{k1neg:xe,k1:pe,k2neg:_e,k2:ye}}}},e.sha256);let C=BigInt(0),T={};function R(B,...j){let q=T[B];if(q===void 0){let H=(0,e.sha256)(Uint8Array.from(B,I=>I.charCodeAt(0)));q=(0,a.concatBytes)(H,H),T[B]=q}return(0,e.sha256)((0,a.concatBytes)(q,...j))}let L=B=>B.toRawBytes(!0).slice(1),D=B=>(0,a.numberToBytesBE)(B,32),G=B=>(0,i.mod)(B,u),W=B=>(0,i.mod)(B,d),J=t.secp256k1.ProjectivePoint,ne=(B,j,q)=>J.BASE.multiplyAndAddUnsafe(B,j,q);function ie(B){let j=t.secp256k1.utils.normPrivateKeyToScalar(B),q=J.fromPrivateKey(j);return{scalar:q.hasEvenY()?j:W(-j),bytes:L(q)}}function Z(B){(0,a.aInRange)(\"x\",B,h,u);let j=G(B*B),q=b(G(j*B+BigInt(7)));q%m!==C&&(q=G(-q));let H=new J(B,q,h);return H.assertValidity(),H}let ae=a.bytesToNumberBE;function V(...B){return W(ae(R(\"BIP0340/challenge\",...B)))}function $(B){return ie(B).bytes}function F(B,j,q=(0,n.randomBytes)(32)){let H=(0,a.ensureBytes)(\"message\",B),{bytes:I,scalar:U}=ie(j),X=(0,a.ensureBytes)(\"auxRand\",q,32),ee=D(U^ae(R(\"BIP0340/aux\",X))),se=R(\"BIP0340/nonce\",ee,I,H),pe=W(ae(se));if(pe===C)throw new Error(\"sign failed: k is zero\");let{bytes:ye,scalar:xe}=ie(pe),_e=V(ye,I,H),Me=new Uint8Array(64);if(Me.set(ye,0),Me.set(D(W(xe+_e*U)),32),!_(Me,H,I))throw new Error(\"sign: Invalid signature produced\");return Me}function _(B,j,q){let H=(0,a.ensureBytes)(\"signature\",B,64),I=(0,a.ensureBytes)(\"message\",j),U=(0,a.ensureBytes)(\"publicKey\",q,32);try{let X=Z(ae(U)),ee=ae(H.subarray(0,32));if(!(0,a.inRange)(ee,h,u))return!1;let se=ae(H.subarray(32,64));if(!(0,a.inRange)(se,h,d))return!1;let pe=V(D(ee),L(X),I),ye=ne(X,se,W(-pe));return!(!ye||!ye.hasEvenY()||ye.toAffine().x!==ee)}catch{return!1}}t.schnorr={getPublicKey:$,sign:F,verify:_,utils:{randomPrivateKey:t.secp256k1.utils.randomPrivateKey,lift_x:Z,pointToBytes:L,numberToBytesBE:a.numberToBytesBE,bytesToNumberBE:a.bytesToNumberBE,taggedHash:R,mod:i.mod}};let O=(0,o.isogenyMap)(E,[[\"0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7\",\"0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581\",\"0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262\",\"0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c\"],[\"0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b\",\"0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"],[\"0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c\",\"0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3\",\"0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931\",\"0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84\"],[\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b\",\"0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573\",\"0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"]].map(B=>B.map(j=>BigInt(j)))),z=(0,c.mapToCurveSimpleSWU)(E,{A:BigInt(\"0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533\"),B:BigInt(\"1771\"),Z:E.create(BigInt(\"-11\"))}),N=(0,o.createHasher)(t.secp256k1.ProjectivePoint,B=>{let{x:j,y:q}=z(E.create(B[0]));return O(j,q)},{DST:\"secp256k1_XMD:SHA-256_SSWU_RO_\",encodeDST:\"secp256k1_XMD:SHA-256_SSWU_NU_\",p:E.ORDER,m:1,k:128,expand:\"xmd\",hash:e.sha256});t.hashToCurve=N.hashToCurve,t.encodeToCurve=N.encodeToCurve})(kAe);$ne={};(function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.decodeHex=t.remove0x=void 0;var e=Lh;t.remove0x=function(n){return n.startsWith(\"0x\")||n.startsWith(\"0X\")?n.slice(2):n},t.decodeHex=function(n){return(0,e.hexToBytes)((0,t.remove0x)(n))}})($ne),function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.hexToPublicKey=t.convertPublicKeyFormat=t.getSharedPoint=t.getPublicKey=t.isValidPrivateKey=t.getValidSecret=void 0;var e=Mre,n=K8e,r=kAe,o=RO,i=zc,a=$ne;t.getValidSecret=function(){var h;do h=(0,e.randomBytes)(i.SECRET_KEY_LENGTH);while(!(0,t.isValidPrivateKey)(h));return h},t.isValidPrivateKey=function(h){return c((0,o.ellipticCurve)(),function(m){return m.utils.isValidPrivateKey(h)},function(){return!0},function(){return!0})},t.getPublicKey=function(h){return c((0,o.ellipticCurve)(),function(m){return m.getPublicKey(h)},function(m){return m.getPublicKey(h)},function(m){return m.getPublicKey(h)})},t.getSharedPoint=function(h,m,g){return c((0,o.ellipticCurve)(),function(b){return b.getSharedSecret(h,m,g)},function(b){return b.getSharedSecret(h,m)},function(b){return d(b,h,m)})},t.convertPublicKeyFormat=function(h,m){return c((0,o.ellipticCurve)(),function(g){return g.getSharedSecret(BigInt(1),h,m)},function(){return h},function(){return h})};function c(h,m,g,b){if(h===\"secp256k1\")return m(r.secp256k1);if(h===\"x25519\")return g(n.x25519);if(h===\"ed25519\")return b(n.ed25519);throw new Error(\"Not implemented\")}t.hexToPublicKey=function(h){var m=(0,a.decodeHex)(h);return c((0,o.ellipticCurve)(),function(){return u(m)},function(){return m},function(){return m})};var u=function(h){if(h.length===i.ETH_PUBLIC_KEY_SIZE){var m=new Uint8Array(1+h.length);return m.set([4]),m.set(h,1),m}return h},d=function(h,m,g){var b=h.utils.getExtendedPublicKey(m).scalar;return h.ExtendedPoint.fromHex(g).multiply(b).toRawBytes()}}($8e);_Ae={},lA={};Object.defineProperty(lA,\"__esModule\",{value:!0}),lA.hkdf=void 0,lA.extract=AAe,lA.expand=TAe;Kne=Ph,z4e=Qv,CAe=Bre;hne=new Uint8Array([0]),H4e=new Uint8Array;lA.hkdf=(t,e,n,r,o)=>TAe(t,AAe(t,e,n),r,o),function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.getSharedKey=t.deriveKey=void 0;var e=Lh,n=lA,r=Kv;t.deriveKey=function(o,i,a){return(0,n.hkdf)(r.sha256,o,i,a,32)},t.getSharedKey=function(){for(var o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];return(0,t.deriveKey)(e.concatBytes.apply(void 0,o))}}(_Ae);q4e={},mA={},Ws={},SS={};Object.defineProperty(SS,\"__esModule\",{value:!0}),SS.polyval=SS.ghash=void 0,SS._toGHASHKey=RAe;kS=ku,Ad=Lh,zv=16,Fre=new Uint8Array(16),b1=(0,Ad.u32)(Fre),Sm=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255|0;FH=class{constructor(e,n){this.blockLen=zv,this.outputLen=zv,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=(0,Ad.toBytes)(e),(0,kS.bytes)(e,16);let r=(0,Ad.createView)(e),o=r.getUint32(0,!1),i=r.getUint32(4,!1),a=r.getUint32(8,!1),c=r.getUint32(12,!1),u=[];for(let R=0;R<128;R++)u.push({s0:Sm(o),s1:Sm(i),s2:Sm(a),s3:Sm(c)}),{s0:o,s1:i,s2:a,s3:c}={s3:(m=a)<<31|(g=c)>>>1,s2:(h=i)<<31|m>>>1,s1:(d=o)<<31|h>>>1,s0:d>>>1^225<<24&-(1&g)};var d,h,m,g;let b=(R=>R>65536?8:R>1024?4:2)(n||1024);if(![1,2,4,8].includes(b))throw new Error(`ghash: wrong window size=${b}, should be 2, 4 or 8`);this.W=b;let E=128/b,C=this.windowSize=2**b,T=[];for(let R=0;R<E;R++)for(let L=0;L<C;L++){let D=0,G=0,W=0,J=0;for(let ne=0;ne<b;ne++){if(!(L>>>b-ne-1&1))continue;let{s0:ie,s1:Z,s2:ae,s3:V}=u[b*R+ne];D^=ie,G^=Z,W^=ae,J^=V}T.push({s0:D,s1:G,s2:W,s3:J})}this.t=T}_updateBlock(e,n,r,o){e^=this.s0,n^=this.s1,r^=this.s2,o^=this.s3;let{W:i,t:a,windowSize:c}=this,u=0,d=0,h=0,m=0,g=(1<<i)-1,b=0;for(let E of[e,n,r,o])for(let C=0;C<4;C++){let T=E>>>8*C&255;for(let R=8/i-1;R>=0;R--){let L=T>>>i*R&g,{s0:D,s1:G,s2:W,s3:J}=a[b*c+L];u^=D,d^=G,h^=W,m^=J,b+=1}}this.s0=u,this.s1=d,this.s2=h,this.s3=m}update(e){e=(0,Ad.toBytes)(e),(0,kS.exists)(this);let n=(0,Ad.u32)(e),r=Math.floor(e.length/zv),o=e.length%zv;for(let i=0;i<r;i++)this._updateBlock(n[4*i+0],n[4*i+1],n[4*i+2],n[4*i+3]);return o&&(Fre.set(e.subarray(r*zv)),this._updateBlock(b1[0],b1[1],b1[2],b1[3]),(0,Ad.clean)(b1)),this}destroy(){let{t:e}=this;for(let n of e)n.s0=0,n.s1=0,n.s2=0,n.s3=0}digestInto(e){(0,kS.exists)(this),(0,kS.output)(e,this),this.finished=!0;let{s0:n,s1:r,s2:o,s3:i}=this,a=(0,Ad.u32)(e);return a[0]=n,a[1]=r,a[2]=o,a[3]=i,e}digest(){let e=new Uint8Array(zv);return this.digestInto(e),this.destroy(),e}},Gne=class extends FH{constructor(e,n){e=(0,Ad.toBytes)(e);let r=RAe((0,Ad.copyBytes)(e));super(r,n),(0,Ad.clean)(r)}update(e){e=(0,Ad.toBytes)(e),(0,kS.exists)(this);let n=(0,Ad.u32)(e),r=e.length%zv,o=Math.floor(e.length/zv);for(let i=0;i<o;i++)this._updateBlock(Sm(n[4*i+3]),Sm(n[4*i+2]),Sm(n[4*i+1]),Sm(n[4*i+0]));return r&&(Fre.set(e.subarray(o*zv)),this._updateBlock(Sm(b1[3]),Sm(b1[2]),Sm(b1[1]),Sm(b1[0])),(0,Ad.clean)(b1)),this}digestInto(e){(0,kS.exists)(this),(0,kS.output)(e,this),this.finished=!0;let{s0:n,s1:r,s2:o,s3:i}=this,a=(0,Ad.u32)(e);return a[0]=n,a[1]=r,a[2]=o,a[3]=i,e.reverse()}};SS.ghash=W4e((t,e)=>new FH(t,e)),SS.polyval=W4e((t,e)=>new Gne(t,e)),Object.defineProperty(Ws,\"__esModule\",{value:!0}),Ws.unsafe=Ws.aeskwp=Ws.aeskw=Ws.siv=Ws.gcm=Ws.cfb=Ws.cbc=Ws.ecb=Ws.ctr=void 0,Ws.expandKeyLE=hg,Ws.expandKeyDecLE=PO;eo=ku,Zne=SS,yt=Lh,Of=16,Xz=new Uint8Array(Of),Oot=283;Yne=(()=>{let t=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=Ure(r))t[n]=r;let e=new Uint8Array(256);e[0]=99;for(let n=0;n<255;n++){let r=t[255-n];r|=r<<8,e[t[n]]=255&(r^r>>4^r>>5^r>>6^r>>7^99)}return(0,yt.clean)(t),e})(),Pot=Yne.map((t,e)=>Yne.indexOf(e)),Mot=t=>t<<24|t>>>8,pne=t=>t<<8|t>>>24,UH=t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;jre=IAe(Yne,t=>uA(t,3)<<24|t<<16|t<<8|uA(t,2)),OAe=IAe(Pot,t=>uA(t,11)<<24|uA(t,13)<<16|uA(t,9)<<8|uA(t,14)),Not=(()=>{let t=new Uint8Array(16);for(let e=0,n=1;e<16;e++,n=Ure(n))t[e]=n;return t})();Ws.ctr=(0,yt.wrapCipher)({blockSize:16,nonceLength:16},function(t,e){function n(r,o){if((0,eo.bytes)(r),o!==void 0&&((0,eo.bytes)(o),!(0,yt.isAligned32)(o)))throw new Error(\"unaligned destination\");let i=hg(t),a=(0,yt.copyBytes)(e),c=[i,a];(0,yt.isAligned32)(r)||c.push(r=(0,yt.copyBytes)(r));let u=PAe(i,a,r,o);return(0,yt.clean)(...c),u}return(0,eo.bytes)(t),(0,eo.bytes)(e,Of),{encrypt:(r,o)=>n(r,o),decrypt:(r,o)=>n(r,o)}}),Ws.ecb=(0,yt.wrapCipher)({blockSize:16},function(t,e={}){(0,eo.bytes)(t);let n=!e.disablePadding;return{encrypt(r,o){let{b:i,o:a,out:c}=$4e(r,n,o),u=hg(t),d=0;for(;d+4<=i.length;){let{s0:h,s1:m,s2:g,s3:b}=Td(u,i[d+0],i[d+1],i[d+2],i[d+3]);a[d++]=h,a[d++]=m,a[d++]=g,a[d++]=b}if(n){let h=G4e(r.subarray(4*d)),{s0:m,s1:g,s2:b,s3:E}=Td(u,h[0],h[1],h[2],h[3]);a[d++]=m,a[d++]=g,a[d++]=b,a[d++]=E}return(0,yt.clean)(u),c},decrypt(r,o){V4e(r);let i=PO(t),a=gA(r.length,o),c=[i];(0,yt.isAligned32)(r)||c.push(r=(0,yt.copyBytes)(r));let u=(0,yt.u32)(r),d=(0,yt.u32)(a);for(let h=0;h+4<=u.length;){let{s0:m,s1:g,s2:b,s3:E}=MO(i,u[h+0],u[h+1],u[h+2],u[h+3]);d[h++]=m,d[h++]=g,d[h++]=b,d[h++]=E}return(0,yt.clean)(...c),K4e(a,n)}}}),Ws.cbc=(0,yt.wrapCipher)({blockSize:16,nonceLength:16},function(t,e,n={}){(0,eo.bytes)(t),(0,eo.bytes)(e,16);let r=!n.disablePadding;return{encrypt(o,i){let a=hg(t),{b:c,o:u,out:d}=$4e(o,r,i),h=e,m=[a];(0,yt.isAligned32)(h)||m.push(h=(0,yt.copyBytes)(h));let g=(0,yt.u32)(h),b=g[0],E=g[1],C=g[2],T=g[3],R=0;for(;R+4<=c.length;)b^=c[R+0],E^=c[R+1],C^=c[R+2],T^=c[R+3],{s0:b,s1:E,s2:C,s3:T}=Td(a,b,E,C,T),u[R++]=b,u[R++]=E,u[R++]=C,u[R++]=T;if(r){let L=G4e(o.subarray(4*R));b^=L[0],E^=L[1],C^=L[2],T^=L[3],{s0:b,s1:E,s2:C,s3:T}=Td(a,b,E,C,T),u[R++]=b,u[R++]=E,u[R++]=C,u[R++]=T}return(0,yt.clean)(...m),d},decrypt(o,i){V4e(o);let a=PO(t),c=e,u=[a];(0,yt.isAligned32)(c)||u.push(c=(0,yt.copyBytes)(c));let d=(0,yt.u32)(c),h=gA(o.length,i);(0,yt.isAligned32)(o)||u.push(o=(0,yt.copyBytes)(o));let m=(0,yt.u32)(o),g=(0,yt.u32)(h),b=d[0],E=d[1],C=d[2],T=d[3];for(let R=0;R+4<=m.length;){let L=b,D=E,G=C,W=T;b=m[R+0],E=m[R+1],C=m[R+2],T=m[R+3];let{s0:J,s1:ne,s2:ie,s3:Z}=MO(a,b,E,C,T);g[R++]=J^L,g[R++]=ne^D,g[R++]=ie^G,g[R++]=Z^W}return(0,yt.clean)(...u),K4e(h,r)}}}),Ws.cfb=(0,yt.wrapCipher)({blockSize:16,nonceLength:16},function(t,e){function n(r,o,i){(0,eo.bytes)(r);let a=r.length;i=gA(a,i);let c=hg(t),u=e,d=[c];(0,yt.isAligned32)(u)||d.push(u=(0,yt.copyBytes)(u)),(0,yt.isAligned32)(r)||d.push(r=(0,yt.copyBytes)(r));let h=(0,yt.u32)(r),m=(0,yt.u32)(i),g=o?m:h,b=(0,yt.u32)(u),E=b[0],C=b[1],T=b[2],R=b[3];for(let D=0;D+4<=h.length;){let{s0:G,s1:W,s2:J,s3:ne}=Td(c,E,C,T,R);m[D+0]=h[D+0]^G,m[D+1]=h[D+1]^W,m[D+2]=h[D+2]^J,m[D+3]=h[D+3]^ne,E=g[D++],C=g[D++],T=g[D++],R=g[D++]}let L=Of*Math.floor(h.length/4);if(L<a){({s0:E,s1:C,s2:T,s3:R}=Td(c,E,C,T,R));let D=(0,yt.u8)(new Uint32Array([E,C,T,R]));for(let G=L,W=0;G<a;G++,W++)i[G]=r[G]^D[W];(0,yt.clean)(D)}return(0,yt.clean)(...d),i}return(0,eo.bytes)(t),(0,eo.bytes)(e,16),{encrypt:(r,o)=>n(r,!0,o),decrypt:(r,o)=>n(r,!1,o)}}),Ws.gcm=(0,yt.wrapCipher)({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){if((0,eo.bytes)(t),(0,eo.bytes)(e),n!==void 0&&(0,eo.bytes)(n),e.length<8)throw new Error(\"aes/gcm: invalid nonce length\");let r=16;function o(a,c,u){let d=MAe(Zne.ghash,!1,a,u,n);for(let h=0;h<c.length;h++)d[h]^=c[h];return d}function i(){let a=hg(t),c=Xz.slice(),u=Xz.slice();if(dA(a,!1,u,u,c),e.length===12)u.set(e);else{let d=Xz.slice(),h=(0,yt.createView)(d);(0,yt.setBigUint64)(h,8,BigInt(8*e.length),!1);let m=Zne.ghash.create(c).update(e).update(d);m.digestInto(u),m.destroy()}return{xk:a,authKey:c,counter:u,tagMask:dA(a,!1,u,Xz)}}return{encrypt(a){(0,eo.bytes)(a);let{xk:c,authKey:u,counter:d,tagMask:h}=i(),m=new Uint8Array(a.length+r),g=[c,u,d,h];(0,yt.isAligned32)(a)||g.push(a=(0,yt.copyBytes)(a)),dA(c,!1,d,a,m);let b=o(u,h,m.subarray(0,m.length-r));return g.push(b),m.set(b,a.length),(0,yt.clean)(...g),m},decrypt(a){if((0,eo.bytes)(a),a.length<r)throw new Error(\"aes/gcm: ciphertext less than tagLen (16)\");let{xk:c,authKey:u,counter:d,tagMask:h}=i(),m=[c,u,h,d];(0,yt.isAligned32)(a)||m.push(a=(0,yt.copyBytes)(a));let g=a.subarray(0,-16),b=a.subarray(-16),E=o(u,h,g);if(m.push(E),!(0,yt.equalBytes)(E,b))throw new Error(\"aes/gcm: invalid ghash tag\");let C=dA(c,!1,d,g);return(0,yt.clean)(...m),C}}});eH=(t,e,n)=>r=>{if(!Number.isSafeInteger(r)||e>r||r>n)throw new Error(`${t}: invalid value=${r}, must be [${e}..${n}]`)};Ws.siv=(0,yt.wrapCipher)({blockSize:16,nonceLength:12,tagLength:16},function(t,e,n){let r=eH(\"AAD\",0,68719476736),o=eH(\"plaintext\",0,2**36),i=eH(\"nonce\",12,12),a=eH(\"ciphertext\",16,2**36+16);function c(){let h=hg(t),m=new Uint8Array(t.length),g=new Uint8Array(16),b=[h,m],E=e;(0,yt.isAligned32)(E)||b.push(E=(0,yt.copyBytes)(E));let C=(0,yt.u32)(E),T=0,R=C[0],L=C[1],D=C[2],G=0;for(let J of[g,m].map(yt.u32)){let ne=(0,yt.u32)(J);for(let ie=0;ie<ne.length;ie+=2){let{s0:Z,s1:ae}=Td(h,T,R,L,D);ne[ie+0]=Z,ne[ie+1]=ae,T=++G}}let W={authKey:g,encKey:hg(m)};return(0,yt.clean)(...b),W}function u(h,m,g){let b=MAe(Zne.polyval,!0,m,g,n);for(let D=0;D<12;D++)b[D]^=e[D];b[15]&=127;let E=(0,yt.u32)(b),C=E[0],T=E[1],R=E[2],L=E[3];return{s0:C,s1:T,s2:R,s3:L}=Td(h,C,T,R,L),E[0]=C,E[1]=T,E[2]=R,E[3]=L,b}function d(h,m,g){let b=(0,yt.copyBytes)(m);b[15]|=128;let E=dA(h,!0,b,g);return(0,yt.clean)(b),E}return(0,eo.bytes)(t,16,24,32),(0,eo.bytes)(e),i(e.length),n!==void 0&&((0,eo.bytes)(n),r(n.length)),{encrypt(h){(0,eo.bytes)(h),o(h.length);let{encKey:m,authKey:g}=c(),b=u(m,g,h),E=[m,g,b];(0,yt.isAligned32)(h)||E.push(h=(0,yt.copyBytes)(h));let C=new Uint8Array(h.length+16);return C.set(b,h.length),C.set(d(m,b,h)),(0,yt.clean)(...E),C},decrypt(h){(0,eo.bytes)(h),a(h.length);let m=h.subarray(-16),{encKey:g,authKey:b}=c(),E=[g,b];(0,yt.isAligned32)(h)||E.push(h=(0,yt.copyBytes)(h));let C=d(g,m,h.subarray(0,-16)),T=u(g,b,C);if(E.push(T),!(0,yt.equalBytes)(m,T))throw(0,yt.clean)(...E),new Error(\"invalid polyval tag\");return(0,yt.clean)(...E),C}}});jH={encrypt(t,e){if(e.length>=2**32)throw new Error(\"plaintext should be less than 4gb\");let n=hg(t);if(e.length===16)LAe(n,e);else{let r=(0,yt.u32)(e),o=r[0],i=r[1];for(let a=0,c=1;a<6;a++)for(let u=2;u<r.length;u+=2,c++){let{s0:d,s1:h,s2:m,s3:g}=Td(n,o,i,r[u],r[u+1]);o=d,i=h^UH(c),r[u]=m,r[u+1]=g}r[0]=o,r[1]=i}n.fill(0)},decrypt(t,e){if(e.length-8>=2**32)throw new Error(\"ciphertext should be less than 4gb\");let n=PO(t),r=e.length/8-1;if(r===1)BAe(n,e);else{let o=(0,yt.u32)(e),i=o[0],a=o[1];for(let c=0,u=6*r;c<6;c++)for(let d=2*r;d>=1;d-=2,u--){a^=UH(u);let{s0:h,s1:m,s2:g,s3:b}=MO(n,i,a,o[d],o[d+1]);i=h,a=m,o[d]=g,o[d+1]=b}o[0]=i,o[1]=a}n.fill(0)}},Z4e=new Uint8Array(8).fill(166);Ws.aeskw=(0,yt.wrapCipher)({blockSize:8},t=>({encrypt(e){if((0,eo.bytes)(e),!e.length||e.length%8!=0)throw new Error(\"invalid plaintext length\");if(e.length===8)throw new Error(\"8-byte keys not allowed in AESKW, use AESKWP instead\");let n=(0,yt.concatBytes)(Z4e,e);return jH.encrypt(t,n),n},decrypt(e){if((0,eo.bytes)(e),e.length%8!=0||e.length<24)throw new Error(\"invalid ciphertext length\");let n=(0,yt.copyBytes)(e);if(jH.decrypt(t,n),!(0,yt.equalBytes)(n.subarray(0,8),Z4e))throw new Error(\"integrity check failed\");return n.subarray(0,8).fill(0),n.subarray(8)}}));Y4e=2790873510;Ws.aeskwp=(0,yt.wrapCipher)({blockSize:8},t=>({encrypt(e){if((0,eo.bytes)(e),!e.length)throw new Error(\"invalid plaintext length\");let n=8*Math.ceil(e.length/8),r=new Uint8Array(8+n);r.set(e,8);let o=(0,yt.u32)(r);return o[0]=Y4e,o[1]=UH(e.length),jH.encrypt(t,r),r},decrypt(e){if((0,eo.bytes)(e),e.length<16)throw new Error(\"invalid ciphertext length\");let n=(0,yt.copyBytes)(e),r=(0,yt.u32)(n);jH.decrypt(t,n);let o=UH(r[1])>>>0,i=8*Math.ceil(o/8);if(r[0]!==Y4e||n.length-8!==i)throw new Error(\"integrity check failed\");for(let a=o;a<i;a++)if(n[8+a]!==0)throw new Error(\"integrity check failed\");return n.subarray(0,8).fill(0),n.subarray(8,8+o)}})),Ws.unsafe={expandKeyLE:hg,expandKeyDecLE:PO,encrypt:Td,decrypt:MO,encryptBlock:LAe,decryptBlock:BAe,ctrCounter:PAe,ctr32:dA},Object.defineProperty(mA,\"__esModule\",{value:!0}),mA.aes256cbc=mA.aes256gcm=void 0;DAe=Ws;mA.aes256gcm=function(t,e,n){return(0,DAe.gcm)(t,e,n)};mA.aes256cbc=function(t,e,n){return(0,DAe.cbc)(t,e)};zH={},FAe={},fA={};Object.defineProperty(fA,\"__esModule\",{value:!0}),fA.sigma=void 0,fA.rotl=function(t,e){return t<<e|t>>>32-e},fA.createCipher=function(t,e){let{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:i,rounds:a}=(0,xm.checkOpts)({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!=\"function\")throw new Error(\"core must be a function\");return(0,jv.number)(o),(0,jv.number)(a),(0,jv.bool)(i),(0,jv.bool)(n),(c,u,d,h,m=0)=>{(0,jv.bytes)(c),(0,jv.bytes)(u),(0,jv.bytes)(d);let g=d.length;if(h===void 0&&(h=new Uint8Array(g)),(0,jv.bytes)(h),(0,jv.number)(m),m<0||m>=Q4e)throw new Error(\"arx: counter overflow\");if(h.length<g)throw new Error(`arx: output (${h.length}) is shorter than data (${g})`);let b=[],E,C,T=c.length;if(T===32)b.push(E=(0,xm.copyBytes)(c)),C=jAe;else{if(T!==16||!n)throw new Error(`arx: invalid 32-byte key, got length=${T}`);E=new Uint8Array(32),E.set(c),E.set(c,16),C=Dot,b.push(E)}mne(u)||b.push(u=(0,xm.copyBytes)(u));let R=(0,xm.u32)(E);if(r){if(u.length!==24)throw new Error(\"arx: extended nonce must be 24 bytes\");r(C,R,(0,xm.u32)(u.subarray(0,16)),R),u=u.subarray(16)}let L=16-o;if(L!==u.length)throw new Error(`arx: nonce must be ${L} or 16 bytes`);if(L!==12){let G=new Uint8Array(12);G.set(u,i?0:12-u.length),u=G,b.push(u)}let D=(0,xm.u32)(u);return function(G,W,J,ne,ie,Z,ae,V){let $=ie.length,F=new Uint8Array(tH),_=(0,xm.u32)(F),O=mne(ie)&&mne(Z),z=O?(0,xm.u32)(ie):J4e,N=O?(0,xm.u32)(Z):J4e;for(let B=0;B<$;ae++){if(G(W,J,ne,_,ae,V),ae>=Q4e)throw new Error(\"arx: counter overflow\");let j=Math.min(tH,$-B);if(O&&j===tH){let q=B/4;if(B%4!=0)throw new Error(\"arx: invalid block position\");for(let H,I=0;I<Fot;I++)H=q+I,N[H]=z[H]^_[I];B+=tH}else{for(let q,H=0;H<j;H++)q=B+H,Z[q]=ie[q]^F[H];B+=j}}}(t,C,R,D,d,h,m,a),(0,xm.clean)(...b),h}};jv=ku,xm=Lh,UAe=t=>Uint8Array.from(t.split(\"\").map(e=>e.charCodeAt(0))),Lot=UAe(\"expand 16-byte k\"),Bot=UAe(\"expand 32-byte k\"),Dot=(0,xm.u32)(Lot),jAe=(0,xm.u32)(Bot);fA.sigma=jAe.slice();tH=64,Fot=16,Q4e=2**32-1,J4e=new Uint32Array,vO={};Object.defineProperty(vO,\"__esModule\",{value:!0}),vO.poly1305=void 0,vO.wrapConstructorWithKey=zAe;nH=ku,mO=Lh,_l=(t,e)=>255&t[e++]|(255&t[e++])<<8,Qne=class{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=(0,mO.toBytes)(e),(0,nH.bytes)(e,32);let n=_l(e,0),r=_l(e,2),o=_l(e,4),i=_l(e,6),a=_l(e,8),c=_l(e,10),u=_l(e,12),d=_l(e,14);this.r[0]=8191&n,this.r[1]=8191&(n>>>13|r<<3),this.r[2]=7939&(r>>>10|o<<6),this.r[3]=8191&(o>>>7|i<<9),this.r[4]=255&(i>>>4|a<<12),this.r[5]=a>>>1&8190,this.r[6]=8191&(a>>>14|c<<2),this.r[7]=8065&(c>>>11|u<<5),this.r[8]=8191&(u>>>8|d<<8),this.r[9]=d>>>5&127;for(let h=0;h<8;h++)this.pad[h]=_l(e,16+2*h)}process(e,n,r=!1){let o=r?0:2048,{h:i,r:a}=this,c=a[0],u=a[1],d=a[2],h=a[3],m=a[4],g=a[5],b=a[6],E=a[7],C=a[8],T=a[9],R=_l(e,n+0),L=_l(e,n+2),D=_l(e,n+4),G=_l(e,n+6),W=_l(e,n+8),J=_l(e,n+10),ne=_l(e,n+12),ie=_l(e,n+14),Z=i[0]+(8191&R),ae=i[1]+(8191&(R>>>13|L<<3)),V=i[2]+(8191&(L>>>10|D<<6)),$=i[3]+(8191&(D>>>7|G<<9)),F=i[4]+(8191&(G>>>4|W<<12)),_=i[5]+(W>>>1&8191),O=i[6]+(8191&(W>>>14|J<<2)),z=i[7]+(8191&(J>>>11|ne<<5)),N=i[8]+(8191&(ne>>>8|ie<<8)),B=i[9]+(ie>>>5|o),j=0,q=j+Z*c+ae*(5*T)+V*(5*C)+$*(5*E)+F*(5*b);j=q>>>13,q&=8191,q+=_*(5*g)+O*(5*m)+z*(5*h)+N*(5*d)+B*(5*u),j+=q>>>13,q&=8191;let H=j+Z*u+ae*c+V*(5*T)+$*(5*C)+F*(5*E);j=H>>>13,H&=8191,H+=_*(5*b)+O*(5*g)+z*(5*m)+N*(5*h)+B*(5*d),j+=H>>>13,H&=8191;let I=j+Z*d+ae*u+V*c+$*(5*T)+F*(5*C);j=I>>>13,I&=8191,I+=_*(5*E)+O*(5*b)+z*(5*g)+N*(5*m)+B*(5*h),j+=I>>>13,I&=8191;let U=j+Z*h+ae*d+V*u+$*c+F*(5*T);j=U>>>13,U&=8191,U+=_*(5*C)+O*(5*E)+z*(5*b)+N*(5*g)+B*(5*m),j+=U>>>13,U&=8191;let X=j+Z*m+ae*h+V*d+$*u+F*c;j=X>>>13,X&=8191,X+=_*(5*T)+O*(5*C)+z*(5*E)+N*(5*b)+B*(5*g),j+=X>>>13,X&=8191;let ee=j+Z*g+ae*m+V*h+$*d+F*u;j=ee>>>13,ee&=8191,ee+=_*c+O*(5*T)+z*(5*C)+N*(5*E)+B*(5*b),j+=ee>>>13,ee&=8191;let se=j+Z*b+ae*g+V*m+$*h+F*d;j=se>>>13,se&=8191,se+=_*u+O*c+z*(5*T)+N*(5*C)+B*(5*E),j+=se>>>13,se&=8191;let pe=j+Z*E+ae*b+V*g+$*m+F*h;j=pe>>>13,pe&=8191,pe+=_*d+O*u+z*c+N*(5*T)+B*(5*C),j+=pe>>>13,pe&=8191;let ye=j+Z*C+ae*E+V*b+$*g+F*m;j=ye>>>13,ye&=8191,ye+=_*h+O*d+z*u+N*c+B*(5*T),j+=ye>>>13,ye&=8191;let xe=j+Z*T+ae*C+V*E+$*b+F*g;j=xe>>>13,xe&=8191,xe+=_*m+O*h+z*d+N*u+B*c,j+=xe>>>13,xe&=8191,j=(j<<2)+j|0,j=j+q|0,q=8191&j,j>>>=13,H+=j,i[0]=q,i[1]=H,i[2]=I,i[3]=U,i[4]=X,i[5]=ee,i[6]=se,i[7]=pe,i[8]=ye,i[9]=xe}finalize(){let{h:e,pad:n}=this,r=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let c=2;c<10;c++)e[c]+=o,o=e[c]>>>13,e[c]&=8191;e[0]+=5*o,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,r[0]=e[0]+5,o=r[0]>>>13,r[0]&=8191;for(let c=1;c<10;c++)r[c]=e[c]+o,o=r[c]>>>13,r[c]&=8191;r[9]-=8192;let i=(1^o)-1;for(let c=0;c<10;c++)r[c]&=i;i=~i;for(let c=0;c<10;c++)e[c]=e[c]&i|r[c];e[0]=65535&(e[0]|e[1]<<13),e[1]=65535&(e[1]>>>3|e[2]<<10),e[2]=65535&(e[2]>>>6|e[3]<<7),e[3]=65535&(e[3]>>>9|e[4]<<4),e[4]=65535&(e[4]>>>12|e[5]<<1|e[6]<<14),e[5]=65535&(e[6]>>>2|e[7]<<11),e[6]=65535&(e[7]>>>5|e[8]<<8),e[7]=65535&(e[8]>>>8|e[9]<<5);let a=e[0]+n[0];e[0]=65535&a;for(let c=1;c<8;c++)a=(e[c]+n[c]|0)+(a>>>16)|0,e[c]=65535&a;(0,mO.clean)(r)}update(e){(0,nH.exists)(this);let{buffer:n,blockLen:r}=this,o=(e=(0,mO.toBytes)(e)).length;for(let i=0;i<o;){let a=Math.min(r-this.pos,o-i);if(a!==r)n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===r&&(this.process(n,0,!1),this.pos=0);else for(;r<=o-i;i+=r)this.process(e,i)}return this}destroy(){(0,mO.clean)(this.h,this.r,this.buffer,this.pad)}digestInto(e){(0,nH.exists)(this),(0,nH.output)(e,this),this.finished=!0;let{buffer:n,h:r}=this,{pos:o}=this;if(o){for(n[o++]=1;o<16;o++)n[o]=0;this.process(n,0,!0)}this.finalize();let i=0;for(let a=0;a<8;a++)e[i++]=r[a]>>>0,e[i++]=r[a]>>>8;return e}digest(){let{buffer:e,outputLen:n}=this;this.digestInto(e);let r=e.slice(0,n);return this.destroy(),r}};vO.poly1305=zAe(t=>new Qne(t)),function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.xchacha20poly1305=t.chacha20poly1305=t._poly1305_aead=t.chacha12=t.chacha8=t.xchacha20=t.chacha20=t.chacha20orig=void 0,t.hchacha=a;let e=fA,n=ku,r=vO,o=Lh;function i(m,g,b,E,C,T=20){let R=m[0],L=m[1],D=m[2],G=m[3],W=g[0],J=g[1],ne=g[2],ie=g[3],Z=g[4],ae=g[5],V=g[6],$=g[7],F=C,_=b[0],O=b[1],z=b[2],N=R,B=L,j=D,q=G,H=W,I=J,U=ne,X=ie,ee=Z,se=ae,pe=V,ye=$,xe=F,_e=_,Me=O,qe=z;for(let Ge=0;Ge<T;Ge+=2)N=N+H|0,xe=(0,e.rotl)(xe^N,16),ee=ee+xe|0,H=(0,e.rotl)(H^ee,12),N=N+H|0,xe=(0,e.rotl)(xe^N,8),ee=ee+xe|0,H=(0,e.rotl)(H^ee,7),B=B+I|0,_e=(0,e.rotl)(_e^B,16),se=se+_e|0,I=(0,e.rotl)(I^se,12),B=B+I|0,_e=(0,e.rotl)(_e^B,8),se=se+_e|0,I=(0,e.rotl)(I^se,7),j=j+U|0,Me=(0,e.rotl)(Me^j,16),pe=pe+Me|0,U=(0,e.rotl)(U^pe,12),j=j+U|0,Me=(0,e.rotl)(Me^j,8),pe=pe+Me|0,U=(0,e.rotl)(U^pe,7),q=q+X|0,qe=(0,e.rotl)(qe^q,16),ye=ye+qe|0,X=(0,e.rotl)(X^ye,12),q=q+X|0,qe=(0,e.rotl)(qe^q,8),ye=ye+qe|0,X=(0,e.rotl)(X^ye,7),N=N+I|0,qe=(0,e.rotl)(qe^N,16),pe=pe+qe|0,I=(0,e.rotl)(I^pe,12),N=N+I|0,qe=(0,e.rotl)(qe^N,8),pe=pe+qe|0,I=(0,e.rotl)(I^pe,7),B=B+U|0,xe=(0,e.rotl)(xe^B,16),ye=ye+xe|0,U=(0,e.rotl)(U^ye,12),B=B+U|0,xe=(0,e.rotl)(xe^B,8),ye=ye+xe|0,U=(0,e.rotl)(U^ye,7),j=j+X|0,_e=(0,e.rotl)(_e^j,16),ee=ee+_e|0,X=(0,e.rotl)(X^ee,12),j=j+X|0,_e=(0,e.rotl)(_e^j,8),ee=ee+_e|0,X=(0,e.rotl)(X^ee,7),q=q+H|0,Me=(0,e.rotl)(Me^q,16),se=se+Me|0,H=(0,e.rotl)(H^se,12),q=q+H|0,Me=(0,e.rotl)(Me^q,8),se=se+Me|0,H=(0,e.rotl)(H^se,7);let wt=0;E[wt++]=R+N|0,E[wt++]=L+B|0,E[wt++]=D+j|0,E[wt++]=G+q|0,E[wt++]=W+H|0,E[wt++]=J+I|0,E[wt++]=ne+U|0,E[wt++]=ie+X|0,E[wt++]=Z+ee|0,E[wt++]=ae+se|0,E[wt++]=V+pe|0,E[wt++]=$+ye|0,E[wt++]=F+xe|0,E[wt++]=_+_e|0,E[wt++]=O+Me|0,E[wt++]=z+qe|0}function a(m,g,b,E){let C=m[0],T=m[1],R=m[2],L=m[3],D=g[0],G=g[1],W=g[2],J=g[3],ne=g[4],ie=g[5],Z=g[6],ae=g[7],V=b[0],$=b[1],F=b[2],_=b[3];for(let z=0;z<20;z+=2)C=C+D|0,V=(0,e.rotl)(V^C,16),ne=ne+V|0,D=(0,e.rotl)(D^ne,12),C=C+D|0,V=(0,e.rotl)(V^C,8),ne=ne+V|0,D=(0,e.rotl)(D^ne,7),T=T+G|0,$=(0,e.rotl)($^T,16),ie=ie+$|0,G=(0,e.rotl)(G^ie,12),T=T+G|0,$=(0,e.rotl)($^T,8),ie=ie+$|0,G=(0,e.rotl)(G^ie,7),R=R+W|0,F=(0,e.rotl)(F^R,16),Z=Z+F|0,W=(0,e.rotl)(W^Z,12),R=R+W|0,F=(0,e.rotl)(F^R,8),Z=Z+F|0,W=(0,e.rotl)(W^Z,7),L=L+J|0,_=(0,e.rotl)(_^L,16),ae=ae+_|0,J=(0,e.rotl)(J^ae,12),L=L+J|0,_=(0,e.rotl)(_^L,8),ae=ae+_|0,J=(0,e.rotl)(J^ae,7),C=C+G|0,_=(0,e.rotl)(_^C,16),Z=Z+_|0,G=(0,e.rotl)(G^Z,12),C=C+G|0,_=(0,e.rotl)(_^C,8),Z=Z+_|0,G=(0,e.rotl)(G^Z,7),T=T+W|0,V=(0,e.rotl)(V^T,16),ae=ae+V|0,W=(0,e.rotl)(W^ae,12),T=T+W|0,V=(0,e.rotl)(V^T,8),ae=ae+V|0,W=(0,e.rotl)(W^ae,7),R=R+J|0,$=(0,e.rotl)($^R,16),ne=ne+$|0,J=(0,e.rotl)(J^ne,12),R=R+J|0,$=(0,e.rotl)($^R,8),ne=ne+$|0,J=(0,e.rotl)(J^ne,7),L=L+D|0,F=(0,e.rotl)(F^L,16),ie=ie+F|0,D=(0,e.rotl)(D^ie,12),L=L+D|0,F=(0,e.rotl)(F^L,8),ie=ie+F|0,D=(0,e.rotl)(D^ie,7);let O=0;E[O++]=C,E[O++]=T,E[O++]=R,E[O++]=L,E[O++]=V,E[O++]=$,E[O++]=F,E[O++]=_}t.chacha20orig=(0,e.createCipher)(i,{counterRight:!1,counterLength:8,allowShortKeys:!0}),t.chacha20=(0,e.createCipher)(i,{counterRight:!1,counterLength:4,allowShortKeys:!1}),t.xchacha20=(0,e.createCipher)(i,{counterRight:!1,counterLength:8,extendNonceFn:a,allowShortKeys:!1}),t.chacha8=(0,e.createCipher)(i,{counterRight:!1,counterLength:4,rounds:8}),t.chacha12=(0,e.createCipher)(i,{counterRight:!1,counterLength:4,rounds:12});let c=new Uint8Array(16),u=(m,g)=>{m.update(g);let b=g.length%16;b&&m.update(c.subarray(b))},d=new Uint8Array(32);function h(m,g,b,E,C){let T=m(g,b,d),R=r.poly1305.create(T);C&&u(R,C),u(R,E);let L=new Uint8Array(16),D=(0,o.createView)(L);(0,o.setBigUint64)(D,0,BigInt(C?C.length:0),!0),(0,o.setBigUint64)(D,8,BigInt(E.length),!0),R.update(L);let G=R.digest();return(0,o.clean)(T,L),G}t._poly1305_aead=m=>(g,b,E)=>((0,n.bytes)(g,32),(0,n.bytes)(b),{encrypt(T,R){let L=T.length,D=L+16;R?(0,n.bytes)(R,D):R=new Uint8Array(D),m(g,b,T,R,1);let G=h(m,g,b,R.subarray(0,-16),E);return R.set(G,L),(0,o.clean)(G),R},decrypt(T,R){let L=T.length,D=L-16;if(L<16)throw new Error(\"encrypted data must be at least 16 bytes\");R?(0,n.bytes)(R,D):R=new Uint8Array(D);let G=T.subarray(0,-16),W=T.subarray(-16),J=h(m,g,b,G,E);if(!(0,o.equalBytes)(W,J))throw new Error(\"invalid tag\");return m(g,b,G,R,1),(0,o.clean)(J),R}}),t.chacha20poly1305=(0,o.wrapCipher)({blockSize:64,nonceLength:12,tagLength:16},(0,t._poly1305_aead)(t.chacha20)),t.xchacha20poly1305=(0,o.wrapCipher)({blockSize:64,nonceLength:24,tagLength:16},(0,t._poly1305_aead)(t.xchacha20))}(FAe),Object.defineProperty(zH,\"__esModule\",{value:!0}),zH.xchacha20=void 0;Uot=FAe;zH.xchacha20=function(t,e,n){return(0,Uot.xchacha20poly1305)(t,e,n)},function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.aesDecrypt=t.aesEncrypt=t.symDecrypt=t.symEncrypt=void 0;var e=Lh,n=Mre,r=mA,o=zH,i=RO,a=zc;t.symEncrypt=function(h,m,g){return c(u,h,m,g)};function c(h,m,g,b){var E=(0,i.symmetricAlgorithm)();if(E===\"aes-256-gcm\")return h(r.aes256gcm,m,g,(0,i.symmetricNonceLength)(),a.AEAD_TAG_LENGTH,b);if(E===\"xchacha20\")return h(o.xchacha20,m,g,a.XCHACHA20_NONCE_LENGTH,a.AEAD_TAG_LENGTH,b);if(E===\"aes-256-cbc\")return h(r.aes256cbc,m,g,16,0);throw new Error(\"Not implemented\")}function u(h,m,g,b,E,C){var T=(0,n.randomBytes)(b),R=h(m,T,C).encrypt(g);if(E===0)return(0,e.concatBytes)(T,R);var L=R.length-E,D=R.subarray(0,L),G=R.subarray(L);return(0,e.concatBytes)(T,G,D)}function d(h,m,g,b,E,C){var T=g.subarray(0,b),R=h(m,Uint8Array.from(T),C),L=g.subarray(b);if(E===0)return R.decrypt(L);var D=L.subarray(0,E),G=L.subarray(E);return R.decrypt((0,e.concatBytes)(G,D))}t.symDecrypt=function(h,m,g){return c(d,h,m,g)},t.aesEncrypt=t.symEncrypt,t.aesDecrypt=t.symDecrypt}(q4e),rA=dq,X4e=_m&&_m.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!(\"get\"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,r,o)}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),dO=_m&&_m.__exportStar||function(t,e){for(var n in t)n===\"default\"||Object.prototype.hasOwnProperty.call(e,n)||X4e(e,t,n)},Object.defineProperty(rA,\"__esModule\",{value:!0}),dO($8e,rA),dO(_Ae,rA),dO($ne,rA),dO(q4e,rA);NO={};Object.defineProperty(NO,\"__esModule\",{value:!0}),NO.PublicKey=void 0;eCe=Lh,rH=dq,jot=function(){function t(e){this.data=(0,rH.convertPublicKeyFormat)(e,!0)}return t.fromHex=function(e){return new t((0,rH.hexToPublicKey)(e))},Object.defineProperty(t.prototype,\"uncompressed\",{get:function(){return at.from((0,rH.convertPublicKeyFormat)(this.data,!1))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"compressed\",{get:function(){return at.from(this.data)},enumerable:!1,configurable:!0}),t.prototype.toHex=function(e){return e===void 0&&(e=!0),(0,eCe.bytesToHex)(e?this.data:this.uncompressed)},t.prototype.decapsulate=function(e,n){n===void 0&&(n=!1);var r=n?this.data:this.uncompressed,o=e.multiply(this,n);return(0,rH.getSharedKey)(r,o)},t.prototype.equals=function(e){return(0,eCe.equalBytes)(this.data,e.data)},t}();NO.PublicKey=jot,Object.defineProperty(OH,\"__esModule\",{value:!0}),OH.PrivateKey=void 0;tCe=Lh,oA=dq,zot=NO,Hot=function(){function t(e){if(e===void 0)this.data=(0,oA.getValidSecret)();else{if(!(0,oA.isValidPrivateKey)(e))throw new Error(\"Invalid private key\");this.data=e}this.publicKey=new zot.PublicKey((0,oA.getPublicKey)(this.data))}return t.fromHex=function(e){return new t((0,oA.decodeHex)(e))},Object.defineProperty(t.prototype,\"secret\",{get:function(){return at.from(this.data)},enumerable:!1,configurable:!0}),t.prototype.toHex=function(){return(0,tCe.bytesToHex)(this.data)},t.prototype.encapsulate=function(e,n){n===void 0&&(n=!1);var r=n?this.publicKey.compressed:this.publicKey.uncompressed,o=this.multiply(e,n);return(0,oA.getSharedKey)(r,o)},t.prototype.multiply=function(e,n){return n===void 0&&(n=!1),(0,oA.getSharedPoint)(this.data,e.compressed,n)},t.prototype.equals=function(e){return(0,tCe.equalBytes)(this.data,e.data)},t}();OH.PrivateKey=Hot,function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.PublicKey=t.PrivateKey=void 0;var e=OH;Object.defineProperty(t,\"PrivateKey\",{enumerable:!0,get:function(){return e.PrivateKey}});var n=NO;Object.defineProperty(t,\"PublicKey\",{enumerable:!0,get:function(){return n.PublicKey}})}(ene),function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.utils=t.PublicKey=t.PrivateKey=t.ECIES_CONFIG=void 0,t.encrypt=function(c,u){var d=new r.PrivateKey,h=c instanceof Uint8Array?new r.PublicKey(c):r.PublicKey.fromHex(c),m=d.encapsulate(h,(0,n.isHkdfKeyCompressed)()),g=(0,n.isEphemeralKeyCompressed)()?d.publicKey.compressed:d.publicKey.uncompressed,b=(0,o.symEncrypt)(m,u);return at.from((0,e.concatBytes)(g,b))},t.decrypt=function(c,u){var d=c instanceof Uint8Array?new r.PrivateKey(c):r.PrivateKey.fromHex(c),h=(0,n.ephemeralKeySize)(),m=new r.PublicKey(u.subarray(0,h)),g=u.subarray(h),b=m.decapsulate(d,(0,n.isHkdfKeyCompressed)());return at.from((0,o.symDecrypt)(b,g))};var e=Lh,n=RO,r=ene,o=dq,i=RO;Object.defineProperty(t,\"ECIES_CONFIG\",{enumerable:!0,get:function(){return i.ECIES_CONFIG}});var a=ene;Object.defineProperty(t,\"PrivateKey\",{enumerable:!0,get:function(){return a.PrivateKey}}),Object.defineProperty(t,\"PublicKey\",{enumerable:!0,get:function(){return a.PublicKey}}),t.utils={aesEncrypt:o.aesEncrypt,aesDecrypt:o.aesDecrypt,symEncrypt:o.symEncrypt,symDecrypt:o.symDecrypt,decodeHex:o.decodeHex,getValidSecret:o.getValidSecret,remove0x:o.remove0x}}(sA);HAe=(0,Cu.default)(\"KeyExchange:Layer\"),qAe=(0,Cu.default)(\"SocketService:Layer\"),WAe=(0,Cu.default)(\"Ecies:Layer\"),VAe=(0,Cu.default)(\"RemoteCommunication:Layer\");HAe.color=\"##95c44e\",qAe.color=\"#f638d7\",WAe.color=\"#465b9c\",VAe.color=\"#47a2be\";He={KeyExchange:HAe,SocketService:qAe,Ecies:WAe,RemoteCommunication:VAe},oH=[],gne=[],Yv=(t,e)=>ct(void 0,void 0,void 0,function*(){fO=e,gne.push(t),function(n){return ct(this,void 0,void 0,function*(){if(!fO||!n)return;(function(){let a=gne;gne=oH,oH=a})();let r=fO.endsWith(\"/\")?`${fO}evt`:`${fO}/evt`,o=Object.assign({},n);if(delete o.params,n.params)for(let[a,c]of Object.entries(n.params))o[a]=c;let i=JSON.stringify(o);He.RemoteCommunication(`[sendBufferedEvents] Sending ${oH.length} analytics events to ${r}`);try{let a=yield(0,Rre.default)(r,{method:\"POST\",headers:{Accept:\"application/json\",\"Content-Type\":\"application/json\"},body:i}),c=yield a.text();He.RemoteCommunication(`[sendBufferedEvents] Response: ${c}`),oH.length=0}catch{}})}(t).catch(()=>{})}),wO=class{constructor(e){this.enabled=!0,e?.debug&&Cu.default.enable(\"Ecies:Layer\"),this.ecies=e?.privateKey?sA.PrivateKey.fromHex(e.privateKey):new sA.PrivateKey,He.Ecies(\"[ECIES constructor()] initialized secret: \",this.ecies.toHex()),He.Ecies(\"[ECIES constructor()] initialized public: \",this.ecies.publicKey.toHex()),He.Ecies(\"[ECIES constructor()] init with\",this)}generateECIES(){this.ecies=new sA.PrivateKey}getPublicKey(){return this.ecies.publicKey.toHex()}encrypt(e,n){let r=e;if(this.enabled)try{He.Ecies(\"[ECIES: encrypt()] using otherPublicKey\",n);let o=at.from(e),i=sA.encrypt(n,o);r=at.from(i).toString(\"base64\")}catch(o){throw He.Ecies(\"[ECIES: encrypt()] error encrypt:\",o),He.Ecies(\"[ECIES: encrypt()] private: \",this.ecies.toHex()),He.Ecies(\"[ECIES: encrypt()] data: \",e),He.Ecies(\"[ECIES: encrypt()] otherkey: \",n),o}return r}decrypt(e){let n=e;if(this.enabled)try{He.Ecies(\"[ECIES: decrypt()] using privateKey\",this.ecies.toHex());let r=at.from(e.toString(),\"base64\");n=sA.decrypt(this.ecies.toHex(),r).toString()}catch(r){throw He.Ecies(\"[ECIES: decrypt()] error decrypt\",r),He.Ecies(\"[ECIES: decrypt()] private: \",this.ecies.toHex()),He.Ecies(\"[ECIES: decrypt()] encryptedData: \",e),r}return n}getKeyInfo(){return{private:this.ecies.toHex(),public:this.ecies.publicKey.toHex()}}toString(){He.Ecies(\"[ECIES: toString()]\",this.getKeyInfo())}},h3={name:\"@metamask/sdk-communication-layer\",version:\"0.32.0\",description:\"\",homepage:\"https://github.com/MetaMask/metamask-sdk#readme\",bugs:{url:\"https://github.com/MetaMask/metamask-sdk/issues\"},repository:{type:\"git\",url:\"https://github.com/MetaMask/metamask-sdk.git\",directory:\"packages/sdk-communication-layer\"},main:\"dist/node/cjs/metamask-sdk-communication-layer.js\",unpkg:\"dist/browser/umd/metamask-sdk-communication-layer.js\",module:\"dist/node/es/metamask-sdk-communication-layer.js\",browser:\"dist/browser/es/metamask-sdk-communication-layer.js\",\"react-native\":\"dist/react-native/es/metamask-sdk-communication-layer.js\",types:\"dist/types/src/index.d.ts\",files:[\"/dist\"],scripts:{\"build:types\":\"tsc --project tsconfig.build.json --emitDeclarationOnly --outDir dist/types\",\"build:clean\":\"yarn clean && yarn build\",build:\"yarn build:types && rollup -c --bundleConfigAsCjs\",\"build:dev\":\"yarn build:types && NODE_ENV=dev rollup -c --bundleConfigAsCjs\",dev:\\'concurrently \"tsc --watch\" \"rollup -c --bundleConfigAsCjs -w\"\\',\"build:post-tsc\":\"echo \\'N/A\\'\",\"build:pre-tsc\":\"echo \\'N/A\\'\",size:\"size-limit\",clean:\"rimraf ./dist\",lint:\"yarn lint:eslint && yarn lint:misc --check\",\"lint:changelog\":\"../../scripts/validate-changelog.sh @metamask/sdk-communication-layer\",\"lint:eslint\":\"eslint . --cache --ext js,ts\",\"lint:fix\":\"yarn lint:eslint --fix && yarn lint:misc --write\",\"lint:misc\":\"prettier \\'**/*.json\\' \\'**/*.md\\' \\'!CHANGELOG.md\\' --ignore-path ../../.gitignore\",\"publish:preview\":\"yarn npm publish --tag preview\",prepack:\"../../scripts/prepack.sh\",reset:\"yarn clean && rimraf ./node_modules/\",test:\\'jest --testPathIgnorePatterns \"/e2e/\"\\',\"test:e2e\":\\'jest --testPathPattern \"/e2e/\"\\',\"test:coverage\":\"jest --coverage\",\"test:ci\":\\'jest --coverage --passWithNoTests --setupFilesAfterEnv ./jest-preload.js --testPathIgnorePatterns \"/e2e/\"\\',\"test:dev\":\"jest\",watch:\"rollup -c --bundleConfigAsCjs -w\"},dependencies:{bufferutil:\"^4.0.8\",\"date-fns\":\"^2.29.3\",debug:\"^4.3.4\",\"utf-8-validate\":\"^5.0.2\",uuid:\"^8.3.2\"},devDependencies:{\"@jest/globals\":\"^29.3.1\",\"@lavamoat/allow-scripts\":\"^2.3.1\",\"@metamask/auto-changelog\":\"3.1.0\",\"@metamask/eslint-config\":\"^6.0.0\",\"@metamask/eslint-config-nodejs\":\"^6.0.0\",\"@metamask/eslint-config-typescript\":\"^6.0.0\",\"@rollup/plugin-commonjs\":\"^25.0.0\",\"@rollup/plugin-json\":\"^6.0.0\",\"@rollup/plugin-node-resolve\":\"^15.0.2\",\"@rollup/plugin-replace\":\"^6.0.1\",\"@rollup/plugin-terser\":\"^0.4.4\",\"@size-limit/preset-big-lib\":\"^11.0.2\",\"@types/jest\":\"^29.2.4\",\"@types/node\":\"^20.1.3\",\"@types/uuid\":\"^9.0.0\",\"@typescript-eslint/eslint-plugin\":\"^4.26.0\",\"@typescript-eslint/parser\":\"^4.26.0\",concurrently:\"^9.1.2\",\"cross-fetch\":\"^4.0.0\",eciesjs:\"^0.4.11\",eslint:\"^7.30.0\",\"eslint-config-prettier\":\"^8.3.0\",\"eslint-plugin-import\":\"^2.23.4\",\"eslint-plugin-jest\":\"^24.4.0\",\"eslint-plugin-jsdoc\":\"^36.1.0\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-prettier\":\"^3.4.0\",eventemitter2:\"^6.4.9\",jest:\"^29.3.1\",prettier:\"^2.3.0\",rimraf:\"^3.0.2\",rollup:\"^4.26.0\",\"rollup-plugin-jscc\":\"^2.0.0\",\"rollup-plugin-natives\":\"^0.7.5\",\"rollup-plugin-node-builtins\":\"^2.1.2\",\"rollup-plugin-node-globals\":\"^1.4.0\",\"rollup-plugin-peer-deps-external\":\"^2.2.4\",\"rollup-plugin-polyfill-node\":\"^0.13.0\",\"rollup-plugin-sizes\":\"^1.0.6\",\"rollup-plugin-typescript2\":\"^0.31.2\",\"rollup-plugin-visualizer\":\"^5.12.0\",\"size-limit\":\"^11.1.6\",\"socket.io-client\":\"^4.5.1\",\"stream-browserify\":\"^3.0.0\",\"ts-jest\":\"^29.0.3\",\"ts-node\":\"^10.9.1\",typescript:\"^5.6.3\"},peerDependencies:{\"cross-fetch\":\"^4.0.0\",eciesjs:\"*\",eventemitter2:\"^6.4.9\",\"readable-stream\":\"^3.6.2\",\"socket.io-client\":\"^4.5.1\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},lavamoat:{allowScripts:{\"@lavamoat/preinstall-always-fail\":!1,canvas:!0,\"eciesjs>secp256k1\":!1,\"socket.io-client>engine.io-client>ws>bufferutil\":!1,\"socket.io-client>engine.io-client>ws>utf-8-validate\":!1,bufferutil:!1,\"utf-8-validate\":!1}}},RS=\"https://metamask-sdk.api.cx.metamask.io/\",qot=[\"websocket\"],wA=6048e5,Wot=3e3,Vot={METAMASK_GETPROVIDERSTATE:\"metamask_getProviderState\",ETH_REQUESTACCOUNTS:\"eth_requestAccounts\"};(iA=Wc||(Wc={})).DISCONNECTED=\"disconnected\",iA.WAITING=\"waiting\",iA.TIMEOUT=\"timeout\",iA.LINKED=\"linked\",iA.PAUSED=\"paused\",iA.TERMINATED=\"terminated\",function(t){t.KEY_INFO=\"key_info\",t.SERVICE_STATUS=\"service_status\",t.PROVIDER_UPDATE=\"provider_update\",t.RPC_UPDATE=\"rpc_update\",t.KEYS_EXCHANGED=\"keys_exchanged\",t.JOIN_CHANNEL=\"join_channel\",t.PUBLIC_KEY=\"public_key\",t.CHANNEL_CREATED=\"channel_created\",t.CLIENTS_CONNECTED=\"clients_connected\",t.CLIENTS_DISCONNECTED=\"clients_disconnected\",t.CLIENTS_WAITING=\"clients_waiting\",t.CLIENTS_READY=\"clients_ready\",t.REJECTED=\"rejected\",t.WALLET_INIT=\"wallet_init\",t.CHANNEL_PERSISTENCE=\"channel_persistence\",t.CONFIG=\"config\",t.MESSAGE_ACK=\"ack\",t.SOCKET_DISCONNECTED=\"socket_disconnected\",t.SOCKET_RECONNECT=\"socket_reconnect\",t.OTP=\"otp\",t.SDK_RPC_CALL=\"sdk_rpc_call\",t.AUTHORIZED=\"authorized\",t.CONNECTION_STATUS=\"connection_status\",t.MESSAGE=\"message\",t.TERMINATE=\"terminate\"}(vt||(vt={})),(HH||(HH={})).KEY_EXCHANGE=\"key_exchange\",function(t){t.KEY_HANDSHAKE_START=\"key_handshake_start\",t.KEY_HANDSHAKE_CHECK=\"key_handshake_check\",t.KEY_HANDSHAKE_SYN=\"key_handshake_SYN\",t.KEY_HANDSHAKE_SYNACK=\"key_handshake_SYNACK\",t.KEY_HANDSHAKE_ACK=\"key_handshake_ACK\",t.KEY_HANDSHAKE_WALLET=\"key_handshake_wallet\",t.KEY_HANDSHAKE_NONE=\"none\"}(Vo||(Vo={}));Jne=class extends SA.EventEmitter2{constructor({communicationLayer:e,otherPublicKey:n,context:r,ecies:o,logging:i}){super(),this.keysExchanged=!1,this.step=Vo.KEY_HANDSHAKE_NONE,this.debug=!1,this.context=r,this.communicationLayer=e,o?.privateKey&&n&&(He.KeyExchange(`[KeyExchange: constructor()] otherPubKey=${n} set keysExchanged to true!`,o),this.keysExchanged=!0),this.myECIES=new wO(Object.assign(Object.assign({},o),{debug:i?.eciesLayer})),this.communicationLayer.state.eciesInstance=this.myECIES,this.myPublicKey=this.myECIES.getPublicKey(),this.debug=i?.keyExchangeLayer===!0,n&&this.setOtherPublicKey(n),this.communicationLayer.on(HH.KEY_EXCHANGE,this.onKeyExchangeMessage.bind(this))}onKeyExchangeMessage(e){let{relayPersistence:n}=this.communicationLayer.remote.state;if(He.KeyExchange(`[KeyExchange: onKeyExchangeMessage()] context=${this.context} keysExchanged=${this.keysExchanged} relayPersistence=${n}`,e),n)return void He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] Ignoring key exchange message because relay persistence is activated\");let{message:r}=e;this.keysExchanged&&He.KeyExchange(`[KeyExchange: onKeyExchangeMessage()] context=${this.context} received handshake while already exchanged. step=${this.step} otherPubKey=${this.otherPublicKey}`),this.emit(vt.KEY_INFO,r.type),r.type===Vo.KEY_HANDSHAKE_SYN?(this.checkStep([Vo.KEY_HANDSHAKE_NONE,Vo.KEY_HANDSHAKE_ACK]),He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] KEY_HANDSHAKE_SYN\",r),r.pubkey&&this.setOtherPublicKey(r.pubkey),this.communicationLayer.sendMessage({type:Vo.KEY_HANDSHAKE_SYNACK,pubkey:this.myPublicKey}).catch(o=>{He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] Error sending KEY_HANDSHAKE_SYNACK\",o)}),this.setStep(Vo.KEY_HANDSHAKE_ACK)):r.type===Vo.KEY_HANDSHAKE_SYNACK?(this.checkStep([Vo.KEY_HANDSHAKE_SYNACK,Vo.KEY_HANDSHAKE_ACK,Vo.KEY_HANDSHAKE_NONE]),He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] KEY_HANDSHAKE_SYNACK\"),r.pubkey&&this.setOtherPublicKey(r.pubkey),this.communicationLayer.sendMessage({type:Vo.KEY_HANDSHAKE_ACK}).catch(o=>{He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] Error sending KEY_HANDSHAKE_ACK\",o)}),this.keysExchanged=!0,this.setStep(Vo.KEY_HANDSHAKE_ACK),this.emit(vt.KEYS_EXCHANGED)):r.type===Vo.KEY_HANDSHAKE_ACK&&(He.KeyExchange(\"[KeyExchange: onKeyExchangeMessage()] KEY_HANDSHAKE_ACK set keysExchanged to true!\"),this.checkStep([Vo.KEY_HANDSHAKE_ACK,Vo.KEY_HANDSHAKE_NONE]),this.keysExchanged=!0,this.setStep(Vo.KEY_HANDSHAKE_ACK),this.emit(vt.KEYS_EXCHANGED))}resetKeys(e){this.clean(),this.myECIES=new wO(e)}clean(){He.KeyExchange(`[KeyExchange: clean()] context=${this.context} reset handshake state`),this.setStep(Vo.KEY_HANDSHAKE_NONE),this.emit(vt.KEY_INFO,this.step),this.keysExchanged=!1}start({isOriginator:e,force:n}){let{relayPersistence:r,protocolVersion:o}=this.communicationLayer.remote.state,i=o>=2;r?He.KeyExchange(\"[KeyExchange: start()] Ignoring key exchange message because relay persistence is activated\"):(He.KeyExchange(`[KeyExchange: start()] context=${this.context} protocolVersion=${o} isOriginator=${e} step=${this.step} force=${n} relayPersistence=${r} keysExchanged=${this.keysExchanged}`),e?!(this.keysExchanged||this.step!==Vo.KEY_HANDSHAKE_NONE&&this.step!==Vo.KEY_HANDSHAKE_SYNACK)||n?(He.KeyExchange(`[KeyExchange: start()] context=${this.context} -- start key exchange (force=${n}) -- step=${this.step}`,this.step),this.clean(),this.setStep(Vo.KEY_HANDSHAKE_SYNACK),this.communicationLayer.sendMessage({type:Vo.KEY_HANDSHAKE_SYN,pubkey:this.myPublicKey,v:2}).catch(a=>{He.KeyExchange(\"[KeyExchange: start()] Error sending KEY_HANDSHAKE_SYN\",a)})):He.KeyExchange(`[KeyExchange: start()] context=${this.context} -- key exchange already ${this.keysExchanged?\"done\":\"in progress\"} -- aborted.`,this.step):this.keysExchanged&&n!==!0?He.KeyExchange(\"[KeyExchange: start()] don\\'t send KEY_HANDSHAKE_START -- exchange already done.\"):i?this.communicationLayer.sendMessage({type:Vo.KEY_HANDSHAKE_SYNACK,pubkey:this.myPublicKey,v:2}).catch(a=>{He.KeyExchange(\"[KeyExchange: start()] Error sending KEY_HANDSHAKE_SYNACK\",a)}):(this.communicationLayer.sendMessage({type:Vo.KEY_HANDSHAKE_START}).catch(a=>{He.KeyExchange(\"[KeyExchange: start()] Error sending KEY_HANDSHAKE_START\",a)}),this.clean()))}setStep(e){this.step=e,this.emit(vt.KEY_INFO,e)}checkStep(e){e.length>0&&e.indexOf(this.step.toString())}setRelayPersistence({localKey:e,otherKey:n}){this.otherPublicKey=n,this.myECIES=new wO({privateKey:e,debug:this.debug}),this.keysExchanged=!0}setKeysExchanged(e){this.keysExchanged=e}areKeysExchanged(){return this.keysExchanged}getMyPublicKey(){return this.myPublicKey}getOtherPublicKey(){return this.otherPublicKey}setOtherPublicKey(e){He.KeyExchange(\"[KeyExchange: setOtherPubKey()]\",e),this.otherPublicKey=e}encryptMessage(e){if(!this.otherPublicKey)throw new Error(\"encryptMessage: Keys not exchanged - missing otherPubKey\");return this.myECIES.encrypt(e,this.otherPublicKey)}decryptMessage(e){if(!this.otherPublicKey)throw new Error(\"decryptMessage: Keys not exchanged - missing otherPubKey\");return this.myECIES.decrypt(e)}getKeyInfo(){return{ecies:Object.assign(Object.assign({},this.myECIES.getKeyInfo()),{otherPubKey:this.otherPublicKey}),step:this.step,keysExchanged:this.areKeysExchanged()}}toString(){let e={keyInfo:this.getKeyInfo(),keysExchanged:this.keysExchanged,step:this.step};return JSON.stringify(e)}};(function(t){t.TERMINATE=\"terminate\",t.ANSWER=\"answer\",t.OFFER=\"offer\",t.CANDIDATE=\"candidate\",t.JSONRPC=\"jsonrpc\",t.WALLET_INFO=\"wallet_info\",t.WALLET_INIT=\"wallet_init\",t.ORIGINATOR_INFO=\"originator_info\",t.PAUSE=\"pause\",t.OTP=\"otp\",t.AUTHORIZED=\"authorized\",t.PING=\"ping\",t.READY=\"ready\"})(hs||(hs={})),function(t){t.REQUEST=\"sdk_connect_request_started\",t.REQUEST_MOBILE=\"sdk_connect_request_started_mobile\",t.RECONNECT=\"sdk_reconnect_request_started\",t.CONNECTED=\"sdk_connection_established\",t.CONNECTED_MOBILE=\"sdk_connection_established_mobile\",t.AUTHORIZED=\"sdk_connection_authorized\",t.REJECTED=\"sdk_connection_rejected\",t.TERMINATED=\"sdk_connection_terminated\",t.DISCONNECTED=\"sdk_disconnected\",t.SDK_USE_EXTENSION=\"sdk_use_extension\",t.SDK_RPC_REQUEST=\"sdk_rpc_request\",t.SDK_RPC_REQUEST_RECEIVED=\"sdk_rpc_request_received\",t.SDK_RPC_REQUEST_DONE=\"sdk_rpc_request_done\",t.SDK_EXTENSION_UTILIZED=\"sdk_extension_utilized\",t.SDK_USE_INAPP_BROWSER=\"sdk_use_inapp_browser\"}(pa||(pa={}));pH=(t,e,n)=>ct(void 0,void 0,void 0,function*(){var r,o,i,a,c,u;let{remote:d,state:h}=t,{channelId:m,isOriginator:g}=h;if(e===\"error_terminated\")return He.SocketService(`handleJoinChannelResults: Channel ${m} terminated`),void t.emit(vt.TERMINATE);if(!n)return void He.SocketService(`handleJoinChannelResults: No result for channel ${m}`);let{persistence:b,walletKey:E,rejected:C}=n;if(He.SocketService(`handleJoinChannelResults: Channel ${m} persistence=${b} walletKey=${E} rejected=${C}`),C)return He.SocketService(`handleJoinChannelResults: Channel ${m} rejected`),yield t.remote.disconnect({terminate:!0}),t.remote.emit(vt.REJECTED,{channelId:m}),void t.remote.emitServiceStatusEvent();if(E&&!(!((r=d.state.channelConfig)===null||r===void 0)&&r.otherKey)){t.getKeyExchange().setOtherPublicKey(E),(o=t.state.keyExchange)===null||o===void 0||o.setKeysExchanged(!0),d.state.ready=!0,d.state.authorized=!0,d.emit(vt.AUTHORIZED);let{communicationLayer:T,storageManager:R}=d.state,L=Object.assign(Object.assign({},d.state.channelConfig),{channelId:(i=d.state.channelId)!==null&&i!==void 0?i:\"\",validUntil:Date.now()+wA,localKey:T?.getKeyInfo().ecies.private,otherKey:E});t.sendMessage({type:Vo.KEY_HANDSHAKE_ACK}).catch(D=>{}),(a=t.state.socket)===null||a===void 0||a.emit(hs.PING,{id:m,clientType:g?\"dapp\":\"wallet\",context:\"on_channel_reconnect\",message:\"\"}),yield R?.persistChannelConfig(L),d.emitServiceStatusEvent(),d.setConnectionStatus(Wc.LINKED)}b&&(t.emit(vt.CHANNEL_PERSISTENCE),(c=t.state.keyExchange)===null||c===void 0||c.setKeysExchanged(!0),d.state.ready=!0,d.state.authorized=!0,d.emit(vt.AUTHORIZED),Yv(Object.assign(Object.assign({id:m??\"\",event:g?pa.CONNECTED:pa.CONNECTED_MOBILE},t.remote.state.originatorInfo),{sdkVersion:t.remote.state.sdkVersion,commLayer:t.state.communicationLayerPreference,commLayerVersion:h3.version,walletVersion:(u=t.remote.state.walletInfo)===null||u===void 0?void 0:u.version}),h.communicationServerUrl).catch(T=>{}))}),yA=t=>new Promise(e=>{setTimeout(e,t)}),nCe=(t,e,...n)=>ct(void 0,[t,e,...n],void 0,function*(r,o,i=200){let a,c=Date.now(),u=!1;for(;!u;){if(u=Date.now()-c>3e5,a=o[r],a.elapsedTime!==void 0)return a;yield yA(i)}throw new Error(`RPC ${r} timed out`)}),Xne=t=>ct(void 0,void 0,void 0,function*(){let{state:e}=t,{socket:n,channelId:r,context:o,isOriginator:i,isReconnecting:a}=e;if(a)return He.SocketService(\"[SocketService: reconnectSocket()] Reconnection already in progress, skipping\",t),!1;if(!n)return He.SocketService(\"[SocketService: reconnectSocket()] socket is not defined\",t),!1;if(!r)return!1;let{connected:c}=n;e.isReconnecting=!0,e.reconnectionAttempts=0,He.SocketService(`[SocketService: reconnectSocket()] connected=${c} trying to reconnect after socketio disconnection`,t);try{for(;3>e.reconnectionAttempts;){if(He.SocketService(`[SocketService: reconnectSocket()] Attempt ${e.reconnectionAttempts+1} of 3`,t),yield yA(200),n.connected)return He.SocketService(\"Socket already connected --- ping to retrieve messages\"),n.emit(hs.PING,{id:r,clientType:i?\"dapp\":\"wallet\",context:\"on_channel_config\",message:\"\"}),!0;e.resumed=!0,n.connect(),t.emit(vt.SOCKET_RECONNECT);try{if(yield new Promise((u,d)=>{n.emit(vt.JOIN_CHANNEL,{channelId:r,context:`${o}connect_again`,clientType:i?\"dapp\":\"wallet\"},(h,m)=>ct(void 0,void 0,void 0,function*(){try{yield pH(t,h,m),u()}catch(g){d(g)}}))}),yield yA(100),n.connected)return He.SocketService(`Reconnection successful on attempt ${e.reconnectionAttempts+1}`),!0}catch(u){He.SocketService(`Error during reconnection attempt ${e.reconnectionAttempts+1}:`,u)}e.reconnectionAttempts+=1,3>e.reconnectionAttempts&&(yield yA(200))}return He.SocketService(\"Failed to reconnect after 3 attempts\"),!1}finally{e.isReconnecting=!1,e.reconnectionAttempts=0}});(function(t){t.RPC_CHECK=\"rpcCheck\",t.SKIPPED_RPC=\"skippedRpc\"})(hA||(hA={}));GAe=[\"eth_sendTransaction\",\"eth_signTypedData\",\"eth_signTransaction\",\"personal_sign\",\"wallet_requestPermissions\",\"wallet_switchEthereumChain\",\"eth_signTypedData_v3\",\"eth_signTypedData_v4\",\"metamask_connectSign\",\"metamask_connectWith\",\"metamask_batch\"].map(t=>t.toLowerCase()),$ot=[{event:vt.CLIENTS_CONNECTED,handler:function(t,e){return n=>ct(this,void 0,void 0,function*(){var r,o,i,a,c,u,d,h,m,g,b;let E=(o=(r=t.remote.state.channelConfig)===null||r===void 0?void 0:r.relayPersistence)!==null&&o!==void 0&&o;if(He.SocketService(`[SocketService: handleClientsConnected()] context=${t.state.context} on \\'clients_connected-${e}\\' relayPersistence=${E} resumed=${t.state.resumed}  clientsPaused=${t.state.clientsPaused} keysExchanged=${(i=t.state.keyExchange)===null||i===void 0?void 0:i.areKeysExchanged()} isOriginator=${t.state.isOriginator}`),t.emit(vt.CLIENTS_CONNECTED,{isOriginator:t.state.isOriginator,keysExchanged:(a=t.state.keyExchange)===null||a===void 0?void 0:a.areKeysExchanged(),context:t.state.context}),t.state.resumed)t.state.isOriginator||(He.SocketService(`[SocketService: handleClientsConnected()] context=${t.state.context} \\'clients_connected\\' / keysExchanged=${(c=t.state.keyExchange)===null||c===void 0?void 0:c.areKeysExchanged()} -- backward compatibility`),(u=t.state.keyExchange)===null||u===void 0||u.start({isOriginator:(d=t.state.isOriginator)!==null&&d!==void 0&&d})),t.state.resumed=!1;else if(t.state.clientsPaused)He.SocketService(\"[SocketService: handleClientsConnected()] \\'clients_connected\\' skip sending originatorInfo on pause\");else if(!t.state.isOriginator){let C=!E;He.SocketService(`[SocketService: handleClientsConnected()] context=${t.state.context} on \\'clients_connected\\' / keysExchanged=${(h=t.state.keyExchange)===null||h===void 0?void 0:h.areKeysExchanged()} -- force=${C} -- backward compatibility`),He.SocketService(`[SocketService: handleClientsConnected()] context=${t.state.context} on \\'clients_connected\\' / keysExchanged=${(m=t.state.keyExchange)===null||m===void 0?void 0:m.areKeysExchanged()} -- force=${C} -- backward compatibility`),(g=t.state.keyExchange)===null||g===void 0||g.start({isOriginator:(b=t.state.isOriginator)!==null&&b!==void 0&&b,force:C})}t.state.clientsConnected=!0,t.state.clientsPaused=!1})}},{event:vt.CHANNEL_CREATED,handler:function(t,e){return n=>{He.SocketService(`[SocketService: handleChannelCreated()] context=${t.state.context} on \\'channel_created-${e}\\'`,n),t.emit(vt.CHANNEL_CREATED,n)}}},{event:vt.CLIENTS_DISCONNECTED,handler:function(t,e){return()=>{var n;t.state.clientsConnected=!1,He.SocketService(`[SocketService: handlesClientsDisconnected()] context=${t.state.context} on \\'clients_disconnected-${e}\\'`),t.remote.state.relayPersistence?He.SocketService(`[SocketService: handlesClientsDisconnected()] context=${t.state.context} on \\'clients_disconnected-${e}\\' - relayPersistence enabled, skipping key exchange cleanup.`):(t.state.isOriginator&&!t.state.clientsPaused&&((n=t.state.keyExchange)===null||n===void 0||n.clean()),t.emit(vt.CLIENTS_DISCONNECTED,e))}}},{event:vt.CONFIG,handler:function(t,e){return n=>ct(this,void 0,void 0,function*(){var r,o,i;He.SocketService(`[SocketService: handleChannelConfig()] update relayPersistence on \\'config-${e}\\'`,n);let{persistence:a,walletKey:c}=n;t.state.isOriginator&&t.remote.state.channelConfig?(n.walletKey&&!t.remote.state.channelConfig.otherKey&&(He.SocketService(`Setting wallet key ${c}`),t.remote.state.channelConfig.otherKey=c,t.getKeyExchange().setOtherPublicKey(n.walletKey),(r=t.state.keyExchange)===null||r===void 0||r.setKeysExchanged(!0),yield t.remote.sendMessage({type:Vo.KEY_HANDSHAKE_ACK}),yield t.remote.sendMessage({type:hs.PING}),yield(o=t.remote.state.storageManager)===null||o===void 0?void 0:o.persistChannelConfig(t.remote.state.channelConfig)),a!==!0||t.remote.state.channelConfig.relayPersistence||(He.SocketService(`Setting relay persistence ${a}`),t.remote.state.channelConfig.relayPersistence=a,t.remote.state.relayPersistence=!0,t.remote.emit(vt.CHANNEL_PERSISTENCE),t.remote.state.authorized=!0,t.remote.state.ready=!0,t.remote.emit(vt.AUTHORIZED),yield(i=t.remote.state.storageManager)===null||i===void 0?void 0:i.persistChannelConfig(t.remote.state.channelConfig))):t.state.isOriginator||n.persistence&&(t.remote.state.relayPersistence=!0,t.remote.emit(vt.CHANNEL_PERSISTENCE))})}},{event:vt.MESSAGE,handler:function(t,e){return n=>{var r,o,i,a,c,u,d,h,m,g,b,E,C,T,R,L,D,G;let{ackId:W,message:J,error:ne}=n,ie=(r=t.remote.state.relayPersistence)!==null&&r!==void 0&&r;if(He.SocketService(`[SocketService handleMessage()]  relayPersistence=${ie}  context=${t.state.context} on \\'message\\' ${e} keysExchanged=${(o=t.state.keyExchange)===null||o===void 0?void 0:o.areKeysExchanged()}`,n),ne)throw He.SocketService(`\\n      [SocketService handleMessage()] context=${t.state.context}::on \\'message\\' error=${ne}`),new Error(ne);let Z=typeof J==\"string\";if(!Z&&J?.type===Vo.KEY_HANDSHAKE_START)return ie?void 0:(He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' received HANDSHAKE_START isOriginator=${t.state.isOriginator}`,J),void((i=t.state.keyExchange)===null||i===void 0||i.start({isOriginator:(a=t.state.isOriginator)!==null&&a!==void 0&&a,force:!0})));if(!Z&&(!((c=J?.type)===null||c===void 0)&&c.startsWith(\"key_handshake\")))return ie?void 0:(He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' emit KEY_EXCHANGE`,J),void t.emit(HH.KEY_EXCHANGE,{message:J,context:t.state.context}));if(Z&&!(!((u=t.state.keyExchange)===null||u===void 0)&&u.areKeysExchanged())){let $=!1;try{He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' trying to decrypt message`),(d=t.state.keyExchange)===null||d===void 0||d.decryptMessage(J),$=!0}catch(F){He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' error`,F)}if(!$)return t.state.isOriginator?(m=t.state.keyExchange)===null||m===void 0||m.start({isOriginator:(g=t.state.isOriginator)!==null&&g!==void 0&&g}):t.sendMessage({type:Vo.KEY_HANDSHAKE_START}).catch(F=>{}),void He.SocketService(`Message ignored because invalid key exchange status. step=${(b=t.state.keyExchange)===null||b===void 0?void 0:b.getKeyInfo().step}`,(E=t.state.keyExchange)===null||E===void 0?void 0:E.getKeyInfo(),J);He.SocketService(\"Invalid key exchange status detected --- updating it.\"),(h=t.state.keyExchange)===null||h===void 0||h.setKeysExchanged(!0)}else if(!Z&&J?.type)return void t.emit(vt.MESSAGE,J);if(!Z)return void t.emit(vt.MESSAGE,J);let ae=(C=t.state.keyExchange)===null||C===void 0?void 0:C.decryptMessage(J),V=JSON.parse(ae??\"{}\");if(W&&W?.length>0&&(He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' ackid=${W} channelId=${e}`),(T=t.state.socket)===null||T===void 0||T.emit(vt.MESSAGE_ACK,{ackId:W,channelId:e,clientType:t.state.isOriginator?\"dapp\":\"wallet\"})),t.state.clientsPaused=V?.type===hs.PAUSE,t.state.isOriginator&&V.data){let $=V.data,F=t.state.rpcMethodTracker[$.id];if(F){let _=Date.now()-F.timestamp;He.SocketService(`[SocketService handleMessage()] context=${t.state.context}::on \\'message\\' received answer for id=${$.id} method=${F.method} responseTime=${_}`,V),t.remote.state.analytics&&GAe.includes(F.method.toLowerCase())&&Yv(Object.assign(Object.assign({id:(R=t.remote.state.channelId)!==null&&R!==void 0?R:\"\",event:pa.SDK_RPC_REQUEST_DONE,sdkVersion:t.remote.state.sdkVersion,commLayerVersion:h3.version},t.remote.state.originatorInfo),{walletVersion:(L=t.remote.state.walletInfo)===null||L===void 0?void 0:L.version,params:{method:F.method,from:\"mobile\"}}),t.remote.state.communicationServerUrl).catch(z=>{});let O=Object.assign(Object.assign({},F),{result:$.result,error:$.error?{code:(D=$.error)===null||D===void 0?void 0:D.code,message:(G=$.error)===null||G===void 0?void 0:G.message}:void 0,elapsedTime:_});t.state.rpcMethodTracker[$.id]=O,t.emit(vt.RPC_UPDATE,O)}}t.emit(vt.MESSAGE,{message:V})}}},{event:vt.REJECTED,handler:function(t,e){return n=>ct(this,void 0,void 0,function*(){var r;t.state.isOriginator&&!t.remote.state.ready?(He.SocketService(`[SocketService: handleChannelRejected()] context=${t.state.context} channelId=${e} isOriginator=${t.state.isOriginator} ready=${t.remote.state.ready}`,t.remote.state.originatorInfo),Yv(Object.assign(Object.assign({id:e,event:pa.REJECTED},t.remote.state.originatorInfo),{sdkVersion:t.remote.state.sdkVersion,commLayer:t.state.communicationLayerPreference,commLayerVersion:h3.version,walletVersion:(r=t.remote.state.walletInfo)===null||r===void 0?void 0:r.version}),t.remote.state.communicationServerUrl).catch(o=>{}),yield t.remote.disconnect({terminate:!0}),t.remote.emit(vt.REJECTED,{channelId:e}),t.remote.setConnectionStatus(Wc.DISCONNECTED)):He.SocketService(`[SocketService: handleChannelRejected()] SKIP -- channelId=${e} isOriginator=${t.state.isOriginator} ready=${t.remote.state.ready}`)})}},{event:\"clients_waiting_to_join\",handler:function(t,e){return n=>{He.SocketService(`[SocketService: handleClientsWaitingToJoin()] context=${t.state.context} on \\'clients_waiting_to_join-${e}\\'`,n),t.emit(vt.CLIENTS_WAITING,n)}}}],Kot=[{event:vt.KEY_INFO,handler:function(t){return e=>{He.SocketService(\"[SocketService: handleKeyInfo()] on \\'KEY_INFO\\'\",e),t.emit(vt.KEY_INFO,e)}}},{event:vt.KEYS_EXCHANGED,handler:function(t){return()=>{var e,n,r;He.SocketService(`[SocketService: handleKeysExchanged()] on \\'keys_exchanged\\' keyschanged=${(e=t.state.keyExchange)===null||e===void 0?void 0:e.areKeysExchanged()}`);let{channelConfig:o}=t.remote.state;if(o){let a=t.getKeyExchange().getKeyInfo().ecies;o.localKey=a.private,o.otherKey=a.otherPubKey,t.remote.state.channelConfig=o,(n=t.remote.state.storageManager)===null||n===void 0||n.persistChannelConfig(o).catch(c=>{})}t.emit(vt.KEYS_EXCHANGED,{keysExchanged:(r=t.state.keyExchange)===null||r===void 0?void 0:r.areKeysExchanged(),isOriginator:t.state.isOriginator});let i={keyInfo:t.getKeyInfo()};t.emit(vt.SERVICE_STATUS,i)}}}];ere=class extends SA.EventEmitter2{constructor(e){super(),this.state={clientsConnected:!1,clientsPaused:!1,manualDisconnect:!1,lastRpcId:void 0,rpcMethodTracker:{},hasPlaintext:!1,communicationServerUrl:\"\",focusListenerAdded:!1,removeFocusListener:void 0,isReconnecting:!1,reconnectionAttempts:0},this.options=e;let{reconnect:n,communicationLayerPreference:r,communicationServerUrl:o,context:i,remote:a,logging:c}=e;this.state.resumed=n,this.state.context=i,this.state.isOriginator=a.state.isOriginator,this.state.communicationLayerPreference=r,this.state.debug=c?.serviceLayer===!0,this.remote=a,c?.serviceLayer===!0&&Cu.default.enable(\"SocketService:Layer\"),this.state.communicationServerUrl=o,this.state.hasPlaintext=this.state.communicationServerUrl!==RS&&c?.plaintext===!0,He.SocketService(`[SocketService: constructor()] Socket IO url: ${this.state.communicationServerUrl}`),this.initSocket()}initSocket(){var e;let{otherPublicKey:n,ecies:r,logging:o}=this.options,i={autoConnect:!1,transports:qot,withCredentials:!0},a=this.state.communicationServerUrl;He.SocketService(`[SocketService: initSocket()] Socket IO url: ${a}`),this.state.socket=lO(a,i),function(u){if(typeof window<\"u\"&&typeof document<\"u\"&&(He.SocketService(`[SocketService: setupSocketFocusListener()] hasFocus=${document.hasFocus()}`,u),!u.state.focusListenerAdded)){let d=()=>{He.SocketService(\"Document has focus --- reconnecting socket\"),Xne(u).catch(h=>{})};window.addEventListener(\"focus\",d),u.state.focusListenerAdded=!0,u.state.removeFocusListener=()=>{window.removeEventListener(\"focus\",d),u.state.focusListenerAdded=!1}}}(this);let c={communicationLayer:this,otherPublicKey:n,sendPublicKey:!1,context:(e=this.state.context)!==null&&e!==void 0?e:\"\",ecies:r,logging:o};this.state.keyExchange=new Jne(c)}resetKeys(){return He.SocketService(\"[SocketService: resetKeys()] Resetting keys.\"),void((e=this.state.keyExchange)===null||e===void 0||e.resetKeys());var e}createChannel(){return ct(this,void 0,void 0,function*(){return function(e){return ct(this,void 0,void 0,function*(){var n,r,o;if(He.SocketService(`[SocketService: createChannel()] context=${e.state.context}`),e.state.socket||e.initSocket(),(n=e.state.socket)===null||n===void 0?void 0:n.connected)throw new Error(\"socket already connected\");(r=e.state.socket)===null||r===void 0||r.connect(),e.state.manualDisconnect=!1,e.state.isOriginator=!0;let i=Z8();e.state.channelId=i,rCe(e,i),yield new Promise((c,u)=>{var d;(d=e.state.socket)===null||d===void 0||d.emit(vt.JOIN_CHANNEL,{channelId:i,context:`${e.state.context}createChannel`,clientType:\"dapp\"},(h,m)=>ct(this,void 0,void 0,function*(){try{yield pH(e,h,m),c()}catch(g){u(g)}}))});let a=(o=e.state.keyExchange)===null||o===void 0?void 0:o.getKeyInfo();return{channelId:i,pubKey:a?.ecies.public||\"\",privKey:a?.ecies.private||\"\"}})}(this)})}connectToChannel({channelId:e,withKeyExchange:n=!1,authorized:r}){return function(o){return ct(this,arguments,void 0,function*({options:i,instance:a}){let{channelId:c,authorized:u,withKeyExchange:d}=i,{state:h,remote:m}=a,{isOriginator:g=!1,socket:b,keyExchange:E}=h,{channelConfig:C}=m.state;if(b?.connected)throw new Error(\"socket already connected\");if(g&&C?.relayPersistence){let{localKey:T,otherKey:R}=C;T&&R&&E?.setRelayPersistence({localKey:T,otherKey:R})}return Object.assign(h,{manualDisconnect:!1,withKeyExchange:d,isOriginator:g,channelId:c}),b?.connect(),rCe(a,c),!g&&u&&(E?.setKeysExchanged(!0),Object.assign(m.state,{ready:!0,authorized:!0})),new Promise(T=>{var R;let L=(R=E?.getKeyInfo())===null||R===void 0?void 0:R.ecies.public;b?.emit(vt.JOIN_CHANNEL,{channelId:c,context:`${h.context}_connectToChannel`,clientType:g?\"dapp\":\"wallet\",publicKey:u&&!g?L:void 0},(D,G)=>ct(this,void 0,void 0,function*(){yield pH(a,D,G),T()}))})})}({options:{channelId:e,withKeyExchange:n,authorized:r},instance:this})}getKeyInfo(){return this.state.keyExchange.getKeyInfo()}keyCheck(){var e,n;(n=(e=this).state.socket)===null||n===void 0||n.emit(vt.MESSAGE,{id:e.state.channelId,context:e.state.context,message:{type:Vo.KEY_HANDSHAKE_CHECK,pubkey:e.getKeyInfo().ecies.otherPubKey}})}getKeyExchange(){return this.state.keyExchange}sendMessage(e){return ct(this,void 0,void 0,function*(){return function(n,r){return ct(this,void 0,void 0,function*(){var o,i,a;if(!n.state.channelId)throw He.SocketService(\"handleSendMessage: no channelId - Create a channel first\"),new Error(\"Create a channel first\");if(He.SocketService(`[SocketService: handleSendMessage()] context=${n.state.context} areKeysExchanged=${(o=n.state.keyExchange)===null||o===void 0?void 0:o.areKeysExchanged()}`,r),(i=r?.type)===null||i===void 0?void 0:i.startsWith(\"key_handshake\"))return function(u,d){var h;He.SocketService(`[SocketService: handleKeyHandshake()] context=${u.state.context}`,d),(h=u.state.socket)===null||h===void 0||h.emit(vt.MESSAGE,{id:u.state.channelId,context:u.state.context,clientType:u.state.isOriginator?\"dapp\":\"wallet\",message:d})}(n,r),!0;(function(u,d){var h;if(!(!((h=u.state.keyExchange)===null||h===void 0)&&h.areKeysExchanged())&&!u.remote.state.relayPersistence)throw He.SocketService(`[SocketService: validateKeyExchange()] context=${u.state.context} ERROR keys not exchanged`,d),new Error(\"Keys not exchanged BBB\")})(n,r),function(u,d){var h;let m=(h=d?.method)!==null&&h!==void 0?h:\"\",g=d?.id;u.state.isOriginator&&g&&(u.state.rpcMethodTracker[g]={id:g,timestamp:Date.now(),method:m},u.emit(vt.RPC_UPDATE,u.state.rpcMethodTracker[g]))}(n,r);let c=yield KAe(n,r);return n.remote.state.analytics&&n.remote.state.isOriginator&&r.method&&GAe.includes(r.method.toLowerCase())&&Yv({id:(a=n.remote.state.channelId)!==null&&a!==void 0?a:\"\",event:pa.SDK_RPC_REQUEST,params:{method:r.method,from:\"mobile\"}},n.remote.state.communicationServerUrl).catch(u=>{}),function(u,d){return ct(this,void 0,void 0,function*(){var h;let m=d?.id,g=(h=d?.method)!==null&&h!==void 0?h:\"\";if(u.state.isOriginator&&m)try{let b=nCe(m,u.state.rpcMethodTracker,200).then(T=>({type:hA.RPC_CHECK,result:T})),E=ct(this,void 0,void 0,function*(){let T=yield(L=>ct(void 0,[L],void 0,function*({rpcId:D,instance:G}){for(;G.state.lastRpcId===D||G.state.lastRpcId===void 0;)yield yA(200);return G.state.lastRpcId}))({instance:u,rpcId:m}),R=yield nCe(T,u.state.rpcMethodTracker,200);return{type:hA.SKIPPED_RPC,result:R}}),C=yield Promise.race([b,E]);if(C.type===hA.RPC_CHECK){let T=C.result;He.SocketService(`[SocketService:handleRpcReplies()] id=${d.id} ${g} ( ${T.elapsedTime} ms)`,T.result)}else{if(C.type!==hA.SKIPPED_RPC)throw new Error(`Error handling RPC replies for ${m}`);{let T=Object.assign(Object.assign({},u.state.rpcMethodTracker[m]),{error:new Error(\"SDK_CONNECTION_ISSUE\")});u.emit(vt.RPC_UPDATE,T);let R={data:Object.assign(Object.assign({},T),{jsonrpc:\"2.0\"}),name:\"metamask-provider\"};u.emit(vt.MESSAGE,{message:R})}}}catch(b){throw b}})}(n,r).catch(u=>{}),c})}(this,e)})}ping(){return function(e){return ct(this,void 0,void 0,function*(){var n,r;He.SocketService(`[SocketService: ping()] context=${e.state.context} originator=${e.state.isOriginator} keysExchanged=${(n=e.state.keyExchange)===null||n===void 0?void 0:n.areKeysExchanged()}`),(r=e.state.socket)===null||r===void 0||r.emit(hs.PING,{id:e.state.channelId,context:\"ping\",clientType:e.remote.state.isOriginator?\"dapp\":\"wallet\",message:\"\"})})}(this)}pause(){return function(e){return ct(this,void 0,void 0,function*(){var n,r;He.SocketService(`[SocketService: pause()] context=${e.state.context}`),e.state.manualDisconnect=!0,!((n=e.state.keyExchange)===null||n===void 0)&&n.areKeysExchanged()&&(yield e.sendMessage({type:hs.PAUSE})),(r=e.state.socket)===null||r===void 0||r.disconnect()})}(this)}isConnected(){var e;return(e=this.state.socket)===null||e===void 0?void 0:e.connected}resume(){return function(e){return ct(this,void 0,void 0,function*(){let{state:n,remote:r}=e,{socket:o,channelId:i,context:a,keyExchange:c,isOriginator:u}=n,{isOriginator:d}=r.state;if(He.SocketService(`[SocketService: resume()] channelId=${i} context=${a} connected=${o?.connected} manualDisconnect=${n.manualDisconnect} resumed=${n.resumed} keysExchanged=${c?.areKeysExchanged()}`),!i)throw He.SocketService(\"[SocketService: resume()] channelId is not defined\"),new Error(\"ChannelId is not defined\");o?.connected?(He.SocketService(\"[SocketService: resume()] already connected.\"),o.emit(hs.PING,{id:i,clientType:d?\"dapp\":\"wallet\",context:\"on_channel_config\",message:\"\"}),r.hasRelayPersistence()||c?.areKeysExchanged()||(u?yield e.sendMessage({type:hs.READY}):c?.start({isOriginator:!1}))):(o?.connect(),He.SocketService(`[SocketService: resume()] after connecting socket --> connected=${o?.connected}`),o?.emit(vt.JOIN_CHANNEL,{channelId:i,context:`${a}_resume`,clientType:d?\"dapp\":\"wallet\"},(h,m)=>ct(this,void 0,void 0,function*(){try{yield pH(e,h,m)}catch{}}))),n.manualDisconnect=!1,n.resumed=!0})}(this)}getRPCMethodTracker(){return this.state.rpcMethodTracker}disconnect(e){return function(n,r){var o,i,a,c,u;He.SocketService(`[SocketService: disconnect()] context=${n.state.context}`,r),r?.terminate&&((i=(o=n.state).removeFocusListener)===null||i===void 0||i.call(o),n.state.channelId=r.channelId,(a=n.state.socket)===null||a===void 0||a.removeAllListeners(),(c=n.state.keyExchange)===null||c===void 0||c.clean(),n.remote.state.ready=!1,n.state.socket=void 0,n.state.rpcMethodTracker={}),n.state.manualDisconnect=!0,(u=n.state.socket)===null||u===void 0||u.disconnect()}(this,e)}};(p3||(p3={})).SOCKET=\"socket\",function(t){t.NonBrowser=\"nodejs\",t.MetaMaskMobileWebview=\"in-app-browser\",t.DesktopWeb=\"web-desktop\",t.MobileWeb=\"web-mobile\",t.ReactNative=\"react-native\"}(Al||(Al={}));tre=class extends SA.EventEmitter2{constructor(e){super(),this.state={ready:!1,authorized:!1,isOriginator:!1,terminated:!1,protocolVersion:1,paused:!1,deeplinkProtocolAvailable:!1,platformType:\"metamask-mobile\",analytics:!1,reconnection:!1,originatorInfoSent:!1,communicationServerUrl:RS,context:\"\",persist:!1,clientsConnected:!1,sessionDuration:wA,originatorConnectStarted:!1,debug:!1,_connectionStatus:Wc.DISCONNECTED},this._options=e;let{platformType:n,communicationLayerPreference:r,otherPublicKey:o,reconnect:i,walletInfo:a,dappMetadata:c,protocolVersion:u,transports:d,context:h,relayPersistence:m,ecies:g,analytics:b=!1,storage:E,sdkVersion:C,communicationServerUrl:T=RS,logging:R,autoConnect:L={timeout:Wot}}=e;this.state.otherPublicKey=o,this.state.dappMetadata=c,this.state.walletInfo=a,this.state.transports=d,this.state.platformType=n,this.state.analytics=b,this.state.protocolVersion=u??1,this.state.isOriginator=!o,this.state.relayPersistence=m,this.state.communicationServerUrl=T,this.state.context=h,this.state.terminated=!1,this.state.sdkVersion=C,this.setMaxListeners(50),this.setConnectionStatus(Wc.DISCONNECTED),E?.duration&&(this.state.sessionDuration=wA),this.state.storageOptions=E,this.state.autoConnectOptions=L,this.state.debug=R?.remoteLayer===!0,R?.remoteLayer===!0&&Cu.default.enable(\"RemoteCommunication:Layer\"),R?.serviceLayer===!0&&Cu.default.enable(\"SocketService:Layer\"),R?.eciesLayer===!0&&Cu.default.enable(\"ECIES:Layer\"),R?.keyExchangeLayer===!0&&Cu.default.enable(\"KeyExchange:Layer\"),this.state.logging=R,E?.storageManager&&(this.state.storageManager=E.storageManager),He.RemoteCommunication(`[RemoteCommunication: constructor()] protocolVersion=${u} relayPersistence=${m} isOriginator=${this.state.isOriginator} communicationLayerPreference=${r} otherPublicKey=${o} reconnect=${i}`),this.state.isOriginator||iCe({communicationLayerPreference:r,otherPublicKey:o,reconnect:i,ecies:g,communicationServerUrl:T,instance:this}),this.emitServiceStatusEvent({context:\"constructor\"})}initFromDappStorage(){return ct(this,void 0,void 0,function*(){var e;if(this.state.storageManager){let n=yield this.state.storageManager.getPersistedChannelConfig({});n&&(this.state.channelConfig=n,this.state.channelId=n.channelId,this.state.deeplinkProtocolAvailable=(e=n.deeplinkProtocolAvailable)!==null&&e!==void 0&&e,n.relayPersistence&&(this.state.authorized=!0,this.state.ready=!0,this.setConnectionStatus(Wc.LINKED),yield this.connectToChannel({channelId:n.channelId})))}iCe({communicationLayerPreference:p3.SOCKET,otherPublicKey:this.state.otherPublicKey,reconnect:this._options.reconnect,ecies:this._options.ecies,communicationServerUrl:this.state.communicationServerUrl,instance:this})})}originatorSessionConnect(){return ct(this,void 0,void 0,function*(){return yield function(e){return ct(this,void 0,void 0,function*(){var n;let{state:r}=e;if(!r.storageManager)return void He.RemoteCommunication(\"[RemoteCommunication: originatorSessionConnect()] no storage manager defined - skip\");let o=yield r.storageManager.getPersistedChannelConfig({});if(He.RemoteCommunication(`[RemoteCommunication: originatorSessionConnect()] autoStarted=${r.originatorConnectStarted} channelConfig`,o),(n=r.communicationLayer)===null||n===void 0?void 0:n.isConnected())return He.RemoteCommunication(\"[RemoteCommunication: originatorSessionConnect()] socket already connected - skip\"),o;if(o){if(o.validUntil>Date.now())return r.channelConfig=o,r.originatorConnectStarted=!0,r.channelId=o?.channelId,r.reconnection=!0,o;He.RemoteCommunication(\"[RemoteCommunication: autoConnect()] Session has expired\")}r.originatorConnectStarted=!1})}(this)})}generateChannelIdConnect(){return ct(this,void 0,void 0,function*(){return function(e){return ct(this,void 0,void 0,function*(){var n,r,o,i,a,c;if(!e.communicationLayer)throw new Error(\"communication layer not initialized\");if(e.ready)throw new Error(\"Channel already connected\");if(e.channelId&&(!((n=e.communicationLayer)===null||n===void 0)&&n.isConnected()))return e.channelConfig=Object.assign(Object.assign({},e.channelConfig),{channelId:e.channelId,validUntil:Date.now()+e.sessionDuration}),(r=e.storageManager)===null||r===void 0||r.persistChannelConfig(e.channelConfig),{channelId:e.channelId,privKey:(i=(o=e.communicationLayer)===null||o===void 0?void 0:o.getKeyInfo())===null||i===void 0?void 0:i.ecies.private,pubKey:(c=(a=e.communicationLayer)===null||a===void 0?void 0:a.getKeyInfo())===null||c===void 0?void 0:c.ecies.public};He.RemoteCommunication(\"[RemoteCommunication: generateChannelId()]\");let u=yield e.communicationLayer.createChannel();He.RemoteCommunication(\"[RemoteCommunication: generateChannelId()] channel created\",u);let d=Object.assign(Object.assign({},e.channelConfig),{channelId:u.channelId,localKey:u.privKey,validUntil:Date.now()+e.sessionDuration});return e.channelId=u.channelId,e.channelConfig=d,{channelId:e.channelId,pubKey:u.pubKey,privKey:u.privKey}})}(this.state)})}clean(){return $Ae(this.state)}connectToChannel({channelId:e,withKeyExchange:n,authorized:r}){return function(o){return ct(this,arguments,void 0,function*({channelId:i,withKeyExchange:a,authorized:c,state:u}){var d,h,m;if(!cg(i))throw He.RemoteCommunication(`[RemoteCommunication: connectToChannel()] context=${u.context} invalid channel channelId=${i}`),new Error(`Invalid channel ${i}`);if(He.RemoteCommunication(`[RemoteCommunication: connectToChannel()] context=${u.context} channelId=${i} withKeyExchange=${a}`),(d=u.communicationLayer)===null||d===void 0?void 0:d.isConnected())return void He.RemoteCommunication(`[RemoteCommunication: connectToChannel()] context=${u.context} already connected - interrupt connection.`);u.channelId=i,yield(h=u.communicationLayer)===null||h===void 0?void 0:h.connectToChannel({channelId:i,authorized:c,withKeyExchange:a});let g=Object.assign(Object.assign({},u.channelConfig),{channelId:i,validUntil:Date.now()+u.sessionDuration});u.channelConfig=g,(m=u.storageManager)===null||m===void 0||m.persistChannelConfig(g)})}({channelId:e,authorized:r,withKeyExchange:n,state:this.state})}sendMessage(e){return function(n,r){return ct(this,void 0,void 0,function*(){var o,i;let{state:a}=n;He.RemoteCommunication(`[RemoteCommunication: sendMessage()] context=${a.context} paused=${a.paused} ready=${a.ready} relayPersistence=${a.relayPersistence} authorized=${a.authorized} socket=${(o=a.communicationLayer)===null||o===void 0?void 0:o.isConnected()} clientsConnected=${a.clientsConnected} status=${a._connectionStatus}`,r),a.relayPersistence||a.ready&&(!((i=a.communicationLayer)===null||i===void 0)&&i.isConnected())&&a.clientsConnected||(He.RemoteCommunication(`[RemoteCommunication: sendMessage()] context=${a.context}  SKIP message waiting for MM mobile readiness.`),yield new Promise(c=>{n.once(vt.CLIENTS_READY,c)}),He.RemoteCommunication(`[RemoteCommunication: sendMessage()] context=${a.context}  AFTER SKIP / READY -- sending pending message`));try{return yield function(u,d){return ct(this,void 0,void 0,function*(){return new Promise(h=>{var m;let{state:g}=u;He.RemoteCommunication(`[RemoteCommunication: handleAuthorization()] context=${g.context} ready=${g.ready} authorized=${g.authorized} method=${d.method}`),!g.isOriginator||g.authorized||g.relayPersistence?(m=g.communicationLayer)===null||m===void 0||m.sendMessage(d).then(b=>{h(b)}).catch(b=>{h(!1)}):u.once(vt.AUTHORIZED,()=>{var b;He.RemoteCommunication(`[RemoteCommunication: handleAuthorization()] context=${g.context}  AFTER SKIP / AUTHORIZED -- sending pending message`),(b=g.communicationLayer)===null||b===void 0||b.sendMessage(d).then(E=>{h(E)}).catch(E=>{h(!1)})})})})}(n,r)}catch(c){throw c}})}(this,e)}testStorage(){return ct(this,void 0,void 0,function*(){return function(e){return ct(this,void 0,void 0,function*(){var n;let r=yield(n=e.storageManager)===null||n===void 0?void 0:n.getPersistedChannelConfig();He.RemoteCommunication(\"[RemoteCommunication: testStorage()] res\",r)})}(this.state)})}hasDeeplinkProtocol(){return this.state.deeplinkProtocolAvailable}getChannelConfig(){return this.state.channelConfig}isReady(){return this.state.ready}isConnected(){var e;return(e=this.state.communicationLayer)===null||e===void 0?void 0:e.isConnected()}isAuthorized(){return this.state.authorized}isPaused(){return this.state.paused}getCommunicationLayer(){return this.state.communicationLayer}ping(){return ct(this,void 0,void 0,function*(){var e;He.RemoteCommunication(`[RemoteCommunication: ping()] channel=${this.state.channelId}`),yield(e=this.state.communicationLayer)===null||e===void 0?void 0:e.ping()})}testLogger(){He.RemoteCommunication(`testLogger() channel=${this.state.channelId}`),He.SocketService(`testLogger() channel=${this.state.channelId}`),He.Ecies(`testLogger() channel=${this.state.channelId}`),He.KeyExchange(`testLogger() channel=${this.state.channelId}`)}keyCheck(){var e;He.RemoteCommunication(`[RemoteCommunication: keyCheck()] channel=${this.state.channelId}`),(e=this.state.communicationLayer)===null||e===void 0||e.keyCheck()}setConnectionStatus(e){this.state._connectionStatus!==e&&(this.state._connectionStatus=e,this.emit(vt.CONNECTION_STATUS,e),this.emitServiceStatusEvent({context:\"setConnectionStatus\"}))}emitServiceStatusEvent(e={}){this.emit(vt.SERVICE_STATUS,this.getServiceStatus())}getConnectionStatus(){return this.state._connectionStatus}getServiceStatus(){return{originatorInfo:this.state.originatorInfo,keyInfo:this.getKeyInfo(),connectionStatus:this.state._connectionStatus,channelConfig:this.state.channelConfig,channelId:this.state.channelId}}getKeyInfo(){var e;return(e=this.state.communicationLayer)===null||e===void 0?void 0:e.getKeyInfo()}resetKeys(){var e;(e=this.state.communicationLayer)===null||e===void 0||e.resetKeys()}setOtherPublicKey(e){var n;let r=(n=this.state.communicationLayer)===null||n===void 0?void 0:n.getKeyExchange();if(!r)throw new Error(\"KeyExchange is not initialized.\");r.getOtherPublicKey()!==e&&r.setOtherPublicKey(e)}pause(){return ct(this,void 0,void 0,function*(){var e;He.RemoteCommunication(`[RemoteCommunication: pause()] channel=${this.state.channelId}`),yield(e=this.state.communicationLayer)===null||e===void 0?void 0:e.pause(),this.setConnectionStatus(Wc.PAUSED)})}getVersion(){return h3.version}hasRelayPersistence(){var e;return(e=this.state.relayPersistence)!==null&&e!==void 0&&e}resume(){return ct(this,void 0,void 0,function*(){return function(e){return ct(this,void 0,void 0,function*(){var n;let{state:r}=e;He.RemoteCommunication(`[RemoteCommunication: resume()] channel=${r.channelId}`),yield(n=r.communicationLayer)===null||n===void 0?void 0:n.resume(),e.setConnectionStatus(Wc.LINKED)})}(this)})}encrypt(e){var n,r,o;let i=(n=this.state.communicationLayer)===null||n===void 0?void 0:n.getKeyExchange(),a=i?.getOtherPublicKey();if(!a)throw new Error(\"KeyExchange not completed\");return(o=(r=this.state.communicationLayer)===null||r===void 0?void 0:r.state.eciesInstance)===null||o===void 0?void 0:o.encrypt(e,a)}decrypt(e){var n,r,o;if(!(!((n=this.state.communicationLayer)===null||n===void 0)&&n.state.eciesInstance))throw new Error(\"ECIES instance is not initialized\");return(o=(r=this.state.communicationLayer)===null||r===void 0?void 0:r.state.eciesInstance)===null||o===void 0?void 0:o.decrypt(e)}getChannelId(){return this.state.channelId}getRPCMethodTracker(){var e;return(e=this.state.communicationLayer)===null||e===void 0?void 0:e.getRPCMethodTracker()}reject({channelId:e}){return function(n){return ct(this,arguments,void 0,function*({channelId:r,state:o}){var i,a,c;if(!cg(r))throw He.RemoteCommunication(`[RemoteCommunication: connectToChannel()] context=${o.context} invalid channel channelId=${r}`),new Error(`Invalid channel ${r}`);if(o.isOriginator)return void He.RemoteCommunication(`[RemoteCommunication: reject()] context=${o.context} isOriginator=${o.isOriginator} channelId=${r}`);let{socket:u}=(a=(i=o.communicationLayer)===null||i===void 0?void 0:i.state)!==null&&a!==void 0?a:{};u?.connected||(He.RemoteCommunication(`[RemoteCommunication: reject()] context=${o.context} socket already connected`),u?.connect()),Yv(Object.assign(Object.assign({id:r,event:pa.REJECTED},o.originatorInfo),{sdkVersion:o.sdkVersion,commLayerVersion:h3.version,walletVersion:(c=o.walletInfo)===null||c===void 0?void 0:c.version}),o.communicationServerUrl).catch(d=>{}),yield new Promise((d,h)=>{u?.emit(vt.REJECTED,{channelId:r},(m,g)=>{He.RemoteCommunication(`[RemoteCommunication: reject()] context=${o.context} socket=${u?.id}`,{error:m,response:g}),m?h(m):d(g)})})})}({channelId:e,state:this.state})}disconnect(e){return ct(this,void 0,void 0,function*(){return ZAe({options:e,instance:this})})}};(function(t){t.RENEW=\"renew\",t.LINK=\"link\"})(oCe||(oCe={}));oit=\"ERC721\",iit=\"ERC1155\",Vs={errors:{disconnected:()=>\"MetaMask: Disconnected from chain. Attempting to connect.\",permanentlyDisconnected:()=>\"MetaMask: Disconnected from MetaMask background. Page reload required.\",sendSiteMetadata:()=>\"MetaMask: Failed to send site metadata. This is an internal error, please report this bug.\",unsupportedSync:t=>`MetaMask: The MetaMask Ethereum provider does not support synchronous methods like ${t} without a callback parameter.`,invalidDuplexStream:()=>\"Must provide a Node.js-style duplex stream.\",invalidNetworkParams:()=>\"MetaMask: Received invalid network parameters. Please report this bug.\",invalidRequestArgs:()=>\"Expected a single, non-array, object argument.\",invalidRequestMethod:()=>\"\\'args.method\\' must be a non-empty string.\",invalidRequestParams:()=>\"\\'args.params\\' must be an object or array if provided.\",invalidLoggerObject:()=>\"\\'args.logger\\' must be an object if provided.\",invalidLoggerMethod:t=>`\\'args.logger\\' must include required method \\'${t}\\'.`},info:{connected:t=>`MetaMask: Connected to chain with ID \"${t}\".`},warnings:{chainIdDeprecation:`MetaMask: \\'ethereum.chainId\\' is deprecated and may be removed in the future. Please use the \\'eth_chainId\\' RPC method instead.\\nFor more information, see: https://github.com/MetaMask/metamask-improvement-proposals/discussions/23`,networkVersionDeprecation:`MetaMask: \\'ethereum.networkVersion\\' is deprecated and may be removed in the future. Please use the \\'net_version\\' RPC method instead.\\nFor more information, see: https://github.com/MetaMask/metamask-improvement-proposals/discussions/23`,selectedAddressDeprecation:`MetaMask: \\'ethereum.selectedAddress\\' is deprecated and may be removed in the future. Please use the \\'eth_accounts\\' RPC method instead.\\nFor more information, see: https://github.com/MetaMask/metamask-improvement-proposals/discussions/23`,enableDeprecation:`MetaMask: \\'ethereum.enable()\\' is deprecated and may be removed in the future. Please use the \\'eth_requestAccounts\\' RPC method instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1102`,sendDeprecation:`MetaMask: \\'ethereum.send(...)\\' is deprecated and may be removed in the future. Please use \\'ethereum.sendAsync(...)\\' or \\'ethereum.request(...)\\' instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1193`,events:{close:`MetaMask: The event \\'close\\' is deprecated and may be removed in the future. Please use \\'disconnect\\' instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1193#disconnect`,data:`MetaMask: The event \\'data\\' is deprecated and will be removed in the future. Use \\'message\\' instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1193#message`,networkChanged:`MetaMask: The event \\'networkChanged\\' is deprecated and may be removed in the future. Use \\'chainChanged\\' instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1193#chainchanged`,notification:`MetaMask: The event \\'notification\\' is deprecated and may be removed in the future. Use \\'message\\' instead.\\nFor more information, see: https://eips.ethereum.org/EIPS/eip-1193#message`},rpc:{ethDecryptDeprecation:`MetaMask: The RPC method \\'eth_decrypt\\' is deprecated and may be removed in the future.\\nFor more information, see: https://medium.com/metamask/metamask-api-method-deprecation-2b0564a84686`,ethGetEncryptionPublicKeyDeprecation:`MetaMask: The RPC method \\'eth_getEncryptionPublicKey\\' is deprecated and may be removed in the future.\\nFor more information, see: https://medium.com/metamask/metamask-api-method-deprecation-2b0564a84686`,walletWatchAssetNFTExperimental:`MetaMask: The RPC method \\'wallet_watchAsset\\' is experimental for ERC721/ERC1155 assets and may change in the future.\\nFor more information, see: https://github.com/MetaMask/metamask-improvement-proposals/blob/main/MIPs/mip-1.md and https://github.com/MetaMask/metamask-improvement-proposals/blob/main/PROCESS-GUIDE.md#proposal-lifecycle`},experimentalMethods:\"MetaMask: \\'ethereum._metamask\\' exposes non-standard, experimental methods. They may be removed or changed without warning.\"}};YAe=4294967295,sCe=Math.floor(Math.random()*YAe);zre=(t,e,n)=>{if(!e.has(t))throw TypeError(\"Cannot \"+n)},c3=(t,e,n)=>(zre(t,e,\"read from private field\"),n?n.call(t):e.get(t)),fg=(t,e,n)=>{if(e.has(t))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(t):e.set(t,n)},iH=(t,e,n,r)=>(zre(t,e,\"write to private field\"),e.set(t,n),n),Cd=(t,e,n)=>(zre(t,e,\"access private method\"),n),o3={invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},aCe={\"-32700\":{standard:\"JSON RPC 2.0\",message:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"},\"-32600\":{standard:\"JSON RPC 2.0\",message:\"The JSON sent is not a valid Request object.\"},\"-32601\":{standard:\"JSON RPC 2.0\",message:\"The method does not exist / is not available.\"},\"-32602\":{standard:\"JSON RPC 2.0\",message:\"Invalid method parameter(s).\"},\"-32603\":{standard:\"JSON RPC 2.0\",message:\"Internal JSON-RPC error.\"},\"-32000\":{standard:\"EIP-1474\",message:\"Invalid input.\"},\"-32001\":{standard:\"EIP-1474\",message:\"Resource not found.\"},\"-32002\":{standard:\"EIP-1474\",message:\"Resource unavailable.\"},\"-32003\":{standard:\"EIP-1474\",message:\"Transaction rejected.\"},\"-32004\":{standard:\"EIP-1474\",message:\"Method not supported.\"},\"-32005\":{standard:\"EIP-1474\",message:\"Request limit exceeded.\"},4001:{standard:\"EIP-1193\",message:\"User rejected the request.\"},4100:{standard:\"EIP-1193\",message:\"The requested account and/or method has not been authorized by the user.\"},4200:{standard:\"EIP-1193\",message:\"The requested method is not supported by this Ethereum provider.\"},4900:{standard:\"EIP-1193\",message:\"The provider is disconnected from all chains.\"},4901:{standard:\"EIP-1193\",message:\"The provider is disconnected from the specified chain.\"}};qH=(t,e)=>Object.hasOwnProperty.call(t,e),nre=class extends TypeError{constructor(e,n){let r,{message:o,explanation:i,...a}=e,{path:c}=e,u=c.length===0?o:`At path: ${c.join(\".\")} -- ${o}`;super(i??u),i!=null&&(this.cause=u),Object.assign(this,a),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...n()])}};Nh=class{constructor(e){let{type:n,schema:r,validator:o,refiner:i,coercer:a=u=>u,entries:c=function*(){}}=e;this.type=n,this.schema=r,this.entries=c,this.coercer=a,this.validator=o?(u,d)=>lCe(o(u,d),d,this,u):()=>[],this.refiner=i?(u,d)=>lCe(i(u,d),d,this,u):()=>[]}assert(e,n){return QAe(e,this,n)}create(e,n){return JAe(e,this,n)}is(e){return kA(e,this)}mask(e,n){return function(r,o,i){let a=LO(r,o,{coerce:!0,mask:!0,message:i});if(a[0])throw a[0];return a[1]}(e,this,n)}validate(e,n={}){return LO(e,this,n)}};dit=class extends Error{constructor(t){super(t.message),this.code=\"ERR_ASSERTION\"}};Jx=oTe,Xx=iTe;typeof Id.setTimeout==\"function\"&&(Jx=setTimeout),typeof Id.clearTimeout==\"function\"&&(Xx=clearTimeout);Gv=[],bA=!1,mH=-1;cTe.prototype.run=function(){this.fun.apply(null,this.array)};hit=OS,pit=OS,mit=OS,git=OS,yit=OS,bit=OS,vit=OS,aA=Id.performance||{},wit=aA.now||aA.mozNow||aA.msNow||aA.oNow||aA.webkitNow||function(){return new Date().getTime()},xit=new Date,co={nextTick:function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];Gv.push(new cTe(t,e)),Gv.length!==1||bA||sTe(aTe)},title:\"browser\",browser:!0,env:{},argv:[],version:\"\",versions:{},on:hit,addListener:pit,once:mit,off:git,removeListener:yit,removeAllListeners:bit,emit:vit,binding:function(t){throw new Error(\"process.binding is not supported\")},cwd:function(){return\"/\"},chdir:function(t){throw new Error(\"process.chdir is not supported\")},umask:function(){return 0},hrtime:function(t){var e=.001*wit.call(aA),n=Math.floor(e),r=Math.floor(e%1*1e9);return t&&(n-=t[0],(r-=t[1])<0&&(n--,r+=1e9)),[n,r]},platform:\"browser\",release:{},config:{},uptime:function(){return(new Date-xit)/1e3}},BO=t=>nTe(t);VH=fq([eTe(null),m3(\"boolean\",t=>typeof t==\"boolean\"),m3(\"finite number\",t=>kA(t,tTe())&&Number.isFinite(t)),g3(),XAe(uCe(()=>VH)),rTe(g3(),uCe(()=>VH))]),DO=(sH=VH,hCe=m3(\"any\",()=>!0),pCe=t=>(function(e,n,r=\"Assertion failed\",o=dit){try{QAe(e,n)}catch(i){throw uit(o,`${r}: ${lit(i)}.`)}}(t,VH),JSON.parse(JSON.stringify(t,(e,n)=>{if(e!==\"__proto__\"&&e!==\"constructor\")return n}))),new Nh({...sH,coercer:(t,e)=>kA(t,hCe)?sH.coercer(pCe(t,e),e):sH.coercer(t,e)}));xO=eTe(\"2.0\"),gH=function(t){return new Nh({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}(fq([tTe(),g3()])),ore=BO({code:m3(\"integer\",t=>typeof t==\"number\"&&!isNaN(t)&&Number.isInteger(t)||`Expected an integer, but received: ${k1(t)}`),message:g3(),data:WH(DO),stack:WH(g3())}),lTe=fq([rTe(g3(),DO),XAe(DO)]),Eit=BO({id:gH,jsonrpc:xO,method:g3(),params:WH(lTe)}),Sit=BO({jsonrpc:xO,method:g3(),params:WH(lTe)});nTe({id:gH,jsonrpc:xO,result:dCe(m3(\"unknown\",()=>!0)),error:dCe(ore)}),fq([BO({id:gH,jsonrpc:xO,result:DO}),BO({id:gH,jsonrpc:xO,error:ore})]);yCe=o3.internal,kit=\"Unspecified error message. This is a bug, please report it.\",_it={code:yCe,message:uTe(yCe)},Cit=\"Unspecified server error.\";fTe=gO;gO.default=gO,gO.stable=wCe,gO.stableStringify=wCe;$H=\"[...]\",hTe=\"[Circular]\",IS=[],CS=[];Tit=uq(fTe),Hv=class extends Error{constructor(t,e,n){if(!Number.isInteger(t))throw new Error(\\'\"code\" must be an integer.\\');if(!e||typeof e!=\"string\")throw new Error(\\'\"message\" must be a non-empty string.\\');super(e),this.code=t,n!==void 0&&(this.data=n)}serialize(){let t={code:this.code,message:this.message};return this.data!==void 0&&(t.data=this.data,function(e){if(typeof e!=\"object\"||e===null)return!1;try{let n=e;for(;Object.getPrototypeOf(n)!==null;)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}catch{return!1}}(this.data)&&(t.data.cause=dTe(this.data.cause))),this.stack&&(t.stack=this.stack),t}toString(){return Tit(this.serialize(),Rit,2)}};EO=t=>Iit(o3.invalidRequest,t);gTe={};e3.prototype=Object.create(null),Wo.EventEmitter=Wo,Wo.usingDomains=!1,Wo.prototype.domain=void 0,Wo.prototype._events=void 0,Wo.prototype._maxListeners=void 0,Wo.defaultMaxListeners=10,Wo.init=function(){this.domain=null,Wo.usingDomains&&(void 0).active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new e3,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Wo.prototype.setMaxListeners=function(t){if(typeof t!=\"number\"||t<0||isNaN(t))throw new TypeError(\\'\"n\" argument must be a positive number\\');return this._maxListeners=t,this},Wo.prototype.getMaxListeners=function(){return yTe(this)},Wo.prototype.emit=function(t){var e,n,r,o,i,a,c,u=t===\"error\";if(a=this._events)u=u&&a.error==null;else if(!u)return!1;if(c=this.domain,u){if(e=arguments[1],!c){if(e instanceof Error)throw e;var d=new Error(\\'Uncaught, unspecified \"error\" event. (\\'+e+\")\");throw d.context=e,d}return e||(e=new Error(\\'Uncaught, unspecified \"error\" event\\')),e.domainEmitter=this,e.domain=c,e.domainThrown=!1,c.emit(\"error\",e),!1}if(!(n=a[t]))return!1;var h=typeof n==\"function\";switch(r=arguments.length){case 1:(function(m,g,b){if(g)m.call(b);else for(var E=m.length,C=hO(m,E),T=0;T<E;++T)C[T].call(b)})(n,h,this);break;case 2:(function(m,g,b,E){if(g)m.call(b,E);else for(var C=m.length,T=hO(m,C),R=0;R<C;++R)T[R].call(b,E)})(n,h,this,arguments[1]);break;case 3:(function(m,g,b,E,C){if(g)m.call(b,E,C);else for(var T=m.length,R=hO(m,T),L=0;L<T;++L)R[L].call(b,E,C)})(n,h,this,arguments[1],arguments[2]);break;case 4:(function(m,g,b,E,C,T){if(g)m.call(b,E,C,T);else for(var R=m.length,L=hO(m,R),D=0;D<R;++D)L[D].call(b,E,C,T)})(n,h,this,arguments[1],arguments[2],arguments[3]);break;default:for(o=new Array(r-1),i=1;i<r;i++)o[i-1]=arguments[i];(function(m,g,b,E){if(g)m.apply(b,E);else for(var C=m.length,T=hO(m,C),R=0;R<C;++R)T[R].apply(b,E)})(n,h,this,o)}return!0},Wo.prototype.addListener=function(t,e){return xCe(this,t,e,!1)},Wo.prototype.on=Wo.prototype.addListener,Wo.prototype.prependListener=function(t,e){return xCe(this,t,e,!0)},Wo.prototype.once=function(t,e){if(typeof e!=\"function\")throw new TypeError(\\'\"listener\" argument must be a function\\');return this.on(t,ECe(this,t,e)),this},Wo.prototype.prependOnceListener=function(t,e){if(typeof e!=\"function\")throw new TypeError(\\'\"listener\" argument must be a function\\');return this.prependListener(t,ECe(this,t,e)),this},Wo.prototype.removeListener=function(t,e){var n,r,o,i,a;if(typeof e!=\"function\")throw new TypeError(\\'\"listener\" argument must be a function\\');if(!(r=this._events))return this;if(!(n=r[t]))return this;if(n===e||n.listener&&n.listener===e)--this._eventsCount==0?this._events=new e3:(delete r[t],r.removeListener&&this.emit(\"removeListener\",t,n.listener||e));else if(typeof n!=\"function\"){for(o=-1,i=n.length;i-- >0;)if(n[i]===e||n[i].listener&&n[i].listener===e){a=n[i].listener,o=i;break}if(o<0)return this;if(n.length===1){if(n[0]=void 0,--this._eventsCount==0)return this._events=new e3,this;delete r[t]}else(function(c,u){for(var d=u,h=d+1,m=c.length;h<m;d+=1,h+=1)c[d]=c[h];c.pop()})(n,o);r.removeListener&&this.emit(\"removeListener\",t,a||e)}return this},Wo.prototype.off=function(t,e){return this.removeListener(t,e)},Wo.prototype.removeAllListeners=function(t){var e,n;if(!(n=this._events))return this;if(!n.removeListener)return arguments.length===0?(this._events=new e3,this._eventsCount=0):n[t]&&(--this._eventsCount==0?this._events=new e3:delete n[t]),this;if(arguments.length===0){for(var r,o=Object.keys(n),i=0;i<o.length;++i)(r=o[i])!==\"removeListener\"&&this.removeAllListeners(r);return this.removeAllListeners(\"removeListener\"),this._events=new e3,this._eventsCount=0,this}if(typeof(e=n[t])==\"function\")this.removeListener(t,e);else if(e)do this.removeListener(t,e[e.length-1]);while(e[0]);return this},Wo.prototype.listeners=function(t){var e,n,r=this._events;return n=r&&(e=r[t])?typeof e==\"function\"?[e.listener||e]:function(o){for(var i=new Array(o.length),a=0;a<i.length;++a)i[a]=o[a].listener||o[a];return i}(e):[],n},Wo.listenerCount=function(t,e){return typeof t.listenerCount==\"function\"?t.listenerCount(e):SCe.call(t,e)},Wo.prototype.listenerCount=SCe,Wo.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};qre=WO(Object.freeze({__proto__:null,EventEmitter:Wo,default:Wo}));Object.defineProperty(gTe,\"__esModule\",{value:!0});Oit=qre;Pit=class extends Oit.EventEmitter{emit(t,...e){let n=t===\"error\",r=this._events;if(r!==void 0)n=n&&r.error===void 0;else if(!n)return!1;if(n){let i;if(e.length>0&&([i]=e),i instanceof Error)throw i;let a=new Error(\"Unhandled error.\"+(i?` (${i.message})`:\"\"));throw a.context=i,a}let o=r[t];if(o===void 0)return!1;if(typeof o==\"function\")kCe(o,this,e);else{let i=o.length,a=function(c){let u=c.length,d=new Array(u);for(let h=0;h<u;h+=1)d[h]=c[h];return d}(o);for(let c=0;c<i;c+=1)kCe(a[c],this,e)}return!0}},bTe=gTe.default=Pit,dg=class xH extends bTe{constructor({notificationHandler:e}={}){super(),fg(this,yO),fg(this,bH),fg(this,vH),fg(this,KH,!1),fg(this,i3,void 0),fg(this,pA,void 0),iH(this,i3,[]),iH(this,pA,e)}destroy(){c3(this,i3).forEach(e=>{\"destroy\"in e&&typeof e.destroy==\"function\"&&e.destroy()}),iH(this,i3,[]),iH(this,KH,!0)}push(e){Cd(this,yO,yH).call(this),c3(this,i3).push(e)}handle(e,n){if(Cd(this,yO,yH).call(this),n&&typeof n!=\"function\")throw new Error(\\'\"callback\" must be a function if provided.\\');return Array.isArray(e)?n?Cd(this,bH,are).call(this,e,n):Cd(this,bH,are).call(this,e):n?Cd(this,vH,cre).call(this,e,n):this._promiseHandle(e)}asMiddleware(){return Cd(this,yO,yH).call(this),async(e,n,r,o)=>{var i,a;try{let[c,u,d]=await Cd(i=xH,wH,lre).call(i,e,n,c3(this,i3));return u?(await Cd(a=xH,SO,GH).call(a,d),o(c)):r(async h=>{var m;try{await Cd(m=xH,SO,GH).call(m,d)}catch(g){return h(g)}return h()})}catch(c){return o(c)}}}async _promiseHandle(e){return new Promise((n,r)=>{Cd(this,vH,cre).call(this,e,(o,i)=>{o&&i===void 0?r(o):n(i)}).catch(r)})}};KH=new WeakMap,i3=new WeakMap,pA=new WeakMap,yO=new WeakSet,yH=function(){if(c3(this,KH))throw new Error(\"This engine is destroyed and can no longer be used.\")},bH=new WeakSet,are=async function(t,e){try{if(t.length===0){let r=[{id:null,jsonrpc:\"2.0\",error:new Hv(o3.invalidRequest,\"Request batch must contain plain objects. Received an empty array\")}];return e?e(null,r):r}let n=(await Promise.all(t.map(this._promiseHandle.bind(this)))).filter(r=>r!==void 0);return e?e(null,n):n}catch(n){if(e)return e(n);throw n}},vH=new WeakSet,cre=async function(t,e){var n;if(!t||Array.isArray(t)||typeof t!=\"object\"){let a=new Hv(o3.invalidRequest,\"Requests must be plain objects. Received: \"+typeof t,{request:t});return e(a,{id:null,jsonrpc:\"2.0\",error:a})}if(typeof t.method!=\"string\"){let a=new Hv(o3.invalidRequest,\"Must specify a string method. Received: \"+typeof t.method,{request:t});return c3(this,pA)&&!mCe(t)?e(null):e(a,{id:t.id??null,jsonrpc:\"2.0\",error:a})}if(c3(this,pA)&&kA(t,Sit)&&!mCe(t)){try{await c3(this,pA).call(this,t)}catch(a){return e(a)}return e(null)}let r=null,o={...t},i={id:o.id,jsonrpc:o.jsonrpc};try{await Cd(n=dg,yne,_Ce).call(n,o,i,c3(this,i3))}catch(a){r=a}return r&&(delete i.result,i.error||(i.error=bCe(r))),e(r,i)},yne=new WeakSet,_Ce=async function(t,e,n){var r,o,i;let[a,c,u]=await Cd(r=dg,wH,lre).call(r,t,e,n);if(Cd(o=dg,vne,ACe).call(o,t,e,c),await Cd(i=dg,SO,GH).call(i,u),a)throw a},wH=new WeakSet,lre=async function(t,e,n){var r;let o=[],i=null,a=!1;for(let c of n)if([i,a]=await Cd(r=dg,bne,CCe).call(r,t,e,c,o),a)break;return[i,a,o.reverse()]},bne=new WeakSet,CCe=async function(t,e,n,r){return new Promise(o=>{let i=c=>{let u=c||e.error;u&&(e.error=bCe(u)),o([u,!0])},a=c=>{e.error?i(e.error):(c&&(typeof c!=\"function\"&&i(new Hv(o3.internal,`JsonRpcEngine: \"next\" return handlers must be functions. Received \"${typeof c}\" for request:\\n${wne(t)}`,{request:t})),r.push(c)),o([null,!1]))};try{n(t,e,a,i)}catch(c){i(c)}})},SO=new WeakSet,GH=async function(t){for(let e of t)await new Promise((n,r)=>{e(o=>o?r(o):n())})},vne=new WeakSet,ACe=function(t,e,n){if(!qH(e,\"result\")&&!qH(e,\"error\"))throw new Hv(o3.internal,`JsonRpcEngine: Response has no error or result for request:\\n${wne(t)}`,{request:t});if(!n)throw new Hv(o3.internal,`JsonRpcEngine: Nothing ended request:\\n${wne(t)}`,{request:t})},fg(dg,yne),fg(dg,wH),fg(dg,bne),fg(dg,SO),fg(dg,vne);Mit=dg;vTe=Object.freeze([\"eth_subscription\"]),Nit=(t=console)=>[ait(),Lit(t),sit(t)];EH=(t,e,n=!0)=>(r,o)=>{r||o.error?e(r||o.error):!n||Array.isArray(o)?t(o):t(o.result)},wTe=t=>!!t&&typeof t==\"string\"&&t.startsWith(\"0x\"),xTe=()=>{};ETe=(t,e,n)=>{if(!e.has(t))throw TypeError(\"Cannot \"+n)},v1=(t,e,n)=>(ETe(t,e,\"read from private field\"),n?n.call(t):e.get(t)),ure=(t,e,n)=>{if(e.has(t))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(t):e.set(t,n)},qv=(t,e,n,r)=>(ETe(t,e,\"write to private field\"),e.set(t,n),n);dre=class extends Wo{emit(e,...n){let r=e===\"error\",o=this._events;if(o!==void 0)r=r&&o.error===void 0;else if(!r)return!1;if(r){let a;if(n.length>0&&([a]=n),a instanceof Error)throw a;let c=new Error(\"Unhandled error.\"+(a?` (${a.message})`:\"\"));throw c.context=a,c}let i=o[e];if(i===void 0)return!1;if(typeof i==\"function\")RCe(i,this,n);else{let a=i.length,c=function(u){let d=u.length,h=new Array(d);for(let m=0;m<d;m+=1)h[m]=u[m];return h}(i);for(let u=0;u<a;u+=1)RCe(c[u],this,n)}return!0}},Uit=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e==\"object\"&&typeof n==\"object\"){if(e.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(e)){if((r=e.length)!=n.length)return!1;for(o=r;o--!=0;)if(!t(e[o],n[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if((r=(i=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(o=r;o--!=0;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;o--!=0;){var a=i[o];if(!t(e[a],n[a]))return!1}return!0}return e!=e&&n!=n},jit=uq(Uit),STe=class kTe extends dre{constructor({logger:e=console,maxEventListeners:n=100,rpcMiddleware:r=[]}={}){super(),ure(this,t3,void 0),ure(this,xS,void 0),this._log=e,this.setMaxListeners(n),this._state={...kTe._defaultState},qv(this,xS,null),qv(this,t3,null),this._handleAccountsChanged=this._handleAccountsChanged.bind(this),this._handleConnect=this._handleConnect.bind(this),this._handleChainChanged=this._handleChainChanged.bind(this),this._handleDisconnect=this._handleDisconnect.bind(this),this._handleUnlockStateChanged=this._handleUnlockStateChanged.bind(this),this._rpcRequest=this._rpcRequest.bind(this),this.request=this.request.bind(this);let o=new Mit;r.forEach(i=>o.push(i)),this._rpcEngine=o}get chainId(){return v1(this,t3)}get selectedAddress(){return v1(this,xS)}isConnected(){return this._state.isConnected}async request(e){if(!e||typeof e!=\"object\"||Array.isArray(e))throw EO({message:Vs.errors.invalidRequestArgs(),data:e});let{method:n,params:r}=e;if(typeof n!=\"string\"||n.length===0)throw EO({message:Vs.errors.invalidRequestMethod(),data:e});if(r!==void 0&&!Array.isArray(r)&&(typeof r!=\"object\"||r===null))throw EO({message:Vs.errors.invalidRequestParams(),data:e});let o=r==null?{method:n}:{method:n,params:r};return new Promise((i,a)=>{this._rpcRequest(o,EH(i,a))})}_initializeState(e){if(this._state.initialized)throw new Error(\"Provider already initialized.\");if(e){let{accounts:n,chainId:r,isUnlocked:o,networkVersion:i}=e;this._handleConnect(r),this._handleChainChanged({chainId:r,networkVersion:i}),this._handleUnlockStateChanged({accounts:n,isUnlocked:o}),this._handleAccountsChanged(n)}this._state.initialized=!0,this.emit(\"_initialized\")}_rpcRequest(e,n){let r=n;return Array.isArray(e)||(e.jsonrpc||(e.jsonrpc=\"2.0\"),e.method!==\"eth_accounts\"&&e.method!==\"eth_requestAccounts\"||(r=(o,i)=>{this._handleAccountsChanged(i.result??[],e.method===\"eth_accounts\"),n(o,i)})),this._rpcEngine.handle(e,r)}_handleConnect(e){this._state.isConnected||(this._state.isConnected=!0,this.emit(\"connect\",{chainId:e}),this._log.debug(Vs.info.connected(e)))}_handleDisconnect(e,n){if(this._state.isConnected||!this._state.isPermanentlyDisconnected&&!e){let r;this._state.isConnected=!1,e?(r=new Hv(1013,n??Vs.errors.disconnected()),this._log.debug(r)):(r=new Hv(1011,n??Vs.errors.permanentlyDisconnected()),this._log.error(r),qv(this,t3,null),this._state.accounts=null,qv(this,xS,null),this._state.isUnlocked=!1,this._state.isPermanentlyDisconnected=!0),this.emit(\"disconnect\",r)}}_handleChainChanged({chainId:e}={}){wTe(e)?(this._handleConnect(e),e!==v1(this,t3)&&(qv(this,t3,e),this._state.initialized&&this.emit(\"chainChanged\",v1(this,t3)))):this._log.error(Vs.errors.invalidNetworkParams(),{chainId:e})}_handleAccountsChanged(e,n=!1){let r=e;Array.isArray(e)||(this._log.error(\"MetaMask: Received invalid accounts parameter. Please report this bug.\",e),r=[]);for(let o of e)if(typeof o!=\"string\"){this._log.error(\"MetaMask: Received non-string account. Please report this bug.\",e),r=[];break}if(!jit(this._state.accounts,r)&&(n&&this._state.accounts!==null&&this._log.error(\"MetaMask: \\'eth_accounts\\' unexpectedly updated accounts. Please report this bug.\",r),this._state.accounts=r,v1(this,xS)!==r[0]&&qv(this,xS,r[0]||null),this._state.initialized)){let o=[...r];this.emit(\"accountsChanged\",o)}}_handleUnlockStateChanged({accounts:e,isUnlocked:n}={}){typeof n==\"boolean\"?n!==this._state.isUnlocked&&(this._state.isUnlocked=n,this._handleAccountsChanged(e??[])):this._log.error(\"MetaMask: Received invalid isUnlocked parameter. Please report this bug.\")}};t3=new WeakMap,xS=new WeakMap,STe._defaultState={accounts:null,isConnected:!1,isUnlocked:!1,initialized:!1,isPermanentlyDisconnected:!1};zit=STe,fre={exports:{}};Vre=WO(uot);Wre=typeof Object.create==\"function\"?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t};CTe=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++)n[e[r]]=Object.getOwnPropertyDescriptor(t,e[r]);return n},Hit=/%[sdj%]/g;aH={};S1.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},S1.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"};Vit=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];ES=typeof Symbol<\"u\"?Symbol(\"util.promisify.custom\"):void 0;Qre.custom=ES;Kit={inherits:Wre,_extend:Yre,log:PTe,isBuffer:OTe,isPrimitive:ITe,isFunction:CO,isError:_O,isDate:YH,isObject:PS,isRegExp:kO,isUndefined:x1,isSymbol:RTe,isString:FO,isNumber:Gre,isNullOrUndefined:TTe,isNull:VO,isBoolean:pq,isArray:Kre,inspect:S1,deprecate:$re,format:hq,debuglog:ATe,promisify:Qre,callbackify:NTe},LTe=WO(Object.freeze({__proto__:null,_extend:Yre,callbackify:NTe,debuglog:ATe,default:Kit,deprecate:$re,format:hq,inherits:Wre,inspect:S1,isArray:Kre,isBoolean:pq,isBuffer:OTe,isDate:YH,isError:_O,isFunction:CO,isNull:VO,isNullOrUndefined:TTe,isNumber:Gre,isObject:PS,isPrimitive:ITe,isRegExp:kO,isString:FO,isSymbol:RTe,isUndefined:x1,log:PTe,promisify:Qre}));MS={},DTe={};bm(\"ERR_INVALID_OPT_VALUE\",function(t,e){return\\'The value \"\\'+e+\\'\" is invalid for option \"\\'+t+\\'\"\\'},TypeError),bm(\"ERR_INVALID_ARG_TYPE\",function(t,e,n){var r,o,i;if(typeof e==\"string\"&&(o=\"not \",e.substr(0,o.length)===o)?(r=\"must not be\",e=e.replace(/^not /,\"\")):r=\"must be\",function(c,u,d){return(d===void 0||d>c.length)&&(d=c.length),c.substring(d-u.length,d)===u}(t,\" argument\"))i=\"The \".concat(t,\" \").concat(r,\" \").concat(BCe(e,\"type\"));else{var a=function(c,u,d){return typeof d!=\"number\"&&(d=0),!(d+u.length>c.length)&&c.indexOf(u,d)!==-1}(t,\".\")?\"property\":\"argument\";i=\\'The \"\\'.concat(t,\\'\" \\').concat(a,\" \").concat(r,\" \").concat(BCe(e,\"type\"))}return i+=\". Received type \".concat(typeof n)},TypeError),bm(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\"),bm(\"ERR_METHOD_NOT_IMPLEMENTED\",function(t){return\"The \"+t+\" method is not implemented\"}),bm(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\"),bm(\"ERR_STREAM_DESTROYED\",function(t){return\"Cannot call \"+t+\" after a stream was destroyed\"}),bm(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\"),bm(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\"),bm(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\"),bm(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError),bm(\"ERR_UNKNOWN_ENCODING\",function(t){return\"Unknown encoding: \"+t},TypeError),bm(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\"),MS.codes=DTe;Zit=typeof Object.create==\"function\"?function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t},$O=WO(Object.freeze({__proto__:null,default:Zit}));Qit=at.isEncoding||function(t){switch(t&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};SH.prototype.write=function(t){for(var e=\"\";this.charLength;){var n=t.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:t.length;if(t.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived<this.charLength)return\"\";if(t=t.slice(n,t.length),!((o=(e=this.charBuffer.slice(0,this.charLength).toString(this.encoding)).charCodeAt(e.length-1))>=55296&&o<=56319)){if(this.charReceived=this.charLength=0,t.length===0)return e;break}this.charLength+=this.surrogateSize,e=\"\"}this.detectIncompleteChar(t);var r=t.length;this.charLength&&(t.copy(this.charBuffer,0,t.length-this.charReceived,r),r-=this.charReceived);var o;if(r=(e+=t.toString(this.encoding,0,r)).length-1,(o=e.charCodeAt(r))>=55296&&o<=56319){var i=this.surrogateSize;return this.charLength+=i,this.charReceived+=i,this.charBuffer.copy(this.charBuffer,i,0,i),t.copy(this.charBuffer,0,0,i),e.substring(0,r)}return e},SH.prototype.detectIncompleteChar=function(t){for(var e=t.length>=3?3:t.length;e>0;e--){var n=t[t.length-e];if(e==1&&n>>5==6){this.charLength=2;break}if(e<=2&&n>>4==14){this.charLength=3;break}if(e<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=e},SH.prototype.end=function(t){var e=\"\";if(t&&t.length&&(e=this.write(t)),this.charReceived){var n=this.charReceived,r=this.charBuffer,o=this.encoding;e+=r.slice(0,n).toString(o)}return e};jCe=WO(Object.freeze({__proto__:null,StringDecoder:SH})),zCe=MS.codes.ERR_STREAM_PREMATURE_CLOSE;Jre=function t(e,n,r){if(typeof n==\"function\")return t(e,null,n);n||(n={}),r=function(E){var C=!1;return function(){if(!C){C=!0;for(var T=arguments.length,R=new Array(T),L=0;L<T;L++)R[L]=arguments[L];E.apply(this,R)}}}(r||tst);var o=n.readable||n.readable!==!1&&e.readable,i=n.writable||n.writable!==!1&&e.writable,a=function(){e.writable||u()},c=e._writableState&&e._writableState.finished,u=function(){i=!1,c=!0,o||r.call(e)},d=e._readableState&&e._readableState.endEmitted,h=function(){o=!1,d=!0,i||r.call(e)},m=function(E){r.call(e,E)},g=function(){var E;return o&&!d?(e._readableState&&e._readableState.ended||(E=new zCe),r.call(e,E)):i&&!c?(e._writableState&&e._writableState.ended||(E=new zCe),r.call(e,E)):void 0},b=function(){e.req.on(\"finish\",u)};return function(E){return E.setHeader&&typeof E.abort==\"function\"}(e)?(e.on(\"complete\",u),e.on(\"abort\",g),e.req?b():e.on(\"request\",b)):i&&!e._writableState&&(e.on(\"end\",a),e.on(\"close\",a)),e.on(\"end\",h),e.on(\"finish\",u),n.error!==!1&&e.on(\"error\",m),e.on(\"close\",g),function(){e.removeListener(\"complete\",u),e.removeListener(\"abort\",g),e.removeListener(\"request\",b),e.req&&e.req.removeListener(\"finish\",u),e.removeListener(\"end\",a),e.removeListener(\"close\",a),e.removeListener(\"finish\",u),e.removeListener(\"end\",h),e.removeListener(\"error\",m),e.removeListener(\"close\",g)}};zTe=Wv,mq=MS.codes,rst=mq.ERR_METHOD_NOT_IMPLEMENTED,ost=mq.ERR_MULTIPLE_CALLBACK,ist=mq.ERR_TRANSFORM_ALREADY_TRANSFORMING,sst=mq.ERR_TRANSFORM_WITH_LENGTH_0,kH=xA();$O(Wv,kH),Wv.prototype.push=function(t,e){return this._transformState.needTransform=!1,kH.prototype.push.call(this,t,e)},Wv.prototype._transform=function(t,e,n){n(new rst(\"_transform()\"))},Wv.prototype._write=function(t,e,n){var r=this._transformState;if(r.writecb=n,r.writechunk=t,r.writeencoding=e,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},Wv.prototype._read=function(t){var e=this._transformState;e.writechunk===null||e.transforming?e.needTransform=!0:(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform))},Wv.prototype._destroy=function(t,e){kH.prototype._destroy.call(this,t,function(n){e(n)})};lst=UO,HTe=zTe;$O(UO,HTe),UO.prototype._transform=function(t,e,n){n(null,t)};qTe=MS.codes,ust=qTe.ERR_MISSING_ARGS,dst=qTe.ERR_STREAM_DESTROYED;hst=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var r,o=function(a){return a.length?typeof a[a.length-1]!=\"function\"?KCe:a.pop():KCe}(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new ust(\"streams\");var i=e.map(function(a,c){var u=c<e.length-1;return function(d,h,m,g){g=function(C){var T=!1;return function(){T||(T=!0,C.apply(void 0,arguments))}}(g);var b=!1;d.on(\"close\",function(){b=!0}),Pne===void 0&&(Pne=Jre),Pne(d,{readable:h,writable:m},function(C){if(C)return g(C);b=!0,g()});var E=!1;return function(C){if(!b&&!E)return E=!0,function(T){return T.setHeader&&typeof T.abort==\"function\"}(d)?d.abort():typeof d.destroy==\"function\"?d.destroy():void g(C||new dst(\"pipe\"))}}(a,u,c>0,function(d){r||(r=d),d&&i.forEach(GCe),u||(i.forEach(GCe),o(r))})});return e.reduce(fst)};(function(t,e){(e=fre.exports=jTe()).Stream=e,e.Readable=e,e.Writable=UTe(),e.Duplex=xA(),e.Transform=zTe,e.PassThrough=lst,e.finished=Jre,e.pipeline=hst})(0,fre.exports);EA=fre.exports;QH={},hre={exports:{}},mst=function t(e,n){if(e&&n)return t(e)(n);if(typeof e!=\"function\")throw new TypeError(\"need wrapper function\");return Object.keys(e).forEach(function(o){r[o]=e[o]}),r;function r(){for(var o=new Array(arguments.length),i=0;i<o.length;i++)o[i]=arguments[i];var a=e.apply(this,o),c=o[o.length-1];return typeof a==\"function\"&&a!==c&&Object.keys(c).forEach(function(u){a[u]=c[u]}),a}},ZCe=mst;hre.exports=ZCe(cH),hre.exports.strict=ZCe(YCe),cH.proto=cH(function(){Object.defineProperty(Function.prototype,\"once\",{value:function(){return cH(this)},configurable:!0}),Object.defineProperty(Function.prototype,\"onceStrict\",{value:function(){return YCe(this)},configurable:!0})});gst=hre.exports,JH={};Object.defineProperty(JH,\"__esModule\",{value:!0}),JH.Substream=void 0;yst=EA,pre=class extends yst.Duplex{constructor({parent:e,name:n}){super({objectMode:!0}),this._parent=e,this._name=n}_read(){}_write(e,n,r){this._parent.push({name:this._name,data:e}),r()}};JH.Substream=pre;bst=_m&&_m.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(QH,\"__esModule\",{value:!0}),QH.ObjectMultiplex=void 0;Mne=EA,vst=bst(gst),wst=JH,QCe=Symbol(\"IGNORE_SUBSTREAM\"),xst=class extends Mne.Duplex{constructor(t={}){super(Object.assign(Object.assign({},t),{objectMode:!0})),this._substreams={}}createStream(t){if(this.destroyed)throw new Error(`ObjectMultiplex - parent stream for name \"${t}\" already destroyed`);if(this._readableState.ended||this._writableState.ended)throw new Error(`ObjectMultiplex - parent stream for name \"${t}\" already ended`);if(!t)throw new Error(\"ObjectMultiplex - name must not be empty\");if(this._substreams[t])throw new Error(`ObjectMultiplex - Substream for name \"${t}\" already exists`);let e=new wst.Substream({parent:this,name:t});return this._substreams[t]=e,function(n,r){let o=(0,vst.default)(r);(0,Mne.finished)(n,{readable:!1},o),(0,Mne.finished)(n,{writable:!1},o)}(this,n=>e.destroy(n||void 0)),e}ignoreStream(t){if(!t)throw new Error(\"ObjectMultiplex - name must not be empty\");if(this._substreams[t])throw new Error(`ObjectMultiplex - Substream for name \"${t}\" already exists`);this._substreams[t]=QCe}_read(){}_write(t,e,n){let{name:r,data:o}=t;if(!r)return console.warn(`ObjectMultiplex - malformed chunk without name \"${t}\"`),n();let i=this._substreams[r];return i?(i!==QCe&&i.push(o),n()):(console.warn(`ObjectMultiplex - orphaned data for stream \"${r}\"`),n())}};QH.ObjectMultiplex=xst;Est=uq(QH.ObjectMultiplex),p1=t=>t!==null&&typeof t==\"object\"&&typeof t.pipe==\"function\";p1.writable=t=>p1(t)&&t.writable!==!1&&typeof t._write==\"function\"&&typeof t._writableState==\"object\",p1.readable=t=>p1(t)&&t.readable!==!1&&typeof t._read==\"function\"&&typeof t._readableState==\"object\",p1.duplex=t=>p1.writable(t)&&p1.readable(t),p1.transform=t=>p1.duplex(t)&&typeof t._transform==\"function\";Sst=p1,kst=class extends zit{constructor(t,{jsonRpcStreamName:e,logger:n=console,maxEventListeners:r=100,rpcMiddleware:o=[]}){if(super({logger:n,maxEventListeners:r,rpcMiddleware:o}),!Sst.duplex(t))throw new Error(Vs.errors.invalidDuplexStream());this._handleStreamDisconnect=this._handleStreamDisconnect.bind(this);let i=new Est;EA.pipeline(t,i,t,this._handleStreamDisconnect.bind(this,\"MetaMask\")),this._jsonRpcConnection=pst({retryOnMessage:\"METAMASK_EXTENSION_CONNECT_CAN_RETRY\"}),EA.pipeline(this._jsonRpcConnection.stream,i.createStream(e),this._jsonRpcConnection.stream,this._handleStreamDisconnect.bind(this,\"MetaMask RpcProvider\")),this._rpcEngine.push(this._jsonRpcConnection.middleware),this._jsonRpcConnection.events.on(\"notification\",a=>{let{method:c,params:u}=a;c===\"metamask_accountsChanged\"?this._handleAccountsChanged(u):c===\"metamask_unlockStateChanged\"?this._handleUnlockStateChanged(u):c===\"metamask_chainChanged\"?this._handleChainChanged(u):vTe.includes(c)?this.emit(\"message\",{type:c,data:u}):c===\"METAMASK_STREAM_FAILURE\"&&t.destroy(new Error(Vs.errors.permanentlyDisconnected()))})}async _initializeStateAsync(){let t;try{t=await this.request({method:\"metamask_getProviderState\"})}catch(e){this._log.error(\"MetaMask: Failed to get initial state. Please report this bug.\",e)}this._initializeState(t)}_handleStreamDisconnect(t,e){let n=`MetaMask: Lost connection to \"${t}\".`;e?.stack&&(n+=`\\n${e.stack}`),this._log.warn(n),this.listenerCount(\"error\")>0&&this.emit(\"error\",n),this._handleDisconnect(!1,e?e.message:void 0)}_handleChainChanged({chainId:t,networkVersion:e}={}){wTe(t)&&(n=>!!n&&typeof n==\"string\")(e)?e===\"loading\"?this._handleDisconnect(!0):super._handleChainChanged({chainId:t}):this._log.error(Vs.errors.invalidNetworkParams(),{chainId:t,networkVersion:e})}},_st=class extends kst{constructor(t,{jsonRpcStreamName:e=\"metamask-provider\",logger:n=console,maxEventListeners:r=100,shouldSendMetadata:o}={}){if(super(t,{jsonRpcStreamName:e,logger:n,maxEventListeners:r,rpcMiddleware:Nit(n)}),this._sentWarnings={chainId:!1,networkVersion:!1,selectedAddress:!1,enable:!1,experimentalMethods:!1,send:!1,events:{close:!1,data:!1,networkChanged:!1,notification:!1}},ure(this,m1,void 0),this._initializeStateAsync(),qv(this,m1,null),this.isMetaMask=!0,this._sendSync=this._sendSync.bind(this),this.enable=this.enable.bind(this),this.send=this.send.bind(this),this.sendAsync=this.sendAsync.bind(this),this._warnOfDeprecation=this._warnOfDeprecation.bind(this),this._metamask=this._getExperimentalApi(),this._jsonRpcConnection.events.on(\"notification\",i=>{let{method:a}=i;vTe.includes(a)&&(this.emit(\"data\",i),this.emit(\"notification\",i.params.result))}),o)if(document.readyState===\"complete\")TCe(this._rpcEngine,this._log);else{let i=()=>{TCe(this._rpcEngine,this._log),window.removeEventListener(\"DOMContentLoaded\",i)};window.addEventListener(\"DOMContentLoaded\",i)}}get chainId(){return this._sentWarnings.chainId||(this._log.warn(Vs.warnings.chainIdDeprecation),this._sentWarnings.chainId=!0),super.chainId}get networkVersion(){return this._sentWarnings.networkVersion||(this._log.warn(Vs.warnings.networkVersionDeprecation),this._sentWarnings.networkVersion=!0),v1(this,m1)}get selectedAddress(){return this._sentWarnings.selectedAddress||(this._log.warn(Vs.warnings.selectedAddressDeprecation),this._sentWarnings.selectedAddress=!0),super.selectedAddress}sendAsync(t,e){this._rpcRequest(t,e)}addListener(t,e){return this._warnOfDeprecation(t),super.addListener(t,e)}on(t,e){return this._warnOfDeprecation(t),super.on(t,e)}once(t,e){return this._warnOfDeprecation(t),super.once(t,e)}prependListener(t,e){return this._warnOfDeprecation(t),super.prependListener(t,e)}prependOnceListener(t,e){return this._warnOfDeprecation(t),super.prependOnceListener(t,e)}_handleDisconnect(t,e){super._handleDisconnect(t,e),v1(this,m1)&&!t&&qv(this,m1,null)}_warnOfDeprecation(t){this._sentWarnings?.events[t]===!1&&(this._log.warn(Vs.warnings.events[t]),this._sentWarnings.events[t]=!0)}async enable(){return this._sentWarnings.enable||(this._log.warn(Vs.warnings.enableDeprecation),this._sentWarnings.enable=!0),new Promise((t,e)=>{try{this._rpcRequest({method:\"eth_requestAccounts\",params:[]},EH(t,e))}catch(n){e(n)}})}send(t,e){return this._sentWarnings.send||(this._log.warn(Vs.warnings.sendDeprecation),this._sentWarnings.send=!0),typeof t!=\"string\"||e&&!Array.isArray(e)?t&&typeof t==\"object\"&&typeof e==\"function\"?this._rpcRequest(t,e):this._sendSync(t):new Promise((n,r)=>{try{this._rpcRequest({method:t,params:e},EH(n,r,!1))}catch(o){r(o)}})}_sendSync(t){let e;switch(t.method){case\"eth_accounts\":e=this.selectedAddress?[this.selectedAddress]:[];break;case\"eth_coinbase\":e=this.selectedAddress??null;break;case\"eth_uninstallFilter\":this._rpcRequest(t,xTe),e=!0;break;case\"net_version\":e=v1(this,m1)??null;break;default:throw new Error(Vs.errors.unsupportedSync(t.method))}return{id:t.id,jsonrpc:t.jsonrpc,result:e}}_getExperimentalApi(){return new Proxy({isUnlocked:async()=>(this._state.initialized||await new Promise(t=>{this.on(\"_initialized\",()=>t())}),this._state.isUnlocked),requestBatch:async t=>{if(!Array.isArray(t))throw EO({message:\"Batch requests must be made with an array of request objects.\",data:t});return new Promise((e,n)=>{this._rpcRequest(t,EH(e,n))})}},{get:(t,e,...n)=>(this._sentWarnings.experimentalMethods||(this._log.warn(Vs.warnings.experimentalMethods),this._sentWarnings.experimentalMethods=!0),Reflect.get(t,e,...n))})}_handleChainChanged({chainId:t,networkVersion:e}={}){super._handleChainChanged({chainId:t,networkVersion:e}),this._state.isConnected&&e!==v1(this,m1)&&(qv(this,m1,e),this._state.initialized&&this.emit(\"networkChanged\",v1(this,m1)))}};m1=new WeakMap;Ve=(0,Cu.default)(\"MM_SDK\");Ve.color=\"#FFAC1C\";WTe={},d3={};Object.defineProperty(d3,\"__esModule\",{value:!0}),d3.EthereumProviderError=d3.EthereumRpcError=void 0;Cst=fTe,XH=class extends Error{constructor(e,n,r){if(!Number.isInteger(e))throw new Error(\\'\"code\" must be an integer.\\');if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string.\\');super(n),this.code=e,r!==void 0&&(this.data=r)}serialize(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),this.stack&&(e.stack=this.stack),e}toString(){return Cst.default(this.serialize(),Ast,2)}};d3.EthereumRpcError=XH;d3.EthereumProviderError=class extends XH{constructor(t,e,n){if(!function(r){return Number.isInteger(r)&&r>=1e3&&r<=4999}(t))throw new Error(\\'\"code\" must be an integer such that: 1000 <= code <= 4999\\');super(t,e,n)}};Xre={},s3={};Object.defineProperty(s3,\"__esModule\",{value:!0}),s3.errorValues=s3.errorCodes=void 0,s3.errorCodes={rpc:{invalidInput:-32e3,resourceNotFound:-32001,resourceUnavailable:-32002,transactionRejected:-32003,methodNotSupported:-32004,limitExceeded:-32005,parse:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internal:-32603},provider:{userRejectedRequest:4001,unauthorized:4100,unsupportedMethod:4200,disconnected:4900,chainDisconnected:4901}},s3.errorValues={\"-32700\":{standard:\"JSON RPC 2.0\",message:\"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.\"},\"-32600\":{standard:\"JSON RPC 2.0\",message:\"The JSON sent is not a valid Request object.\"},\"-32601\":{standard:\"JSON RPC 2.0\",message:\"The method does not exist / is not available.\"},\"-32602\":{standard:\"JSON RPC 2.0\",message:\"Invalid method parameter(s).\"},\"-32603\":{standard:\"JSON RPC 2.0\",message:\"Internal JSON-RPC error.\"},\"-32000\":{standard:\"EIP-1474\",message:\"Invalid input.\"},\"-32001\":{standard:\"EIP-1474\",message:\"Resource not found.\"},\"-32002\":{standard:\"EIP-1474\",message:\"Resource unavailable.\"},\"-32003\":{standard:\"EIP-1474\",message:\"Transaction rejected.\"},\"-32004\":{standard:\"EIP-1474\",message:\"Method not supported.\"},\"-32005\":{standard:\"EIP-1474\",message:\"Request limit exceeded.\"},4001:{standard:\"EIP-1193\",message:\"User rejected the request.\"},4100:{standard:\"EIP-1193\",message:\"The requested account and/or method has not been authorized by the user.\"},4200:{standard:\"EIP-1193\",message:\"The requested method is not supported by this Ethereum provider.\"},4900:{standard:\"EIP-1193\",message:\"The provider is disconnected from all chains.\"},4901:{standard:\"EIP-1193\",message:\"The provider is disconnected from the specified chain.\"}},function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.serializeError=t.isValidCode=t.getMessageFromCode=t.JSON_RPC_SERVER_ERROR_MESSAGE=void 0;let e=s3,n=d3,r=e.errorCodes.rpc.internal,o=\"Unspecified error message. This is a bug, please report it.\",i={code:r,message:a(r)};function a(m,g=o){if(Number.isInteger(m)){let b=m.toString();if(h(e.errorValues,b))return e.errorValues[b].message;if(u(m))return t.JSON_RPC_SERVER_ERROR_MESSAGE}return g}function c(m){if(!Number.isInteger(m))return!1;let g=m.toString();return!!e.errorValues[g]||!!u(m)}function u(m){return m>=-32099&&m<=-32e3}function d(m){return m&&typeof m==\"object\"&&!Array.isArray(m)?Object.assign({},m):m}function h(m,g){return Object.prototype.hasOwnProperty.call(m,g)}t.JSON_RPC_SERVER_ERROR_MESSAGE=\"Unspecified server error.\",t.getMessageFromCode=a,t.isValidCode=c,t.serializeError=function(m,{fallbackError:g=i,shouldIncludeStack:b=!1}={}){var E,C;if(!g||!Number.isInteger(g.code)||typeof g.message!=\"string\")throw new Error(\"Must provide fallback error with integer number code and string message.\");if(m instanceof n.EthereumRpcError)return m.serialize();let T={};if(m&&typeof m==\"object\"&&!Array.isArray(m)&&h(m,\"code\")&&c(m.code)){let L=m;T.code=L.code,L.message&&typeof L.message==\"string\"?(T.message=L.message,h(L,\"data\")&&(T.data=L.data)):(T.message=a(T.code),T.data={originalError:d(m)})}else{T.code=g.code;let L=(E=m)===null||E===void 0?void 0:E.message;T.message=L&&typeof L==\"string\"?L:g.message,T.data={originalError:d(m)}}let R=(C=m)===null||C===void 0?void 0:C.stack;return b&&m&&R&&typeof R==\"string\"&&(T.stack=R),T}}(Xre);eq={};Object.defineProperty(eq,\"__esModule\",{value:!0}),eq.ethErrors=void 0;eoe=d3,VTe=Xre,Eu=s3;eq.ethErrors={rpc:{parse:t=>vm(Eu.errorCodes.rpc.parse,t),invalidRequest:t=>vm(Eu.errorCodes.rpc.invalidRequest,t),invalidParams:t=>vm(Eu.errorCodes.rpc.invalidParams,t),methodNotFound:t=>vm(Eu.errorCodes.rpc.methodNotFound,t),internal:t=>vm(Eu.errorCodes.rpc.internal,t),server:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum RPC Server errors must provide single object argument.\");let{code:e}=t;if(!Number.isInteger(e)||e>-32005||e<-32099)throw new Error(\\'\"code\" must be an integer such that: -32099 <= code <= -32005\\');return vm(e,t)},invalidInput:t=>vm(Eu.errorCodes.rpc.invalidInput,t),resourceNotFound:t=>vm(Eu.errorCodes.rpc.resourceNotFound,t),resourceUnavailable:t=>vm(Eu.errorCodes.rpc.resourceUnavailable,t),transactionRejected:t=>vm(Eu.errorCodes.rpc.transactionRejected,t),methodNotSupported:t=>vm(Eu.errorCodes.rpc.methodNotSupported,t),limitExceeded:t=>vm(Eu.errorCodes.rpc.limitExceeded,t)},provider:{userRejectedRequest:t=>pO(Eu.errorCodes.provider.userRejectedRequest,t),unauthorized:t=>pO(Eu.errorCodes.provider.unauthorized,t),unsupportedMethod:t=>pO(Eu.errorCodes.provider.unsupportedMethod,t),disconnected:t=>pO(Eu.errorCodes.provider.disconnected,t),chainDisconnected:t=>pO(Eu.errorCodes.provider.chainDisconnected,t),custom:t=>{if(!t||typeof t!=\"object\"||Array.isArray(t))throw new Error(\"Ethereum Provider custom errors must provide single object argument.\");let{code:e,message:n,data:r}=t;if(!n||typeof n!=\"string\")throw new Error(\\'\"message\" must be a nonempty string\\');return new eoe.EthereumProviderError(e,n,r)}}},function(t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.getMessageFromCode=t.serializeError=t.EthereumProviderError=t.EthereumRpcError=t.ethErrors=t.errorCodes=void 0;let e=d3;Object.defineProperty(t,\"EthereumRpcError\",{enumerable:!0,get:function(){return e.EthereumRpcError}}),Object.defineProperty(t,\"EthereumProviderError\",{enumerable:!0,get:function(){return e.EthereumProviderError}});let n=Xre;Object.defineProperty(t,\"serializeError\",{enumerable:!0,get:function(){return n.serializeError}}),Object.defineProperty(t,\"getMessageFromCode\",{enumerable:!0,get:function(){return n.getMessageFromCode}});let r=eq;Object.defineProperty(t,\"ethErrors\",{enumerable:!0,get:function(){return r.ethErrors}});let o=s3;Object.defineProperty(t,\"errorCodes\",{enumerable:!0,get:function(){return o.errorCodes}})}(WTe);KTe={exports:{}};KTe.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(r,o,i){n.o(r,o)||Object.defineProperty(r,o,{enumerable:!0,get:i})},n.r=function(r){typeof Symbol<\"u\"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(r,\"__esModule\",{value:!0})},n.t=function(r,o){if(1&o&&(r=n(r)),8&o||4&o&&typeof r==\"object\"&&r&&r.__esModule)return r;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,\"default\",{enumerable:!0,value:r}),2&o&&typeof r!=\"string\")for(var a in r)n.d(i,a,function(c){return r[c]}.bind(null,a));return i},n.n=function(r){var o=r&&r.__esModule?function(){return r.default}:function(){return r};return n.d(o,\"a\",o),o},n.o=function(r,o){return Object.prototype.hasOwnProperty.call(r,o)},n.p=\"\",n(n.s=90)}({17:function(t,e,n){e.__esModule=!0,e.default=void 0;var r=n(18),o=function(){function i(){}return i.getFirstMatch=function(a,c){var u=c.match(a);return u&&u.length>0&&u[1]||\"\"},i.getSecondMatch=function(a,c){var u=c.match(a);return u&&u.length>1&&u[2]||\"\"},i.matchAndReturnConst=function(a,c,u){if(a.test(c))return u},i.getWindowsVersionName=function(a){switch(a){case\"NT\":return\"NT\";case\"XP\":case\"NT 5.1\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},i.getMacOSVersionName=function(a){var c=a.split(\".\").splice(0,2).map(function(u){return parseInt(u,10)||0});if(c.push(0),c[0]===10)switch(c[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},i.getAndroidVersionName=function(a){var c=a.split(\".\").splice(0,2).map(function(u){return parseInt(u,10)||0});if(c.push(0),!(c[0]===1&&c[1]<5))return c[0]===1&&c[1]<6?\"Cupcake\":c[0]===1&&c[1]>=6?\"Donut\":c[0]===2&&c[1]<2?\"Eclair\":c[0]===2&&c[1]===2?\"Froyo\":c[0]===2&&c[1]>2?\"Gingerbread\":c[0]===3?\"Honeycomb\":c[0]===4&&c[1]<1?\"Ice Cream Sandwich\":c[0]===4&&c[1]<4?\"Jelly Bean\":c[0]===4&&c[1]>=4?\"KitKat\":c[0]===5?\"Lollipop\":c[0]===6?\"Marshmallow\":c[0]===7?\"Nougat\":c[0]===8?\"Oreo\":c[0]===9?\"Pie\":void 0},i.getVersionPrecision=function(a){return a.split(\".\").length},i.compareVersions=function(a,c,u){u===void 0&&(u=!1);var d=i.getVersionPrecision(a),h=i.getVersionPrecision(c),m=Math.max(d,h),g=0,b=i.map([a,c],function(E){var C=m-i.getVersionPrecision(E),T=E+new Array(C+1).join(\".0\");return i.map(T.split(\".\"),function(R){return new Array(20-R.length).join(\"0\")+R}).reverse()});for(u&&(g=m-Math.min(d,h)),m-=1;m>=g;){if(b[0][m]>b[1][m])return 1;if(b[0][m]===b[1][m]){if(m===g)return 0;m-=1}else if(b[0][m]<b[1][m])return-1}},i.map=function(a,c){var u,d=[];if(Array.prototype.map)return Array.prototype.map.call(a,c);for(u=0;u<a.length;u+=1)d.push(c(a[u]));return d},i.find=function(a,c){var u,d;if(Array.prototype.find)return Array.prototype.find.call(a,c);for(u=0,d=a.length;u<d;u+=1){var h=a[u];if(c(h,u))return h}},i.assign=function(a){for(var c,u,d=a,h=arguments.length,m=new Array(h>1?h-1:0),g=1;g<h;g++)m[g-1]=arguments[g];if(Object.assign)return Object.assign.apply(Object,[a].concat(m));var b=function(){var E=m[c];typeof E==\"object\"&&E!==null&&Object.keys(E).forEach(function(C){d[C]=E[C]})};for(c=0,u=m.length;c<u;c+=1)b();return a},i.getBrowserAlias=function(a){return r.BROWSER_ALIASES_MAP[a]},i.getBrowserTypeByAlias=function(a){return r.BROWSER_MAP[a]||\"\"},i}();e.default=o,t.exports=e.default},18:function(t,e,n){e.__esModule=!0,e.ENGINE_MAP=e.OS_MAP=e.PLATFORMS_MAP=e.BROWSER_MAP=e.BROWSER_ALIASES_MAP=void 0,e.BROWSER_ALIASES_MAP={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"},e.BROWSER_MAP={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"},e.PLATFORMS_MAP={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"},e.OS_MAP={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"},e.ENGINE_MAP={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"}},90:function(t,e,n){e.__esModule=!0,e.default=void 0;var r,o=(r=n(91))&&r.__esModule?r:{default:r},i=n(18);function a(u,d){for(var h=0;h<d.length;h++){var m=d[h];m.enumerable=m.enumerable||!1,m.configurable=!0,\"value\"in m&&(m.writable=!0),Object.defineProperty(u,m.key,m)}}var c=function(){function u(){}var d,h,m;return u.getParser=function(g,b){if(b===void 0&&(b=!1),typeof g!=\"string\")throw new Error(\"UserAgent should be a string\");return new o.default(g,b)},u.parse=function(g){return new o.default(g).getResult()},d=u,m=[{key:\"BROWSER_MAP\",get:function(){return i.BROWSER_MAP}},{key:\"ENGINE_MAP\",get:function(){return i.ENGINE_MAP}},{key:\"OS_MAP\",get:function(){return i.OS_MAP}},{key:\"PLATFORMS_MAP\",get:function(){return i.PLATFORMS_MAP}}],(h=null)&&a(d.prototype,h),m&&a(d,m),u}();e.default=c,t.exports=e.default},91:function(t,e,n){e.__esModule=!0,e.default=void 0;var r=u(n(92)),o=u(n(93)),i=u(n(94)),a=u(n(95)),c=u(n(17));function u(h){return h&&h.__esModule?h:{default:h}}var d=function(){function h(g,b){if(b===void 0&&(b=!1),g==null||g===\"\")throw new Error(\"UserAgent parameter can\\'t be empty\");this._ua=g,this.parsedResult={},b!==!0&&this.parse()}var m=h.prototype;return m.getUA=function(){return this._ua},m.test=function(g){return g.test(this._ua)},m.parseBrowser=function(){var g=this;this.parsedResult.browser={};var b=c.default.find(r.default,function(E){if(typeof E.test==\"function\")return E.test(g);if(E.test instanceof Array)return E.test.some(function(C){return g.test(C)});throw new Error(\"Browser\\'s test function is not valid\")});return b&&(this.parsedResult.browser=b.describe(this.getUA())),this.parsedResult.browser},m.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},m.getBrowserName=function(g){return g?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"},m.getBrowserVersion=function(){return this.getBrowser().version},m.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},m.parseOS=function(){var g=this;this.parsedResult.os={};var b=c.default.find(o.default,function(E){if(typeof E.test==\"function\")return E.test(g);if(E.test instanceof Array)return E.test.some(function(C){return g.test(C)});throw new Error(\"Browser\\'s test function is not valid\")});return b&&(this.parsedResult.os=b.describe(this.getUA())),this.parsedResult.os},m.getOSName=function(g){var b=this.getOS().name;return g?String(b).toLowerCase()||\"\":b||\"\"},m.getOSVersion=function(){return this.getOS().version},m.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},m.getPlatformType=function(g){g===void 0&&(g=!1);var b=this.getPlatform().type;return g?String(b).toLowerCase()||\"\":b||\"\"},m.parsePlatform=function(){var g=this;this.parsedResult.platform={};var b=c.default.find(i.default,function(E){if(typeof E.test==\"function\")return E.test(g);if(E.test instanceof Array)return E.test.some(function(C){return g.test(C)});throw new Error(\"Browser\\'s test function is not valid\")});return b&&(this.parsedResult.platform=b.describe(this.getUA())),this.parsedResult.platform},m.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},m.getEngineName=function(g){return g?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"},m.parseEngine=function(){var g=this;this.parsedResult.engine={};var b=c.default.find(a.default,function(E){if(typeof E.test==\"function\")return E.test(g);if(E.test instanceof Array)return E.test.some(function(C){return g.test(C)});throw new Error(\"Browser\\'s test function is not valid\")});return b&&(this.parsedResult.engine=b.describe(this.getUA())),this.parsedResult.engine},m.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},m.getResult=function(){return c.default.assign({},this.parsedResult)},m.satisfies=function(g){var b=this,E={},C=0,T={},R=0;if(Object.keys(g).forEach(function(Z){var ae=g[Z];typeof ae==\"string\"?(T[Z]=ae,R+=1):typeof ae==\"object\"&&(E[Z]=ae,C+=1)}),C>0){var L=Object.keys(E),D=c.default.find(L,function(Z){return b.isOS(Z)});if(D){var G=this.satisfies(E[D]);if(G!==void 0)return G}var W=c.default.find(L,function(Z){return b.isPlatform(Z)});if(W){var J=this.satisfies(E[W]);if(J!==void 0)return J}}if(R>0){var ne=Object.keys(T),ie=c.default.find(ne,function(Z){return b.isBrowser(Z,!0)});if(ie!==void 0)return this.compareVersion(T[ie])}},m.isBrowser=function(g,b){b===void 0&&(b=!1);var E=this.getBrowserName().toLowerCase(),C=g.toLowerCase(),T=c.default.getBrowserTypeByAlias(C);return b&&T&&(C=T.toLowerCase()),C===E},m.compareVersion=function(g){var b=[0],E=g,C=!1,T=this.getBrowserVersion();if(typeof T==\"string\")return g[0]===\">\"||g[0]===\"<\"?(E=g.substr(1),g[1]===\"=\"?(C=!0,E=g.substr(2)):b=[],g[0]===\">\"?b.push(1):b.push(-1)):g[0]===\"=\"?E=g.substr(1):g[0]===\"~\"&&(C=!0,E=g.substr(1)),b.indexOf(c.default.compareVersions(T,E,C))>-1},m.isOS=function(g){return this.getOSName(!0)===String(g).toLowerCase()},m.isPlatform=function(g){return this.getPlatformType(!0)===String(g).toLowerCase()},m.isEngine=function(g){return this.getEngineName(!0)===String(g).toLowerCase()},m.is=function(g,b){return b===void 0&&(b=!1),this.isBrowser(g,b)||this.isOS(g)||this.isPlatform(g)},m.some=function(g){var b=this;return g===void 0&&(g=[]),g.some(function(E){return b.is(E)})},h}();e.default=d,t.exports=e.default},92:function(t,e,n){e.__esModule=!0,e.default=void 0;var r,o=(r=n(17))&&r.__esModule?r:{default:r},i=/version\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(c){var u={name:\"Googlebot\"},d=o.default.getFirstMatch(/googlebot\\\\/(\\\\d+(\\\\.\\\\d+))/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/opera/i],describe:function(c){var u={name:\"Opera\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:opera)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/opr\\\\/|opios/i],describe:function(c){var u={name:\"Opera\"},d=o.default.getFirstMatch(/(?:opr|opios)[\\\\s/](\\\\S+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/SamsungBrowser/i],describe:function(c){var u={name:\"Samsung Internet for Android\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:SamsungBrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/Whale/i],describe:function(c){var u={name:\"NAVER Whale Browser\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:whale)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/MZBrowser/i],describe:function(c){var u={name:\"MZ Browser\"},d=o.default.getFirstMatch(/(?:MZBrowser)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/focus/i],describe:function(c){var u={name:\"Focus\"},d=o.default.getFirstMatch(/(?:focus)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/swing/i],describe:function(c){var u={name:\"Swing\"},d=o.default.getFirstMatch(/(?:swing)[\\\\s/](\\\\d+(?:\\\\.\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/coast/i],describe:function(c){var u={name:\"Opera Coast\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:coast)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/opt\\\\/\\\\d+(?:.?_?\\\\d+)+/i],describe:function(c){var u={name:\"Opera Touch\"},d=o.default.getFirstMatch(/(?:opt)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/yabrowser/i],describe:function(c){var u={name:\"Yandex Browser\"},d=o.default.getFirstMatch(/(?:yabrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/ucbrowser/i],describe:function(c){var u={name:\"UC Browser\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:ucbrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/Maxthon|mxios/i],describe:function(c){var u={name:\"Maxthon\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:Maxthon|mxios)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/epiphany/i],describe:function(c){var u={name:\"Epiphany\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:epiphany)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/puffin/i],describe:function(c){var u={name:\"Puffin\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:puffin)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/sleipnir/i],describe:function(c){var u={name:\"Sleipnir\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:sleipnir)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/k-meleon/i],describe:function(c){var u={name:\"K-Meleon\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/(?:k-meleon)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/micromessenger/i],describe:function(c){var u={name:\"WeChat\"},d=o.default.getFirstMatch(/(?:micromessenger)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/qqbrowser/i],describe:function(c){var u={name:/qqbrowserlite/i.test(c)?\"QQ Browser Lite\":\"QQ Browser\"},d=o.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/msie|trident/i],describe:function(c){var u={name:\"Internet Explorer\"},d=o.default.getFirstMatch(/(?:msie |rv:)(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/\\\\sedg\\\\//i],describe:function(c){var u={name:\"Microsoft Edge\"},d=o.default.getFirstMatch(/\\\\sedg\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/edg([ea]|ios)/i],describe:function(c){var u={name:\"Microsoft Edge\"},d=o.default.getSecondMatch(/edg([ea]|ios)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/vivaldi/i],describe:function(c){var u={name:\"Vivaldi\"},d=o.default.getFirstMatch(/vivaldi\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/seamonkey/i],describe:function(c){var u={name:\"SeaMonkey\"},d=o.default.getFirstMatch(/seamonkey\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/sailfish/i],describe:function(c){var u={name:\"Sailfish\"},d=o.default.getFirstMatch(/sailfish\\\\s?browser\\\\/(\\\\d+(\\\\.\\\\d+)?)/i,c);return d&&(u.version=d),u}},{test:[/silk/i],describe:function(c){var u={name:\"Amazon Silk\"},d=o.default.getFirstMatch(/silk\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/phantom/i],describe:function(c){var u={name:\"PhantomJS\"},d=o.default.getFirstMatch(/phantomjs\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/slimerjs/i],describe:function(c){var u={name:\"SlimerJS\"},d=o.default.getFirstMatch(/slimerjs\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/blackberry|\\\\bbb\\\\d+/i,/rim\\\\stablet/i],describe:function(c){var u={name:\"BlackBerry\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/blackberry[\\\\d]+\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/(web|hpw)[o0]s/i],describe:function(c){var u={name:\"WebOS Browser\"},d=o.default.getFirstMatch(i,c)||o.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/bada/i],describe:function(c){var u={name:\"Bada\"},d=o.default.getFirstMatch(/dolfin\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/tizen/i],describe:function(c){var u={name:\"Tizen\"},d=o.default.getFirstMatch(/(?:tizen\\\\s?)?browser\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/qupzilla/i],describe:function(c){var u={name:\"QupZilla\"},d=o.default.getFirstMatch(/(?:qupzilla)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/firefox|iceweasel|fxios/i],describe:function(c){var u={name:\"Firefox\"},d=o.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/electron/i],describe:function(c){var u={name:\"Electron\"},d=o.default.getFirstMatch(/(?:electron)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/MiuiBrowser/i],describe:function(c){var u={name:\"Miui\"},d=o.default.getFirstMatch(/(?:MiuiBrowser)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/chromium/i],describe:function(c){var u={name:\"Chromium\"},d=o.default.getFirstMatch(/(?:chromium)[\\\\s/](\\\\d+(\\\\.?_?\\\\d+)+)/i,c)||o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/chrome|crios|crmo/i],describe:function(c){var u={name:\"Chrome\"},d=o.default.getFirstMatch(/(?:chrome|crios|crmo)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/GSA/i],describe:function(c){var u={name:\"Google Search\"},d=o.default.getFirstMatch(/(?:GSA)\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:function(c){var u=!c.test(/like android/i),d=c.test(/android/i);return u&&d},describe:function(c){var u={name:\"Android Browser\"},d=o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/playstation 4/i],describe:function(c){var u={name:\"PlayStation 4\"},d=o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/safari|applewebkit/i],describe:function(c){var u={name:\"Safari\"},d=o.default.getFirstMatch(i,c);return d&&(u.version=d),u}},{test:[/.*/i],describe:function(c){var u=c.search(\"\\\\\\\\(\")!==-1?/^(.*)\\\\/(.*)[ \\\\t]\\\\((.*)/:/^(.*)\\\\/(.*) /;return{name:o.default.getFirstMatch(u,c),version:o.default.getSecondMatch(u,c)}}}];e.default=a,t.exports=e.default},93:function(t,e,n){e.__esModule=!0,e.default=void 0;var r,o=(r=n(17))&&r.__esModule?r:{default:r},i=n(18),a=[{test:[/Roku\\\\/DVP/],describe:function(c){var u=o.default.getFirstMatch(/Roku\\\\/DVP-(\\\\d+\\\\.\\\\d+)/i,c);return{name:i.OS_MAP.Roku,version:u}}},{test:[/windows phone/i],describe:function(c){var u=o.default.getFirstMatch(/windows phone (?:os)?\\\\s?(\\\\d+(\\\\.\\\\d+)*)/i,c);return{name:i.OS_MAP.WindowsPhone,version:u}}},{test:[/windows /i],describe:function(c){var u=o.default.getFirstMatch(/Windows ((NT|XP)( \\\\d\\\\d?.\\\\d)?)/i,c),d=o.default.getWindowsVersionName(u);return{name:i.OS_MAP.Windows,version:u,versionName:d}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\\\//],describe:function(c){var u={name:i.OS_MAP.iOS},d=o.default.getSecondMatch(/(Version\\\\/)(\\\\d[\\\\d.]+)/,c);return d&&(u.version=d),u}},{test:[/macintosh/i],describe:function(c){var u=o.default.getFirstMatch(/mac os x (\\\\d+(\\\\.?_?\\\\d+)+)/i,c).replace(/[_\\\\s]/g,\".\"),d=o.default.getMacOSVersionName(u),h={name:i.OS_MAP.MacOS,version:u};return d&&(h.versionName=d),h}},{test:[/(ipod|iphone|ipad)/i],describe:function(c){var u=o.default.getFirstMatch(/os (\\\\d+([_\\\\s]\\\\d+)*) like mac os x/i,c).replace(/[_\\\\s]/g,\".\");return{name:i.OS_MAP.iOS,version:u}}},{test:function(c){var u=!c.test(/like android/i),d=c.test(/android/i);return u&&d},describe:function(c){var u=o.default.getFirstMatch(/android[\\\\s/-](\\\\d+(\\\\.\\\\d+)*)/i,c),d=o.default.getAndroidVersionName(u),h={name:i.OS_MAP.Android,version:u};return d&&(h.versionName=d),h}},{test:[/(web|hpw)[o0]s/i],describe:function(c){var u=o.default.getFirstMatch(/(?:web|hpw)[o0]s\\\\/(\\\\d+(\\\\.\\\\d+)*)/i,c),d={name:i.OS_MAP.WebOS};return u&&u.length&&(d.version=u),d}},{test:[/blackberry|\\\\bbb\\\\d+/i,/rim\\\\stablet/i],describe:function(c){var u=o.default.getFirstMatch(/rim\\\\stablet\\\\sos\\\\s(\\\\d+(\\\\.\\\\d+)*)/i,c)||o.default.getFirstMatch(/blackberry\\\\d+\\\\/(\\\\d+([_\\\\s]\\\\d+)*)/i,c)||o.default.getFirstMatch(/\\\\bbb(\\\\d+)/i,c);return{name:i.OS_MAP.BlackBerry,version:u}}},{test:[/bada/i],describe:function(c){var u=o.default.getFirstMatch(/bada\\\\/(\\\\d+(\\\\.\\\\d+)*)/i,c);return{name:i.OS_MAP.Bada,version:u}}},{test:[/tizen/i],describe:function(c){var u=o.default.getFirstMatch(/tizen[/\\\\s](\\\\d+(\\\\.\\\\d+)*)/i,c);return{name:i.OS_MAP.Tizen,version:u}}},{test:[/linux/i],describe:function(){return{name:i.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:i.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(c){var u=o.default.getFirstMatch(/PlayStation 4[/\\\\s](\\\\d+(\\\\.\\\\d+)*)/i,c);return{name:i.OS_MAP.PlayStation4,version:u}}}];e.default=a,t.exports=e.default},94:function(t,e,n){e.__esModule=!0,e.default=void 0;var r,o=(r=n(17))&&r.__esModule?r:{default:r},i=n(18),a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(c){var u=o.default.getFirstMatch(/(can-l01)/i,c)&&\"Nova\",d={type:i.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return u&&(d.model=u),d}},{test:[/nexus\\\\s*(?:7|8|9|10).*/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\\\//],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:i.PLATFORMS_MAP.tablet}}},{test:function(c){var u=c.test(/ipod|iphone/i),d=c.test(/like (ipod|iphone)/i);return u&&!d},describe:function(c){var u=o.default.getFirstMatch(/(ipod|iphone)/i,c);return{type:i.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:u}}},{test:[/nexus\\\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(c){return c.getBrowserName(!0)===\"blackberry\"},describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(c){return c.getBrowserName(!0)===\"bada\"},describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(c){return c.getBrowserName()===\"windows phone\"},describe:function(){return{type:i.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(c){var u=Number(String(c.getOSVersion()).split(\".\")[0]);return c.getOSName(!0)===\"android\"&&u>=3},describe:function(){return{type:i.PLATFORMS_MAP.tablet}}},{test:function(c){return c.getOSName(!0)===\"android\"},describe:function(){return{type:i.PLATFORMS_MAP.mobile}}},{test:function(c){return c.getOSName(!0)===\"macos\"},describe:function(){return{type:i.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(c){return c.getOSName(!0)===\"windows\"},describe:function(){return{type:i.PLATFORMS_MAP.desktop}}},{test:function(c){return c.getOSName(!0)===\"linux\"},describe:function(){return{type:i.PLATFORMS_MAP.desktop}}},{test:function(c){return c.getOSName(!0)===\"playstation 4\"},describe:function(){return{type:i.PLATFORMS_MAP.tv}}},{test:function(c){return c.getOSName(!0)===\"roku\"},describe:function(){return{type:i.PLATFORMS_MAP.tv}}}];e.default=a,t.exports=e.default},95:function(t,e,n){e.__esModule=!0,e.default=void 0;var r,o=(r=n(17))&&r.__esModule?r:{default:r},i=n(18),a=[{test:function(c){return c.getBrowserName(!0)===\"microsoft edge\"},describe:function(c){if(/\\\\sedg\\\\//i.test(c))return{name:i.ENGINE_MAP.Blink};var u=o.default.getFirstMatch(/edge\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return{name:i.ENGINE_MAP.EdgeHTML,version:u}}},{test:[/trident/i],describe:function(c){var u={name:i.ENGINE_MAP.Trident},d=o.default.getFirstMatch(/trident\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:function(c){return c.test(/presto/i)},describe:function(c){var u={name:i.ENGINE_MAP.Presto},d=o.default.getFirstMatch(/presto\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:function(c){var u=c.test(/gecko/i),d=c.test(/like gecko/i);return u&&!d},describe:function(c){var u={name:i.ENGINE_MAP.Gecko},d=o.default.getFirstMatch(/gecko\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}},{test:[/(apple)?webkit\\\\/537\\\\.36/i],describe:function(){return{name:i.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(c){var u={name:i.ENGINE_MAP.WebKit},d=o.default.getFirstMatch(/webkit\\\\/(\\\\d+(\\\\.?_?\\\\d+)+)/i,c);return d&&(u.version=d),u}}];e.default=a,t.exports=e.default}});GTe=uq(KTe.exports),Rd={Initialized:\"initialized\",DisplayURI:\"display_uri\",ProviderUpdate:\"provider_update\",ConnectWithResponse:\"connectWithResponse\",ConnectionStatus:\"connection_status\",ServiceStatus:\"service_status\"},pg=class t{constructor({shouldSetOnWindow:e,connectionStream:n,shouldSendMetadata:r=!1,shouldShimWeb3:o,sdkInstance:i}){let a=new nq({connectionStream:n,shouldSendMetadata:r,shouldSetOnWindow:e,shouldShimWeb3:o,autoRequestAccounts:!1}),c=new Proxy(a,{deleteProperty:()=>!0});if(this.provider=c,this.sdkInstance=i,e&&typeof window<\"u\")try{u=a,window.ethereum=u,window.dispatchEvent(new Event(\"ethereum#initialized\"))}catch(d){Ve(\"[Ethereum] Unable to set global provider - window.ethereum may be read-only\",d)}var u;if(o&&typeof window<\"u\")try{(function(d,h=console){let m=!1,g=!1;if(!window.web3){let b=\"__isMetaMaskShim__\",E={currentProvider:d};Object.defineProperty(E,b,{value:!0,enumerable:!0,configurable:!1,writable:!1}),E=new Proxy(E,{get:(C,T,...R)=>(T!==\"currentProvider\"||m?T===\"currentProvider\"||T===b||g||(g=!0,h.error(\"MetaMask no longer injects web3. For details, see: https://docs.metamask.io/guide/provider-migration.html#replacing-window-web3\"),d.request({method:\"metamask_logWeb3ShimUsage\"}).catch(L=>{h.debug(\"MetaMask: Failed to log web3 shim usage.\",L)})):(m=!0,h.warn(\"You are accessing the MetaMask window.web3.currentProvider shim. This property is deprecated; use window.ethereum instead. For details, see: https://docs.metamask.io/guide/provider-migration.html#replacing-window-web3\")),Reflect.get(C,T,...R)),set:(...C)=>(h.warn(\"You are accessing the MetaMask window.web3 shim. This object is deprecated; use window.ethereum instead. For details, see: https://docs.metamask.io/guide/provider-migration.html#replacing-window-web3\"),Reflect.set(...C))}),Object.defineProperty(window,\"web3\",{value:E,enumerable:!1,configurable:!0,writable:!0})}})(this.provider)}catch(d){Ve(\"[Ethereum] Unable to shim web3 - window.web3 may be read-only\",d)}this.provider.on(\"display_uri\",d=>{this.sdkInstance.emit(Rd.DisplayURI,d)}),this.provider.on(\"_initialized\",()=>{let d={chainId:this.provider.getChainId(),isConnected:this.provider.isConnected(),isMetaMask:this.provider.isMetaMask,selectedAddress:this.provider.getSelectedAddress(),networkVersion:this.provider.getNetworkVersion()};this.sdkInstance.emit(Rd.Initialized,d),Ve(\"[Ethereum: constructor()] provider initialized\",d)})}static init(e){var n;return Ve(\"[Ethereum: init()] Initializing Ethereum service\"),this.instance=new t(e),(n=this.instance)===null||n===void 0?void 0:n.provider}static destroy(){}static getInstance(){var e;if(!(!((e=this.instance)===null||e===void 0)&&e.provider))throw new Error(\"Ethereum instance not intiialized - call Ethereum.factory first.\");return this.instance}static getProvider(){var e;if(!(!((e=this.instance)===null||e===void 0)&&e.provider))throw new Error(\"Ethereum instance not intiialized - call Ethereum.factory first.\");return this.instance.provider}},tq=class t{constructor({useDeepLink:e,preferredOpenLink:n,debug:r=!1}){this.state={platformType:void 0,useDeeplink:!1,preferredOpenLink:void 0,debug:!1},this.state.platformType=this.getPlatformType(),this.state.useDeeplink=e,this.state.preferredOpenLink=n,this.state.debug=r}openDeeplink(e,n,r){return function(o,i,a,c){let{state:u}=o;Ve(`[PlatfformManager: openDeeplink()] universalLink --> ${i}`),Ve(`[PlatfformManager: openDeeplink()] deepLink --> ${a}`);try{if(u.preferredOpenLink)return void u.preferredOpenLink(u.useDeeplink?a:i,c);if(Ve(`[PlatfformManager: openDeeplink()] open link now useDeepLink=${u.useDeeplink} link=${u.useDeeplink?a:i}`),u.useDeeplink)typeof window<\"u\"&&(window.location.href=a);else if(typeof document<\"u\"){let d=document.createElement(\"a\");d.href=i,d.target=\"_self\",d.rel=\"noreferrer noopener\",d.click()}}catch(d){console.log(\"[PlatfformManager: openDeeplink()] can\\'t open link\",d)}}(this,e,n,r)}isReactNative(){var e;return this.isNotBrowser()&&typeof window<\"u\"&&window?.navigator&&((e=window.navigator)===null||e===void 0?void 0:e.product)===\"ReactNative\"}isMetaMaskInstalled(){return function(){let e=pg.getProvider()||window?.ethereum;return Ve(`[PlatfformManager: isMetaMaskInstalled()] isMetaMask=${e?.isMetaMask} isConnected=${e?.isConnected()}`),e?.isMetaMask&&e?.isConnected()}()}isDesktopWeb(){return this.isBrowser()&&!this.isMobileWeb()}isMobile(){var e,n;let r=GTe.parse(window.navigator.userAgent);return((e=r?.platform)===null||e===void 0?void 0:e.type)===\"mobile\"||((n=r?.platform)===null||n===void 0?void 0:n.type)===\"tablet\"}isSecure(){return this.isReactNative()||this.isMobileWeb()}isMetaMaskMobileWebView(){return typeof window<\"u\"&&!!window.ReactNativeWebView&&!!navigator.userAgent.endsWith(\"MetaMaskMobile\")}isMobileWeb(){return this.state.platformType===Al.MobileWeb}static isNotBrowser(){var e;return typeof window>\"u\"||!window?.navigator||Id!==void 0&&((e=Id?.navigator)===null||e===void 0?void 0:e.product)===\"ReactNative\"||navigator?.product===\"ReactNative\"}isNotBrowser(){return t.isNotBrowser()}static isBrowser(){return!this.isNotBrowser()}isBrowser(){return t.isBrowser()}isNodeJS(){return this.isNotBrowser()&&!this.isReactNative()}isUseDeepLink(){return this.state.useDeeplink}getPlatformType(){return function(e){let{state:n}=e;return n.platformType?n.platformType:e.isReactNative()?Al.ReactNative:e.isNotBrowser()?Al.NonBrowser:e.isMetaMaskMobileWebView()?Al.MetaMaskMobileWebview:e.isMobile()?Al.MobileWeb:Al.DesktopWeb}(this)}},ZTe=t=>ct(void 0,void 0,void 0,function*(){if(tq.isBrowser()){let{StorageManagerWeb:n}=yield Promise.resolve().then(function(){return Qst});return new n(t)}let e={persistChannelConfig:()=>ct(void 0,void 0,void 0,function*(){}),getPersistedChannelConfig:()=>ct(void 0,void 0,void 0,function*(){}),persistAccounts:()=>ct(void 0,void 0,void 0,function*(){}),getCachedAccounts:()=>ct(void 0,void 0,void 0,function*(){return[]}),persistChainId:()=>ct(void 0,void 0,void 0,function*(){}),getCachedChainId:()=>ct(void 0,void 0,void 0,function*(){}),terminate:()=>ct(void 0,void 0,void 0,function*(){})};return Promise.resolve(e)}),nq=class extends _st{constructor({connectionStream:e,shouldSendMetadata:n,autoRequestAccounts:r=!1}){super(e,{logger:console,maxEventListeners:100,shouldSendMetadata:n}),this.state={accounts:null,autoRequestAccounts:!1,providerStateRequested:!1,chainId:\"\",networkVersion:\"\"},Ve(`[SDKProvider: constructor()] autoRequestAccounts=${r}`),this.state.autoRequestAccounts=r}forceInitializeState(){return ct(this,void 0,void 0,function*(){return Ve(`[SDKProvider: forceInitializeState()] autoRequestAccounts=${this.state.autoRequestAccounts}`),this._initializeStateAsync()})}_setConnected(){Ve(\"[SDKProvider: _setConnected()] Setting connected state\"),this._state.isConnected=!0}getState(){return this._state}getSDKProviderState(){return this.state}getSelectedAddress(){var e;let{accounts:n}=this._state;return n&&n.length!==0?((e=n[0])===null||e===void 0?void 0:e.toLowerCase())||\"\":(Ve(\"[SDKProvider: getSelectedAddress] No accounts found\"),null)}getChainId(){return this.state.chainId}getNetworkVersion(){return this.state.networkVersion}setSDKProviderState(e){this.state=Object.assign(Object.assign({},this.state),e)}handleAccountsChanged(e,n){return this._handleAccountsChanged(e,n)}handleDisconnect({terminate:e=!1}){(function({terminate:n=!1,instance:r}){let{state:o}=r;Ve(`[SDKProvider: handleDisconnect()] cleaning up provider state terminate=${n}`,r),n&&(r._state.accounts=null,r._state.isUnlocked=!1,r._state.isPermanentlyDisconnected=!0,r._state.initialized=!1),r._handleAccountsChanged([]),r._state.isConnected=!1,r.emit(\"disconnect\",WTe.ethErrors.provider.disconnected()),o.providerStateRequested=!1})({terminate:e,instance:this})}_initializeStateAsync(){return ct(this,void 0,void 0,function*(){return function(e){var n,r;return ct(this,void 0,void 0,function*(){e.state===void 0&&(e.state={accounts:null,autoRequestAccounts:!1,providerStateRequested:!1,chainId:\"\"});let{state:o}=e,i;if(o.providerStateRequested)Ve(\"[SDKProvider: initializeStateAsync()] initialization already in progress\");else{let a;o.providerStateRequested=!0;let c=null,u=!1,d=!1,h=yield ZTe({enabled:!0});if(h){let m=yield h.getPersistedChannelConfig({});u=(n=m?.relayPersistence)!==null&&n!==void 0&&n,a=yield h.getCachedChainId();let g=yield h.getCachedAccounts();g.length>0&&(c=g[0])}if(Ve(`[SDKProvider: initializeStateAsync()] relayPersistence=${u}`,{relayPersistence:u,cachedChainId:a,cachedSelectedAddress:c}),u)if(a&&c)i={accounts:[c],chainId:a,isUnlocked:!1},d=!0;else try{i=yield e.request({method:\"metamask_getProviderState\"})}catch(m){return e._log.error(\"MetaMask: Failed to get initial state. Please report this bug.\",m),void(o.providerStateRequested=!1)}if(((r=i?.accounts)===null||r===void 0?void 0:r.length)===0)if(e.getSelectedAddress())i.accounts=[e.getSelectedAddress()];else{Ve(\"[SDKProvider: initializeStateAsync()] Fetch accounts remotely.\");let m=yield e.request({method:\"eth_requestAccounts\",params:[]});i.accounts=m}e._initializeState(i),o.providerStateRequested=!1,d&&(e._state.isConnected=!0,e.emit(\"connect\",{chainId:i?.chainId}))}})}(this)})}_initializeState(e){return Ve(\"[SDKProvider: _initializeState()]\",e),function(n,r,o){return Ve(\"[SDKProvider: initializeState()] set state._initialized to false\"),n._state.initialized=!1,r(o)}(this,super._initializeState.bind(this),e)}_handleChainChanged({chainId:e,networkVersion:n}={}){this.state.chainId=e,this.state.networkVersion=n,function({instance:r,chainId:o,networkVersion:i,superHandleChainChanged:a}){Ve(`[SDKProvider: handleChainChanged()] chainId=${o} networkVersion=${i}`);let c=i;i||(Ve(\"[SDKProvider: handleChainChanged()] forced network version to prevent provider error\"),c=\"1\"),r._state.isConnected=!0,r.emit(\"connect\",{chainId:o}),a({chainId:o,networkVersion:c})}({instance:this,chainId:e,networkVersion:n,superHandleChainChanged:super._handleChainChanged.bind(this)})}},NS={name:\"@metamask/sdk\",version:\"0.32.0\",description:\"\",homepage:\"https://github.com/MetaMask/metamask-sdk#readme\",bugs:{url:\"https://github.com/MetaMask/metamask-sdk/issues\"},repository:{type:\"git\",url:\"https://github.com/MetaMask/metamask-sdk\",directory:\"packages/sdk\"},main:\"dist/node/cjs/metamask-sdk.js\",module:\"dist/browser/es/metamask-sdk.js\",browser:\"dist/browser/es/metamask-sdk.js\",unpkg:\"dist/browser/umd/metamask-sdk.js\",\"react-native\":\"dist/react-native/es/metamask-sdk.js\",types:\"dist/types/src/index.d.ts\",sideEffects:!1,files:[\"/dist\"],scripts:{\"build:types\":\"tsc --project tsconfig.build.json --emitDeclarationOnly --outDir dist/types\",build:\"yarn build:types && rollup -c --bundleConfigAsCjs\",\"build:clean\":\"yarn clean && yarn build\",\"build:post-tsc\":\"echo \\'N/A\\'\",\"build:pre-tsc\":\"echo \\'N/A\\'\",typecheck:\"tsc --noEmit\",clean:\"rimraf ./dist\",size:\"node bundle-size && size-limit\",lint:\"yarn lint:eslint && yarn lint:misc --check\",\"lint:changelog\":\"../../scripts/validate-changelog.sh @metamask/sdk\",\"lint:eslint\":\"eslint . --cache --ext js,ts\",\"lint:fix\":\"yarn lint:eslint --fix && yarn lint:misc --write\",\"lint:misc\":\"prettier \\'**/*.json\\' \\'**/*.md\\' \\'!CHANGELOG.md\\' --ignore-path ../../.gitignore\",prepack:\"../../scripts/prepack.sh\",\"publish:preview\":\"yarn npm publish --tag preview\",reset:\"yarn clean && rimraf ./node_modules/\",test:\\'jest --testPathIgnorePatterns \"/e2e/\"\\',\"test:coverage\":\\'jest --coverage --testPathIgnorePatterns \"/e2e/\"\\',\"test:e2e\":\\'jest --testPathPattern \"/e2e/\"\\',\"test:ci\":\\'jest --coverage --passWithNoTests --setupFilesAfterEnv ./jest-preload.js --testPathIgnorePatterns \"/e2e/\"\\',\"test:dev\":\\'jest -c ./jest.config.ts --detectOpenHandles  --testPathIgnorePatterns \"/e2e/\"\\',watch:\"rollup -c -w\",dev:\\'concurrently \"tsc --watch\" \"rollup -c -w --bundleConfigAsCjs\"\\',\"build:dev\":\"yarn build:types && NODE_ENV=dev rollup -c --bundleConfigAsCjs\"},dependencies:{\"@babel/runtime\":\"^7.26.0\",\"@metamask/onboarding\":\"^1.0.1\",\"@metamask/providers\":\"16.1.0\",\"@metamask/sdk-communication-layer\":\"workspace:*\",\"@metamask/sdk-install-modal-web\":\"workspace:*\",\"@paulmillr/qr\":\"^0.2.1\",bowser:\"^2.9.0\",\"cross-fetch\":\"^4.0.0\",debug:\"^4.3.4\",eciesjs:\"^0.4.11\",\"eth-rpc-errors\":\"^4.0.3\",eventemitter2:\"^6.4.9\",\"obj-multiplex\":\"^1.0.0\",pump:\"^3.0.0\",\"readable-stream\":\"^3.6.2\",\"socket.io-client\":\"^4.5.1\",tslib:\"^2.6.0\",util:\"^0.12.4\",uuid:\"^8.3.2\"},devDependencies:{\"@jest/globals\":\"^29.3.1\",\"@lavamoat/allow-scripts\":\"^2.3.1\",\"@metamask/auto-changelog\":\"3.1.0\",\"@metamask/eslint-config\":\"^6.0.0\",\"@metamask/eslint-config-nodejs\":\"^6.0.0\",\"@metamask/eslint-config-typescript\":\"^6.0.0\",\"@react-native-async-storage/async-storage\":\"^1.19.6\",\"@rollup/plugin-alias\":\"^5.1.1\",\"@rollup/plugin-commonjs\":\"^25.0.7\",\"@rollup/plugin-json\":\"^6.0.0\",\"@rollup/plugin-node-resolve\":\"^15.0.2\",\"@rollup/plugin-replace\":\"^6.0.1\",\"@rollup/plugin-terser\":\"^0.4.1\",\"@size-limit/preset-big-lib\":\"^11.0.2\",\"@types/dom-screen-wake-lock\":\"^1.0.2\",\"@types/node\":\"^20.1.3\",\"@types/pump\":\"^1.1.1\",\"@types/qrcode-terminal\":\"^0.12.0\",\"@types/uuid\":\"^10.0.0\",\"@typescript-eslint/eslint-plugin\":\"^4.26.0\",\"@typescript-eslint/parser\":\"^4.26.0\",\"browserify-zlib\":\"^0.2.0\",buffer:\"^6.0.3\",concurrently:\"^9.1.2\",\"crypto-browserify\":\"^3.12.0\",eslint:\"^7.30.0\",\"eslint-config-prettier\":\"^8.3.0\",\"eslint-plugin-import\":\"^2.23.4\",\"eslint-plugin-jest\":\"^24.4.0\",\"eslint-plugin-jsdoc\":\"^36.1.0\",\"eslint-plugin-node\":\"^11.1.0\",\"eslint-plugin-prettier\":\"^3.4.0\",\"https-browserify\":\"^1.0.0\",jest:\"^29.3.1\",\"jest-environment-jsdom\":\"^29.3.1\",prettier:\"^2.3.0\",process:\"^0.11.10\",rimraf:\"^4.4.0\",rollup:\"^4.26.0\",\"rollup-plugin-analyzer\":\"^4.0.0\",\"rollup-plugin-jscc\":\"^2.0.0\",\"rollup-plugin-natives\":\"^0.7.5\",\"rollup-plugin-node-builtins\":\"^2.1.2\",\"rollup-plugin-polyfill-node\":\"^0.13.0\",\"rollup-plugin-sizes\":\"^1.0.6\",\"rollup-plugin-typescript2\":\"^0.31.2\",\"rollup-plugin-visualizer\":\"^5.12.0\",\"size-limit\":\"^11.0.2\",\"stream-browserify\":\"^3.0.0\",\"stream-http\":\"^3.2.0\",\"ts-jest\":\"^29.0.3\",\"ts-node\":\"^10.9.1\",typescript:\"^4.3.2\",url:\"^0.11.0\",webpack:\"^5.0.0\"},publishConfig:{access:\"public\",registry:\"https://registry.npmjs.org/\"},lavamoat:{allowScripts:{\"eciesjs>secp256k1\":!1,\"socket.io-client>engine.io-client>ws>bufferutil\":!1,\"socket.io-client>engine.io-client>ws>utf-8-validate\":!1,\"@metamask/sdk-communication-layer>bufferutil\":!1,\"@metamask/sdk-communication-layer>eciesjs>secp256k1\":!1,\"@metamask/sdk-communication-layer>utf-8-validate\":!1}}};(function(t){t.INPAGE=\"metamask-inpage\",t.CONTENT_SCRIPT=\"metamask-contentscript\",t.PROVIDER=\"metamask-provider\"})(jO||(jO={}));JCe=\"direct\",zO=\"https://metamask.app.link/connect\",HO=\"metamask://connect\",XCe={NAME:\"MetaMask\",RDNS:[\"io.metamask\",\"io.metamask.flask\"]},Tst=/(?:^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}$)|(?:^0{8}-0{4}-0{4}-0{4}-0{12}$)/u,yn={METAMASK_GETPROVIDERSTATE:\"metamask_getProviderState\",METAMASK_CONNECTSIGN:\"metamask_connectSign\",METAMASK_CONNECTWITH:\"metamask_connectWith\",METAMASK_OPEN:\"metamask_open\",METAMASK_BATCH:\"metamask_batch\",PERSONAL_SIGN:\"personal_sign\",WALLET_REQUESTPERMISSIONS:\"wallet_requestPermissions\",WALLET_REVOKEPERMISSIONS:\"wallet_revokePermissions\",WALLET_GETPERMISSIONS:\"wallet_getPermissions\",WALLET_WATCHASSET:\"wallet_watchAsset\",WALLET_ADDETHEREUMCHAIN:\"wallet_addEthereumChain\",WALLET_SWITCHETHETHEREUMCHAIN:\"wallet_switchEthereumChain\",ETH_REQUESTACCOUNTS:\"eth_requestAccounts\",ETH_ACCOUNTS:\"eth_accounts\",ETH_CHAINID:\"eth_chainId\",ETH_SENDTRANSACTION:\"eth_sendTransaction\",ETH_SIGNTYPEDDATA:\"eth_signTypedData\",ETH_SIGNTYPEDDATA_V3:\"eth_signTypedData_v3\",ETH_SIGNTYPEDDATA_V4:\"eth_signTypedData_v4\",ETH_SIGNTRANSACTION:\"eth_signTransaction\",ETH_SIGN:\"eth_sign\",PERSONAL_EC_RECOVER:\"personal_ecRecover\"},rq={[yn.ETH_REQUESTACCOUNTS]:!0,[yn.ETH_SENDTRANSACTION]:!0,[yn.ETH_SIGNTRANSACTION]:!0,[yn.ETH_SIGN]:!0,[yn.PERSONAL_SIGN]:!0,[yn.ETH_ACCOUNTS]:!1,[yn.ETH_CHAINID]:!1,[yn.PERSONAL_SIGN]:!0,[yn.ETH_SIGNTYPEDDATA]:!0,[yn.ETH_SIGNTYPEDDATA_V3]:!0,[yn.ETH_SIGNTYPEDDATA_V4]:!0,[yn.WALLET_REQUESTPERMISSIONS]:!0,[yn.WALLET_GETPERMISSIONS]:!0,[yn.WALLET_WATCHASSET]:!0,[yn.WALLET_ADDETHEREUMCHAIN]:!0,[yn.WALLET_SWITCHETHETHEREUMCHAIN]:!0,[yn.METAMASK_CONNECTSIGN]:!0,[yn.METAMASK_CONNECTWITH]:!0,[yn.PERSONAL_EC_RECOVER]:!0,[yn.METAMASK_BATCH]:!0,[yn.METAMASK_OPEN]:!0},Rst=Object.keys(rq).map(t=>t.toLowerCase()),YTe=[\"eth_signTypedData\",\"eth_signTypedData_v3\",\"eth_signTypedData_v4\",\"eth_sign\"].map(t=>t.toLowerCase()),Nne=\".sdk-comm\",oq=\"providerType\",mre=\".MMSDK_cached_address\",gre=\".MMSDK_cached_chainId\",h1={CHAIN_CHANGED:\"chainChanged\",ACCOUNTS_CHANGED:\"accountsChanged\",DISCONNECT:\"disconnect\",CONNECT:\"connect\",CONNECTED:\"connected\"},Ist=1e6;(function(t){t.TERMINATE=\"terminate\",t.EXTENSION=\"extension\",t.INITIALIZED=\"initialized\"})(mg||(mg={}));Ost=typeof window<\"u\"&&window.localStorage;yre=class extends EA.Duplex{constructor({name:e,remote:n,deeplinkProtocol:r,platformManager:o}){super({objectMode:!0}),this.state={_name:null,remote:null,deeplinkProtocol:!1,platformManager:null},this.state._name=e,this.state.remote=n,this.state.deeplinkProtocol=r,this.state.platformManager=o,this._onMessage=this._onMessage.bind(this),this.state.remote.on(vt.MESSAGE,this._onMessage)}_write(e,n,r){return ct(this,void 0,void 0,function*(){return Mst(this,e,0,r)})}_read(){}_onMessage(e){return function(n,r){try{if(Ve(\"[RCPMS: onMessage()] message\",r),!r||typeof r!=\"object\"||typeof r?.data!=\"object\")return;if(!r?.name)return void Ve(\"[RCPMS: onMessage()] ignore message without name\",r);if(r?.name!==jO.PROVIDER)return void Ve(`[RCPMS: onMessage()] ignore message with wrong name message=${r}`);if(at.isBuffer(r)){let o=at.from(r);n.push(o)}else n.push(r)}catch(o){Ve(`[RCPMS: onMessage()] ignore message error err=${o}`)}}(this,e)}start(){}},t8e=1,QTe=t=>new Promise(e=>{setTimeout(()=>{e(!0)},t)}),Nst=({checkInstallationOnAllCalls:t=!1,communicationLayerPreference:e,injectProvider:n,shouldShimWeb3:r,platformManager:o,installer:i,sdk:a,remoteConnection:c,debug:u})=>ct(void 0,void 0,void 0,function*(){var d,h;let m=(({name:ae,remoteConnection:V})=>{if(!V||!V?.getConnector())throw new Error(\"Missing remote connection parameter\");return new yre({name:ae,remote:V?.getConnector(),deeplinkProtocol:V?.state.deeplinkProtocol,platformManager:V?.getPlatformManager()})})({name:jO.INPAGE,target:jO.CONTENT_SCRIPT,platformManager:o,communicationLayerPreference:e,remoteConnection:c}),g=o.getPlatformType(),b=a.options.dappMetadata,E=`Sdk/Javascript SdkVersion/${NS.version} Platform/${g} dApp/${(d=b.url)!==null&&d!==void 0?d:b.name} dAppTitle/${b.name}`,C=null,T=null,R=(h=a.options.storage)===null||h===void 0?void 0:h.storageManager;if(R){try{let ae=yield R.getCachedAccounts();ae.length>0&&(C=ae[0])}catch(ae){console.error(`[initializeMobileProvider] failed to get cached addresses: ${ae}`)}try{let ae=yield R.getCachedChainId();ae&&(T=ae)}catch(ae){console.error(`[initializeMobileProvider] failed to parse cached chainId: ${ae}`)}}Ve(`[initializeMobileProvider] cachedAccountAddress: ${C}, cachedChainId: ${T}`);let L=!(!n||g===Al.NonBrowser||g===Al.ReactNative),D=pg.init({shouldSetOnWindow:L,connectionStream:m,shouldShimWeb3:r,sdkInstance:a}),G=!1,W=ae=>{G=ae},J=()=>G,ne=(ae,V,$,F)=>ct(void 0,void 0,void 0,function*(){var _,O,z,N,B,j,q,H,I;let U=pg.getProvider();if(G){U.emit(\"display_uri\",c?.state.qrcodeLink||\"\"),c?.showActiveModal();let qe=J();for(;qe;){let wt=J(),Ge=c?.isAuthorized();qe=wt&&!Ge,Ve(`[initializeMobileProvider: sendRequest()] waiting for initialization to complete - initializing: ${wt} authorized: ${Ge}`),yield QTe(1e3)}return Ve(\"[initializeMobileProvider: sendRequest()] initial method completed -- prevent installation and call provider\"),$(...V)}let X=o.isMetaMaskInstalled(),ee=c?.isConnected(),se=null,pe=null,ye=null;if(se=(_=U.getSelectedAddress())!==null&&_!==void 0?_:C,ye=U.getChainId()||T,se&&R&&se!==C&&R.persistAccounts([se]).catch(qe=>{console.error(`[initializeMobileProvider] failed to persist account: ${qe}`)}),ye&&(T=ye,R&&R.persistChainId(ye).catch(qe=>{console.error(`[initializeMobileProvider] failed to persist chainId: ${qe}`)})),Ve(\"[initializeMobileProvider: sendRequest()]\",{selectedAddress:se,chainId:ye}),F&&Ve(`[initializeMobileProvider: sendRequest()] method=${ae} ongoing=${G} selectedAddress=${se} isInstalled=${X} checkInstallationOnAllCalls=${t} socketConnected=${ee}`),se&&ae.toLowerCase()===yn.ETH_ACCOUNTS.toLowerCase())return[se];if(ye&&ae.toLowerCase()===yn.ETH_CHAINID.toLowerCase())return ye;let xe=[yn.ETH_REQUESTACCOUNTS,yn.WALLET_REQUESTPERMISSIONS,yn.METAMASK_CONNECTSIGN,yn.METAMASK_CONNECTWITH],_e=!rq[ae],Me=(O=a.options.readonlyRPCMap)===null||O===void 0?void 0:O[ye];if(Me&&_e)try{let qe=(z=V?.[0])===null||z===void 0?void 0:z.params,wt=yield(({rpcEndpoint:Ge,method:ht,sdkInfo:Ct,params:dt})=>ct(void 0,void 0,void 0,function*(){let Ze=JSON.stringify({jsonrpc:\"2.0\",method:ht,params:dt,id:(t8e+=1,t8e)}),rn={Accept:\"application/json\",\"Content-Type\":\"application/json\"},zt;Ge.includes(\"infura\")&&(rn[\"Metamask-Sdk-Info\"]=Ct);try{zt=yield(0,Rre.default)(Ge,{method:\"POST\",headers:rn,body:Ze})}catch(Bt){throw Bt instanceof Error?new Error(`Failed to fetch from RPC: ${Bt.message}`):new Error(`Failed to fetch from RPC: ${Bt}`)}if(!zt.ok)throw new Error(`Server responded with a status of ${zt.status}`);return(yield zt.json()).result}))({rpcEndpoint:Me,sdkInfo:E,method:ae,params:qe||[]});return F&&Ve(`initializeProvider::ReadOnlyRPCResponse ${wt}`),wt}catch(qe){console.warn(`[initializeMobileProvider: sendRequest()] method=${ae} readOnlyRPCRequest failed:`,qe)}if((!X||X&&!ee)&&ae!==yn.METAMASK_GETPROVIDERSTATE){let qe=((N=V?.[0])===null||N===void 0?void 0:N.params)||[];if(xe.indexOf(ae)!==-1||t){W(!0);let wt=ae===yn.METAMASK_CONNECTWITH,Ge=`${Date.now()}`;try{yield i.start({wait:!1,connectWith:wt?{method:ae,id:Ge,params:qe}:void 0}),yield new Promise((ht,Ct)=>{c?.isAuthorized()&&(Ve(\"[initializeMobileProvider: sendRequest()] already authorized\"),ht(!0)),c?.getConnector().once(vt.AUTHORIZED,()=>{ht(!0)}),a.once(vt.PROVIDER_UPDATE,dt=>{Ve(`[initializeMobileProvider: sendRequest()] PROVIDER_UPDATE --- remote provider request interupted type=${dt}`),dt===mg.EXTENSION?Ct(vt.PROVIDER_UPDATE):Ct(new Error(\"Connection Terminated\"))})})}catch(ht){if(mg.EXTENSION===ht){if(Ve(`[initializeMobileProvider: sendRequest()] extension provider detect: re-create ${ae} on the active provider`),ae.toLowerCase()===yn.METAMASK_CONNECTSIGN.toLowerCase()){let Ct=yield(B=a.getProvider())===null||B===void 0?void 0:B.request({method:yn.ETH_REQUESTACCOUNTS,params:[]});if(!Ct.length)throw new Error(\"SDK state invalid -- undefined accounts\");let dt=yield(j=a.getProvider())===null||j===void 0?void 0:j.request({method:yn.PERSONAL_SIGN,params:[qe[0],Ct[0]]});return a.emit(Rd.ConnectWithResponse,dt),dt}if(ae.toLowerCase()===yn.METAMASK_CONNECTWITH.toLowerCase()){let[Ct]=qe,dt=yield(({method:Ze,sdk:rn,params:zt})=>ct(void 0,void 0,void 0,function*(){var Bt,Mt,qt,Wt;if(!rn.isExtensionActive())throw new Error(\"SDK state invalid -- extension is not active\");Ve(\"[MetaMaskProvider: extensionConnectWithOverwrite()] Overwriting request method\",Ze,zt);let zn=yield(Bt=rn.getProvider())===null||Bt===void 0?void 0:Bt.request({method:yn.ETH_REQUESTACCOUNTS,params:[]});if(!zn.length)throw new Error(\"SDK state invalid -- undefined accounts\");if(Ze?.toLowerCase()===yn.PERSONAL_SIGN.toLowerCase()){let Mn={method:Ze,params:[zt[0],zn[0]]};return yield(Mt=rn.getProvider())===null||Mt===void 0?void 0:Mt.request(Mn)}if(Ze?.toLowerCase()===yn.ETH_SENDTRANSACTION.toLowerCase()){let Mn={method:Ze,params:[Object.assign(Object.assign({},zt[0]),{from:zn[0]})]};return yield(qt=rn.getProvider())===null||qt===void 0?void 0:qt.request(Mn)}return YTe.includes(Ze.toLowerCase())?(console.warn(`MetaMaskSDK connectWith method=${Ze} -- not handled by the extension -- call separately`),zn):yield(Wt=rn.getProvider())===null||Wt===void 0?void 0:Wt.request({method:Ze,params:zt})}))({method:Ct.method,sdk:a,params:Ct.params});return a.emit(Rd.ConnectWithResponse,dt),dt}return Ve(`[initializeMobileProvider: sendRequest()] sending \\'${ae}\\' on active provider`,qe),yield(q=a.getProvider())===null||q===void 0?void 0:q.request({method:ae,params:qe})}throw ht===vt.REJECTED?(c?.closeModal(),(H=a.getProvider())===null||H===void 0||H.handleDisconnect({terminate:!1}),Object.assign(new Error(\"User rejected connection\"),{code:4001})):(Ve(`[initializeMobileProvider: sendRequest()] failed to start installer: ${ht}`),ht)}finally{W(!1)}if(ae===yn.ETH_REQUESTACCOUNTS)return pe=yield new Promise(ht=>{let Ct=setInterval(()=>{let{accounts:dt}=U.getState();dt&&(clearInterval(Ct),ht(dt))},100)}),Ve(`[initializeMobileProvider: sendRequest()] selectedAddress: ${se} --- SKIP rpc call`),pe;if(ae===yn.METAMASK_CONNECTWITH)try{let ht=0,Ct=5,dt=({resolve:Bt,reject:Mt})=>{ht+=1;let qt=c?.getConnector().getRPCMethodTracker(),Wt=qt?.[Ge];return Ve(`TRACKER: update method ${Ge}`,Wt),Wt?.result?(Ve(\"[initializeMobileProvider: sendRequest()] found result\",Wt.result),a.emit(Rd.ConnectWithResponse,Wt.result),void Bt(Wt.result)):Wt?.error?(Ve(\"[initializeMobileProvider: sendRequest()] found error\",Wt.error),void Mt(Wt.error)):ht>=Ct?(Ve(\"[initializeMobileProvider: sendRequest()] max message count reached without result\"),void Mt(new Error(\"Max message count reached without result\"))):void Ve(\"[initializeMobileProvider: sendRequest()] not found yet, need to wait for next update\")},Ze,rn,zt=yield new Promise((Bt,Mt)=>{let qt=c?.getConnector().getRPCMethodTracker();Ve(`TRACKER: method ${Ge}`,qt),qt?.[Ge].result?(Ve(\"[initializeMobileProvider: sendRequest()] found result\",qt?.[Ge].result),Bt(qt?.[Ge].result)):qt?.[Ge].error&&(Ve(\"[initializeMobileProvider: sendRequest()] found error\",qt?.[Ge].error),Mt(qt?.[Ge].error)),rn=()=>dt({resolve:Bt,reject:Mt}),Ze=c?.getConnector().on(vt.RPC_UPDATE,rn)});return rn&&Ze?.off(vt.RPC_UPDATE,rn),Ve(\"TRACKER: result\",zt),zt}catch(ht){throw Ve(\"[initializeMobileProvider: sendRequest()] error:\",ht),ht}return V[0]&&typeof V[0]==\"object\"&&(V[0].params={__triggeredInstaller:!0,wrappedParams:V[0].params}),$(...V)}if(o.isSecure()&&rq[ae])return $(...V);if(a.isExtensionActive())return Ve(`[initializeMobileProvider: sendRequest()] EXTENSION active - redirect request \\'${ae}\\' to it`,V,qe),yield(I=a.getProvider())===null||I===void 0?void 0:I.request({method:ae,params:qe});throw Ve(`[initializeMobileProvider: sendRequest()] method=${ae} --- skip --- not connected/installed`),new Error(\"MetaMask is not connected/installed, please call eth_requestAccounts to connect first.\")}try{let qe=yield $(...V);if(Ve(`[initializeMobileProvider: sendRequest()] method=${ae} rpcResponse`,qe),ae===yn.WALLET_REQUESTPERMISSIONS){let wt=qe.reduce((Ge,ht)=>{var Ct;if(ht.parentCapability===\"eth_accounts\"){let dt=(Ct=ht.caveats.find(Ze=>Ze.type===\"restrictReturnedAccounts\"))===null||Ct===void 0?void 0:Ct.value;dt&&Ge.push(...dt)}return Ge},[]);Ve(\"[initializeMobileProvider: sendRequest()] accountsToPersist:\",wt),wt.length>0&&(U.handleAccountsChanged(wt,!1),R?.persistAccounts(wt))}return qe}catch(qe){throw console.error(\"[initializeMobileProvider: sendRequest()] error:\",qe),qe}}),{request:ie}=D;D.request=(...ae)=>ct(void 0,void 0,void 0,function*(){return ne(ae?.[0].method,ae,ie,u)});let{send:Z}=D;return D.send=(...ae)=>ct(void 0,void 0,void 0,function*(){return ne(ae?.[0],ae,Z,u)}),Ve(\"[initializeMobileProvider: sendRequest()] metamaskStream.start()\"),m.start(),D});Bst=\"sdk\",bre=class{constructor({serverUrl:e,enabled:n,originatorInfo:r}){this.serverURL=RS,this.serverURL=e,this.originatorInfo=r,this.enabled=n==null||n}send({event:e,params:n}){if(!this.enabled)return;let r=Object.assign(Object.assign({id:Bst,event:e,sdkVersion:NS.version},this.originatorInfo),{params:n});Ve(`[Analytics: send()] event: ${e}`,r),Yv(r,this.serverURL).catch(o=>{Ve(`[Analytics: send()] error: ${o}`)})}},Dst=()=>{if(typeof document>\"u\")return;let t,e=document.getElementsByTagName(\"link\");for(let n=0;n<e.length;n++)e[n].getAttribute(\"rel\")!==\"icon\"&&e[n].getAttribute(\"rel\")!==\"shortcut icon\"||(t=e[n].getAttribute(\"href\"));return t},Fst=163400;vre=({provider:t,sdkInstance:e})=>{if(\"state\"in t)throw new Error(\"INVALID EXTENSION PROVIDER\");return new Proxy(t,{get:(n,r)=>r===\"request\"?function(o){var i,a;return ct(this,void 0,void 0,function*(){Ve(\"[wrapExtensionProvider()] Overwriting request method\",o);let{method:c,params:u}=o,d=Rst.includes(c.toLowerCase()),{id:h,from:m}=n8e(e);if(d&&((i=e.analytics)===null||i===void 0||i.send({event:pa.SDK_RPC_REQUEST,params:{method:c,from:m,id:h}})),c===yn.METAMASK_BATCH&&Array.isArray(u))return(({target:b,args:E,trackEvent:C,sdkInstance:T})=>ct(void 0,void 0,void 0,function*(){var R,L;if(E.method!==\"metamask_batch\")throw new Error(\"Invalid usage\");let D=[],G=(R=E?.params)!==null&&R!==void 0?R:[];for(let ne of G){let ie=yield b?.request({method:ne.method,params:ne.params});D.push(ie)}let{id:W,from:J}=n8e(T);return C&&((L=T.analytics)===null||L===void 0||L.send({event:pa.SDK_RPC_REQUEST_DONE,params:{method:E.method,from:J,id:W}})),D}))({target:n,args:o,trackEvent:d,sdkInstance:e});if(c.toLowerCase()===yn.METAMASK_CONNECTSIGN.toLowerCase()&&Array.isArray(u))return(({target:b,params:E})=>ct(void 0,void 0,void 0,function*(){let C=yield b.request({method:yn.ETH_REQUESTACCOUNTS,params:[]});if(!C.length)throw new Error(\"SDK state invalid -- undefined accounts\");return yield b.request({method:yn.PERSONAL_SIGN,params:[E[0],C[0]]})}))({target:n,params:u});if(c.toLowerCase()===yn.METAMASK_CONNECTWITH.toLowerCase()&&Array.isArray(u))return(({target:b,params:E})=>ct(void 0,void 0,void 0,function*(){let[C]=E,T=C.method,R=C.params,L=yield b.request({method:yn.ETH_REQUESTACCOUNTS,params:[]});if(!L.length)throw new Error(\"SDK state invalid -- undefined accounts\");return T?.toLowerCase()===yn.PERSONAL_SIGN.toLowerCase()?yield b.request({method:T,params:[R[0],L[0]]}):T?.toLowerCase()===yn.ETH_SENDTRANSACTION.toLowerCase()?yield b.request({method:T,params:[Object.assign(Object.assign({},R[0]),{from:L[0]})]}):YTe.includes(T.toLowerCase())?(console.warn(`MetaMaskSDK connectWith method=${T} -- not handled by the extension -- call separately`),L):yield b.request({method:T,params:R})}))({target:n,params:u});let g;try{return g=yield n.request(o),g}finally{d&&((a=e.analytics)===null||a===void 0||a.send({event:pa.SDK_RPC_REQUEST_DONE,params:{method:c,from:m,id:h}}))}})}:r===\"getChainId\"?function(){return t.chainId}:r===\"getNetworkVersion\"?function(){return t.networkVersion}:r===\"getSelectedAddress\"?function(){return t.selectedAddress}:r===\"isConnected\"?function(){return t._state.isConnected}:n[r]})};(function(t){t.Announce=\"eip6963:announceProvider\",t.Request=\"eip6963:requestProvider\"})(sq||(sq={}));jst=t=>ct(void 0,void 0,void 0,function*(){let{options:e}=t,{infuraAPIKey:n}=e;if(!n)return;let r={\"0x1\":`https://mainnet.infura.io/v3/${n}`,\"0x5\":`https://goerli.infura.io/v3/${n}`,\"0xaa36a7\":`https://sepolia.infura.io/v3/${n}`,\"0xe708\":`https://linea-mainnet.infura.io/v3/${n}`,\"0xe704\":`https://linea-goerli.infura.io/v3/${n}`,\"0x89\":`https://polygon-mainnet.infura.io/v3/${n}`,\"0x13881\":`https://polygon-mumbai.infura.io/v3/${n}`,\"0x45\":`https://optimism-mainnet.infura.io/v3/${n}`,\"0x1a4\":`https://optimism-goerli.infura.io/v3/${n}`,\"0xa4b1\":`https://arbitrum-mainnet.infura.io/v3/${n}`,\"0x66eed\":`https://arbitrum-goerli.infura.io/v3/${n}`,\"0x2a15c308d\":`https://palm-mainnet.infura.io/v3/${n}`,\"0x2a15c3083\":`https://palm-testnet.infura.io/v3/${n}`,\"0xa86a\":`https://avalanche-mainnet.infura.io/v3/${n}`,\"0xa869\":`https://avalanche-fuji.infura.io/v3/${n}`,\"0x4e454152\":`https://aurora-mainnet.infura.io/v3/${n}`,\"0x4e454153\":`https://aurora-testnet.infura.io/v3/${n}`,\"0x534e5f4d41494e\":`https://starknet-mainnet.infura.io/v3/${n}`,\"0x534e5f474f45524c49\":`https://starknet-goerli.infura.io/v3/${n}`,\"0x534e5f474f45524c4932\":`https://starknet-goerli2.infura.io/v3/${n}`,\"0xa4ec\":`https://celo-mainnet.infura.io/v3/${n}`,\"0xaef3\":`https://celo-alfajores.infura.io/v3/${n}`};t.options.readonlyRPCMap?t.options.readonlyRPCMap=Object.assign(Object.assign({},t.options.readonlyRPCMap),r):t.options.readonlyRPCMap=r}),zst=t=>ct(void 0,void 0,void 0,function*(){let{options:e}=t,{readonlyRPCMap:n}=e;if(n)try{Ve(\"[MetaMaskSDK: setupReadOnlyRPCProviders()] Setting up Readonly RPC Providers\",n),t.setReadOnlyRPCCalls(!0)}catch{throw new Error(\"Invalid Infura Settings\")}});r8e=\"INSTALLED\",o8e=\"NOT_INSTALLED\",i8e=\"REGISTERED\",s8e=\"REGISTERING\",a8e=\"RELOADING\",c8e={CHROME:\"https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn\",FIREFOX:\"https://addons.mozilla.org/firefox/addon/ether-metamask/\",DEFAULT:\"https://metamask.io\"},lH=\"REGISTRATION_IN_PROGRESS\",l8e=\"FORWARDER_ID\",Wst=function(){function t(e){var n=e===void 0?{}:e,r=n.forwarderOrigin,o=r===void 0?\"https://fwd.metamask.io\":r,i=n.forwarderMode,a=i===void 0?t.FORWARDER_MODE.INJECT:i;this.forwarderOrigin=o,this.forwarderMode=a,this.state=t.isMetaMaskInstalled()?r8e:o8e;var c=t._detectBrowser();this.downloadUrl=c?c8e[c]:c8e.DEFAULT,this._onMessage=this._onMessage.bind(this),this._onMessageFromForwarder=this._onMessageFromForwarder.bind(this),this._openForwarder=this._openForwarder.bind(this),this._openDownloadPage=this._openDownloadPage.bind(this),this.startOnboarding=this.startOnboarding.bind(this),this.stopOnboarding=this.stopOnboarding.bind(this),window.addEventListener(\"message\",this._onMessage),a===t.FORWARDER_MODE.INJECT&&sessionStorage.getItem(lH)===\"true\"&&t._injectForwarder(this.forwarderOrigin)}return t.prototype._onMessage=function(e){if(e.origin===this.forwarderOrigin)return e.data.type===\"metamask:reload\"?this._onMessageFromForwarder(e):void console.debug(\"Unknown message from \\'\"+e.origin+\"\\' with data \"+JSON.stringify(e.data))},t.prototype._onMessageUnknownStateError=function(e){throw new Error(\"Unknown state: \\'\"+e+\"\\'\")},t.prototype._onMessageFromForwarder=function(e){return Hst(this,0,void 0,function(){return qst(this,function(n){switch(n.label){case 0:switch(this.state){case a8e:return[3,1];case o8e:return[3,2];case r8e:return[3,3];case s8e:return[3,5];case i8e:return[3,6]}return[3,7];case 1:return console.debug(\"Ignoring message while reloading\"),[3,8];case 2:return console.debug(\"Reloading now to register with MetaMask\"),this.state=a8e,location.reload(),[3,8];case 3:return console.debug(\"Registering with MetaMask\"),this.state=s8e,[4,t._register()];case 4:return n.sent(),this.state=i8e,e.source.postMessage({type:\"metamask:registrationCompleted\"},e.origin),this.stopOnboarding(),[3,8];case 5:return console.debug(\"Already registering - ignoring reload message\"),[3,8];case 6:return console.debug(\"Already registered - ignoring reload message\"),[3,8];case 7:this._onMessageUnknownStateError(this.state),n.label=8;case 8:return[2]}})})},t.prototype.startOnboarding=function(){sessionStorage.setItem(lH,\"true\"),this._openDownloadPage(),this._openForwarder()},t.prototype.stopOnboarding=function(){sessionStorage.getItem(lH)===\"true\"&&(this.forwarderMode===t.FORWARDER_MODE.INJECT&&(console.debug(\"Removing forwarder\"),t._removeForwarder()),sessionStorage.setItem(lH,\"false\"))},t.prototype._openForwarder=function(){this.forwarderMode===t.FORWARDER_MODE.OPEN_TAB?window.open(this.forwarderOrigin,\"_blank\"):t._injectForwarder(this.forwarderOrigin)},t.prototype._openDownloadPage=function(){window.open(this.downloadUrl,\"_blank\")},t.isMetaMaskInstalled=function(){return!!(window.ethereum&&window.ethereum.isMetaMask)},t._register=function(){return window.ethereum.request({method:\"wallet_registerOnboarding\"})},t._injectForwarder=function(e){var n=document.body,r=document.createElement(\"iframe\");r.setAttribute(\"height\",\"0\"),r.setAttribute(\"width\",\"0\"),r.setAttribute(\"style\",\"display: none;\"),r.setAttribute(\"src\",e),r.setAttribute(\"id\",l8e),n.insertBefore(r,n.children[0])},t._removeForwarder=function(){var e;(e=document.getElementById(l8e))===null||e===void 0||e.remove()},t._detectBrowser=function(){var e=GTe.parse(window.navigator.userAgent);return e.browser.name===\"Firefox\"?\"FIREFOX\":[\"Chrome\",\"Chromium\"].includes(e.browser.name||\"\")?\"CHROME\":null},t.FORWARDER_MODE={INJECT:\"INJECT\",OPEN_TAB:\"OPEN_TAB\"},t}();wre=class{constructor({remote:e,preferDesktop:n,platformManager:r,debug:o=!1}){this.state={isInstalling:!1,hasInstalled:!1,resendRequest:null,preferDesktop:!1,platformManager:null,remote:null,debug:!1,connectWith:void 0},this.state.remote=e,this.state.preferDesktop=n,this.state.platformManager=r,this.state.debug=o}startDesktopOnboarding(){return function(){return ct(this,void 0,void 0,function*(){Ve(\"[MetamaskInstaller: startDesktopOnboarding() starting desktop onboarding\"),window.ethereum&&(window.ethereum=void 0),new Wst().startOnboarding()})}()}redirectToProperInstall(){return ct(this,void 0,void 0,function*(){return function(e){var n,r;return ct(this,void 0,void 0,function*(){let{state:o}=e,i=(n=o.platformManager)===null||n===void 0?void 0:n.getPlatformType();if(Ve(`[MetamaskInstaller: redirectToProperInstall()] platform=${i}`),i===Al.MetaMaskMobileWebview)return!1;o.isInstalling=!0;try{yield(r=o.remote)===null||r===void 0?void 0:r.startConnection({connectWith:o.connectWith}),o.isInstalling=!1,o.hasInstalled=!0}catch(a){throw o.isInstalling=!1,a}return!0})}(this)})}checkInstallation(){return ct(this,void 0,void 0,function*(){return function(e){var n;return ct(this,void 0,void 0,function*(){let{state:r}=e,o=(n=r.platformManager)===null||n===void 0?void 0:n.isMetaMaskInstalled();return Ve(`[MetamaskInstaller: checkInstallation()] isInstalled=${o}`),!!o||(yield e.redirectToProperInstall())})}(this)})}start({wait:e=!1,connectWith:n}){return ct(this,void 0,void 0,function*(){this.state.connectWith=n,Ve(`[MetaMaskInstaller: start()] wait=${e}`,n),yield Vst(this,{wait:e})})}},aq=class{constructor({debug:e,sdkVersion:n}){this.containers={install:void 0,pending:void 0,select:void 0},this.defined={install:!1,pending:!1,select:!1},this.debug=e!=null&&e,this.sdkVersion=n}loadComponent(e){return ct(this,void 0,void 0,function*(){if(!this.defined[e]){this.defined[e]=!0;try{let n=yield Promise.resolve().then(function(){return kat});console.log(\"loader\",n),n.defineCustomElements()}catch(n){console.error(`Failed to load ${e} modal:`,n)}}})}renderInstallModal(e){var n;return ct(this,void 0,void 0,function*(){this.debug&&console.debug(\"ModalLoader: renderInstallModal\",e),this.containers.install=e.parentElement,yield this.loadComponent(\"install\");let r=document.createElement(\"mm-install-modal\");r.link=e.link,r.preferDesktop=e.preferDesktop,r.sdkVersion=(n=e.sdkVersion)!==null&&n!==void 0?n:this.sdkVersion,r.addEventListener(\"close\",({detail:{shouldTerminate:o}})=>e.onClose(o)),r.addEventListener(\"startDesktopOnboarding\",e.metaMaskInstaller.startDesktopOnboarding),r.addEventListener(\"trackAnalytics\",o=>{var i;return(i=e.onAnalyticsEvent)===null||i===void 0?void 0:i.call(e,o.detail)}),e.parentElement.appendChild(r)})}renderSelectModal(e){var n;return ct(this,void 0,void 0,function*(){this.containers.select=e.parentElement,yield this.loadComponent(\"select\");let r=document.createElement(\"mm-select-modal\");r.link=e.link,r.sdkVersion=(n=e.sdkVersion)!==null&&n!==void 0?n:this.sdkVersion,r.preferDesktop=e.preferDesktop,r.addEventListener(\"close\",({detail:{shouldTerminate:o}})=>e.onClose(o)),r.addEventListener(\"connectWithExtension\",e.connectWithExtension),e.parentElement.appendChild(r),setTimeout(()=>this.updateQRCode(e.link),100)})}renderPendingModal(e){var n;return ct(this,void 0,void 0,function*(){this.containers.pending=e.parentElement,yield this.loadComponent(\"pending\");let r=document.createElement(\"mm-pending-modal\");r.sdkVersion=(n=e.sdkVersion)!==null&&n!==void 0?n:this.sdkVersion,r.displayOTP=e.displayOTP,r.addEventListener(\"close\",e.onClose),r.addEventListener(\"updateOTPValue\",({detail:{otpValue:o}})=>e.updateOTPValue(o)),e.onDisconnect&&r.addEventListener(\"disconnect\",e.onDisconnect),e.parentElement.appendChild(r)})}updateOTPValue(e){let n=()=>{var r;let o=(r=this.containers.pending)===null||r===void 0?void 0:r.querySelector(\"mm-pending-modal\");return!!o&&(o.otpCode=e,!0)};setTimeout(()=>{n()},800)}updateQRCode(e){var n,r;let o=(n=this.containers.install)===null||n===void 0?void 0:n.querySelector(\"mm-install-modal\");if(o)o.link=e;else{let i=(r=this.containers.select)===null||r===void 0?void 0:r.querySelector(\"mm-select-modal\");i&&(i.link=e)}}unmount(){Object.entries(this.containers).forEach(([e,n])=>{var r;(r=n?.parentNode)===null||r===void 0||r.removeChild(n),this.containers[e]=void 0})}},$st=({link:t,debug:e,installer:n,terminate:r,connectWithExtension:o,preferDesktop:i,onAnalyticsEvent:a})=>{let c=null,u=null;Ve(\"[UI: InstallModal-web: sdkWebInstallModal()] ################## Installing Modal #################\"),Ve(`[UI: InstallModal-web: sdkWebInstallModal()] link=${t}`),Ve(`[UI: InstallModal-web: sdkWebInstallModal()] npx uri-scheme open \"${t}\" --ios`),Ve(`[UI: InstallModal-web: sdkWebInstallModal()] npx uri-scheme open \"${t}\" --android`),Ve(`[UI: InstallModal-web: sdkWebInstallModal()] adb shell am start -a android.intent.action.VIEW -d \"${t}\"`);let d=h=>{var m;Ve(\"[UI: InstallModal-web: sdkWebInstallModal()] installModal-web unmounting install modal -- shouldTerminate:\",h,u),u?.parentNode&&((m=u.parentNode)===null||m===void 0||m.removeChild(u)),u=null,c=null,h===!0&&r?.()};return{mount:h=>{if(Ve(\"[UI: InstallModal-web: sdkWebInstallModal()] installModal-web mounting install modal\",u),u)return u.style.display=\"block\",void(c==null||c.updateQRCode(h));c=new aq({debug:e,sdkVersion:NS.version}),u=document.createElement(\"div\"),document.body.appendChild(u),window.extension?c.renderSelectModal({parentElement:u,connectWithExtension:()=>{d(),o?.()},onClose:d,link:t,preferDesktop:i!=null&&i}).catch(m=>{console.error(m)}):c.renderInstallModal({parentElement:u,preferDesktop:i!=null&&i,link:t,metaMaskInstaller:n,onClose:d,onAnalyticsEvent:a}).catch(m=>{console.error(\"[UI: InstallModal-web: sdkWebInstallModal()]\",m)})},unmount:d}},Kst=({onDisconnect:t,debug:e})=>{let n=null,r=null,o=()=>{Ve(\"[UI: pendingModal-web: sdkWebPendingModal()] pendingModal-web unmount\",n),n?.parentNode&&n.parentNode.removeChild(n),n=null,r=null},i=c=>{Ve(\"[UI: pendingModal-web: sdkWebPendingModal()] pendingModal-web updateOTPValue\",c),r&&r.updateOTPValue(c)},a=({displayOTP:c}={displayOTP:!0})=>{Ve(\"[UI: pendingModal-web: sdkWebPendingModal()] pendingModal-web mount\",n),n?n.style.display=\"block\":(r=new aq({debug:e,sdkVersion:NS.version}),n=document.createElement(\"div\"),document.body.appendChild(n),r.renderPendingModal({parentElement:n,onClose:o,onDisconnect:t,updateOTPValue:i,displayOTP:c}).catch(u=>{console.error(\"[UI: pendingModal-web: sdkWebPendingModal()]\",u)}))};return a(),{mount:a,unmount:o,updateOTPValue:i}};Ere=class{constructor(e){var n,r,o;this.state={connector:void 0,qrcodeLink:void 0,analytics:void 0,developerMode:!1,authorized:!1,reconnection:!1,preferDesktop:!1,deeplinkProtocol:!1,listeners:[],communicationLayerPreference:void 0,platformManager:void 0,pendingModal:void 0,installModal:void 0,otpAnswer:void 0},this.options=e;let i=((n=e.logging)===null||n===void 0?void 0:n.developerMode)===!0||((r=e.logging)===null||r===void 0?void 0:r.sdk)===!0;this.state.developerMode=i,this.state.analytics=e.analytics,this.state.preferDesktop=(o=e.preferDesktop)!==null&&o!==void 0&&o,this.state.useDeeplink=e.sdk.options.useDeeplink,this.state.communicationLayerPreference=e.communicationLayerPreference,this.state.platformManager=e.platformManager,e.modals.install||(e.modals.install=$st),e.modals.otp||(e.modals.otp=Kst)}startConnection(e){return ct(this,void 0,void 0,function*(){return Zst(this.state,this.options,e)})}initRemoteCommunication({sdkInstance:e}){var n,r,o;return ct(this,void 0,void 0,function*(){let i=yield(r=(n=e.options.storage)===null||n===void 0?void 0:n.storageManager)===null||r===void 0?void 0:r.getPersistedChannelConfig();if(!this.options.ecies){let a={privateKey:i?.localKey};this.options.ecies=a}JTe(this.state,this.options),yield(o=this.getConnector())===null||o===void 0?void 0:o.initFromDappStorage(),XTe(this.state,this.options)})}showActiveModal(){return function(e){var n,r,o,i;e.authorized?Ve(\"[RemoteConnection: showActiveModal()] already authorized\"):e.pendingModal?(r=(n=e.pendingModal).mount)===null||r===void 0||r.call(n):e.installModal&&((i=(o=e.installModal).mount)===null||i===void 0||i.call(o,e.qrcodeLink||\"\"))}(this.state)}closeModal(){var e,n,r,o;(n=(e=this.state.pendingModal)===null||e===void 0?void 0:e.unmount)===null||n===void 0||n.call(e),(o=(r=this.state.installModal)===null||r===void 0?void 0:r.unmount)===null||o===void 0||o.call(r,!1)}getUniversalLink(){if(!this.state.qrcodeLink)throw new Error(\"connection not started. run startConnection() first.\");return this.state.qrcodeLink}getChannelConfig(){var e;return(e=this.state.connector)===null||e===void 0?void 0:e.getChannelConfig()}getKeyInfo(){var e;return(e=this.state.connector)===null||e===void 0?void 0:e.getKeyInfo()}getConnector(){if(!this.state.connector)throw new Error(\"invalid remote connector\");return this.state.connector}getPlatformManager(){if(!this.state.platformManager)throw new Error(\"PlatformManager not available\");return this.state.platformManager}isConnected(){var e;return((e=this.state.connector)===null||e===void 0?void 0:e.isReady())||!1}isAuthorized(){var e;return((e=this.state.connector)===null||e===void 0?void 0:e.isAuthorized())||!1}isPaused(){var e;return(e=this.state.connector)===null||e===void 0?void 0:e.isPaused()}disconnect(e){var n,r,o;Ve(\"[RemoteConnection: disconnect()]\",e),e?.terminate&&(pg.getProvider().handleDisconnect({terminate:!0}),(r=(n=this.state.pendingModal)===null||n===void 0?void 0:n.unmount)===null||r===void 0||r.call(n),this.state.otpAnswer=void 0),(o=this.state.connector)===null||o===void 0||o.disconnect(e),function(i){Ve(\"[RemoteConnection: cleanupConnector()] cleaning up connector\"),i.connector&&(xre(i),i.connector.disconnect({terminate:!0}).catch(a=>{Ve(\"[RemoteConnection: cleanupConnector()] error disconnecting connector\",a)}))}(this.state)}};Sre=class extends SA.default{constructor(e={storage:{enabled:!0},injectProvider:!0,forceInjectProvider:!1,enableAnalytics:!0,shouldShimWeb3:!0,useDeeplink:!0,extensionOnly:!0,headless:!1,dappMetadata:{name:\"\",url:\"\",iconUrl:\"\"},_source:JCe,i18nOptions:{enabled:!1}}){var n,r,o;super(),this.extensionActive=!1,this._initialized=!1,this.sdkInitPromise=void 0,this.debug=!1,this.readonlyRPCCalls=!1,this.availableLanguages=[\"en\"],Cu.default.disable();let i=((n=e.logging)===null||n===void 0?void 0:n.developerMode)===!0;if((!((r=e.logging)===null||r===void 0)&&r.sdk||i)&&Cu.default.enable(\"MM_SDK\"),Ve(\"[MetaMaskSDK: constructor()]: begin.\"),this.setMaxListeners(50),!(!((o=e.dappMetadata)===null||o===void 0)&&o.url)){if(typeof window>\"u\"||typeof document>\"u\")throw new Error(\"You must provide dAppMetadata url\");e.dappMetadata=Object.assign(Object.assign({},e.dappMetadata),{url:`${window.location.protocol}//${window.location.host}`})}this.options=e,this.options._source||(e._source=JCe),this.init().then(()=>{Ve(\"[MetaMaskSDK: constructor()]: initialized successfully.\"),typeof window<\"u\"&&(window.mmsdk=this)}).catch(a=>{console.error(\"[MetaMaskSDK: constructor()] error during initialization\",a)})}init(){return ct(this,void 0,void 0,function*(){return function(e){var n;return ct(this,void 0,void 0,function*(){if(typeof window<\"u\"&&(!((n=window.mmsdk)===null||n===void 0)&&n.isInitialized()))return Ve(\"[MetaMaskSDK: initializeMetaMaskSDK()] already initialized\"),Promise.resolve(window.mmsdk);if(e._initialized)return Ve(\"[MetaMaskSDK: initializeMetaMaskSDK()] already initialized\"),e.sdkInitPromise;if(e.sdkInitPromise)return Ve(\"[MetaMaskSDK: initializeMetaMaskSDK()] already initializing\"),e.sdkInitPromise;try{e.sdkInitPromise=Yst(e),yield e.sdkInitPromise}catch(r){throw console.error(r),r}return e.sdkInitPromise})}(this)})}isExtensionActive(){return this.extensionActive}checkExtensionAvailability(){var e;return typeof window<\"u\"&&!!(!((e=window.ethereum)===null||e===void 0)&&e.isMetaMask)}connect(){return ct(this,void 0,void 0,function*(){return function(e){return ct(this,void 0,void 0,function*(){if(e._initialized||(Ve(\"[MetaMaskSDK: connect()] provider not ready -- wait for init()\"),yield e.init()),Ve(`[MetaMaskSDK: connect()] isExtensionActive=${e.isExtensionActive()} activeProvider`,e.activeProvider),!e.activeProvider)throw new Error(\"SDK state invalid -- undefined provider\");let n=e.activeProvider.getSelectedAddress();return n?[n]:e.activeProvider.request({method:yn.ETH_REQUESTACCOUNTS,params:[]})})}(this)})}connectAndSign({msg:e}){return ct(this,void 0,void 0,function*(){return Pst({instance:this,msg:e})})}connectWith(e){return ct(this,void 0,void 0,function*(){return function({instance:n,rpc:r}){return ct(this,void 0,void 0,function*(){if(n._initialized||(Ve(\"[MetaMaskSDK: connectWith()] provider not ready -- wait for init()\"),yield n.init()),Ve(`[MetaMaskSDK: connectWith()] method: ${r.method} rpc=${r}`),!n.activeProvider)throw new Error(\"SDK state invalid -- undefined provider\");return n.activeProvider.request({method:yn.METAMASK_CONNECTWITH,params:[r]})})}({instance:this,rpc:e})})}resume(){return function(e){var n,r,o;return ct(this,void 0,void 0,function*(){if(!(!((r=(n=e.remoteConnection)===null||n===void 0?void 0:n.getConnector())===null||r===void 0)&&r.isReady()))return Ve(\"[MetaMaskSDK: resume()] channel is not ready -- starting connection\"),void((o=e.remoteConnection)===null||o===void 0||o.startConnection());Ve(\"[MetaMaskSDK: resume()] channel is ready\")})}(this)}disconnect(){return console.warn(\"MetaMaskSDK.disconnect() is deprecated, use terminate()\"),this.terminate()}isAuthorized(){var e;(e=this.remoteConnection)===null||e===void 0||e.isAuthorized()}terminate(){return function(e){var n,r,o;return ct(this,void 0,void 0,function*(){if(!(!((n=e.platformManager)===null||n===void 0)&&n.isMetaMaskMobileWebView())){if(Ost&&(window.localStorage.removeItem(oq),window.localStorage.removeItem(gre),window.localStorage.removeItem(mre)),e.extensionActive){try{yield(r=e.activeProvider)===null||r===void 0?void 0:r.request({method:yn.WALLET_REVOKEPERMISSIONS,params:[{eth_accounts:{}}]})}catch(i){Ve(\"[MetaMaskSDK: terminate()] error revoking permissions\",i)}return e.options.extensionOnly?(e.emit(Rd.ProviderUpdate,mg.TERMINATE),void Ve(\"[MetaMaskSDK: terminate()] extensionOnly --- prevent switching providers\")):(e.activeProvider=e.sdkProvider,window.ethereum=e.activeProvider,e.extensionActive=!1,void e.emit(Rd.ProviderUpdate,mg.TERMINATE))}e.emit(Rd.ProviderUpdate,mg.TERMINATE),Ve(`[MetaMaskSDK: terminate()] remoteConnection=${e.remoteConnection}`),(o=e.remoteConnection)===null||o===void 0||o.disconnect({terminate:!0,sendMessage:!0})}})}(this)}isInitialized(){return this._initialized}setReadOnlyRPCCalls(e){this.readonlyRPCCalls=e}hasReadOnlyRPCCalls(){return this.readonlyRPCCalls}getProvider(){if(this.activeProvider)return this.activeProvider;console.warn(\"MetaMaskSDK: No active provider found\")}getMobileProvider(){if(!this.sdkProvider)throw new Error(\"SDK state invalid -- undefined mobile provider\");return this.sdkProvider}getUniversalLink(){var e;let n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getUniversalLink();if(!n)throw new Error(\"No Universal Link available, please call eth_requestAccounts first.\");return n}getChannelId(){var e,n;return(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getChannelConfig())===null||n===void 0?void 0:n.channelId}getRPCHistory(){var e,n;return(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0?void 0:n.getRPCMethodTracker()}getVersion(){return NS.version}getWalletStatus(){var e,n;return(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0?void 0:n.getConnectionStatus()}_getChannelConfig(){var e;return(e=this.remoteConnection)===null||e===void 0?void 0:e.getChannelConfig()}_ping(){var e,n;(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0||n.ping()}_keyCheck(){var e,n;(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0||n.keyCheck()}_getServiceStatus(){var e,n;return(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0?void 0:n.getServiceStatus()}_getRemoteConnection(){return this.remoteConnection}_getDappMetadata(){return this.dappMetadata}_getKeyInfo(){var e;return(e=this.remoteConnection)===null||e===void 0?void 0:e.getKeyInfo()}_resetKeys(){var e,n;(n=(e=this.remoteConnection)===null||e===void 0?void 0:e.getConnector())===null||n===void 0||n.resetKeys()}_getConnection(){return this.remoteConnection}emit(e,n){return super.emit(e,n)}on(e,n){return super.on(e,n)}},Qst=Object.freeze({__proto__:null,StorageManagerWeb:class{constructor({enabled:t}={enabled:!1}){this.enabled=!1,this.enabled=t}persistChannelConfig(t){return ct(this,void 0,void 0,function*(){let e=JSON.stringify(t);Ve(`[StorageManagerWeb: persistChannelConfig()] enabled=${this.enabled}`,t),localStorage.setItem(Nne,e)})}getPersistedChannelConfig(){return ct(this,void 0,void 0,function*(){let t;try{if(Ve(`[StorageManagerWeb: getPersistedChannelConfig()] enabled=${this.enabled}`),t=localStorage.getItem(Nne),Ve(\"[StorageManagerWeb: getPersistedChannelConfig()]\",t),!t)return;let e=JSON.parse(t);return Ve(\"[StorageManagerWeb: getPersistedChannelConfig()] channelConfig\",e),e}catch(e){return void console.error(\"[StorageManagerWeb: getPersistedChannelConfig()] Can\\'t find existing channel config\",e)}})}persistAccounts(t){return ct(this,void 0,void 0,function*(){Ve(`[StorageManagerWeb: persistAccounts()] enabled=${this.enabled}`,t);let e=JSON.stringify(t);localStorage.setItem(mre,e)})}getCachedAccounts(){return ct(this,void 0,void 0,function*(){try{let t=localStorage.getItem(mre);return t?JSON.parse(t):[]}catch(t){throw console.error(\"[StorageManagerWeb: getCachedAccounts()] Error reading cached accounts\",t),t}})}persistChainId(t){return ct(this,void 0,void 0,function*(){Ve(`[StorageManagerWeb: persistChainId()] enabled=${this.enabled}`,t),localStorage.setItem(gre,t)})}getCachedChainId(){return ct(this,void 0,void 0,function*(){try{let t=localStorage.getItem(gre);return t??void 0}catch(t){throw console.error(\"[StorageManagerWeb: getCachedChainId()] Error reading cached chainId\",t),t}})}terminate(){return ct(this,void 0,void 0,function*(){Ve(`[StorageManagerWeb: terminate()] enabled=${this.enabled}`),localStorage.removeItem(Nne)})}}}),Jst=\"hydrated\",Xst=!1,eat=!1,tat=!0,nat=Object.defineProperty,toe=new WeakMap,u3=t=>toe.get(t),noe=(t,e)=>toe.set(e.$lazyInstance$=t,e),u8e=(t,e)=>e in t,AS=(t,e)=>(0,console.error)(t,e),Lne=new Map,_H=new Map,e7e=\"slot-fb{display:contents}slot-fb[hidden]{display:none}\",gq=typeof window<\"u\"?window:{},E1=gq.document||{head:{}},Cl={$flags$:0,$resourcesUrl$:\"\",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,r)=>t.addEventListener(e,n,r),rel:(t,e,n,r)=>t.removeEventListener(e,n,r),ce:(t,e)=>new CustomEvent(t,e)},t7e=(()=>{try{return new CSSStyleSheet,typeof new CSSStyleSheet().replaceSync==\"function\"}catch{}return!1})(),kre=!1,d8e=[],n7e=[],rat=(t,e)=>n=>{t.push(n),kre||(kre=!0,4&Cl.$flags$?roe(_re):Cl.raf(_re))},f8e=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(n){AS(n)}t.length=0},_re=()=>{f8e(d8e),f8e(n7e),(kre=d8e.length>0)&&Cl.raf(_re)},roe=t=>(e=>Promise.resolve(e))().then(t),oat=rat(n7e),h8e={},ooe=t=>(t=typeof t)==\"object\"||t===\"function\";((t,e)=>{for(var n in e)nat(t,n,{get:e[n],enumerable:!0})})({},{err:()=>o7e,map:()=>iat,ok:()=>Cre,unwrap:()=>sat,unwrapErr:()=>aat});Cre=t=>({isOk:!0,isErr:!1,value:t}),o7e=t=>({isOk:!1,isErr:!0,value:t});sat=t=>{if(t.isOk)return t.value;throw t.value},aat=t=>{if(t.isErr)return t.value;throw t.value},ve=(t,e,...n)=>{let r=null,o=!1,i=!1,a=[],c=d=>{for(let h=0;h<d.length;h++)r=d[h],Array.isArray(r)?c(r):r!=null&&typeof r!=\"boolean\"&&((o=typeof t!=\"function\"&&!ooe(r))&&(r=String(r)),o&&i?a[a.length-1].$text$+=r:a.push(o?cq(null,r):r),i=o)};if(c(n),e){let d=e.className||e.class;d&&(e.class=typeof d!=\"object\"?d:Object.keys(d).filter(h=>d[h]).join(\" \"))}if(typeof t==\"function\")return t(e===null?{}:e,a,lat);let u=cq(t,null);return u.$attrs$=e,a.length>0&&(u.$children$=a),u},cq=(t,e)=>({$flags$:0,$tag$:t,$text$:e,$elm$:null,$children$:null,$attrs$:null}),cat={},lat={forEach:(t,e)=>t.map(p8e).forEach(e),map:(t,e)=>t.map(p8e).map(e).map(uat)},p8e=t=>({vattrs:t.$attrs$,vchildren:t.$children$,vkey:t.$key$,vname:t.$name$,vtag:t.$tag$,vtext:t.$text$}),uat=t=>{if(typeof t.vtag==\"function\"){let n={...t.vattrs};return t.vkey&&(n.key=t.vkey),t.vname&&(n.name=t.vname),ve(t.vtag,n,...t.vchildren||[])}let e=cq(t.vtag,t.vtext);return e.$attrs$=t.vattrs,e.$children$=t.vchildren,e.$key$=t.vkey,e.$name$=t.vname,e},yq=t=>u3(t).$hostElement$,f3=(t,e,n)=>{let r=yq(t);return{emit:o=>i7e(r,e,{bubbles:!!(4&n),composed:!!(2&n),cancelable:!!(1&n),detail:o})}},i7e=(t,e,n)=>{let r=Cl.ce(e,n);return t.dispatchEvent(r),r},m8e=new WeakMap,dat=t=>{let e=t.$cmpMeta$,n=t.$hostElement$,r=e.$flags$,o=(e.$tagName$,()=>{}),i=((a,c,u)=>{var d;let h=s7e(c),m=_H.get(h);if(a=a.nodeType===11?a:E1,m)if(typeof m==\"string\"){a=a.head||a;let g,b=m8e.get(a);if(b||m8e.set(a,b=new Set),!b.has(h)){{g=E1.createElement(\"style\"),g.innerHTML=m;let E=(d=Cl.$nonce$)!=null?d:r7e(E1);if(E!=null&&g.setAttribute(\"nonce\",E),!(1&c.$flags$))if(a.nodeName===\"HEAD\"){let C=a.querySelectorAll(\"link[rel=preconnect]\"),T=C.length>0?C[C.length-1].nextSibling:a.querySelector(\"style\");a.insertBefore(g,T)}else if(\"host\"in a)if(t7e){let C=new CSSStyleSheet;C.replaceSync(m),a.adoptedStyleSheets=[C,...a.adoptedStyleSheets]}else{let C=a.querySelector(\"style\");C?C.innerHTML=m+C.innerHTML:a.prepend(g)}else a.append(g);1&c.$flags$&&a.nodeName!==\"HEAD\"&&a.insertBefore(g,null)}4&c.$flags$&&(g.innerHTML+=e7e),b&&b.add(h)}}else a.adoptedStyleSheets.includes(m)||(a.adoptedStyleSheets=[...a.adoptedStyleSheets,m]);return h})(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);10&r&&2&r&&(n[\"s-sc\"]=i,n.classList.add(i+\"-h\")),o()},s7e=(t,e)=>\"sc-\"+t.$tagName$,g8e=(t,e,n,r,o,i)=>{if(n!==r){let a=u8e(t,e),c=e.toLowerCase();if(e===\"class\"){let u=t.classList,d=y8e(n),h=y8e(r);u.remove(...d.filter(m=>m&&!h.includes(m))),u.add(...h.filter(m=>m&&!d.includes(m)))}else if(e===\"style\"){for(let u in n)r&&r[u]!=null||(u.includes(\"-\")?t.style.removeProperty(u):t.style[u]=\"\");for(let u in r)n&&r[u]===n[u]||(u.includes(\"-\")?t.style.setProperty(u,r[u]):t.style[u]=r[u])}else if(a||e[0]!==\"o\"||e[1]!==\"n\"){let u=ooe(r);if((a||u&&r!==null)&&!o)try{if(t.tagName.includes(\"-\"))t[e]=r;else{let d=r??\"\";e===\"list\"?a=!1:n!=null&&t[e]==d||(typeof t.__lookupSetter__(e)==\"function\"?t[e]=d:t.setAttribute(e,d))}}catch{}r==null||r===!1?r===!1&&t.getAttribute(e)!==\"\"||t.removeAttribute(e):(!a||4&i||o)&&!u&&(r=r===!0?\"\":r,t.setAttribute(e,r))}else if(e=e[2]===\"-\"?e.slice(3):u8e(gq,c)?c.slice(2):c[2]+e.slice(3),n||r){let u=e.endsWith(a7e);e=e.replace(hat,\"\"),n&&Cl.rel(t,e,n,u),r&&Cl.ael(t,e,r,u)}}},fat=/\\\\s/,y8e=t=>t?t.split(fat):[],a7e=\"Capture\",hat=new RegExp(a7e+\"$\"),c7e=(t,e,n)=>{let r=e.$elm$.nodeType===11&&e.$elm$.host?e.$elm$.host:e.$elm$,o=t&&t.$attrs$||h8e,i=e.$attrs$||h8e;for(let a of b8e(Object.keys(o)))a in i||g8e(r,a,o[a],void 0,n,e.$flags$);for(let a of b8e(Object.keys(i)))g8e(r,a,o[a],i[a],n,e.$flags$)};l7e=!1,km=!1,soe=(t,e,n,r)=>{let o=e.$children$[n],i,a,c=0;if(o.$text$!==null)i=o.$elm$=E1.createTextNode(o.$text$);else{if(km||(km=o.$tag$===\"svg\"),i=o.$elm$=E1.createElementNS(km?\"http://www.w3.org/2000/svg\":\"http://www.w3.org/1999/xhtml\",!l7e&&eat&&2&o.$flags$?\"slot-fb\":o.$tag$),km&&o.$tag$===\"foreignObject\"&&(km=!1),c7e(null,o,km),i.getRootNode().querySelector(\"body\")&&Xst&&(u=>u!=null)(CH)&&i[\"s-si\"]!==CH&&i.classList.add(i[\"s-si\"]=CH),o.$children$)for(c=0;c<o.$children$.length;++c)a=soe(t,o,c),a&&i.appendChild(a);o.$tag$===\"svg\"?km=!1:i.tagName===\"foreignObject\"&&(km=!0)}return i[\"s-hn\"]=ioe,i},v8e=(t,e,n,r,o,i)=>{let a,c=t;for(c.shadowRoot&&c.tagName===ioe&&(c=c.shadowRoot);o<=i;++o)r[o]&&(a=soe(null,n,o),a&&(r[o].$elm$=a,AH(c,a,e)))},w8e=(t,e,n)=>{for(let r=e;r<=n;++r){let o=t[r];if(o){let i=o.$elm$;i&&i.remove()}}},uH=(t,e,n=!1)=>t.$tag$===e.$tag$,bO=(t,e,n=!1)=>{let r=e.$elm$=t.$elm$,o=t.$children$,i=e.$children$,a=e.$tag$,c=e.$text$;c===null?(c7e(t,e,km=a===\"svg\"||a!==\"foreignObject\"&&km),o!==null&&i!==null?((u,d,h,m,g=!1)=>{let b,E=0,C=0,T=d.length-1,R=d[0],L=d[T],D=m.length-1,G=m[0],W=m[D];for(;E<=T&&C<=D;)R==null?R=d[++E]:L==null?L=d[--T]:G==null?G=m[++C]:W==null?W=m[--D]:uH(R,G,g)?(bO(R,G,g),R=d[++E],G=m[++C]):uH(L,W,g)?(bO(L,W,g),L=d[--T],W=m[--D]):uH(R,W,g)?(bO(R,W,g),AH(u,R.$elm$,L.$elm$.nextSibling),R=d[++E],W=m[--D]):uH(L,G,g)?(bO(L,G,g),AH(u,L.$elm$,R.$elm$),L=d[--T],G=m[++C]):(b=soe(d&&d[C],h,C),G=m[++C],b&&AH(R.$elm$.parentNode,b,R.$elm$));E>T?v8e(u,m[D+1]==null?null:m[D+1].$elm$,h,m,C,D):C>D&&w8e(d,E,T)})(r,o,e,i,n):i!==null?(t.$text$!==null&&(r.textContent=\"\"),v8e(r,null,e,i,0,i.length-1)):!n&&tat&&o!==null&&w8e(o,0,o.length-1),km&&a===\"svg\"&&(km=!1)):t.$text$!==c&&(r.data=c)},AH=(t,e,n)=>t?.insertBefore(e,n),pat=(t,e,n=!1)=>{let r=t.$hostElement$,o=t.$cmpMeta$,i=t.$vnode$||cq(null,null),a=(c=e)&&c.$tag$===cat?e:ve(null,null,e);var c;if(ioe=r.tagName,n&&a.$attrs$)for(let u of Object.keys(a.$attrs$))r.hasAttribute(u)&&![\"key\",\"ref\",\"style\",\"class\"].includes(u)&&(a.$attrs$[u]=r[u]);a.$tag$=null,a.$flags$|=4,t.$vnode$=a,a.$elm$=i.$elm$=r.shadowRoot||r,CH=r[\"s-sc\"],l7e=(1&o.$flags$)!=0,bO(i,a,n)},u7e=(t,e)=>{e&&!t.$onRenderResolve$&&e[\"s-p\"]&&e[\"s-p\"].push(new Promise(n=>t.$onRenderResolve$=n))},aoe=(t,e)=>(t.$flags$|=16,4&t.$flags$?void(t.$flags$|=512):(u7e(t,t.$ancestorComponent$),oat(()=>mat(t,e)))),mat=(t,e)=>{let n=t.$hostElement$,r=(t.$cmpMeta$.$tagName$,()=>{}),o=t.$lazyInstance$;if(!o)throw new Error(`Can\\'t render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\\\`externalRuntime: true\\\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);return r(),gat(void 0,()=>bat(t,o,e))},gat=(t,e)=>yat(t)?t.then(e).catch(n=>{console.error(n),e()}):e(),yat=t=>t instanceof Promise||t&&t.then&&typeof t.then==\"function\",bat=async(t,e,n)=>{var r;let o=t.$hostElement$,i=(t.$cmpMeta$.$tagName$,()=>{}),a=o[\"s-rc\"];n&&dat(t);let c=(t.$cmpMeta$.$tagName$,()=>{});vat(t,e,o,n),a&&(a.map(u=>u()),o[\"s-rc\"]=void 0),c(),i();{let u=(r=o[\"s-p\"])!=null?r:[],d=()=>wat(t);u.length===0?d():(Promise.all(u).then(d),t.$flags$|=4,u.length=0)}},vat=(t,e,n,r)=>{try{e=e.render(),t.$flags$&=-17,t.$flags$|=2,pat(t,e,r)}catch(o){AS(o,t.$hostElement$)}return null},wat=t=>{t.$cmpMeta$.$tagName$;let e=t.$hostElement$,n=()=>{},r=t.$lazyInstance$,o=t.$ancestorComponent$;64&t.$flags$?n():(t.$flags$|=64,f7e(e),coe(r,\"componentDidLoad\"),n(),t.$onReadyResolve$(e),o||d7e()),t.$onRenderResolve$&&(t.$onRenderResolve$(),t.$onRenderResolve$=void 0),512&t.$flags$&&roe(()=>aoe(t,!1)),t.$flags$&=-517},d7e=t=>{f7e(E1.documentElement),roe(()=>i7e(gq,\"appload\",{detail:{namespace:\"sdk-install-modal-web\"}}))},coe=(t,e,n)=>{if(t&&t[e])try{return t[e](n)}catch(r){AS(r)}},f7e=t=>{var e;return t.classList.add((e=Jst)!=null?e:\"hydrated\")},xat=(t,e,n,r)=>{let o=u3(t);if(!o)throw new Error(`Couldn\\'t find host element for \"${r.$tagName$}\" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`);let i=o.$hostElement$,a=o.$instanceValues$.get(e),c=o.$flags$,u=o.$lazyInstance$;var d,h;d=n,h=r.$members$[e][0],n=d==null||ooe(d)?d:4&h?d!==\"false\"&&(d===\"\"||!!d):1&h?String(d):d;let m=Number.isNaN(a)&&Number.isNaN(n);if((!(8&c)||a===void 0)&&n!==a&&!m&&(o.$instanceValues$.set(e,n),u)){if(r.$watchers$&&128&c){let g=r.$watchers$[e];g&&g.map(b=>{try{u[b](n,a,e)}catch(E){AS(E,i)}})}(18&c)==2&&aoe(o,!1)}},h7e=(t,e,n)=>{var r,o;let i=t.prototype;if(e.$members$||e.$watchers$||t.watchers){t.watchers&&!e.$watchers$&&(e.$watchers$=t.watchers);let a=Object.entries((r=e.$members$)!=null?r:{});if(a.map(([c,[u]])=>{(31&u||2&n&&32&u)&&Object.defineProperty(i,c,{get(){return d=c,u3(this).$instanceValues$.get(d);var d},set(d){xat(this,c,d,e)},configurable:!0,enumerable:!0})}),1&n){let c=new Map;i.attributeChangedCallback=function(u,d,h){Cl.jmp(()=>{var m;let g=c.get(u);if(this.hasOwnProperty(g))h=this[g],delete this[g];else{if(i.hasOwnProperty(g)&&typeof this[g]==\"number\"&&this[g]==h)return;if(g==null){let b=u3(this),E=b?.$flags$;if(E&&!(8&E)&&128&E&&h!==d){let C=b.$lazyInstance$,T=(m=e.$watchers$)==null?void 0:m[u];T?.forEach(R=>{C[R]!=null&&C[R].call(C,h,d,u)})}return}}this[g]=(h!==null||typeof this[g]!=\"boolean\")&&h})},t.observedAttributes=Array.from(new Set([...Object.keys((o=e.$watchers$)!=null?o:{}),...a.filter(([u,d])=>15&d[0]).map(([u,d])=>{let h=d[1]||u;return c.set(h,u),h})]))}}return t},Eat=async(t,e,n,r)=>{let o;if((32&e.$flags$)==0){if(e.$flags$|=32,n.$lazyBundleId$){let c=((d,h,m)=>{let g=d.$tagName$.replace(/-/g,\"_\"),b=d.$lazyBundleId$;if(!b)return;let E=Lne.get(b);if(E)return E[g];{let C=T=>(Lne.set(b,T),T[g]);if(b===\"mm-install-modal_3\")return Promise.resolve().then(function(){return Dat}).then(C,AS)}return $rt(`./${b}.entry.js`).then(C=>(Lne.set(b,C),C[g]),AS)})(n);if(c&&\"then\"in c){let d=()=>{};o=await c,d()}else o=c;if(!o)throw new Error(`Constructor for \"${n.$tagName$}#${e.$modeName$}\" was not found`);o.isProxied||(n.$watchers$=o.watchers,h7e(o,n,2),o.isProxied=!0);let u=(n.$tagName$,()=>{});e.$flags$|=8;try{new o(e)}catch(d){AS(d)}e.$flags$&=-9,e.$flags$|=128,u(),Are(e.$lazyInstance$)}else{o=t.constructor;let c=t.localName;customElements.whenDefined(c).then(()=>e.$flags$|=128)}if(o&&o.style){let c;typeof o.style==\"string\"&&(c=o.style);let u=s7e(n);if(!_H.has(u)){let d=(n.$tagName$,()=>{});((h,m,g)=>{let b=_H.get(h);t7e&&g?(b=b||new CSSStyleSheet,typeof b==\"string\"?b=m:b.replaceSync(m)):b=m,_H.set(h,b)})(u,c,!!(1&n.$flags$)),d()}}}let i=e.$ancestorComponent$,a=()=>aoe(e,!0);i&&i[\"s-rc\"]?i[\"s-rc\"].push(a):a()},Are=t=>{coe(t,\"connectedCallback\")},x8e=t=>{coe(t,\"disconnectedCallback\")},Sat=(t,e={})=>{var n;let r=()=>{},o=[],i=e.exclude||[],a=gq.customElements,c=E1.head,u=c.querySelector(\"meta[charset]\"),d=E1.createElement(\"style\"),h=[],m,g=!0;Object.assign(Cl,e),Cl.$resourcesUrl$=new URL(e.resourcesUrl||\"./\",E1.baseURI).href;let b=!1;if(t.map(E=>{E[1].map(C=>{var T;let R={$flags$:C[0],$tagName$:C[1],$members$:C[2],$listeners$:C[3]};4&R.$flags$&&(b=!0),R.$members$=C[2],R.$watchers$=(T=C[4])!=null?T:{};let L=R.$tagName$,D=class extends HTMLElement{constructor(G){if(super(G),this.hasRegisteredEventListeners=!1,((W,J)=>{let ne={$flags$:0,$hostElement$:W,$cmpMeta$:J,$instanceValues$:new Map};ne.$onReadyPromise$=new Promise(ie=>ne.$onReadyResolve$=ie),W[\"s-p\"]=[],W[\"s-rc\"]=[],toe.set(W,ne)})(G=this,R),1&R.$flags$)if(G.shadowRoot){if(G.shadowRoot.mode!==\"open\")throw new Error(`Unable to re-use existing shadow root for ${R.$tagName$}! Mode is set to ${G.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else G.attachShadow({mode:\"open\"})}connectedCallback(){u3(this),this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),m&&(clearTimeout(m),m=null),g?h.push(this):Cl.jmp(()=>(G=>{if((1&Cl.$flags$)==0){let W=u3(G),J=W.$cmpMeta$,ne=(J.$tagName$,()=>{});if(1&W.$flags$)W?.$lazyInstance$?Are(W.$lazyInstance$):W?.$onReadyPromise$&&W.$onReadyPromise$.then(()=>Are(W.$lazyInstance$));else{W.$flags$|=1;{let ie=G;for(;ie=ie.parentNode||ie.host;)if(ie[\"s-p\"]){u7e(W,W.$ancestorComponent$=ie);break}}J.$members$&&Object.entries(J.$members$).map(([ie,[Z]])=>{if(31&Z&&G.hasOwnProperty(ie)){let ae=G[ie];delete G[ie],G[ie]=ae}}),Eat(G,W,J)}ne()}})(this))}disconnectedCallback(){Cl.jmp(()=>(async G=>{if((1&Cl.$flags$)==0){let W=u3(G);W?.$lazyInstance$?x8e(W.$lazyInstance$):W?.$onReadyPromise$&&W.$onReadyPromise$.then(()=>x8e(W.$lazyInstance$))}})(this))}componentOnReady(){return u3(this).$onReadyPromise$}};R.$lazyBundleId$=E[0],i.includes(L)||a.get(L)||(o.push(L),a.define(L,h7e(D,R,1)))})}),o.length>0&&(b&&(d.textContent+=e7e),d.textContent+=o.sort()+\"{visibility:hidden}.hydrated{visibility:inherit}\",d.innerHTML.length)){d.setAttribute(\"data-styles\",\"\");let E=(n=Cl.$nonce$)!=null?n:r7e(E1);E!=null&&d.setAttribute(\"nonce\",E),c.insertBefore(d,u?u.nextSibling:c.firstChild)}g=!1,h.length?h.map(E=>E.connectedCallback()):Cl.jmp(()=>m=setTimeout(d7e,30)),r()};(function(){if(typeof window<\"u\"&&window.Reflect!==void 0&&window.customElements!==void 0){var t=HTMLElement;window.HTMLElement=function(){return Reflect.construct(t,[],this.constructor)},HTMLElement.prototype=t.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,t)}})();kat=Object.freeze({__proto__:null,defineCustomElements:async(t,e)=>{if(typeof window<\"u\")return await void 0,Sat([[\"mm-install-modal_3\",[[1,\"mm-install-modal\",{link:[1],sdkVersion:[1,\"sdk-version\"],preferDesktop:[4,\"prefer-desktop\"],tab:[32],isDefaultTab:[32],translationsLoaded:[32]},null,{preferDesktop:[\"updatePreferDesktop\"]}],[1,\"mm-pending-modal\",{displayOTP:[4,\"display-o-t-p\"],sdkVersion:[1,\"sdk-version\"],otpCode:[1,\"otp-code\"],translationsLoaded:[32]}],[1,\"mm-select-modal\",{link:[1],sdkVersion:[1,\"sdk-version\"],preferDesktop:[4,\"prefer-desktop\"],tab:[32],isDefaultTab:[32],translationsLoaded:[32]},null,{preferDesktop:[\"updatePreferDesktop\"]}]]]],e)},setNonce:t=>Cl.$nonce$=t}),_at={fontFamily:\"Roboto, sans-serif\"},loe=({className:t},e)=>ve(\"div\",{style:_at,class:t},e),Bne=({Icon:t,text:e})=>ve(\"div\",{class:\"flexContainer\",style:{padding:\"6\",flexDirection:\"row\"}},ve(\"div\",{class:\"flexItem1\"},ve(t,null)),ve(\"div\",{class:\"flexItem11\"},ve(\"span\",{style:{lineHeight:\"2\",color:\"black\"}},e))),Cat=()=>ve(\"svg\",{width:\"20\",height:\"18\",viewBox:\"0 0 20 18\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M20.0002 7.9702V10.0302C20.0002 10.5802 19.5602 11.0302 19.0002 11.0502H17.0402C15.9602 11.0502 14.9702 10.2602 14.8802 9.1802C14.8202 8.5502 15.0602 7.9602 15.4802 7.5502C15.8502 7.1702 16.3602 6.9502 16.9202 6.9502H19.0002C19.5602 6.9702 20.0002 7.4202 20.0002 7.9702Z\",fill:\"#037DD6\"}),ve(\"path\",{d:\"M18.47 12.55H17.04C15.14 12.55 13.54 11.12 13.38 9.3C13.29 8.26 13.67 7.22 14.43 6.48C15.07 5.82 15.96 5.45 16.92 5.45H18.47C18.76 5.45 19 5.21 18.97 4.92C18.75 2.49 17.14 0.83 14.75 0.55C14.51 0.51 14.26 0.5 14 0.5H5C4.72 0.5 4.45 0.52 4.19 0.56C1.64 0.88 0 2.78 0 5.5V12.5C0 15.26 2.24 17.5 5 17.5H14C16.8 17.5 18.73 15.75 18.97 13.08C19 12.79 18.76 12.55 18.47 12.55ZM11 6.75H5C4.59 6.75 4.25 6.41 4.25 6C4.25 5.59 4.59 5.25 5 5.25H11C11.41 5.25 11.75 5.59 11.75 6C11.75 6.41 11.41 6.75 11 6.75Z\",fill:\"#037DD6\"})),Aat=()=>ve(\"svg\",{width:\"20\",height:\"18\",viewBox:\"0 0 20 18\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M14.44 0.0999756C12.63 0.0999756 11.01 0.979976 10 2.32998C8.99 0.979976 7.37 0.0999756 5.56 0.0999756C2.49 0.0999756 0 2.59998 0 5.68998C0 6.87998 0.19 7.97998 0.52 8.99998C2.1 14 6.97 16.99 9.38 17.81C9.72 17.93 10.28 17.93 10.62 17.81C13.03 16.99 17.9 14 19.48 8.99998C19.81 7.97998 20 6.87998 20 5.68998C20 2.59998 17.51 0.0999756 14.44 0.0999756Z\",fill:\"#037DD6\"})),Tat=()=>ve(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M16.28 7.53V6.28C16.28 3.58 15.63 0 10 0C4.37 0 3.72 3.58 3.72 6.28V7.53C0.92 7.88 0 9.3 0 12.79V14.65C0 18.75 1.25 20 5.35 20H14.65C18.75 20 20 18.75 20 14.65V12.79C20 9.3 19.08 7.88 16.28 7.53ZM10 16.74C8.33 16.74 6.98 15.38 6.98 13.72C6.98 12.05 8.34 10.7 10 10.7C11.66 10.7 13.02 12.06 13.02 13.72C13.02 15.39 11.67 16.74 10 16.74ZM5.35 7.44C5.27 7.44 5.2 7.44 5.12 7.44V6.28C5.12 3.35 5.95 1.4 10 1.4C14.05 1.4 14.88 3.35 14.88 6.28V7.45C14.8 7.45 14.73 7.45 14.65 7.45H5.35V7.44Z\",fill:\"#037DD6\"})),Rat=()=>ve(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M16.4405 8.8999C20.0405 9.2099 21.5105 11.0599 21.5105 15.1099V15.2399C21.5105 19.7099 19.7205 21.4999 15.2505 21.4999H8.74047C4.27047 21.4999 2.48047 19.7099 2.48047 15.2399V15.1099C2.48047 11.0899 3.93047 9.2399 7.47047 8.9099\",stroke:\"white\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M12 2V14.88\",stroke:\"white\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M15.3504 12.6499L12.0004 15.9999L8.65039 12.6499\",stroke:\"white\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}));doe=()=>ve(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"rect\",{width:\"16\",height:\"16\",fill:\"white\"}),ve(\"path\",{\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",d:\"M2.40554 2.40554C2.94627 1.86482 3.82296 1.86482 4.36369 2.40554L8 6.04186L11.6363 2.40554C12.177 1.86482 13.0537 1.86482 13.5945 2.40554C14.1352 2.94627 14.1352 3.82296 13.5945 4.36369L9.95814 8L13.5945 11.6363C14.1352 12.177 14.1352 13.0537 13.5945 13.5945C13.0537 14.1352 12.177 14.1352 11.6363 13.5945L8 9.95814L4.36369 13.5945C3.82296 14.1352 2.94627 14.1352 2.40554 13.5945C1.86482 13.0537 1.86482 12.177 2.40554 11.6363L6.04186 8L2.40554 4.36369C1.86482 3.82296 1.86482 2.94627 2.40554 2.40554Z\",fill:\"#BBC0C5\"})),foe=()=>ve(\"svg\",{width:\"273\",height:\"51\",viewBox:\"0 0 273 51\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M240.882 25.9263C239.472 24.997 237.916 24.3361 236.443 23.5101C235.489 22.9731 234.473 22.4982 233.643 21.8167C232.233 20.6602 232.524 18.3885 233.996 17.3973C236.112 15.993 239.617 16.7777 239.99 19.6483C239.99 19.7102 240.052 19.7515 240.114 19.7515H243.308C243.391 19.7515 243.454 19.6896 243.433 19.607C243.267 17.6244 242.5 15.9723 241.089 14.9191C239.741 13.9072 238.206 13.3702 236.568 13.3702C228.127 13.3702 227.359 22.271 231.901 25.0796C232.42 25.41 236.879 27.6404 238.455 28.611C240.032 29.5816 240.529 31.3576 239.845 32.7619C239.223 34.0423 237.605 34.9303 235.987 34.8271C234.224 34.7238 232.855 33.7738 232.378 32.2869C232.295 32.0185 232.254 31.5022 232.254 31.275C232.254 31.2131 232.192 31.1511 232.129 31.1511H228.666C228.604 31.1511 228.541 31.2131 228.541 31.275C228.541 33.7738 229.164 35.1575 230.864 36.4172C232.461 37.615 234.203 38.1106 236.008 38.1106C240.737 38.1106 243.184 35.4466 243.682 32.6793C244.117 29.974 243.308 27.5371 240.882 25.9263Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M90.4943 13.8246H88.9595H87.2795C87.2173 13.8246 87.1758 13.8659 87.1551 13.9072L84.3137 23.2416C84.2722 23.3655 84.1063 23.3655 84.0648 23.2416L81.2234 13.9072C81.2026 13.8452 81.1612 13.8246 81.0989 13.8246H79.419H77.8842H75.8102C75.748 13.8246 75.6857 13.8865 75.6857 13.9485V37.7802C75.6857 37.8422 75.748 37.9041 75.8102 37.9041H79.2738C79.336 37.9041 79.3982 37.8422 79.3982 37.7802V19.6689C79.3982 19.5244 79.6056 19.5037 79.6471 19.6276L82.5093 29.024L82.7167 29.6849C82.7374 29.7468 82.7789 29.7675 82.8411 29.7675H85.4959C85.5581 29.7675 85.5996 29.7262 85.6203 29.6849L85.8277 29.024L88.6899 19.6276C88.7313 19.4831 88.9387 19.5244 88.9387 19.6689V37.7802C88.9387 37.8422 89.001 37.9041 89.0632 37.9041H92.5268C92.589 37.9041 92.6513 37.8422 92.6513 37.7802V13.9485C92.6513 13.8865 92.589 13.8246 92.5268 13.8246H90.4943Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M187.849 13.8246C187.787 13.8246 187.745 13.8659 187.725 13.9072L184.883 23.2416C184.842 23.3655 184.676 23.3655 184.634 23.2416L181.793 13.9072C181.772 13.8452 181.731 13.8246 181.668 13.8246H176.4C176.338 13.8246 176.276 13.8865 176.276 13.9485V37.7802C176.276 37.8422 176.338 37.9041 176.4 37.9041H179.864C179.926 37.9041 179.988 37.8422 179.988 37.7802V19.6689C179.988 19.5244 180.196 19.5037 180.237 19.6276L183.099 29.024L183.307 29.6849C183.328 29.7468 183.369 29.7675 183.431 29.7675H186.086C186.148 29.7675 186.19 29.7262 186.211 29.6849L186.418 29.024L189.28 19.6276C189.322 19.4831 189.529 19.5244 189.529 19.6689V37.7802C189.529 37.8422 189.591 37.9041 189.653 37.9041H193.117C193.179 37.9041 193.241 37.8422 193.241 37.7802V13.9485C193.241 13.8865 193.179 13.8246 193.117 13.8246H187.849Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M143.174 13.8246H136.724H133.261H126.81C126.748 13.8246 126.686 13.8865 126.686 13.9485V16.9223C126.686 16.9843 126.748 17.0462 126.81 17.0462H133.136V37.7802C133.136 37.8422 133.198 37.9041 133.261 37.9041H136.724C136.786 37.9041 136.849 37.8422 136.849 37.7802V17.0462H143.174C143.237 17.0462 143.299 16.9843 143.299 16.9223V13.9485C143.299 13.8865 143.257 13.8246 143.174 13.8246Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M163.604 37.9041H166.756C166.839 37.9041 166.901 37.8215 166.881 37.7389L160.368 13.8245C160.347 13.7626 160.306 13.7419 160.244 13.7419H159.041H156.925H155.722C155.66 13.7419 155.619 13.7832 155.598 13.8245L149.085 37.7389C149.065 37.8215 149.127 37.9041 149.21 37.9041H152.362C152.425 37.9041 152.466 37.8628 152.487 37.8215L154.374 30.862C154.395 30.8 154.436 30.7794 154.499 30.7794H161.467C161.53 30.7794 161.571 30.8207 161.592 30.862L163.479 37.8215C163.5 37.8628 163.562 37.9041 163.604 37.9041ZM155.328 27.3719L157.859 18.0581C157.9 17.9342 158.066 17.9342 158.107 18.0581L160.638 27.3719C160.659 27.4545 160.596 27.5371 160.513 27.5371H155.453C155.37 27.5371 155.308 27.4545 155.328 27.3719Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M217.362 37.9041H220.515C220.598 37.9041 220.66 37.8215 220.639 37.7389L214.127 13.8245C214.106 13.7626 214.065 13.7419 214.002 13.7419H212.8H210.684H209.481C209.419 13.7419 209.377 13.7832 209.357 13.8245L202.844 37.7389C202.823 37.8215 202.886 37.9041 202.969 37.9041H206.121C206.183 37.9041 206.225 37.8628 206.246 37.8215L208.133 30.862C208.154 30.8 208.195 30.7794 208.257 30.7794H215.226C215.288 30.7794 215.33 30.8207 215.351 30.862L217.238 37.8215C217.259 37.8628 217.3 37.9041 217.362 37.9041ZM209.087 27.3719L211.617 18.0581C211.659 17.9342 211.825 17.9342 211.866 18.0581L214.397 27.3719C214.417 27.4545 214.355 27.5371 214.272 27.5371H209.211C209.129 27.5371 209.066 27.4545 209.087 27.3719Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M106.713 34.3727V26.9795C106.713 26.9176 106.775 26.8556 106.837 26.8556H116.067C116.129 26.8556 116.191 26.7936 116.191 26.7317V23.7579C116.191 23.6959 116.129 23.634 116.067 23.634H106.837C106.775 23.634 106.713 23.572 106.713 23.5101V17.1907C106.713 17.1288 106.775 17.0668 106.837 17.0668H117.332C117.394 17.0668 117.457 17.0049 117.457 16.9429V13.9691C117.457 13.9072 117.394 13.8452 117.332 13.8452H106.713H103.125C103.063 13.8452 103.001 13.9072 103.001 13.9691V17.0668V23.6546V26.8763V34.5173V37.7802C103.001 37.8422 103.063 37.9041 103.125 37.9041H106.713H117.768C117.83 37.9041 117.892 37.8422 117.892 37.7802V34.6412C117.892 34.5792 117.83 34.5173 117.768 34.5173H106.817C106.755 34.4966 106.713 34.4553 106.713 34.3727Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M272.532 37.6976L260.544 25.3687C260.502 25.3274 260.502 25.2448 260.544 25.2035L271.329 14.0517C271.412 13.9691 271.349 13.8452 271.246 13.8452H266.828C266.787 13.8452 266.766 13.8659 266.745 13.8865L257.599 23.3449C257.516 23.4275 257.391 23.3655 257.391 23.2623V13.9691C257.391 13.9072 257.329 13.8452 257.267 13.8452H253.803C253.741 13.8452 253.679 13.9072 253.679 13.9691V37.8009C253.679 37.8628 253.741 37.9248 253.803 37.9248H257.267C257.329 37.9248 257.391 37.8628 257.391 37.8009V27.3099C257.391 27.2067 257.536 27.1447 257.599 27.2273L267.969 37.8835C267.989 37.9041 268.031 37.9248 268.052 37.9248H272.469C272.552 37.9041 272.615 37.7596 272.532 37.6976Z\",fill:\"#24292E\"}),ve(\"path\",{d:\"M52.021 1L31.0526 16.4886L34.9517 7.36063L52.021 1Z\",fill:\"#E17726\",stroke:\"#E17726\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M3.65491 1L24.4366 16.6331L20.7241 7.36063L3.65491 1Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M44.4716 36.9127L38.8925 45.4211L50.8389 48.7047L54.261 37.0986L44.4716 36.9127Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M1.43555 37.0986L4.83695 48.7047L16.7626 45.4211L11.2042 36.9127L1.43555 37.0986Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M16.1197 22.5395L12.8013 27.5371L24.6232 28.074L24.2292 15.3734L16.1197 22.5395Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M39.5561 22.5394L31.3222 15.2288L31.0526 28.0739L42.8746 27.537L39.5561 22.5394Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M16.7626 45.4212L23.918 41.9724L17.7582 37.1813L16.7626 45.4212Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M31.7578 41.9724L38.8925 45.4212L37.9177 37.1813L31.7578 41.9724Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M38.8923 45.4212L31.7577 41.9724L32.3384 46.5983L32.2762 48.5602L38.8923 45.4212Z\",fill:\"#D5BFB2\",stroke:\"#D5BFB2\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M16.7625 45.4212L23.3994 48.5602L23.3579 46.5983L23.9179 41.9724L16.7625 45.4212Z\",fill:\"#D5BFB2\",stroke:\"#D5BFB2\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M23.5239 34.1249L17.5922 32.3902L21.7818 30.4696L23.5239 34.1249Z\",fill:\"#233447\",stroke:\"#233447\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M32.1517 34.1249L33.8939 30.4696L38.1042 32.3902L32.1517 34.1249Z\",fill:\"#233447\",stroke:\"#233447\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M16.7626 45.4212L17.7996 36.9128L11.2042 37.0987L16.7626 45.4212Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M37.8761 36.9128L38.8924 45.4212L44.4715 37.0987L37.8761 36.9128Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M42.8745 27.5371L31.0526 28.074L32.1518 34.1249L33.894 30.4696L38.1042 32.3902L42.8745 27.5371Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M17.5922 32.3902L21.7817 30.4696L23.5239 34.1249L24.6232 28.074L12.8012 27.5371L17.5922 32.3902Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M12.8013 27.5371L17.7582 37.1813L17.5923 32.3902L12.8013 27.5371Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M38.1044 32.3902L37.9177 37.1813L42.8746 27.5371L38.1044 32.3902Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M24.6232 28.0741L23.524 34.125L24.9136 41.2703L25.2247 31.8533L24.6232 28.0741Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M31.0526 28.0741L30.4719 31.8327L30.7623 41.2703L32.1519 34.125L31.0526 28.0741Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M32.1519 34.1249L30.7623 41.2702L31.7578 41.9724L37.9177 37.1813L38.1043 32.3901L32.1519 34.1249Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M17.5922 32.3901L17.7581 37.1813L23.918 41.9724L24.9135 41.2702L23.5239 34.1249L17.5922 32.3901Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M32.2763 48.5602L32.3385 46.5983L31.7993 46.1439H23.8765L23.358 46.5983L23.3995 48.5602L16.7626 45.4211L19.0855 47.3211L23.7935 50.5633H31.8615L36.5903 47.3211L38.8924 45.4211L32.2763 48.5602Z\",fill:\"#C0AC9D\",stroke:\"#C0AC9D\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M31.7578 41.9724L30.7622 41.2703H24.9135L23.918 41.9724L23.358 46.5983L23.8765 46.144H31.7993L32.3385 46.5983L31.7578 41.9724Z\",fill:\"#24292E\",stroke:\"#24292E\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M52.9128 17.5005L54.6757 8.95079L52.021 1L31.7578 15.9723L39.5561 22.5394L50.5692 25.7404L52.9958 22.9111L51.938 22.147L53.618 20.6188L52.3321 19.6276L54.0121 18.3472L52.9128 17.5005Z\",fill:\"#763E1A\",stroke:\"#763E1A\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M1 8.95079L2.78366 17.5005L1.64295 18.3472L3.34365 19.6276L2.05775 20.6188L3.73771 22.147L2.67996 22.9111L5.10657 25.7404L16.1196 22.5394L23.918 15.9723L3.65475 1L1 8.95079Z\",fill:\"#763E1A\",stroke:\"#763E1A\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M50.5692 25.7404L39.5561 22.5394L42.8746 27.5371L37.9177 37.1813L44.4716 37.0987H54.261L50.5692 25.7404Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M16.1196 22.5394L5.10651 25.7404L1.43549 37.0987H11.2041L17.7581 37.1813L12.8011 27.5371L16.1196 22.5394Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M31.0526 28.0741L31.7578 15.9724L34.9518 7.36072H20.7239L23.9179 15.9724L24.6231 28.0741L24.8927 31.8739L24.9135 41.2703H30.7622L30.783 31.8739L31.0526 28.0741Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}));AO=class t{static size(e,n){if(typeof e==\"number\"&&(e={height:e,width:e}),!Number.isSafeInteger(e.height)&&e.height!==1/0)throw new Error(`Bitmap: wrong height=${e.height} (${typeof e.height})`);if(!Number.isSafeInteger(e.width)&&e.width!==1/0)throw new Error(`Bitmap: wrong width=${e.width} (${typeof e.width})`);return n!==void 0&&(e={width:Math.min(e.width,n.width),height:Math.min(e.height,n.height)}),e}static fromString(e){let n=(e=e.replace(/^\\\\n+/g,\"\").replace(/\\\\n+$/g,\"\")).split(`\\n`),r=n.length,o=new Array(r),i;for(let a of n){let c=a.split(\"\").map(u=>{if(u===\"X\")return!0;if(u===\" \")return!1;if(u!==\"?\")throw new Error(`Bitmap.fromString: unknown symbol=${u}`)});if(i&&c.length!==i)throw new Error(`Bitmap.fromString different row sizes: width=${i} cur=${c.length}`);i=c.length,o.push(c)}return i||(i=0),new t({height:r,width:i},o)}constructor(e,n){let{height:r,width:o}=t.size(e);this.data=n||Array.from({length:r},()=>Mh(o,void 0)),this.height=r,this.width=o}point(e){return this.data[e.y][e.x]}isInside(e){return 0<=e.x&&e.x<this.width&&0<=e.y&&e.y<this.height}size(e){if(!e)return{height:this.height,width:this.width};let{x:n,y:r}=this.xy(e);return{height:this.height-r,width:this.width-n}}xy(e){if(typeof e==\"number\"&&(e={x:e,y:e}),!Number.isSafeInteger(e.x))throw new Error(`Bitmap: wrong x=${e.x}`);if(!Number.isSafeInteger(e.y))throw new Error(`Bitmap: wrong y=${e.y}`);return e.x=E8e(e.x,this.width),e.y=E8e(e.y,this.height),e}rect(e,n,r){let{x:o,y:i}=this.xy(e),{height:a,width:c}=t.size(n,this.size({x:o,y:i}));for(let u=0;u<a;u++)for(let d=0;d<c;d++)this.data[i+u][o+d]=typeof r==\"function\"?r({x:d,y:u},this.data[i+u][o+d]):r;return this}rectRead(e,n,r){return this.rect(e,n,(o,i)=>(r(o,i),i))}hLine(e,n,r){return this.rect(e,{width:n,height:1},r)}vLine(e,n,r){return this.rect(e,{width:1,height:n},r)}border(e=2,n){let r=this.height+2*e,o=this.width+2*e,i=Mh(e,n),a=Array.from({length:e},()=>Mh(o,n));return new t({height:r,width:o},[...a,...this.data.map(c=>[...i,...c,...i]),...a])}embed(e,n){return this.rect(e,n.size(),({x:r,y:o})=>n.data[o][r])}rectSlice(e,n=this.size()){let r=new t(t.size(n,this.size(this.xy(e))));return this.rect(e,n,({x:o,y:i},a)=>r.data[i][o]=a),r}inverse(){let{height:e,width:n}=this;return new t({height:n,width:e}).rect({x:0,y:0},1/0,({x:r,y:o})=>this.data[r][o])}scale(e){if(!Number.isSafeInteger(e)||e>1024)throw new Error(`Wrong scale factor: ${e}`);let{height:n,width:r}=this;return new t({height:e*n,width:e*r}).rect({x:0,y:0},1/0,({x:o,y:i})=>this.data[Math.floor(i/e)][Math.floor(o/e)])}clone(){return new t(this.size()).rect({x:0,y:0},this.size(),({x:e,y:n})=>this.data[n][e])}assertDrawn(){this.rectRead(0,1/0,(e,n)=>{if(typeof n!=\"boolean\")throw new Error(\"Invalid color type=\"+typeof n)})}toString(){return this.data.map(e=>e.map(n=>n===void 0?\"?\":n?\"X\":\" \").join(\"\")).join(`\\n`)}toASCII(){let{height:e,width:n,data:r}=this,o=\"\";for(let i=0;i<e;i+=2){for(let a=0;a<n;a++){let c=r[i][a],u=i+1>=e||r[i+1][a];c||u?!c&&u?o+=\"\\\\u2580\":c&&!u?o+=\"\\\\u2584\":c&&u&&(o+=\" \"):o+=\"\\\\u2588\"}o+=`\\n`}return o}toTerm(){let e=\"\\\\x1B[0m\",n=`\\\\x1B[1;47m  ${e}`,r=`\\\\x1B[40m  ${e}`;return this.data.map(o=>o.map(i=>i?r:n).join(\"\")).join(`\\n`)}toSVG(){let e=`<svg xmlns:svg=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${this.width} ${this.height}\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">`;return this.rectRead(0,1/0,({x:n,y:r},o)=>{o&&(e+=`<rect x=\"${n}\" y=\"${r}\" width=\"1\" height=\"1\" />`)}),e+=\"</svg>\",e}toGIF(){let e=c=>[255&c,c>>>8&255],n=[...e(this.width),...e(this.height)],r=[];this.rectRead(0,1/0,(c,u)=>r.push(+(u===!0)));let o=126,i=[71,73,70,56,55,97,...n,246,0,0,255,255,255,...Mh(381,0),44,0,0,0,0,...n,0,7],a=Math.floor(r.length/o);for(let c=0;c<a;c++)i.push(127,128,...r.slice(o*c,o*(c+1)).map(u=>+u));return i.push(r.length%o+1,128,...r.slice(a*o).map(c=>+c)),i.push(1,129,0,59),new Uint8Array(i)}toImage(e=!1){let{height:n,width:r}=this.size(),o=new Uint8Array(n*r*(e?3:4)),i=0;for(let a=0;a<n;a++)for(let c=0;c<r;c++){let u=this.data[a][c]?0:255;o[i++]=u,o[i++]=u,o[i++]=u,e||(o[i++]=255)}return{height:n,width:r,data:o}}},C8e=[\"low\",\"medium\",\"quartile\",\"high\"],A8e=[\"numeric\",\"alphanumeric\",\"byte\",\"kanji\",\"eci\"],Iat=[26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706],Oat={low:[7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],medium:[10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],quartile:[13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],high:[17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]},Pat={low:[1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],medium:[1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],quartile:[1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],high:[1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]},_u={size:{encode:t=>21+4*(t-1),decode:t=>(t-17)/4},sizeType:t=>Math.floor((t+7)/17),alignmentPatterns(t){if(t===1)return[];let e=_u.size.encode(t)-6-1,n=e-6,r=Math.ceil(n/28),o=Math.floor(n/r);o%2?o+=1:n%r*2>=r&&(o+=2);let i=[6];for(let a=1;a<r;a++)i.push(e-(r-a)*o);return i.push(e),i},ECCode:{low:1,medium:0,quartile:3,high:2},formatMask:21522,formatBits(t,e){let n=_u.ECCode[t]<<3|e,r=n;for(let o=0;o<10;o++)r=r<<1^1335*(r>>9);return(n<<10|r)^_u.formatMask},versionBits(t){let e=t;for(let n=0;n<12;n++)e=e<<1^7973*(e>>11);return t<<12|e},alphabet:{numeric:_8e(\"0123456789\"),alphanumerc:_8e(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\")},lengthBits:(t,e)=>({numeric:[10,12,14],alphanumeric:[9,11,13],byte:[8,16,16],kanji:[8,10,12],eci:[0,0,0]})[e][_u.sizeType(t)],modeBits:{numeric:\"0001\",alphanumeric:\"0010\",byte:\"0100\",kanji:\"1000\",eci:\"0111\"},capacity(t,e){let n=Iat[t-1],r=Oat[e][t-1],o=Pat[e][t-1],i=Math.floor(n/o)-r,a=o-n%o;return{words:r,numBlocks:o,shortBlocks:a,blockLen:i,capacity:8*(n-r*o),total:(r+i)*o+o-a}}},Tre=[(t,e)=>(t+e)%2==0,(t,e)=>e%2==0,(t,e)=>t%3==0,(t,e)=>(t+e)%3==0,(t,e)=>(Math.floor(e/2)+Math.floor(t/3))%2==0,(t,e)=>t*e%2+t*e%3==0,(t,e)=>(t*e%2+t*e%3)%2==0,(t,e)=>((t+e)%2+t*e%3)%2==0],Xt={tables:(t=>{let e=Mh(256,0),n=Mh(256,0);for(let r=0,o=1;r<256;r++)e[r]=o,n[o]=r,o<<=1,256&o&&(o^=285);return{exp:e,log:n}})(),exp:t=>Xt.tables.exp[t],log(t){if(t===0)throw new Error(`GF.log: wrong arg=${t}`);return Xt.tables.log[t]%255},mul:(t,e)=>t===0||e===0?0:Xt.tables.exp[(Xt.tables.log[t]+Xt.tables.log[e])%255],add:(t,e)=>t^e,pow:(t,e)=>Xt.tables.exp[Xt.tables.log[t]*e%255],inv(t){if(t===0)throw new Error(`GF.inverse: wrong arg=${t}`);return Xt.tables.exp[255-Xt.tables.log[t]]},polynomial(t){if(t.length==0)throw new Error(\"GF.polymomial: wrong length\");if(t[0]!==0)return t;let e=0;for(;e<t.length-1&&t[e]==0;e++);return t.slice(e)},monomial(t,e){if(t<0)throw new Error(`GF.monomial: wrong degree=${t}`);if(e==0)return[0];let n=Mh(t+1,0);return n[0]=e,Xt.polynomial(n)},degree:t=>t.length-1,coefficient:(t,e)=>t[Xt.degree(t)-e],mulPoly(t,e){if(t[0]===0||e[0]===0)return[0];let n=Mh(t.length+e.length-1,0);for(let r=0;r<t.length;r++)for(let o=0;o<e.length;o++)n[r+o]=Xt.add(n[r+o],Xt.mul(t[r],e[o]));return Xt.polynomial(n)},mulPolyScalar(t,e){if(e==0)return[0];if(e==1)return t;let n=Mh(t.length,0);for(let r=0;r<t.length;r++)n[r]=Xt.mul(t[r],e);return Xt.polynomial(n)},mulPolyMonomial(t,e,n){if(e<0)throw new Error(\"GF.mulPolyMonomial: wrong degree\");if(n==0)return[0];let r=Mh(t.length+e,0);for(let o=0;o<t.length;o++)r[o]=Xt.mul(t[o],n);return Xt.polynomial(r)},addPoly(t,e){if(t[0]===0)return e;if(e[0]===0)return t;let n=t,r=e;n.length>r.length&&([n,r]=[r,n]);let o=Mh(r.length,0),i=r.length-n.length,a=r.slice(0,i);for(let c=0;c<a.length;c++)o[c]=a[c];for(let c=i;c<r.length;c++)o[c]=Xt.add(n[c-i],r[c]);return Xt.polynomial(o)},remainderPoly(t,e){let n=Array.from(t);for(let r=0;r<t.length-e.length+1;r++){let o=n[r];if(o!==0)for(let i=1;i<e.length;i++)e[i]!==0&&(n[r+i]=Xt.add(n[r+i],Xt.mul(e[i],o)))}return n.slice(t.length-e.length+1,n.length)},divisorPoly(t){let e=[1];for(let n=0;n<t;n++)e=Xt.mulPoly(e,[1,Xt.pow(2,n)]);return e},evalPoly(t,e){if(e==0)return Xt.coefficient(t,0);let n=t[0];for(let r=1;r<t.length;r++)n=Xt.add(Xt.mul(e,n),t[r]);return n},euclidian(t,e,n){Xt.degree(t)<Xt.degree(e)&&([t,e]=[e,t]);let r=t,o=e,i=[0],a=[1];for(;2*Xt.degree(o)>=n;){let d=r,h=i;if(r=o,i=a,r[0]===0)throw new Error(\"rLast[0] === 0\");o=d;let m=[0],g=Xt.inv(r[0]);for(;Xt.degree(o)>=Xt.degree(r)&&o[0]!==0;){let b=Xt.degree(o)-Xt.degree(r),E=Xt.mul(o[0],g);m=Xt.addPoly(m,Xt.monomial(b,E)),o=Xt.addPoly(o,Xt.mulPolyMonomial(r,b,E))}if(m=Xt.mulPoly(m,i),a=Xt.addPoly(m,h),Xt.degree(o)>=Xt.degree(r))throw new Error(`Division failed r: ${o}, rLast: ${r}`)}let c=Xt.coefficient(a,0);if(c==0)throw new Error(\"sigmaTilde(0) was zero\");let u=Xt.inv(c);return[Xt.mulPolyScalar(a,u),Xt.mulPolyScalar(o,u)]}};Dne={DESKTOP:\"Desktop\",MOBILE:\"Mobile\",META_MASK_MOBILE_APP:\"MetaMask mobile app\",SCAN_TO_CONNECT:\"Scan to connect and sign with\",CONNECT_WITH_EXTENSION:\"Connect With MetaMask Extension\",INSTALL_MODAL:{TRUSTED_BY_USERS:\"Trusted by over 30 million users to buy, store, send and swap crypto securely\",LEADING_CRYPTO_WALLET:\"The leading crypto wallet & gateway to blockchain apps built on Ethereum Mainnet, Polygon, Optimism, and many other networks\",CONTROL_DIGITAL_INTERACTIONS:\"Puts you in control of your digital interactions by making power of cryptography more accessible\",INSTALL_META_MASK_EXTENSION:\"Install MetaMask Extension\"},PENDING_MODAL:{OPEN_META_MASK_SELECT_CODE:\"Please open the MetaMask wallet app and select the code on the screen OR disconnect\",OPEN_META_MASK_CONTINUE:\"Open the MetaMask app to continue with your session.\",NUMBER_AFTER_OPEN_NOTICE:\"If a number doesn\\'t appear after opening MetaMask, please click disconnect and re-scan the QRCode.\",DISCONNECT:\"Disconnect\"},SELECT_MODAL:{CRYPTO_TAKE_CONTROL_TEXT:\"Take control of your crypto and explore the blockchain with the wallet trusted by over 30 million people worldwide\"},META_MASK_MODAL:{ADDRESS_COPIED:\"Address copied to clipboard!\",DISCONNECT:\"Disconnect\",ACTIVE_NETWORK:\"Active Network\"}},qO=class{constructor(e){var n;this.translations=Dne,this.supportedLocales=[\"es\",\"fr\",\"he\",\"it\",\"pt\",\"tr\"],this.baseUrl=(n=e?.baseUrl)!==null&&n!==void 0?n:\"https://raw.githubusercontent.com/MetaMask/metamask-sdk/refs/heads/gh-pages/locales\"}getBrowserLanguage(){if((navigator.languages||[navigator.language]).some(n=>n.toLowerCase().startsWith(\"en\")))return\"en\";let e=navigator.language.toLowerCase().split(\"-\")[0];return this.supportedLocales.includes(e)?e:\"en\"}async init(e){let n=this.getBrowserLanguage()||e.fallbackLng;await this.loadTranslations(n)}async loadTranslations(e){let n=e.split(\"-\")[0];if(n!==\"en\"&&this.supportedLocales.includes(n))try{let r=`${this.baseUrl}/${n}.json`,o=await fetch(r);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);this.translations=await o.json()}catch(r){console.warn(`\\\\u274C Failed to load ${n} translations, falling back to English:`,r),this.translations=Dne}else this.translations=Dne}t(e){return this.getNestedTranslation(e,this.translations)||e}getNestedTranslation(e,n){let r=e.split(\".\"),o=n;for(let i of r){if(typeof o!=\"object\")return\"\";o=o[i]}return typeof o==\"string\"?o:\"\"}};(function(t){t.SDK_MODAL_VIEWED=\"sdk_modal_viewed\",t.SDK_MODAL_BUTTON_CLICKED=\"sdk_modal_button_clicked\",t.SDK_MODAL_TOGGLE_CHANGED=\"sdk_modal_toggle_changed\"})(TO||(TO={}));m7e=class{constructor(t){noe(this,t),this.close=f3(this,\"close\",7),this.startDesktopOnboarding=f3(this,\"startDesktopOnboarding\",7),this.trackAnalytics=f3(this,\"trackAnalytics\",7),this.link=void 0,this.sdkVersion=void 0,this.preferDesktop=void 0,this.tab=1,this.isDefaultTab=!0,this.translationsLoaded=!1,this.onClose=this.onClose.bind(this),this.onStartDesktopOnboardingHandler=this.onStartDesktopOnboardingHandler.bind(this),this.setTab=this.setTab.bind(this),this.render=this.render.bind(this),this.setTab(this.preferDesktop?1:2),this.i18nInstance=new qO}componentDidLoad(){this.trackAnalytics.emit({event:TO.SDK_MODAL_VIEWED,params:{extensionInstalled:!1,tab:this.tab===1?\"desktop\":\"mobile\"}})}async connectedCallback(){await this.i18nInstance.init({fallbackLng:\"en\"}),this.translationsLoaded=!0}updatePreferDesktop(t){t?this.setTab(1):this.setTab(2)}onClose(t=!1){this.close.emit({shouldTerminate:t})}onStartDesktopOnboardingHandler(){this.trackAnalytics.emit({event:TO.SDK_MODAL_BUTTON_CLICKED,params:{button_type:\"install_extension\",tab:\"desktop\"}}),this.startDesktopOnboarding.emit()}setTab(t,e=!1){e&&this.trackAnalytics.emit({event:TO.SDK_MODAL_TOGGLE_CHANGED,params:{toggle:this.tab===1?\"desktop_to_mobile\":\"mobile_to_desktop\"}}),this.tab=t,this.isDefaultTab=!1}render(){if(!this.translationsLoaded)return null;let t=r=>this.i18nInstance.t(r),e=this.isDefaultTab?this.preferDesktop?1:2:this.tab,n=p7e(this.link,\"svg\",{ecc:\"medium\",scale:2});return ve(loe,{className:\"install-model\"},ve(\"div\",{class:\"backdrop\",onClick:()=>this.onClose(!0)}),ve(\"div\",{class:\"modal\"},ve(\"div\",{class:\"closeButtonContainer\"},ve(\"div\",{class:\"right\"},ve(\"span\",{class:\"closeButton\",onClick:()=>this.onClose(!0)},ve(doe,null)))),ve(\"div\",{class:\"logoContainer\"},ve(foe,null)),ve(\"div\",null,ve(\"div\",{class:\"tabcontainer\"},ve(\"div\",{class:\"flexContainer\"},ve(\"div\",{onClick:()=>this.setTab(1,!0),class:\"tab flexItem \"+(e===1?\"tabactive\":\"\")},t(\"DESKTOP\")),ve(\"div\",{onClick:()=>this.setTab(2,!0),class:\"tab flexItem \"+(e===2?\"tabactive\":\"\")},t(\"MOBILE\")))),ve(\"div\",{style:{display:e===1?\"none\":\"block\"}},ve(\"div\",{class:\"flexContainer\"},ve(\"div\",{class:\"flexItem\",style:{textAlign:\"center\",marginTop:\"4\"}},n&&ve(\"div\",{id:\"sdk-mm-qrcode\",class:\"center\",innerHTML:n}),ve(\"div\",{class:\"connectMobileText\"},t(\"SCAN_TO_CONNECT\"),\" \",ve(\"br\",null),ve(\"span\",{class:\"blue\"},ve(\"b\",null,t(\"META_MASK_MOBILE_APP\"))))))),ve(\"div\",{style:{display:e===2?\"none\":\"block\"}},ve(\"div\",{class:\"item\"},ve(Bne,{Icon:Aat,text:t(\"INSTALL_MODAL.TRUSTED_BY_USERS\")})),ve(\"div\",{class:\"item\"},ve(Bne,{Icon:Cat,text:t(\"INSTALL_MODAL.LEADING_CRYPTO_WALLET\")})),ve(\"div\",{class:\"item\"},ve(Bne,{Icon:Tat,text:t(\"INSTALL_MODAL.CONTROL_DIGITAL_INTERACTIONS\")})),ve(\"button\",{class:\"button\",onClick:()=>this.onStartDesktopOnboardingHandler()},ve(Rat,null),ve(\"span\",{class:\"installExtensionText\"},t(\"INSTALL_MODAL.INSTALL_META_MASK_EXTENSION\"))))),ve(uoe,{version:this.sdkVersion})))}get el(){return yq(this)}static get watchers(){return{preferDesktop:[\"updatePreferDesktop\"]}}};m7e.style=`.flexContainer {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n    flex-direction: row;\\n}\\n\\n.flexItem {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem11 {\\n    flex: 11;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem1 {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.tab {\\n    padding: 8px;\\n    cursor: pointer;\\n    background-color: #F2F4F6;\\n    font-size: 12px;\\n    text-align: center;\\n    color: #24292E;\\n}\\n\\n.tabcontainer {\\n    padding: 4px;\\n    background-color: #F2F4F6;\\n    border-radius: 8px;\\n    margin-bottom: 30px;\\n    margin-top: 30px;\\n}\\n\\n.tabactive {\\n    background-color: white;\\n    -webkit-transition: background-color 300ms linear;\\n    -ms-transition: background-color 300ms linear;\\n    transition: background-color 300ms linear;\\n    border-radius: 8px;\\n}\\n\\n.item {\\n    font-size: 12px;\\n    margin-bottom: 16px;\\n    border-radius: 8px;\\n    padding: 10px;\\n    border: 2px #F2F4F6 solid;\\n    color: #24292E;\\n}\\n\\n.extensionLabel {\\n    font-style: normal;\\n    font-weight: bold;\\n    font-size: 14px;\\n    text-align: cetner;\\n    color: #24272A;\\n}\\n\\n.notice {\\n    font-size: 12px;\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    color: grey;\\n}\\n\\n.button {\\n    margin-top: 41.5px;\\n    margin-bottom: 20px;\\n    width: 100%;\\n    display: flex;\\n    flex-direction: row;\\n    justify-content: center;\\n    align-items: center;\\n    padding: 12px 20px;\\n    background: #037DD6;\\n    border-radius: 32px;\\n    color: white;\\n    border: 0;\\n    font-size: 14px;\\n    cursor: pointer;\\n}\\n\\n.backdrop {\\n    visibility: visible;\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    width: 100%;\\n    z-index: 99998;\\n    background: rgba(0, 0, 0, 0.87);\\n    opacity: 0.3;\\n}\\n\\n.modal {\\n    visibility: visible;\\n    position: fixed;\\n    left: 50%;\\n    transform: translate(-50%, -50%);\\n    z-index: 99999;\\n    background: white;\\n    padding: 20px;\\n    border-radius: 8px;\\n    top: 50%;\\n    max-width: 100%;\\n    width: 460px;\\n    min-width: 300px;\\n    box-shadow: rgba(0, 0, 0, 0.2) 0px 11px 15px -7px, rgba(0, 0, 0, 0.14) 0px 24px 38px 3px, rgba(0, 0, 0, 0.12) 0px 9px 46px 8px;\\n    -webkit-font-smoothing: antialiased;\\n}\\n\\n.closeButton {\\n    color: #BBC0C5;\\n    cursor: pointer;\\n}\\n\\n.logoContainer {\\n    margin-left: 24px;\\n    margin-right: 24px;\\n    margin-top: 24px;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.connectMobileText {\\n    font-size: 14px;\\n    color: black;\\n    margin-top: 28px;\\n    margin-bottom: 28px;\\n    line-height: 2;\\n}\\n\\n.blue {\\n    color: #037DD6;\\n    font-weight: 700;\\n}\\n\\n.installExtensionText {\\n    margin-left: 10px;\\n}\\n\\n.center {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.right {\\n    display: flex;\\n    align-items: center;\\n    justify-content: right;\\n}\\n\\n#sdk-mm-qrcode {\\n    svg {\\n        width: 50%;\\n    }\\n}`;g7e=class{constructor(t){noe(this,t),this.close=f3(this,\"close\",7),this.disconnect=f3(this,\"disconnect\",7),this.updateOTPValue=f3(this,\"updateOTPValue\",7),this.displayOTP=void 0,this.sdkVersion=void 0,this.otpCode=void 0,this.translationsLoaded=!1,this.i18nInstance=new qO}async connectedCallback(){await this.i18nInstance.init({fallbackLng:\"en\"}),this.translationsLoaded=!0}onClose(){this.close.emit()}onDisconnect(){this.disconnect.emit()}onUpdateOTPValueHandler(t){this.updateOTPValue.emit({otpValue:t})}disconnectedCallback(){this.onClose()}render(){var t;if(!this.translationsLoaded)return null;let e=(t=this.displayOTP)===null||t===void 0||t,n=this.sdkVersion,r=o=>this.i18nInstance.t(o);return ve(loe,{className:\"pending-modal\"},ve(\"div\",{class:\"backdrop\",onClick:()=>this.onClose()}),ve(\"div\",{class:\"modal\"},ve(\"div\",{class:\"closeButtonContainer\"},ve(\"div\",{class:\"right\"},ve(\"span\",{class:\"closeButton\",onClick:()=>this.onClose()},ve(doe,null)))),ve(\"div\",{class:\"logoContainer\"},ve(foe,null)),ve(\"div\",null,ve(\"div\",{class:\"flexContainer\",style:{flexDirection:\"column\",color:\"black\"}},ve(\"div\",{class:\"flexItem\",style:{textAlign:\"center\",marginTop:\"30px\",marginBottom:\"30px\",fontSize:\"16px\"}},r(e?\"PENDING_MODAL.OPEN_META_MASK_SELECT_CODE\":\"PENDING_MODAL.OPEN_META_MASK_CONTINUE\")),ve(\"div\",{id:\"sdk-mm-otp-value\",style:{padding:\"10px\",fontSize:\"32px\",display:this.otpCode?\"block\":\"none\"}},this.otpCode),e&&ve(\"div\",{class:\"notice\"},\"* \",r(\"PENDING_MODAL.NUMBER_AFTER_OPEN_NOTICE\"))),ve(\"div\",{style:{marginTop:\"20px\"}},ve(\"button\",{class:\"button blue\",style:{marginTop:\"5px\",color:\"#0376C9\",borderColor:\"#0376C9\",borderWidth:\"1px\",borderStyle:\"solid\",backgroundColor:\"white\"},onClick:()=>this.onDisconnect()},r(\"PENDING_MODAL.DISCONNECT\")))),ve(uoe,{version:n})))}get el(){return yq(this)}};g7e.style=`.flexContainer {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n    flex-direction: row;\\n}\\n\\n.flexItem {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem11 {\\n    flex: 11;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem1 {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.tab {\\n    padding: 8px;\\n    cursor: pointer;\\n    background-color: #F2F4F6;\\n    font-size: 12px;\\n    text-align: center;\\n    color: #24292E;\\n}\\n\\n.tabcontainer {\\n    padding: 4px;\\n    background-color: #F2F4F6;\\n    border-radius: 8px;\\n    margin-bottom: 30px;\\n    margin-top: 30px;\\n}\\n\\n.tabactive {\\n    background-color: white;\\n    -webkit-transition: background-color 300ms linear;\\n    -ms-transition: background-color 300ms linear;\\n    transition: background-color 300ms linear;\\n    border-radius: 8px;\\n}\\n\\n.item {\\n    font-size: 12px;\\n    margin-bottom: 16px;\\n    border-radius: 8px;\\n    padding: 10px;\\n    border: 2px #F2F4F6 solid;\\n    color: #24292E;\\n}\\n\\n.extensionLabel {\\n    font-style: normal;\\n    font-weight: bold;\\n    font-size: 14px;\\n    text-align: cetner;\\n    color: #24272A;\\n}\\n\\n.notice {\\n    font-size: 12px;\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    color: grey;\\n}\\n\\n.button {\\n    margin-top: 41.5px;\\n    margin-bottom: 20px;\\n    width: 100%;\\n    display: flex;\\n    flex-direction: row;\\n    justify-content: center;\\n    align-items: center;\\n    padding: 12px 20px;\\n    background: #037DD6;\\n    border-radius: 32px;\\n    color: white;\\n    border: 0;\\n    font-size: 14px;\\n    cursor: pointer;\\n}\\n\\n.backdrop {\\n    visibility: visible;\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    width: 100%;\\n    z-index: 99998;\\n    background: rgba(0, 0, 0, 0.87);\\n    opacity: 0.3;\\n}\\n\\n.modal {\\n    visibility: visible;\\n    position: fixed;\\n    left: 50%;\\n    transform: translate(-50%, -50%);\\n    z-index: 99999;\\n    background: white;\\n    padding: 20px;\\n    border-radius: 8px;\\n    top: 50%;\\n    max-width: 100%;\\n    width: 460px;\\n    min-width: 300px;\\n    box-shadow: rgba(0, 0, 0, 0.2) 0px 11px 15px -7px, rgba(0, 0, 0, 0.14) 0px 24px 38px 3px, rgba(0, 0, 0, 0.12) 0px 9px 46px 8px;\\n    -webkit-font-smoothing: antialiased;\\n}\\n\\n.closeButton {\\n    color: #BBC0C5;\\n    cursor: pointer;\\n}\\n\\n.logoContainer {\\n    margin-left: 24px;\\n    margin-right: 24px;\\n    margin-top: 24px;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.connectMobileText {\\n    font-size: 14px;\\n    color: black;\\n    margin-top: 28px;\\n    margin-bottom: 28px;\\n    line-height: 2;\\n}\\n\\n.blue {\\n    color: #037DD6;\\n    font-weight: 700;\\n}\\n\\n.installExtensionText {\\n    margin-left: 10px;\\n}\\n\\n.center {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.right {\\n    display: flex;\\n    align-items: center;\\n    justify-content: right;\\n}\\n\\n#sdk-mm-qrcode {\\n    svg {\\n        width: 50%;\\n    }\\n}`;Lat=()=>ve(\"svg\",{width:\"21\",height:\"15\",viewBox:\"0 0 21 15\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M14.1364 14.9851C13.5909 14.9851 13.2273 14.5851 13.2273 13.9851C13.2273 13.3851 13.5909 12.9851 14.1364 12.9851C16.6818 12.9851 18.6818 10.7851 18.6818 7.98508C18.6818 5.18508 16.6818 2.98508 14.1364 2.98508C11.5909 2.98508 9.59091 5.18508 9.59091 7.98508C9.59091 8.58508 9.22727 8.98508 8.68182 8.98508C8.13636 8.98508 7.77273 8.58508 7.77273 7.98508C7.77273 4.08508 10.5909 0.985077 14.1364 0.985077C17.6818 0.985077 20.5 4.08508 20.5 7.98508C20.5 11.8851 17.6818 14.9851 14.1364 14.9851ZM6.68182 14.7851C3.22727 14.7851 0.5 11.6851 0.5 7.98508C0.5 4.28508 3.22727 1.18508 6.68182 1.18508C7.22727 1.18508 7.59091 1.58508 7.59091 2.18508C7.59091 2.78508 7.22727 3.18508 6.68182 3.18508C4.22727 3.18508 2.31818 5.38508 2.31818 7.98508C2.31818 10.5851 4.22727 12.7851 6.68182 12.7851C9.13636 12.7851 11.0455 10.6851 11.0455 7.98508C11.0455 7.38508 11.4091 6.98508 11.9545 6.98508C12.5 6.98508 12.8636 7.38508 12.8636 7.98508C12.7727 11.6851 10.0455 14.7851 6.68182 14.7851Z\",fill:\"white\"})),Bat=()=>ve(\"svg\",{width:\"400\",height:\"300\",viewBox:\"0 0 467 300\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},ve(\"path\",{d:\"M312.387 280.629C312.549 280.583 312.247 280.735 312.387 280.629L339.678 260.425C340.088 260.118 340.132 259.156 340.07 258.647C340.008 258.138 339.573 258.257 339.106 258.084L311.712 247.455C311.292 247.301 311.308 247.402 310.939 247.673C310.569 247.944 310.356 248.21 310.356 248.672L310.459 279.504C310.461 280.025 311.163 280.619 311.614 280.847C311.913 280.996 312.072 280.718 312.387 280.629ZM336.204 259.736L312.979 276.292L313.439 251.139L336.204 259.736Z\",fill:\"url(#paint0_linear_1356_14057)\"}),ve(\"path\",{d:\"M324.639 260.342C324.358 259.547 323.485 258.91 322.707 259.215C319.6 260.432 318.17 262.313 317.287 264.066C316.482 265.665 316.197 267.482 314.188 268.269C312.178 269.055 310.763 268.663 309.162 268.007C307.406 267.287 305.504 266.182 302.397 267.399C299.289 268.616 297.859 270.497 296.976 272.25C296.171 273.849 295.697 274.886 293.685 275.673C291.675 276.459 290.261 276.067 288.659 275.411C286.903 274.691 284.999 273.587 281.894 274.803C278.789 276.019 277.549 278.681 276.666 280.434C275.861 282.034 275.386 283.07 273.374 283.857C272.596 284.161 271.931 285.055 272.211 285.849C272.492 286.644 273.365 287.281 274.143 286.977C277.25 285.76 278.68 283.879 279.563 282.125C280.368 280.526 280.65 278.71 282.662 277.923C284.672 277.136 286.087 277.528 287.688 278.184C289.444 278.904 291.348 280.009 294.453 278.793C297.561 277.576 298.991 275.695 299.874 273.941C300.679 272.342 301.153 271.306 303.165 270.519C305.175 269.732 306.589 270.124 308.191 270.78C309.947 271.5 311.849 272.605 314.956 271.388C318.063 270.172 319.301 267.511 320.184 265.757C320.989 264.158 321.466 263.121 323.476 262.335C324.254 262.032 324.919 261.137 324.639 260.342Z\",fill:\"url(#paint1_linear_1356_14057)\"}),ve(\"path\",{d:\"M389.034 111.124C388.968 112.406 387.342 113.113 386.324 113.549C384.297 114.419 382.089 114.493 379.942 114.5C376.607 114.509 373.215 114.163 369.89 113.976C366.712 113.798 363.156 113.311 360.03 114.232C357.705 114.919 355.667 116.762 353.452 117.739C351.129 118.765 348.957 119.198 346.489 119.687C335.569 121.85 323.587 120.825 312.656 119.977C311.92 119.92 312.539 118.997 313.237 118.981C313.207 118.815 313.001 118.394 313.045 118.201C313.086 118.029 312.781 117.586 312.853 117.421C312.67 117.198 313.316 117.427 313.626 117.204C315.912 115.557 318.721 114.79 321.363 115.041C324.677 115.355 327.293 116.04 330.641 115.781C334.392 115.491 338.125 114.787 341.857 114.312C345.142 113.892 349.09 113.941 352.106 112.28C352.916 111.834 353.137 111.262 353.269 110.287C353.331 109.828 353.672 108.969 353.658 108.511C353.629 107.529 354.191 107.886 355.013 107.298C356.857 105.981 358.274 105.516 360.428 105.784C362.841 106.083 365.264 107.273 367.578 107.953C370.761 108.888 374.328 108.646 377.631 108.477C380.517 108.329 383.141 107.901 385.944 108.653C387.013 108.941 389.104 109.745 389.034 111.124Z\",fill:\"url(#paint2_linear_1356_14057)\"}),ve(\"path\",{d:\"M278.118 85.4414C280.313 83.8186 283.302 83.9 285.853 83.2728C290.501 82.127 295.644 78.4476 300.549 79.1524C301.299 79.2595 300.904 81.0355 300.159 80.9295C300.131 80.9256 300.187 80.9333 300.159 80.9295C300.089 81.0185 299.516 81.1051 299.385 81.1463C294.999 82.515 292.895 87.5083 289.126 89.8598C287.799 90.688 286.771 90.8351 285.258 90.9441C283.515 91.0691 280.964 90.5775 279.269 90.1219C277.15 89.5532 275.965 87.034 278.118 85.4414Z\",fill:\"url(#paint3_linear_1356_14057)\"}),ve(\"path\",{d:\"M122.567 166.093C113.597 172.832 104.535 179.836 99.517 190.092C98.5342 192.099 97.519 195.019 97.9533 197.204C98.9699 202.316 105.76 203.049 110.691 201.96C113.468 201.347 116.325 199.231 115.921 196.319C115.576 193.81 113.158 192.986 112.072 190.73C110.779 188.04 112.35 184.97 114.218 182.62C128.134 165.099 150.074 157.394 171.093 151.607C175.385 150.425 180.897 147.69 180.581 143.099C180.372 140.072 177.118 137.683 174.221 137.383C171.324 137.082 168.481 138.773 165.715 139.776C158.416 142.419 151.17 143.799 143.489 143.526C136.865 143.29 130.976 143.316 129.562 150.781C128.138 158.276 129.53 160.863 122.567 166.093Z\",fill:\"url(#paint4_linear_1356_14057)\"}),ve(\"path\",{d:\"M79.1056 153.531C60.3932 164.378 43.7478 178.354 32.8214 197.415C30.3313 201.76 27.9216 206.554 27.1821 211.512C26.4448 216.47 27.7591 222.525 30.8133 226.337C34.908 231.446 41.6938 232.915 48.1811 233.125C50.7248 233.208 53.0035 233.066 55.3316 231.947C57.6602 230.83 59.7548 228.359 59.5978 225.742C59.3303 221.315 54.5491 219.665 50.9271 217.34C42.6566 212.037 40.4958 199.493 44.2381 190.032C47.9803 180.57 55.8228 173.173 63.2316 166.338C67.229 162.651 71.5194 158.372 76.777 157.522C79.9167 157.015 83.4706 157.589 86.6295 157.252C93.9004 156.479 99.64 151.404 105.588 146.912C115.048 139.765 126.045 134.283 137.501 132.093C141.913 131.248 146.293 130.493 149.682 127.831C151.37 126.507 150.803 123.567 148.726 123.93C138.542 125.713 128.652 131.135 119.142 134.758C105.627 139.914 91.7133 146.223 79.1056 153.531Z\",fill:\"url(#paint5_linear_1356_14057)\"}),ve(\"path\",{d:\"M96.3677 117.321C96.0315 116.64 95.2914 116.612 94.6293 116.975C91.9858 118.417 91.5452 120.509 90.9466 122.178C90.4004 123.702 89.3647 124.67 87.6542 125.604C85.9437 126.538 85.0983 126.316 83.5956 125.91C81.9481 125.465 79.8603 125.424 77.2168 126.866C74.5734 128.309 74.1348 130.401 73.5341 132.07C72.9879 133.593 71.9522 134.562 70.2417 135.496C68.5313 136.43 67.6859 136.208 66.1832 135.801C64.5357 135.357 62.2569 134.538 59.6128 135.978C56.9694 137.42 56.5308 139.512 55.9301 141.181C55.3839 142.705 54.5398 144.454 52.8293 145.388C52.1667 145.748 52.1006 146.485 52.439 147.165C52.7752 147.845 53.5153 147.874 54.1773 147.511C56.8208 146.069 57.2594 143.977 57.86 142.307C58.4062 140.784 59.4419 139.815 61.1524 138.881C62.8629 137.948 63.7083 138.17 65.211 138.576C66.8585 139.021 68.9458 139.059 71.5898 137.619C74.2333 136.177 74.6718 134.085 75.2725 132.416C75.8187 130.892 76.8544 129.924 78.5649 128.99C80.2754 128.056 81.1207 128.278 82.6235 128.684C84.2709 129.129 86.5503 129.95 89.1938 128.507C91.8373 127.065 92.2779 124.973 92.8765 123.304C93.4227 121.78 94.2663 120.03 95.9773 119.098C96.6378 118.738 96.7039 118.001 96.3677 117.321Z\",fill:\"#FBC49D\"}),ve(\"path\",{d:\"M391.827 164.699C392.04 164.639 392.39 164.573 392.6 164.481C393.87 163.921 395.363 162.429 395.893 161.051C396.421 159.673 396.237 158.321 395.712 156.931C394.629 154.061 391.777 152.62 389.155 153.775C386.531 154.931 384.962 158.455 386.042 161.325C387.038 163.963 389.369 165.392 391.827 164.699ZM394.166 157.367C394.529 158.332 394.52 159.751 394.156 160.706C393.792 161.662 393.1 162.534 392.218 162.921C390.398 163.723 388.338 162.878 387.589 160.889C387.226 159.925 387.234 158.506 387.599 157.55C387.963 156.594 388.654 155.723 389.536 155.336C391.356 154.534 393.416 155.376 394.166 157.367Z\",fill:\"#86E29B\"}),ve(\"path\",{d:\"M62.7198 108.691C64.4912 108.191 66.6152 106.609 67.5596 104.824C68.4273 103.187 68.465 101.455 67.9609 99.7066C67.4547 97.9586 66.0792 96.5141 64.4963 95.6786C62.9135 94.843 61.2077 94.8578 59.4756 95.4255C57.7435 95.9933 56.2768 97.4364 55.409 99.074C53.6185 102.456 55.2032 106.494 58.4723 108.22C60.0142 109.035 61.1315 109.138 62.7198 108.691ZM60.6304 96.7682C61.819 96.4332 63.0232 96.8871 64.1048 97.4571C65.2463 98.0603 66.0495 98.8796 66.4145 100.142C66.7791 101.403 66.4488 103.299 65.8224 104.48C64.5299 106.919 61.2212 107.686 58.8638 106.441C56.5063 105.197 55.8538 101.858 57.1462 99.4185C57.7726 98.2375 58.6059 97.3957 59.8573 96.9862C59.9214 96.9635 60.5631 96.7872 60.6304 96.7682Z\",fill:\"#FFB0EB\"}),ve(\"path\",{d:\"M77.0217 242.979C75.9542 243.28 75.1664 242.151 74.9029 241.074C74.6394 239.996 75 239.378 76.0676 239.077C77.1351 238.776 78.5053 238.907 78.7688 239.984C79.0323 241.061 78.0893 242.678 77.0217 242.979Z\",fill:\"url(#paint6_linear_1356_14057)\"}),ve(\"path\",{d:\"M380.506 184.577C379.439 184.878 378.651 183.749 378.387 182.672C378.124 181.594 378.484 180.976 379.552 180.675C380.619 180.374 381.99 180.505 382.253 181.582C382.517 182.659 381.574 184.276 380.506 184.577Z\",fill:\"url(#paint7_linear_1356_14057)\"}),ve(\"path\",{d:\"M348.82 246.969C347.752 247.27 346.382 247.14 346.119 246.063C345.855 244.985 346.798 243.369 347.866 243.068C348.933 242.767 349.721 243.896 349.985 244.973C350.248 246.05 349.888 246.669 348.82 246.969Z\",fill:\"url(#paint8_linear_1356_14057)\"}),ve(\"path\",{d:\"M140.419 282.412C139.351 282.713 138.754 282.365 138.491 281.288C138.227 280.21 138.397 278.812 139.464 278.511C140.532 278.21 142.093 279.121 142.357 280.198C142.62 281.275 141.486 282.111 140.419 282.412Z\",fill:\"url(#paint9_linear_1356_14057)\"}),ve(\"path\",{d:\"M121.462 101.679C120.395 101.979 119.798 101.631 119.534 100.554C119.271 99.4764 119.44 98.0779 120.508 97.777C121.575 97.4761 123.136 98.3868 123.4 99.4642C123.663 100.542 122.53 101.378 121.462 101.679Z\",fill:\"url(#paint10_linear_1356_14057)\"}),ve(\"path\",{d:\"M370.749 159.005C369.682 159.306 368.311 159.175 368.048 158.098C367.784 157.021 368.727 155.404 369.795 155.103C370.863 154.802 371.65 155.931 371.914 157.008C372.177 158.086 371.817 158.704 370.749 159.005Z\",fill:\"url(#paint11_linear_1356_14057)\"}),ve(\"path\",{d:\"M384.211 245.345C383.143 245.646 381.773 245.515 381.51 244.438C381.246 243.361 382.189 241.744 383.257 241.443C384.324 241.142 385.112 242.271 385.376 243.348C385.639 244.426 385.278 245.044 384.211 245.345Z\",fill:\"url(#paint12_linear_1356_14057)\"}),ve(\"path\",{d:\"M364.771 41.3873C363.063 41.8687 361.337 40.8616 360.915 39.1378C360.493 37.414 361.536 35.6263 363.244 35.1449C364.953 34.6634 366.679 35.6706 367.101 37.3944C367.522 39.1182 366.479 40.9059 364.771 41.3873Z\",fill:\"url(#paint13_linear_1356_14057)\"}),ve(\"path\",{d:\"M404.311 77.905C404.602 77.8231 404.875 77.9236 405.084 77.6871C405.437 77.2908 404.814 76.6385 404.703 76.1265L401.277 58.7418C401.149 58.163 400.687 57.5371 400.123 57.3991C399.558 57.2611 398.969 57.3812 398.576 57.835L385.784 73.1179C385.395 73.564 385.199 74.3453 385.393 74.8964C385.585 75.4481 385.978 76.1646 386.548 76.2391L403.538 78.123C403.744 78.1479 404.114 77.9607 404.311 77.905ZM398.948 62.7348L401.811 74.4394L389.841 72.8085L398.948 62.7348Z\",fill:\"#FFB0EB\"}),ve(\"path\",{d:\"M97.5393 295.311C97.7108 295.263 97.4284 295.461 97.5393 295.311L108.785 280.464C108.975 280.211 108.718 279.972 108.594 279.684C108.47 279.396 108.124 279.917 107.821 279.902L88.5106 278.672C88.2101 278.659 87.895 278.62 87.7374 278.89C87.5798 279.159 87.7755 279.402 87.9283 279.67L96.5753 294.749C96.7102 294.99 97.2696 295.297 97.5393 295.311C97.6283 295.319 97.4556 295.335 97.5393 295.311ZM106.465 281.118L96.9667 292.97L90.6295 280.577L106.465 281.118Z\",fill:\"#86E29B\"}),ve(\"path\",{d:\"M393.699 108.848C389.518 104.446 414.629 114.366 413.945 120.659C413.259 126.952 401.355 129.102 403.894 123.491C406.042 118.747 400.376 115.876 393.699 108.848Z\",fill:\"#FBC49D\"}),ve(\"path\",{d:\"M139.414 115.959C139.434 115.953 139.392 115.965 139.414 115.959C141.963 115.2 143.436 111.976 142.717 109.189C142.37 107.839 141.526 107.199 140.408 106.504C139.289 105.808 138.171 105.449 136.933 105.815C135.698 106.182 134.85 107.033 134.222 108.247C133.595 109.461 133.282 111.234 133.63 112.585C133.978 113.935 134.821 114.574 135.94 115.27C137.04 115.952 138.199 116.301 139.414 115.959ZM137.315 107.375C138.222 107.12 139.005 106.994 139.825 107.502C140.661 108.02 140.912 108.618 141.171 109.625C141.708 111.704 140.935 113.834 139.032 114.398C138.11 114.675 137.356 114.791 136.522 114.272C135.686 113.753 135.436 113.155 135.176 112.149C134.917 111.142 134.718 109.714 135.186 108.81C135.654 107.905 136.394 107.649 137.315 107.375C137.329 107.371 137.299 107.38 137.315 107.375Z\",fill:\"#75C4FD\"}),ve(\"path\",{d:\"M308.981 78.7519C310.052 78.4043 311.158 78.7096 312.265 78.6613C313.655 78.6006 314.936 78.517 316.323 78.3531C319.497 77.9795 322.798 77.4906 325.984 77.3012C329.309 77.1025 332.514 76.8551 335.836 77.0295C338.809 77.1842 342.163 77.3405 345.105 77.7558C352.129 78.7468 359.331 79.0578 366.347 80.1158C372.252 81.008 377.93 82.1319 383.722 83.5644C385.925 84.0054 388.267 85.0754 389.126 85.3792C389.421 85.4833 389.37 85.8347 389.317 86.1595C389.306 86.2271 389.353 86.1146 389.317 86.1595C388.269 87.414 386.564 86.8124 385.259 86.4677C384.406 86.241 381.488 85.9494 381.011 85.9957C380.14 86.0815 379.277 86.014 379.656 87.2114C380.122 88.6824 382.391 89.7375 383.704 90.2419C385.883 91.0803 388.771 91.2561 390.845 92.4015C392.968 92.821 395.425 93.5002 397.022 93.9986C402.83 95.8103 407.806 98.8678 413.033 102.002C415.503 103.482 417.829 104.764 419.973 106.72C421.647 108.248 423.771 109.882 424.595 112.091C425.113 113.482 424.451 115.471 422.848 115.085C420.353 114.488 419.638 111.665 418.227 109.714C415.003 105.251 410.067 102.067 405.118 100.06C402.64 99.0556 399.803 98.729 397.204 98.1176C394.411 97.4613 391.597 97.0442 388.707 97.1736C385.646 97.3097 382.846 97.5534 379.819 98.0078C377.027 98.4264 374.252 98.4441 371.514 97.8441C368.766 97.2421 366.276 96.7553 363.6 95.9021C361.662 95.2848 359.013 94.5583 357.232 93.5247C355.699 92.6339 355.631 91.2381 357.241 90.186C359.87 88.4656 362.778 89.8021 365.546 90.3497C365.561 90.3527 365.532 90.3468 365.546 90.3497C367.858 90.804 369.649 90.098 371.923 89.3884C372.489 89.2128 373.255 89.0482 373.47 88.953C374.383 88.5432 375.895 87.8227 375.407 86.7394C374.868 85.5457 372.659 84.8846 371.55 84.4891C369.74 83.8428 368.053 82.9215 366.147 82.6743C365.654 82.6095 365.109 83.1606 364.6 83.1097C363.36 83.1121 361.769 83.348 360.543 83.418C357.43 83.5916 354.583 83.6228 351.464 83.4719C348.714 83.3377 346.432 82.8542 343.741 82.3102C340.773 81.7101 337.52 81.5879 334.471 81.5839C331.393 81.5811 328.6 81.7214 325.583 82.4181C322.758 83.0702 319.757 83.6198 316.887 84.0326C314.698 84.3481 312.467 84.6054 310.319 84.2137C309.079 83.9871 306.994 83.3394 306.461 81.9635C305.846 80.3659 307.736 79.1556 308.981 78.7519Z\",fill:\"url(#paint14_linear_1356_14057)\"}),ve(\"path\",{d:\"M242.269 242.95C242.295 242.947 242.244 242.955 242.269 242.95C244.934 242.606 247.53 241.858 250.2 241.574C253.133 241.264 256.006 240.56 258.906 239.982C263.26 239.117 268.026 238.52 272.254 237.097C274.429 236.365 276.067 235.298 278.251 234.592C280.361 233.909 283.058 233.12 285.216 232.652C289.317 231.764 293.049 231.66 297.016 230.198C301.109 228.69 305.088 226.673 308.819 224.409C312.645 222.086 316.282 219.769 320.622 218.62C322.381 218.154 323.919 218.219 325.65 218.886C327.016 219.413 327.739 220.337 327.196 221.79C326.557 223.504 324.659 224.7 323.131 225.423C320.854 226.5 319.53 227.184 317.134 227.927C314.619 228.707 311.888 229.24 309.395 230.083C308.226 230.947 307.17 232.522 306.105 233.501C303.996 235.441 301.666 237.03 298.945 237.996C292.934 240.129 286.354 238.602 280.183 239.056C279.661 239.095 279.162 239.442 278.635 239.487C275.592 240.135 272.2 240.63 269.156 241.294C264.546 242.299 260.456 243.409 255.808 244.179C251.971 244.814 243.815 245.854 243.815 245.854L242.074 245.505C240.575 245.281 240.751 243.152 242.269 242.95Z\",fill:\"url(#paint15_linear_1356_14057)\"}),ve(\"path\",{d:\"M432.985 171.626C438.212 165.465 445.109 153.64 442.906 144.649C442.162 137.999 433.671 132.912 424.963 135.518C420.16 136.957 416.435 142.146 419.724 144.498C420.656 145.164 422.187 145.591 423.391 145.969C434.204 149.375 434.925 162.538 425.069 169.683C421.087 172.569 416.347 174.292 411.914 176.719C400.151 183.162 399.887 196.847 387.7 202.712C382.326 205.298 375.761 206.838 370.297 209.275C359.98 213.88 352.555 221.733 342.241 226.341C337.225 228.584 330.266 231.632 323.483 234.12C321.475 234.855 321.999 237.058 324.056 236.46C324.098 236.449 324.017 236.474 324.056 236.46C329.079 234.971 334.437 233.161 339.331 231.33C352.278 226.48 365.28 220.971 377.43 214.775C401.78 202.367 416.881 190.609 432.985 171.626Z\",fill:\"url(#paint16_linear_1356_14057)\"}),ve(\"path\",{d:\"M343.644 241.104C348.002 234.144 357.126 232.455 364.343 231.134C368.176 230.431 372.406 229.878 376.137 228.662C380.691 227.175 384.558 224.095 388.327 221.077C389.452 220.177 391.204 218.466 392.393 217.436C393.185 216.748 393.644 216.026 394.33 215.225C396 213.275 399.599 209.812 401.687 208.16C403.263 206.914 407.779 204.758 408.259 207.986C408.611 210.359 406.379 213.087 404.961 214.747C402.224 217.953 398.998 221.079 395.475 223.243C391.749 225.531 387.701 227.439 383.674 229.051C381.672 229.853 379.519 230.073 377.486 230.785C376.001 231.307 374.486 232.236 373.037 232.866C371.034 233.738 368.99 234.28 367.041 235.38C364.436 236.849 361.782 238.783 359.108 240.105C356.331 241.477 353.823 242.691 350.791 243.27C348.6 243.687 345.501 243.641 343.836 241.884C343.526 241.554 343.389 241.51 343.644 241.104Z\",fill:\"url(#paint17_linear_1356_14057)\"}),ve(\"path\",{d:\"M190.163 273.219C222.905 268.849 232.64 262.943 213.962 259.057C195.285 255.172 187.5 262.08 188.434 266.2C189.366 270.32 180.381 271.326 169.286 272.39C158.193 273.454 157.141 276.354 190.163 273.219Z\",fill:\"url(#paint18_linear_1356_14057)\"}),ve(\"path\",{d:\"M295.952 95.4242L241.395 135.226L251.54 111.77L295.952 95.4242Z\",fill:\"#E17726\",stroke:\"#E17726\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M170.111 95.4242L224.181 135.598L214.522 111.77L170.111 95.4242Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M276.309 187.712L261.793 209.576L292.876 218.014L301.78 188.189L276.309 187.712Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M164.336 188.189L173.186 218.014L204.215 209.576L189.753 187.712L164.336 188.189Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M202.542 150.776L193.908 163.618L224.667 164.998L223.642 132.36L202.542 150.776Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M263.52 150.775L242.097 131.989L241.395 164.998L272.154 163.618L263.52 150.775Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M204.215 209.576L222.832 200.714L206.805 188.402L204.215 209.576Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M243.23 200.714L261.793 209.576L259.257 188.402L243.23 200.714Z\",fill:\"#E27625\",stroke:\"#E27625\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M261.793 209.576L243.23 200.714L244.741 212.601L244.579 217.643L261.793 209.576Z\",fill:\"#D5BFB2\",stroke:\"#D5BFB2\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M204.215 209.576L221.483 217.643L221.375 212.601L222.832 200.714L204.215 209.576Z\",fill:\"#D5BFB2\",stroke:\"#D5BFB2\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M221.807 180.547L206.373 176.09L217.274 171.154L221.807 180.547Z\",fill:\"#233447\",stroke:\"#233447\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M244.255 180.547L248.788 171.154L259.742 176.09L244.255 180.547Z\",fill:\"#233447\",stroke:\"#233447\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M204.215 209.576L206.913 187.712L189.753 188.189L204.215 209.576Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M259.149 187.712L261.793 209.576L276.309 188.189L259.149 187.712Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M272.154 163.618L241.395 164.998L244.255 180.547L248.788 171.154L259.742 176.09L272.154 163.618Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M206.373 176.09L217.274 171.154L221.807 180.547L224.667 164.998L193.908 163.618L206.373 176.09Z\",fill:\"#CC6228\",stroke:\"#CC6228\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M193.908 163.618L206.805 188.402L206.373 176.09L193.908 163.618Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M259.743 176.09L259.257 188.402L272.154 163.618L259.743 176.09Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M224.667 164.998L221.807 180.548L225.422 198.909L226.232 174.71L224.667 164.998Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M241.395 164.998L239.884 174.657L240.64 198.909L244.255 180.548L241.395 164.998Z\",fill:\"#E27525\",stroke:\"#E27525\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M244.255 180.547L240.64 198.909L243.23 200.714L259.257 188.402L259.743 176.09L244.255 180.547Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M206.373 176.09L206.805 188.402L222.832 200.714L225.422 198.909L221.807 180.547L206.373 176.09Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M244.579 217.643L244.741 212.601L243.338 211.434H222.724L221.375 212.601L221.483 217.643L204.215 209.576L210.259 214.459L222.508 222.791H243.5L255.803 214.459L261.793 209.576L244.579 217.643Z\",fill:\"#C0AC9D\",stroke:\"#C0AC9D\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M243.23 200.714L240.64 198.909H225.422L222.832 200.714L221.375 212.601L222.724 211.434H243.338L244.741 212.601L243.23 200.714Z\",fill:\"#161616\",stroke:\"#161616\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M298.272 137.827L302.859 115.856L295.952 95.4242L243.23 133.899L263.52 150.775L292.174 159.001L298.488 151.731L295.736 149.767L300.107 145.84L296.761 143.293L301.132 140.002L298.272 137.827Z\",fill:\"#763E1A\",stroke:\"#763E1A\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M163.203 115.856L167.844 137.827L164.876 140.002L169.301 143.293L165.955 145.84L170.326 149.767L167.574 151.731L173.888 159.001L202.542 150.775L222.832 133.899L170.11 95.4242L163.203 115.856Z\",fill:\"#763E1A\",stroke:\"#763E1A\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M292.175 159.001L263.52 150.775L272.154 163.618L259.257 188.402L276.309 188.189H301.78L292.175 159.001Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M202.542 150.775L173.888 159.001L164.336 188.189H189.753L206.805 188.402L193.908 163.618L202.542 150.775Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"path\",{d:\"M241.395 164.998L243.23 133.9L251.54 111.77H214.522L222.832 133.9L224.667 164.998L225.368 174.763L225.422 198.909H240.64L240.694 174.763L241.395 164.998Z\",fill:\"#F5841F\",stroke:\"#F5841F\",\"stroke-width\":\"0.94513\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),ve(\"defs\",null,ve(\"linearGradient\",{id:\"paint0_linear_1356_14057\",x1:\"335.991\",y1:\"250.487\",x2:\"303.873\",y2:\"266.801\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint1_linear_1356_14057\",x1:\"276.993\",y1:\"303.722\",x2:\"205.254\",y2:\"401.574\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"0.0929\",\"stop-color\":\"#81C2F6\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#F0B8BD\"})),ve(\"linearGradient\",{id:\"paint2_linear_1356_14057\",x1:\"271.074\",y1:\"119.924\",x2:\"553.077\",y2:\"104.53\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint3_linear_1356_14057\",x1:\"264.209\",y1:\"91.0943\",x2:\"357.834\",y2:\"72.8792\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint4_linear_1356_14057\",x1:\"212.46\",y1:\"121.997\",x2:\"92.6119\",y2:\"183.406\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint5_linear_1356_14057\",x1:\"23.0498\",y1:\"204.411\",x2:\"161.86\",y2:\"163.003\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"0.0929\",\"stop-color\":\"#81C2F6\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#F0B8BD\"})),ve(\"linearGradient\",{id:\"paint6_linear_1356_14057\",x1:\"78.8647\",y1:\"240.375\",x2:\"74.9655\",y2:\"241.328\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint7_linear_1356_14057\",x1:\"382.349\",y1:\"181.971\",x2:\"378.45\",y2:\"182.925\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint8_linear_1356_14057\",x1:\"349.889\",y1:\"244.583\",x2:\"345.99\",y2:\"245.537\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint9_linear_1356_14057\",x1:\"142.262\",y1:\"279.808\",x2:\"138.362\",y2:\"280.762\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint10_linear_1356_14057\",x1:\"123.305\",y1:\"99.0746\",x2:\"119.406\",y2:\"100.028\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint11_linear_1356_14057\",x1:\"371.818\",y1:\"156.617\",x2:\"367.919\",y2:\"157.571\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint12_linear_1356_14057\",x1:\"385.281\",y1:\"242.958\",x2:\"381.382\",y2:\"243.911\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint13_linear_1356_14057\",x1:\"367.125\",y1:\"37.5052\",x2:\"360.843\",y2:\"38.8076\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#75C3FC\"})),ve(\"linearGradient\",{id:\"paint14_linear_1356_14057\",x1:\"300.182\",y1:\"91.321\",x2:\"479.464\",y2:\"104.041\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint15_linear_1356_14057\",x1:\"363.434\",y1:\"201.232\",x2:\"102.977\",y2:\"302.269\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})),ve(\"linearGradient\",{id:\"paint16_linear_1356_14057\",x1:\"447.962\",y1:\"165.159\",x2:\"313.049\",y2:\"197.95\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"0.0929\",\"stop-color\":\"#81C2F6\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#F0B8BD\"})),ve(\"linearGradient\",{id:\"paint17_linear_1356_14057\",x1:\"410.211\",y1:\"215.859\",x2:\"341.378\",y2:\"232.788\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#75C3FC\"}),ve(\"stop\",{offset:\"0.0929\",\"stop-color\":\"#81C2F6\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#F0B8BD\"})),ve(\"linearGradient\",{id:\"paint18_linear_1356_14057\",x1:\"222.282\",y1:\"258.986\",x2:\"162.257\",y2:\"273.774\",gradientUnits:\"userSpaceOnUse\"},ve(\"stop\",{\"stop-color\":\"#FFE466\"}),ve(\"stop\",{offset:\"1\",\"stop-color\":\"#FFAFEA\"})))),y7e=class{constructor(t){noe(this,t),this.close=f3(this,\"close\",7),this.connectWithExtension=f3(this,\"connectWithExtension\",7),this.link=void 0,this.sdkVersion=void 0,this.preferDesktop=void 0,this.tab=1,this.isDefaultTab=!0,this.translationsLoaded=!1,this.i18nInstance=new qO,this.setTab(this.preferDesktop?1:2)}async connectedCallback(){await this.i18nInstance.init({fallbackLng:\"en\"}),this.translationsLoaded=!0}onClose(t=!1){this.close.emit({shouldTerminate:t})}connectWithExtensionHandler(){this.connectWithExtension.emit()}setTab(t){this.tab=t,this.isDefaultTab=!1}disconnectedCallback(){this.onClose()}updatePreferDesktop(t){t?this.setTab(1):this.setTab(2)}render(){if(!this.translationsLoaded)return null;let t=o=>this.i18nInstance.t(o),e=this.sdkVersion,n=this.isDefaultTab?this.preferDesktop?1:2:this.tab,r=p7e(this.link,\"svg\",{ecc:\"medium\",scale:2});return ve(loe,{className:\"select-modal\"},ve(\"div\",{class:\"backdrop\",onClick:()=>this.onClose(!0)}),ve(\"div\",{class:\"modal\"},ve(\"div\",{class:\"closeButtonContainer\"},ve(\"div\",{class:\"right\"},ve(\"span\",{class:\"closeButton\",onClick:()=>this.onClose(!0)},ve(doe,null)))),ve(\"div\",{class:\"logoContainer\"},ve(foe,null)),ve(\"div\",null,ve(\"div\",{class:\"tabcontainer\"},ve(\"div\",{class:\"flexContainer\"},ve(\"div\",{onClick:()=>this.setTab(1),class:\"tab flexItem \"+(n===1?\"tabactive\":\"\")},t(\"DESKTOP\")),ve(\"div\",{onClick:()=>this.setTab(2),class:\"tab flexItem \"+(n===2?\"tabactive\":\"\")},t(\"MOBILE\")))),ve(\"div\",{style:{display:n===1?\"none\":\"block\"}},ve(\"div\",{class:\"flexContainer\"},ve(\"div\",{class:\"flexItem\",style:{textAlign:\"center\",marginTop:\"4\"}},ve(\"div\",{class:\"center\",id:\"sdk-mm-qrcode\",innerHTML:r}),ve(\"div\",{class:\"connectMobileText\"},t(\"SCAN_TO_CONNECT\"),ve(\"br\",null),ve(\"span\",{class:\"blue\"},ve(\"b\",null,t(\"META_MASK_MOBILE_APP\"))))))),ve(\"div\",{style:{display:n===2?\"none\":\"block\"}},ve(\"div\",{style:{display:\"flex\",justifyContent:\"center\",height:\"300\",marginTop:\"-20\"}},ve(Bat,null)),ve(\"div\",{class:\"extensionLabel\"},t(\"SELECT_MODAL.CRYPTO_TAKE_CONTROL_TEXT\")),ve(\"button\",{class:\"button\",onClick:()=>this.connectWithExtensionHandler()},ve(Lat,null),ve(\"span\",{class:\"installExtensionText\"},t(\"CONNECT_WITH_EXTENSION\"))))),ve(uoe,{version:e})))}get el(){return yq(this)}static get watchers(){return{preferDesktop:[\"updatePreferDesktop\"]}}};y7e.style=`.flexContainer {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n    flex-direction: row;\\n}\\n\\n.flexItem {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem11 {\\n    flex: 11;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.flexItem1 {\\n    flex: 1;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.tab {\\n    padding: 8px;\\n    cursor: pointer;\\n    background-color: #F2F4F6;\\n    font-size: 12px;\\n    text-align: center;\\n    color: #24292E;\\n}\\n\\n.tabcontainer {\\n    padding: 4px;\\n    background-color: #F2F4F6;\\n    border-radius: 8px;\\n    margin-bottom: 30px;\\n    margin-top: 30px;\\n}\\n\\n.tabactive {\\n    background-color: white;\\n    -webkit-transition: background-color 300ms linear;\\n    -ms-transition: background-color 300ms linear;\\n    transition: background-color 300ms linear;\\n    border-radius: 8px;\\n}\\n\\n.item {\\n    font-size: 12px;\\n    margin-bottom: 16px;\\n    border-radius: 8px;\\n    padding: 10px;\\n    border: 2px #F2F4F6 solid;\\n    color: #24292E;\\n}\\n\\n.extensionLabel {\\n    font-style: normal;\\n    font-weight: bold;\\n    font-size: 14px;\\n    text-align: cetner;\\n    color: #24272A;\\n}\\n\\n.notice {\\n    font-size: 12px;\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    color: grey;\\n}\\n\\n.button {\\n    margin-top: 41.5px;\\n    margin-bottom: 20px;\\n    width: 100%;\\n    display: flex;\\n    flex-direction: row;\\n    justify-content: center;\\n    align-items: center;\\n    padding: 12px 20px;\\n    background: #037DD6;\\n    border-radius: 32px;\\n    color: white;\\n    border: 0;\\n    font-size: 14px;\\n    cursor: pointer;\\n}\\n\\n.backdrop {\\n    visibility: visible;\\n    position: fixed;\\n    top: 0;\\n    left: 0;\\n    right: 0;\\n    bottom: 0;\\n    width: 100%;\\n    z-index: 99998;\\n    background: rgba(0, 0, 0, 0.87);\\n    opacity: 0.3;\\n}\\n\\n.modal {\\n    visibility: visible;\\n    position: fixed;\\n    left: 50%;\\n    transform: translate(-50%, -50%);\\n    z-index: 99999;\\n    background: white;\\n    padding: 20px;\\n    border-radius: 8px;\\n    top: 50%;\\n    max-width: 100%;\\n    width: 460px;\\n    min-width: 300px;\\n    box-shadow: rgba(0, 0, 0, 0.2) 0px 11px 15px -7px, rgba(0, 0, 0, 0.14) 0px 24px 38px 3px, rgba(0, 0, 0, 0.12) 0px 9px 46px 8px;\\n    -webkit-font-smoothing: antialiased;\\n}\\n\\n.closeButton {\\n    color: #BBC0C5;\\n    cursor: pointer;\\n}\\n\\n.logoContainer {\\n    margin-left: 24px;\\n    margin-right: 24px;\\n    margin-top: 24px;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.connectMobileText {\\n    font-size: 14px;\\n    color: black;\\n    margin-top: 28px;\\n    margin-bottom: 28px;\\n    line-height: 2;\\n}\\n\\n.blue {\\n    color: #037DD6;\\n    font-weight: 700;\\n}\\n\\n.installExtensionText {\\n    margin-left: 10px;\\n}\\n\\n.center {\\n    display: flex;\\n    justify-content: center;\\n    align-items: center;\\n}\\n\\n.right {\\n    display: flex;\\n    align-items: center;\\n    justify-content: right;\\n}\\n\\n#sdk-mm-qrcode {\\n    svg {\\n        width: 50%;\\n    }\\n}`;Dat=Object.freeze({__proto__:null,mm_install_modal:m7e,mm_pending_modal:g7e,mm_select_modal:y7e})});var W7e=be((ggn,q7e)=>{\"use strict\";p();var Tq=Xy().Buffer;function Alt(t){if(t.length>=255)throw new TypeError(\"Alphabet too long\");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var r=0;r<t.length;r++){var o=t.charAt(r),i=o.charCodeAt(0);if(e[i]!==255)throw new TypeError(o+\" is ambiguous\");e[i]=r}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),d=Math.log(256)/Math.log(a);function h(b){if((Array.isArray(b)||b instanceof Uint8Array)&&(b=Tq.from(b)),!Tq.isBuffer(b))throw new TypeError(\"Expected Buffer\");if(b.length===0)return\"\";for(var E=0,C=0,T=0,R=b.length;T!==R&&b[T]===0;)T++,E++;for(var L=(R-T)*d+1>>>0,D=new Uint8Array(L);T!==R;){for(var G=b[T],W=0,J=L-1;(G!==0||W<C)&&J!==-1;J--,W++)G+=256*D[J]>>>0,D[J]=G%a>>>0,G=G/a>>>0;if(G!==0)throw new Error(\"Non-zero carry\");C=W,T++}for(var ne=L-C;ne!==L&&D[ne]===0;)ne++;for(var ie=c.repeat(E);ne<L;++ne)ie+=t.charAt(D[ne]);return ie}function m(b){if(typeof b!=\"string\")throw new TypeError(\"Expected String\");if(b.length===0)return Tq.alloc(0);for(var E=0,C=0,T=0;b[E]===c;)C++,E++;for(var R=(b.length-E)*u+1>>>0,L=new Uint8Array(R);E<b.length;){var D=b.charCodeAt(E);if(D>255)return;var G=e[D];if(G===255)return;for(var W=0,J=R-1;(G!==0||W<T)&&J!==-1;J--,W++)G+=a*L[J]>>>0,L[J]=G%256>>>0,G=G/256>>>0;if(G!==0)throw new Error(\"Non-zero carry\");T=W,E++}for(var ne=R-T;ne!==R&&L[ne]===0;)ne++;var ie=Tq.allocUnsafe(C+(R-ne));ie.fill(0,0,C);for(var Z=C;ne!==R;)ie[Z++]=L[ne++];return ie}function g(b){var E=m(b);if(E)return E;throw new Error(\"Non-base\"+a+\" character\")}return{encode:h,decodeUnsafe:m,decode:g}}q7e.exports=Alt});var koe=be((bgn,V7e)=>{p();var Tlt=W7e(),Rlt=\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";V7e.exports=Tlt(Rlt)});var $7e=be(Aoe=>{\"use strict\";p();function n2(t,e,n){return e<=t&&t<=n}function Mq(t){if(t===void 0)return{};if(t===Object(t))return t;throw TypeError(\"Could not convert argument to dictionary\")}function Ilt(t){for(var e=String(t),n=e.length,r=0,o=[];r<n;){var i=e.charCodeAt(r);if(i<55296||i>57343)o.push(i);else if(56320<=i&&i<=57343)o.push(65533);else if(55296<=i&&i<=56319)if(r===n-1)o.push(65533);else{var a=t.charCodeAt(r+1);if(56320<=a&&a<=57343){var c=i&1023,u=a&1023;o.push(65536+(c<<10)+u),r+=1}else o.push(65533)}r+=1}return o}function Olt(t){for(var e=\"\",n=0;n<t.length;++n){var r=t[n];r<=65535?e+=String.fromCharCode(r):(r-=65536,e+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return e}var Rq=-1;function Coe(t){this.tokens=[].slice.call(t)}Coe.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():Rq},prepend:function(t){if(Array.isArray(t))for(var e=t;e.length;)this.tokens.unshift(e.pop());else this.tokens.unshift(t)},push:function(t){if(Array.isArray(t))for(var e=t;e.length;)this.tokens.push(e.shift());else this.tokens.push(t)}};var MA=-1;function _oe(t,e){if(t)throw TypeError(\"Decoder error\");return e||65533}var Iq=\"utf-8\";function Oq(t,e){if(!(this instanceof Oq))return new Oq(t,e);if(t=t!==void 0?String(t).toLowerCase():Iq,t!==Iq)throw new Error(\"Encoding not supported. Only utf-8 is supported\");e=Mq(e),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=!!e.fatal,this._ignoreBOM=!!e.ignoreBOM,Object.defineProperty(this,\"encoding\",{value:\"utf-8\"}),Object.defineProperty(this,\"fatal\",{value:this._fatal}),Object.defineProperty(this,\"ignoreBOM\",{value:this._ignoreBOM})}Oq.prototype={decode:function(e,n){var r;typeof e==\"object\"&&e instanceof ArrayBuffer?r=new Uint8Array(e):typeof e==\"object\"&&\"buffer\"in e&&e.buffer instanceof ArrayBuffer?r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):r=new Uint8Array(0),n=Mq(n),this._streaming||(this._decoder=new Plt({fatal:this._fatal}),this._BOMseen=!1),this._streaming=!!n.stream;for(var o=new Coe(r),i=[],a;!o.endOfStream()&&(a=this._decoder.handler(o,o.read()),a!==MA);)a!==null&&(Array.isArray(a)?i.push.apply(i,a):i.push(a));if(!this._streaming){do{if(a=this._decoder.handler(o,o.read()),a===MA)break;a!==null&&(Array.isArray(a)?i.push.apply(i,a):i.push(a))}while(!o.endOfStream());this._decoder=null}return i.length&&[\"utf-8\"].indexOf(this.encoding)!==-1&&!this._ignoreBOM&&!this._BOMseen&&(i[0]===65279?(this._BOMseen=!0,i.shift()):this._BOMseen=!0),Olt(i)}};function Pq(t,e){if(!(this instanceof Pq))return new Pq(t,e);if(t=t!==void 0?String(t).toLowerCase():Iq,t!==Iq)throw new Error(\"Encoding not supported. Only utf-8 is supported\");e=Mq(e),this._streaming=!1,this._encoder=null,this._options={fatal:!!e.fatal},Object.defineProperty(this,\"encoding\",{value:\"utf-8\"})}Pq.prototype={encode:function(e,n){e=e?String(e):\"\",n=Mq(n),this._streaming||(this._encoder=new Mlt(this._options)),this._streaming=!!n.stream;for(var r=[],o=new Coe(Ilt(e)),i;!o.endOfStream()&&(i=this._encoder.handler(o,o.read()),i!==MA);)Array.isArray(i)?r.push.apply(r,i):r.push(i);if(!this._streaming){for(;i=this._encoder.handler(o,o.read()),i!==MA;)Array.isArray(i)?r.push.apply(r,i):r.push(i);this._encoder=null}return new Uint8Array(r)}};function Plt(t){var e=t.fatal,n=0,r=0,o=0,i=128,a=191;this.handler=function(c,u){if(u===Rq&&o!==0)return o=0,_oe(e);if(u===Rq)return MA;if(o===0){if(n2(u,0,127))return u;if(n2(u,194,223))o=1,n=u-192;else if(n2(u,224,239))u===224&&(i=160),u===237&&(a=159),o=2,n=u-224;else if(n2(u,240,244))u===240&&(i=144),u===244&&(a=143),o=3,n=u-240;else return _oe(e);return n=n<<6*o,null}if(!n2(u,i,a))return n=o=r=0,i=128,a=191,c.prepend(u),_oe(e);if(i=128,a=191,r+=1,n+=u-128<<6*(o-r),r!==o)return null;var d=n;return n=o=r=0,d}}function Mlt(t){var e=t.fatal;this.handler=function(n,r){if(r===Rq)return MA;if(n2(r,0,127))return r;var o,i;n2(r,128,2047)?(o=1,i=192):n2(r,2048,65535)?(o=2,i=224):n2(r,65536,1114111)&&(o=3,i=240);for(var a=[(r>>6*o)+i];o>0;){var c=r>>6*(o-1);a.push(128|c&63),o-=1}return a}}Aoe.TextEncoder=Pq;Aoe.TextDecoder=Oq});var Q7e=be(fi=>{\"use strict\";p();var Nlt=fi&&fi.__createBinding||(Object.create?function(t,e,n,r){r===void 0&&(r=n),Object.defineProperty(t,r,{enumerable:!0,get:function(){return e[n]}})}:function(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}),Llt=fi&&fi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e}),I1=fi&&fi.__decorate||function(t,e,n,r){var o=arguments.length,i=o<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,a;if(typeof Reflect==\"object\"&&typeof Reflect.decorate==\"function\")i=Reflect.decorate(t,e,n,r);else for(var c=t.length-1;c>=0;c--)(a=t[c])&&(i=(o<3?a(i):o>3?a(e,n,i):a(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},Blt=fi&&fi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)n!==\"default\"&&Object.hasOwnProperty.call(t,n)&&Nlt(e,t,n);return Llt(e,t),e},K7e=fi&&fi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fi,\"__esModule\",{value:!0});fi.deserializeUnchecked=fi.deserialize=fi.serialize=fi.BinaryReader=fi.BinaryWriter=fi.BorshError=fi.baseDecode=fi.baseEncode=void 0;var x3=K7e(q6()),G7e=K7e(koe()),Dlt=Blt($7e()),Flt=typeof TextDecoder!=\"function\"?Dlt.TextDecoder:TextDecoder,Ult=new Flt(\"utf-8\",{fatal:!0});function jlt(t){return typeof t==\"string\"&&(t=globalThis.Buffer.from(t,\"utf8\")),G7e.default.encode(globalThis.Buffer.from(t))}fi.baseEncode=jlt;function zlt(t){return globalThis.Buffer.from(G7e.default.decode(t))}fi.baseDecode=zlt;var Toe=1024,Rl=class extends Error{constructor(e){super(e),this.fieldPath=[],this.originalMessage=e}addToFieldPath(e){this.fieldPath.splice(0,0,e),this.message=this.originalMessage+\": \"+this.fieldPath.join(\".\")}};fi.BorshError=Rl;var Nq=class{constructor(){this.buf=globalThis.Buffer.alloc(Toe),this.length=0}maybeResize(){this.buf.length<16+this.length&&(this.buf=globalThis.Buffer.concat([this.buf,globalThis.Buffer.alloc(Toe)]))}writeU8(e){this.maybeResize(),this.buf.writeUInt8(e,this.length),this.length+=1}writeU16(e){this.maybeResize(),this.buf.writeUInt16LE(e,this.length),this.length+=2}writeU32(e){this.maybeResize(),this.buf.writeUInt32LE(e,this.length),this.length+=4}writeU64(e){this.maybeResize(),this.writeBuffer(globalThis.Buffer.from(new x3.default(e).toArray(\"le\",8)))}writeU128(e){this.maybeResize(),this.writeBuffer(globalThis.Buffer.from(new x3.default(e).toArray(\"le\",16)))}writeU256(e){this.maybeResize(),this.writeBuffer(globalThis.Buffer.from(new x3.default(e).toArray(\"le\",32)))}writeU512(e){this.maybeResize(),this.writeBuffer(globalThis.Buffer.from(new x3.default(e).toArray(\"le\",64)))}writeBuffer(e){this.buf=globalThis.Buffer.concat([globalThis.Buffer.from(this.buf.subarray(0,this.length)),e,globalThis.Buffer.alloc(Toe)]),this.length+=e.length}writeString(e){this.maybeResize();let n=globalThis.Buffer.from(e,\"utf8\");this.writeU32(n.length),this.writeBuffer(n)}writeFixedArray(e){this.writeBuffer(globalThis.Buffer.from(e))}writeArray(e,n){this.maybeResize(),this.writeU32(e.length);for(let r of e)this.maybeResize(),n(r)}toArray(){return this.buf.subarray(0,this.length)}};fi.BinaryWriter=Nq;function O1(t,e,n){let r=n.value;n.value=function(...o){try{return r.apply(this,o)}catch(i){if(i instanceof RangeError){let a=i.code;if([\"ERR_BUFFER_OUT_OF_BOUNDS\",\"ERR_OUT_OF_RANGE\"].indexOf(a)>=0)throw new Rl(\"Reached the end of buffer when deserializing\")}throw i}}}var Pd=class{constructor(e){this.buf=e,this.offset=0}readU8(){let e=this.buf.readUInt8(this.offset);return this.offset+=1,e}readU16(){let e=this.buf.readUInt16LE(this.offset);return this.offset+=2,e}readU32(){let e=this.buf.readUInt32LE(this.offset);return this.offset+=4,e}readU64(){let e=this.readBuffer(8);return new x3.default(e,\"le\")}readU128(){let e=this.readBuffer(16);return new x3.default(e,\"le\")}readU256(){let e=this.readBuffer(32);return new x3.default(e,\"le\")}readU512(){let e=this.readBuffer(64);return new x3.default(e,\"le\")}readBuffer(e){if(this.offset+e>this.buf.length)throw new Rl(`Expected buffer length ${e} isn\\'t within bounds`);let n=this.buf.slice(this.offset,this.offset+e);return this.offset+=e,n}readString(){let e=this.readU32(),n=this.readBuffer(e);try{return Ult.decode(n)}catch(r){throw new Rl(`Error decoding UTF-8 string: ${r}`)}}readFixedArray(e){return new Uint8Array(this.readBuffer(e))}readArray(e){let n=this.readU32(),r=Array();for(let o=0;o<n;++o)r.push(e());return r}};I1([O1],Pd.prototype,\"readU8\",null);I1([O1],Pd.prototype,\"readU16\",null);I1([O1],Pd.prototype,\"readU32\",null);I1([O1],Pd.prototype,\"readU64\",null);I1([O1],Pd.prototype,\"readU128\",null);I1([O1],Pd.prototype,\"readU256\",null);I1([O1],Pd.prototype,\"readU512\",null);I1([O1],Pd.prototype,\"readString\",null);I1([O1],Pd.prototype,\"readFixedArray\",null);I1([O1],Pd.prototype,\"readArray\",null);fi.BinaryReader=Pd;function Z7e(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ek(t,e,n,r,o){try{if(typeof r==\"string\")o[`write${Z7e(r)}`](n);else if(r instanceof Array)if(typeof r[0]==\"number\"){if(n.length!==r[0])throw new Rl(`Expecting byte array of length ${r[0]}, but got ${n.length} bytes`);o.writeFixedArray(n)}else if(r.length===2&&typeof r[1]==\"number\"){if(n.length!==r[1])throw new Rl(`Expecting byte array of length ${r[1]}, but got ${n.length} bytes`);for(let i=0;i<r[1];i++)ek(t,null,n[i],r[0],o)}else o.writeArray(n,i=>{ek(t,e,i,r[0],o)});else if(r.kind!==void 0)switch(r.kind){case\"option\":{n==null?o.writeU8(0):(o.writeU8(1),ek(t,e,n,r.type,o));break}case\"map\":{o.writeU32(n.size),n.forEach((i,a)=>{ek(t,e,a,r.key,o),ek(t,e,i,r.value,o)});break}default:throw new Rl(`FieldType ${r} unrecognized`)}else Y7e(t,n,o)}catch(i){throw i instanceof Rl&&i.addToFieldPath(e),i}}function Y7e(t,e,n){if(typeof e.borshSerialize==\"function\"){e.borshSerialize(n);return}let r=t.get(e.constructor);if(!r)throw new Rl(`Class ${e.constructor.name} is missing in schema`);if(r.kind===\"struct\")r.fields.map(([o,i])=>{ek(t,o,e[o],i,n)});else if(r.kind===\"enum\"){let o=e[r.field];for(let i=0;i<r.values.length;++i){let[a,c]=r.values[i];if(a===o){n.writeU8(i),ek(t,a,e[a],c,n);break}}}else throw new Rl(`Unexpected schema kind: ${r.kind} for ${e.constructor.name}`)}function Hlt(t,e,n=Nq){let r=new n;return Y7e(t,e,r),r.toArray()}fi.serialize=Hlt;function tk(t,e,n,r){try{if(typeof n==\"string\")return r[`read${Z7e(n)}`]();if(n instanceof Array){if(typeof n[0]==\"number\")return r.readFixedArray(n[0]);if(typeof n[1]==\"number\"){let o=[];for(let i=0;i<n[1];i++)o.push(tk(t,null,n[0],r));return o}else return r.readArray(()=>tk(t,e,n[0],r))}if(n.kind===\"option\")return r.readU8()?tk(t,e,n.type,r):void 0;if(n.kind===\"map\"){let o=new Map,i=r.readU32();for(let a=0;a<i;a++){let c=tk(t,e,n.key,r),u=tk(t,e,n.value,r);o.set(c,u)}return o}return Roe(t,n,r)}catch(o){throw o instanceof Rl&&o.addToFieldPath(e),o}}function Roe(t,e,n){if(typeof e.borshDeserialize==\"function\")return e.borshDeserialize(n);let r=t.get(e);if(!r)throw new Rl(`Class ${e.name} is missing in schema`);if(r.kind===\"struct\"){let o={};for(let[i,a]of t.get(e).fields)o[i]=tk(t,i,a,n);return new e(o)}if(r.kind===\"enum\"){let o=n.readU8();if(o>=r.values.length)throw new Rl(`Enum index: ${o} is out of range`);let[i,a]=r.values[o],c=tk(t,i,a,n);return new e({[i]:c})}throw new Rl(`Unexpected schema kind: ${r.kind} for ${e.constructor.name}`)}function qlt(t,e,n,r=Pd){let o=new r(n),i=Roe(t,e,o);if(o.offset<n.length)throw new Rl(`Unexpected ${n.length-o.offset} bytes after deserialized data`);return i}fi.deserialize=qlt;function Wlt(t,e,n,r=Pd){let o=new r(n);return Roe(t,e,o)}fi.deserializeUnchecked=Wlt});var Moe=be(ze=>{\"use strict\";p();Object.defineProperty(ze,\"__esModule\",{value:!0});ze.s16=ze.s8=ze.nu64be=ze.u48be=ze.u40be=ze.u32be=ze.u24be=ze.u16be=ze.nu64=ze.u48=ze.u40=ze.u32=ze.u24=ze.u16=ze.u8=ze.offset=ze.greedy=ze.Constant=ze.UTF8=ze.CString=ze.Blob=ze.Boolean=ze.BitField=ze.BitStructure=ze.VariantLayout=ze.Union=ze.UnionLayoutDiscriminator=ze.UnionDiscriminator=ze.Structure=ze.Sequence=ze.DoubleBE=ze.Double=ze.FloatBE=ze.Float=ze.NearInt64BE=ze.NearInt64=ze.NearUInt64BE=ze.NearUInt64=ze.IntBE=ze.Int=ze.UIntBE=ze.UInt=ze.OffsetLayout=ze.GreedyCount=ze.ExternalLayout=ze.bindConstructorLayout=ze.nameWithProperty=ze.Layout=ze.uint8ArrayToBuffer=ze.checkUint8Array=void 0;ze.constant=ze.utf8=ze.cstr=ze.blob=ze.unionLayoutDiscriminator=ze.union=ze.seq=ze.bits=ze.struct=ze.f64be=ze.f64=ze.f32be=ze.f32=ze.ns64be=ze.s48be=ze.s40be=ze.s32be=ze.s24be=ze.s16be=ze.ns64=ze.s48=ze.s40=ze.s32=ze.s24=void 0;var Ooe=Kb();function BA(t){if(!(t instanceof Uint8Array))throw new TypeError(\"b must be a Uint8Array\")}ze.checkUint8Array=BA;function wo(t){return BA(t),Ooe.Buffer.from(t.buffer,t.byteOffset,t.length)}ze.uint8ArrayToBuffer=wo;var No=class{constructor(e,n){if(!Number.isInteger(e))throw new TypeError(\"span must be an integer\");this.span=e,this.property=n}makeDestinationObject(){return{}}getSpan(e,n){if(0>this.span)throw new RangeError(\"indeterminate span\");return this.span}replicate(e){let n=Object.create(this.constructor.prototype);return Object.assign(n,this),n.property=e,n}fromArray(e){}};ze.Layout=No;function Poe(t,e){return e.property?t+\"[\"+e.property+\"]\":t}ze.nameWithProperty=Poe;function Vlt(t,e){if(typeof t!=\"function\")throw new TypeError(\"Class must be constructor\");if(Object.prototype.hasOwnProperty.call(t,\"layout_\"))throw new Error(\"Class is already bound to a layout\");if(!(e&&e instanceof No))throw new TypeError(\"layout must be a Layout\");if(Object.prototype.hasOwnProperty.call(e,\"boundConstructor_\"))throw new Error(\"layout is already bound to a constructor\");t.layout_=e,e.boundConstructor_=t,e.makeDestinationObject=()=>new t,Object.defineProperty(t.prototype,\"encode\",{value(n,r){return e.encode(this,n,r)},writable:!0}),Object.defineProperty(t,\"decode\",{value(n,r){return e.decode(n,r)},writable:!0})}ze.bindConstructorLayout=Vlt;var Ru=class extends No{isCount(){throw new Error(\"ExternalLayout is abstract\")}};ze.ExternalLayout=Ru;var Lq=class extends Ru{constructor(e=1,n){if(!Number.isInteger(e)||0>=e)throw new TypeError(\"elementSpan must be a (positive) integer\");super(-1,n),this.elementSpan=e}isCount(){return!0}decode(e,n=0){BA(e);let r=e.length-n;return Math.floor(r/this.elementSpan)}encode(e,n,r){return 0}};ze.GreedyCount=Lq;var eP=class extends Ru{constructor(e,n=0,r){if(!(e instanceof No))throw new TypeError(\"layout must be a Layout\");if(!Number.isInteger(n))throw new TypeError(\"offset must be integer or undefined\");super(e.span,r||e.property),this.layout=e,this.offset=n}isCount(){return this.layout instanceof Nf||this.layout instanceof Bh}decode(e,n=0){return this.layout.decode(e,n+this.offset)}encode(e,n,r=0){return this.layout.encode(e,n,r+this.offset)}};ze.OffsetLayout=eP;var Nf=class extends No{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError(\"span must not exceed 6 bytes\")}decode(e,n=0){return wo(e).readUIntLE(n,this.span)}encode(e,n,r=0){return wo(n).writeUIntLE(e,r,this.span),this.span}};ze.UInt=Nf;var Bh=class extends No{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError(\"span must not exceed 6 bytes\")}decode(e,n=0){return wo(e).readUIntBE(n,this.span)}encode(e,n,r=0){return wo(n).writeUIntBE(e,r,this.span),this.span}};ze.UIntBE=Bh;var r2=class extends No{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError(\"span must not exceed 6 bytes\")}decode(e,n=0){return wo(e).readIntLE(n,this.span)}encode(e,n,r=0){return wo(n).writeIntLE(e,r,this.span),this.span}};ze.Int=r2;var E3=class extends No{constructor(e,n){if(super(e,n),6<this.span)throw new RangeError(\"span must not exceed 6 bytes\")}decode(e,n=0){return wo(e).readIntBE(n,this.span)}encode(e,n,r=0){return wo(n).writeIntBE(e,r,this.span),this.span}};ze.IntBE=E3;var Ioe=Math.pow(2,32);function Jq(t){let e=Math.floor(t/Ioe),n=t-e*Ioe;return{hi32:e,lo32:n}}function Xq(t,e){return t*Ioe+e}var Bq=class extends No{constructor(e){super(8,e)}decode(e,n=0){let r=wo(e),o=r.readUInt32LE(n),i=r.readUInt32LE(n+4);return Xq(i,o)}encode(e,n,r=0){let o=Jq(e),i=wo(n);return i.writeUInt32LE(o.lo32,r),i.writeUInt32LE(o.hi32,r+4),8}};ze.NearUInt64=Bq;var Dq=class extends No{constructor(e){super(8,e)}decode(e,n=0){let r=wo(e),o=r.readUInt32BE(n),i=r.readUInt32BE(n+4);return Xq(o,i)}encode(e,n,r=0){let o=Jq(e),i=wo(n);return i.writeUInt32BE(o.hi32,r),i.writeUInt32BE(o.lo32,r+4),8}};ze.NearUInt64BE=Dq;var Fq=class extends No{constructor(e){super(8,e)}decode(e,n=0){let r=wo(e),o=r.readUInt32LE(n),i=r.readInt32LE(n+4);return Xq(i,o)}encode(e,n,r=0){let o=Jq(e),i=wo(n);return i.writeUInt32LE(o.lo32,r),i.writeInt32LE(o.hi32,r+4),8}};ze.NearInt64=Fq;var Uq=class extends No{constructor(e){super(8,e)}decode(e,n=0){let r=wo(e),o=r.readInt32BE(n),i=r.readUInt32BE(n+4);return Xq(o,i)}encode(e,n,r=0){let o=Jq(e),i=wo(n);return i.writeInt32BE(o.hi32,r),i.writeUInt32BE(o.lo32,r+4),8}};ze.NearInt64BE=Uq;var jq=class extends No{constructor(e){super(4,e)}decode(e,n=0){return wo(e).readFloatLE(n)}encode(e,n,r=0){return wo(n).writeFloatLE(e,r),4}};ze.Float=jq;var zq=class extends No{constructor(e){super(4,e)}decode(e,n=0){return wo(e).readFloatBE(n)}encode(e,n,r=0){return wo(n).writeFloatBE(e,r),4}};ze.FloatBE=zq;var Hq=class extends No{constructor(e){super(8,e)}decode(e,n=0){return wo(e).readDoubleLE(n)}encode(e,n,r=0){return wo(n).writeDoubleLE(e,r),8}};ze.Double=Hq;var qq=class extends No{constructor(e){super(8,e)}decode(e,n=0){return wo(e).readDoubleBE(n)}encode(e,n,r=0){return wo(n).writeDoubleBE(e,r),8}};ze.DoubleBE=qq;var Wq=class extends No{constructor(e,n,r){if(!(e instanceof No))throw new TypeError(\"elementLayout must be a Layout\");if(!(n instanceof Ru&&n.isCount()||Number.isInteger(n)&&0<=n))throw new TypeError(\"count must be non-negative integer or an unsigned integer ExternalLayout\");let o=-1;!(n instanceof Ru)&&0<e.span&&(o=n*e.span),super(o,r),this.elementLayout=e,this.count=n}getSpan(e,n=0){if(0<=this.span)return this.span;let r=0,o=this.count;if(o instanceof Ru&&(o=o.decode(e,n)),0<this.elementLayout.span)r=o*this.elementLayout.span;else{let i=0;for(;i<o;)r+=this.elementLayout.getSpan(e,n+r),++i}return r}decode(e,n=0){let r=[],o=0,i=this.count;for(i instanceof Ru&&(i=i.decode(e,n));o<i;)r.push(this.elementLayout.decode(e,n)),n+=this.elementLayout.getSpan(e,n),o+=1;return r}encode(e,n,r=0){let o=this.elementLayout,i=e.reduce((a,c)=>a+o.encode(c,n,r+a),0);return this.count instanceof Ru&&this.count.encode(e.length,n,r),i}};ze.Sequence=Wq;var Vq=class extends No{constructor(e,n,r){if(!(Array.isArray(e)&&e.reduce((i,a)=>i&&a instanceof No,!0)))throw new TypeError(\"fields must be array of Layout instances\");typeof n==\"boolean\"&&r===void 0&&(r=n,n=void 0);for(let i of e)if(0>i.span&&i.property===void 0)throw new Error(\"fields cannot contain unnamed variable-length layout\");let o=-1;try{o=e.reduce((i,a)=>i+a.getSpan(),0)}catch{}super(o,n),this.fields=e,this.decodePrefixes=!!r}getSpan(e,n=0){if(0<=this.span)return this.span;let r=0;try{r=this.fields.reduce((o,i)=>{let a=i.getSpan(e,n);return n+=a,o+a},0)}catch{throw new RangeError(\"indeterminate span\")}return r}decode(e,n=0){BA(e);let r=this.makeDestinationObject();for(let o of this.fields)if(o.property!==void 0&&(r[o.property]=o.decode(e,n)),n+=o.getSpan(e,n),this.decodePrefixes&&e.length===n)break;return r}encode(e,n,r=0){let o=r,i=0,a=0;for(let c of this.fields){let u=c.span;if(a=0<u?u:0,c.property!==void 0){let d=e[c.property];d!==void 0&&(a=c.encode(d,n,r),0>u&&(u=c.getSpan(n,r)))}i=r,r+=u}return i+a-o}fromArray(e){let n=this.makeDestinationObject();for(let r of this.fields)r.property!==void 0&&0<e.length&&(n[r.property]=e.shift());return n}layoutFor(e){if(typeof e!=\"string\")throw new TypeError(\"property must be string\");for(let n of this.fields)if(n.property===e)return n}offsetOf(e){if(typeof e!=\"string\")throw new TypeError(\"property must be string\");let n=0;for(let r of this.fields){if(r.property===e)return n;0>r.span?n=-1:0<=n&&(n+=r.span)}}};ze.Structure=Vq;var tP=class{constructor(e){this.property=e}decode(e,n){throw new Error(\"UnionDiscriminator is abstract\")}encode(e,n,r){throw new Error(\"UnionDiscriminator is abstract\")}};ze.UnionDiscriminator=tP;var LA=class extends tP{constructor(e,n){if(!(e instanceof Ru&&e.isCount()))throw new TypeError(\"layout must be an unsigned integer ExternalLayout\");super(n||e.property||\"variant\"),this.layout=e}decode(e,n){return this.layout.decode(e,n)}encode(e,n,r){return this.layout.encode(e,n,r)}};ze.UnionLayoutDiscriminator=LA;var nP=class extends No{constructor(e,n,r){let o;if(e instanceof Nf||e instanceof Bh)o=new LA(new eP(e));else if(e instanceof Ru&&e.isCount())o=new LA(e);else if(e instanceof tP)o=e;else throw new TypeError(\"discr must be a UnionDiscriminator or an unsigned integer layout\");if(n===void 0&&(n=null),!(n===null||n instanceof No))throw new TypeError(\"defaultLayout must be null or a Layout\");if(n!==null){if(0>n.span)throw new Error(\"defaultLayout must have constant span\");n.property===void 0&&(n=n.replicate(\"content\"))}let i=-1;n&&(i=n.span,0<=i&&(e instanceof Nf||e instanceof Bh)&&(i+=o.layout.span)),super(i,r),this.discriminator=o,this.usesPrefixDiscriminator=e instanceof Nf||e instanceof Bh,this.defaultLayout=n,this.registry={};let a=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(c){return a(c)},this.configGetSourceVariant=function(c){a=c.bind(this)}}getSpan(e,n=0){if(0<=this.span)return this.span;let r=this.getVariant(e,n);if(!r)throw new Error(\"unable to determine span for unrecognized variant\");return r.getSpan(e,n)}defaultGetSourceVariant(e){if(Object.prototype.hasOwnProperty.call(e,this.discriminator.property)){if(this.defaultLayout&&this.defaultLayout.property&&Object.prototype.hasOwnProperty.call(e,this.defaultLayout.property))return;let n=this.registry[e[this.discriminator.property]];if(n&&(!n.layout||n.property&&Object.prototype.hasOwnProperty.call(e,n.property)))return n}else for(let n in this.registry){let r=this.registry[n];if(r.property&&Object.prototype.hasOwnProperty.call(e,r.property))return r}throw new Error(\"unable to infer src variant\")}decode(e,n=0){let r,o=this.discriminator,i=o.decode(e,n),a=this.registry[i];if(a===void 0){let c=this.defaultLayout,u=0;this.usesPrefixDiscriminator&&(u=o.layout.span),r=this.makeDestinationObject(),r[o.property]=i,r[c.property]=c.decode(e,n+u)}else r=a.decode(e,n);return r}encode(e,n,r=0){let o=this.getSourceVariant(e);if(o===void 0){let i=this.discriminator,a=this.defaultLayout,c=0;return this.usesPrefixDiscriminator&&(c=i.layout.span),i.encode(e[i.property],n,r),c+a.encode(e[a.property],n,r+c)}return o.encode(e,n,r)}addVariant(e,n,r){let o=new $q(this,e,n,r);return this.registry[e]=o,o}getVariant(e,n=0){let r;return e instanceof Uint8Array?r=this.discriminator.decode(e,n):r=e,this.registry[r]}};ze.Union=nP;var $q=class extends No{constructor(e,n,r,o){if(!(e instanceof nP))throw new TypeError(\"union must be a Union\");if(!Number.isInteger(n)||0>n)throw new TypeError(\"variant must be a (non-negative) integer\");if(typeof r==\"string\"&&o===void 0&&(o=r,r=null),r){if(!(r instanceof No))throw new TypeError(\"layout must be a Layout\");if(e.defaultLayout!==null&&0<=r.span&&r.span>e.defaultLayout.span)throw new Error(\"variant span exceeds span of containing union\");if(typeof o!=\"string\")throw new TypeError(\"variant must have a String property\")}let i=e.span;0>e.span&&(i=r?r.span:0,0<=i&&e.usesPrefixDiscriminator&&(i+=e.discriminator.layout.span)),super(i,o),this.union=e,this.variant=n,this.layout=r||null}getSpan(e,n=0){if(0<=this.span)return this.span;let r=0;this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span);let o=0;return this.layout&&(o=this.layout.getSpan(e,n+r)),r+o}decode(e,n=0){let r=this.makeDestinationObject();if(this!==this.union.getVariant(e,n))throw new Error(\"variant mismatch\");let o=0;return this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(e,n+o):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(e,n,r=0){let o=0;if(this.union.usesPrefixDiscriminator&&(o=this.union.discriminator.layout.span),this.layout&&!Object.prototype.hasOwnProperty.call(e,this.property))throw new TypeError(\"variant lacks property \"+this.property);this.union.discriminator.encode(this.variant,n,r);let i=o;if(this.layout&&(this.layout.encode(e[this.property],n,r+o),i+=this.layout.getSpan(n,r+o),0<=this.union.span&&i>this.union.span))throw new Error(\"encoded variant overruns containing union\");return i}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};ze.VariantLayout=$q;function NA(t){return 0>t&&(t+=4294967296),t}var rP=class extends No{constructor(e,n,r){if(!(e instanceof Nf||e instanceof Bh))throw new TypeError(\"word must be a UInt or UIntBE layout\");if(typeof n==\"string\"&&r===void 0&&(r=n,n=!1),4<e.span)throw new RangeError(\"word cannot exceed 32 bits\");super(e.span,r),this.word=e,this.msb=!!n,this.fields=[];let o=0;this._packedSetValue=function(i){return o=NA(i),this},this._packedGetValue=function(){return o}}decode(e,n=0){let r=this.makeDestinationObject(),o=this.word.decode(e,n);this._packedSetValue(o);for(let i of this.fields)i.property!==void 0&&(r[i.property]=i.decode(e));return r}encode(e,n,r=0){let o=this.word.decode(n,r);this._packedSetValue(o);for(let i of this.fields)if(i.property!==void 0){let a=e[i.property];a!==void 0&&i.encode(a)}return this.word.encode(this._packedGetValue(),n,r)}addField(e,n){let r=new oP(this,e,n);return this.fields.push(r),r}addBoolean(e){let n=new Kq(this,e);return this.fields.push(n),n}fieldFor(e){if(typeof e!=\"string\")throw new TypeError(\"property must be string\");for(let n of this.fields)if(n.property===e)return n}};ze.BitStructure=rP;var oP=class{constructor(e,n,r){if(!(e instanceof rP))throw new TypeError(\"container must be a BitStructure\");if(!Number.isInteger(n)||0>=n)throw new TypeError(\"bits must be positive integer\");let o=8*e.span,i=e.fields.reduce((a,c)=>a+c.bits,0);if(n+i>o)throw new Error(\"bits too long for span remainder (\"+(o-i)+\" of \"+o+\" remain)\");this.container=e,this.bits=n,this.valueMask=(1<<n)-1,n===32&&(this.valueMask=4294967295),this.start=i,this.container.msb&&(this.start=o-i-n),this.wordMask=NA(this.valueMask<<this.start),this.property=r}decode(e,n){let r=this.container._packedGetValue();return NA(r&this.wordMask)>>>this.start}encode(e){if(typeof e!=\"number\"||!Number.isInteger(e)||e!==NA(e&this.valueMask))throw new TypeError(Poe(\"BitField.encode\",this)+\" value must be integer not exceeding \"+this.valueMask);let n=this.container._packedGetValue(),r=NA(e<<this.start);this.container._packedSetValue(NA(n&~this.wordMask)|r)}};ze.BitField=oP;var Kq=class extends oP{constructor(e,n){super(e,1,n)}decode(e,n){return!!super.decode(e,n)}encode(e){typeof e==\"boolean\"&&(e=+e),super.encode(e)}};ze.Boolean=Kq;var Gq=class extends No{constructor(e,n){if(!(e instanceof Ru&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError(\"length must be positive integer or an unsigned integer ExternalLayout\");let r=-1;e instanceof Ru||(r=e),super(r,n),this.length=e}getSpan(e,n){let r=this.span;return 0>r&&(r=this.length.decode(e,n)),r}decode(e,n=0){let r=this.span;return 0>r&&(r=this.length.decode(e,n)),wo(e).slice(n,n+r)}encode(e,n,r){let o=this.length;if(this.length instanceof Ru&&(o=e.length),!(e instanceof Uint8Array&&o===e.length))throw new TypeError(Poe(\"Blob.encode\",this)+\" requires (length \"+o+\") Uint8Array as src\");if(r+o>n.length)throw new RangeError(\"encoding overruns Uint8Array\");let i=wo(e);return wo(n).write(i.toString(\"hex\"),r,o,\"hex\"),this.length instanceof Ru&&this.length.encode(o,n,r),o}};ze.Blob=Gq;var Zq=class extends No{constructor(e){super(-1,e)}getSpan(e,n=0){BA(e);let r=n;for(;r<e.length&&e[r]!==0;)r+=1;return 1+r-n}decode(e,n=0){let r=this.getSpan(e,n);return wo(e).slice(n,n+r-1).toString(\"utf-8\")}encode(e,n,r=0){typeof e!=\"string\"&&(e=String(e));let o=Ooe.Buffer.from(e,\"utf8\"),i=o.length;if(r+i>n.length)throw new RangeError(\"encoding overruns Buffer\");let a=wo(n);return o.copy(a,r),a[r+i]=0,i+1}};ze.CString=Zq;var Yq=class extends No{constructor(e,n){if(typeof e==\"string\"&&n===void 0&&(n=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError(\"maxSpan must be an integer\");super(-1,n),this.maxSpan=e}getSpan(e,n=0){return BA(e),e.length-n}decode(e,n=0){let r=this.getSpan(e,n);if(0<=this.maxSpan&&this.maxSpan<r)throw new RangeError(\"text length exceeds maxSpan\");return wo(e).slice(n,n+r).toString(\"utf-8\")}encode(e,n,r=0){typeof e!=\"string\"&&(e=String(e));let o=Ooe.Buffer.from(e,\"utf8\"),i=o.length;if(0<=this.maxSpan&&this.maxSpan<i)throw new RangeError(\"text length exceeds maxSpan\");if(r+i>n.length)throw new RangeError(\"encoding overruns Buffer\");return o.copy(wo(n),r),i}};ze.UTF8=Yq;var Qq=class extends No{constructor(e,n){super(0,n),this.value=e}decode(e,n){return this.value}encode(e,n,r){return 0}};ze.Constant=Qq;ze.greedy=(t,e)=>new Lq(t,e);ze.offset=(t,e,n)=>new eP(t,e,n);ze.u8=t=>new Nf(1,t);ze.u16=t=>new Nf(2,t);ze.u24=t=>new Nf(3,t);ze.u32=t=>new Nf(4,t);ze.u40=t=>new Nf(5,t);ze.u48=t=>new Nf(6,t);ze.nu64=t=>new Bq(t);ze.u16be=t=>new Bh(2,t);ze.u24be=t=>new Bh(3,t);ze.u32be=t=>new Bh(4,t);ze.u40be=t=>new Bh(5,t);ze.u48be=t=>new Bh(6,t);ze.nu64be=t=>new Dq(t);ze.s8=t=>new r2(1,t);ze.s16=t=>new r2(2,t);ze.s24=t=>new r2(3,t);ze.s32=t=>new r2(4,t);ze.s40=t=>new r2(5,t);ze.s48=t=>new r2(6,t);ze.ns64=t=>new Fq(t);ze.s16be=t=>new E3(2,t);ze.s24be=t=>new E3(3,t);ze.s32be=t=>new E3(4,t);ze.s40be=t=>new E3(5,t);ze.s48be=t=>new E3(6,t);ze.ns64be=t=>new Uq(t);ze.f32=t=>new jq(t);ze.f32be=t=>new zq(t);ze.f64=t=>new Hq(t);ze.f64be=t=>new qq(t);ze.struct=(t,e,n)=>new Vq(t,e,n);ze.bits=(t,e,n)=>new rP(t,e,n);ze.seq=(t,e,n)=>new Wq(t,e,n);ze.union=(t,e,n)=>new nP(t,e,n);ze.unionLayoutDiscriminator=(t,e)=>new LA(t,e);ze.blob=(t,e)=>new Gq(t,e);ze.cstr=t=>new Zq(t);ze.utf8=(t,e)=>new Yq(t,e);ze.constant=(t,e)=>new Qq(t,e)});var gRe=be((Ugn,mRe)=>{\"use strict\";p();var rpt=(Oz(),go(Tte)).v4,opt=function(t,e,n,r){if(typeof t!=\"string\")throw new TypeError(t+\" must be a string\");r=r||{};let o=typeof r.version==\"number\"?r.version:2;if(o!==1&&o!==2)throw new TypeError(o+\" must be 1 or 2\");let i={method:t};if(o===2&&(i.jsonrpc=\"2.0\"),e){if(typeof e!=\"object\"&&!Array.isArray(e))throw new TypeError(e+\" must be an object, array or omitted\");i.params=e}if(typeof n>\"u\"){let a=typeof r.generator==\"function\"?r.generator:function(){return rpt()};i.id=a(i,r)}else o===2&&n===null?r.notificationIdNull&&(i.id=null):i.id=n;return i};mRe.exports=opt});var bRe=be((zgn,yRe)=>{\"use strict\";p();var ipt=(Oz(),go(Tte)).v4,spt=gRe(),aP=function(t,e){if(!(this instanceof aP))return new aP(t,e);e||(e={}),this.options={reviver:typeof e.reviver<\"u\"?e.reviver:null,replacer:typeof e.replacer<\"u\"?e.replacer:null,generator:typeof e.generator<\"u\"?e.generator:function(){return ipt()},version:typeof e.version<\"u\"?e.version:2,notificationIdNull:typeof e.notificationIdNull==\"boolean\"?e.notificationIdNull:!1},this.callServer=t};yRe.exports=aP;aP.prototype.request=function(t,e,n,r){let o=this,i=null,a=Array.isArray(t)&&typeof e==\"function\";if(this.options.version===1&&a)throw new TypeError(\"JSON-RPC 1.0 does not support batching\");if(a||!a&&t&&typeof t==\"object\"&&typeof e==\"function\")r=e,i=t;else{typeof n==\"function\"&&(r=n,n=void 0);let d=typeof r==\"function\";try{i=spt(t,e,n,{generator:this.options.generator,version:this.options.version,notificationIdNull:this.options.notificationIdNull})}catch(h){if(d)return r(h);throw h}if(!d)return i}let u;try{u=JSON.stringify(i,this.options.replacer)}catch(d){return r(d)}return this.callServer(u,function(d,h){o._parseResponse(d,h,r)}),i};aP.prototype._parseResponse=function(t,e,n){if(t){n(t);return}if(!e)return n();let r;try{r=JSON.parse(e,this.options.reviver)}catch(o){return n(o)}if(n.length===3)if(Array.isArray(r)){let o=function(a){return typeof a.error<\"u\"},i=function(a){return!o(a)};return n(null,r.filter(o),r.filter(i))}else return n(null,r.error,r.result);n(null,r)}});var nOe=be((O3,tOe)=>{p();var QW=typeof globalThis<\"u\"&&globalThis||typeof self<\"u\"&&self||typeof globalThis<\"u\"&&globalThis,JW=function(){function t(){this.fetch=!1,this.DOMException=QW.DOMException}return t.prototype=QW,new t}();(function(t){var e=function(n){var r=typeof t<\"u\"&&t||typeof self<\"u\"&&self||typeof t<\"u\"&&t||{},o={searchParams:\"URLSearchParams\"in r,iterable:\"Symbol\"in r&&\"iterator\"in Symbol,blob:\"FileReader\"in r&&\"Blob\"in r&&function(){try{return new Blob,!0}catch{return!1}}(),formData:\"FormData\"in r,arrayBuffer:\"ArrayBuffer\"in r};function i(V){return V&&DataView.prototype.isPrototypeOf(V)}if(o.arrayBuffer)var a=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],c=ArrayBuffer.isView||function(V){return V&&a.indexOf(Object.prototype.toString.call(V))>-1};function u(V){if(typeof V!=\"string\"&&(V=String(V)),/[^a-z0-9\\\\-#$%&\\'*+.^_`|~!]/i.test(V)||V===\"\")throw new TypeError(\\'Invalid character in header field name: \"\\'+V+\\'\"\\');return V.toLowerCase()}function d(V){return typeof V!=\"string\"&&(V=String(V)),V}function h(V){var $={next:function(){var F=V.shift();return{done:F===void 0,value:F}}};return o.iterable&&($[Symbol.iterator]=function(){return $}),$}function m(V){this.map={},V instanceof m?V.forEach(function($,F){this.append(F,$)},this):Array.isArray(V)?V.forEach(function($){if($.length!=2)throw new TypeError(\"Headers constructor: expected name/value pair to be length 2, found\"+$.length);this.append($[0],$[1])},this):V&&Object.getOwnPropertyNames(V).forEach(function($){this.append($,V[$])},this)}m.prototype.append=function(V,$){V=u(V),$=d($);var F=this.map[V];this.map[V]=F?F+\", \"+$:$},m.prototype.delete=function(V){delete this.map[u(V)]},m.prototype.get=function(V){return V=u(V),this.has(V)?this.map[V]:null},m.prototype.has=function(V){return this.map.hasOwnProperty(u(V))},m.prototype.set=function(V,$){this.map[u(V)]=d($)},m.prototype.forEach=function(V,$){for(var F in this.map)this.map.hasOwnProperty(F)&&V.call($,this.map[F],F,this)},m.prototype.keys=function(){var V=[];return this.forEach(function($,F){V.push(F)}),h(V)},m.prototype.values=function(){var V=[];return this.forEach(function($){V.push($)}),h(V)},m.prototype.entries=function(){var V=[];return this.forEach(function($,F){V.push([F,$])}),h(V)},o.iterable&&(m.prototype[Symbol.iterator]=m.prototype.entries);function g(V){if(!V._noBody){if(V.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));V.bodyUsed=!0}}function b(V){return new Promise(function($,F){V.onload=function(){$(V.result)},V.onerror=function(){F(V.error)}})}function E(V){var $=new FileReader,F=b($);return $.readAsArrayBuffer(V),F}function C(V){var $=new FileReader,F=b($),_=/charset=([A-Za-z0-9_-]+)/.exec(V.type),O=_?_[1]:\"utf-8\";return $.readAsText(V,O),F}function T(V){for(var $=new Uint8Array(V),F=new Array($.length),_=0;_<$.length;_++)F[_]=String.fromCharCode($[_]);return F.join(\"\")}function R(V){if(V.slice)return V.slice(0);var $=new Uint8Array(V.byteLength);return $.set(new Uint8Array(V)),$.buffer}function L(){return this.bodyUsed=!1,this._initBody=function(V){this.bodyUsed=this.bodyUsed,this._bodyInit=V,V?typeof V==\"string\"?this._bodyText=V:o.blob&&Blob.prototype.isPrototypeOf(V)?this._bodyBlob=V:o.formData&&FormData.prototype.isPrototypeOf(V)?this._bodyFormData=V:o.searchParams&&URLSearchParams.prototype.isPrototypeOf(V)?this._bodyText=V.toString():o.arrayBuffer&&o.blob&&i(V)?(this._bodyArrayBuffer=R(V.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(V)||c(V))?this._bodyArrayBuffer=R(V):this._bodyText=V=Object.prototype.toString.call(V):(this._noBody=!0,this._bodyText=\"\"),this.headers.get(\"content-type\")||(typeof V==\"string\"?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):o.searchParams&&URLSearchParams.prototype.isPrototypeOf(V)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},o.blob&&(this.blob=function(){var V=g(this);if(V)return V;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var V=g(this);return V||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(o.blob)return this.blob().then(E);throw new Error(\"could not read as ArrayBuffer\")}},this.text=function(){var V=g(this);if(V)return V;if(this._bodyBlob)return C(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(T(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},o.formData&&(this.formData=function(){return this.text().then(J)}),this.json=function(){return this.text().then(JSON.parse)},this}var D=[\"CONNECT\",\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"PATCH\",\"POST\",\"PUT\",\"TRACE\"];function G(V){var $=V.toUpperCase();return D.indexOf($)>-1?$:V}function W(V,$){if(!(this instanceof W))throw new TypeError(\\'Please use the \"new\" operator, this DOM object constructor cannot be called as a function.\\');$=$||{};var F=$.body;if(V instanceof W){if(V.bodyUsed)throw new TypeError(\"Already read\");this.url=V.url,this.credentials=V.credentials,$.headers||(this.headers=new m(V.headers)),this.method=V.method,this.mode=V.mode,this.signal=V.signal,!F&&V._bodyInit!=null&&(F=V._bodyInit,V.bodyUsed=!0)}else this.url=String(V);if(this.credentials=$.credentials||this.credentials||\"same-origin\",($.headers||!this.headers)&&(this.headers=new m($.headers)),this.method=G($.method||this.method||\"GET\"),this.mode=$.mode||this.mode||null,this.signal=$.signal||this.signal||function(){if(\"AbortController\"in r){var z=new AbortController;return z.signal}}(),this.referrer=null,(this.method===\"GET\"||this.method===\"HEAD\")&&F)throw new TypeError(\"Body not allowed for GET or HEAD requests\");if(this._initBody(F),(this.method===\"GET\"||this.method===\"HEAD\")&&($.cache===\"no-store\"||$.cache===\"no-cache\")){var _=/([?&])_=[^&]*/;if(_.test(this.url))this.url=this.url.replace(_,\"$1_=\"+new Date().getTime());else{var O=/\\\\?/;this.url+=(O.test(this.url)?\"&\":\"?\")+\"_=\"+new Date().getTime()}}}W.prototype.clone=function(){return new W(this,{body:this._bodyInit})};function J(V){var $=new FormData;return V.trim().split(\"&\").forEach(function(F){if(F){var _=F.split(\"=\"),O=_.shift().replace(/\\\\+/g,\" \"),z=_.join(\"=\").replace(/\\\\+/g,\" \");$.append(decodeURIComponent(O),decodeURIComponent(z))}}),$}function ne(V){var $=new m,F=V.replace(/\\\\r?\\\\n[\\\\t ]+/g,\" \");return F.split(\"\\\\r\").map(function(_){return _.indexOf(`\\n`)===0?_.substr(1,_.length):_}).forEach(function(_){var O=_.split(\":\"),z=O.shift().trim();if(z){var N=O.join(\":\").trim();try{$.append(z,N)}catch(B){console.warn(\"Response \"+B.message)}}}),$}L.call(W.prototype);function ie(V,$){if(!(this instanceof ie))throw new TypeError(\\'Please use the \"new\" operator, this DOM object constructor cannot be called as a function.\\');if($||($={}),this.type=\"default\",this.status=$.status===void 0?200:$.status,this.status<200||this.status>599)throw new RangeError(\"Failed to construct \\'Response\\': The status provided (0) is outside the range [200, 599].\");this.ok=this.status>=200&&this.status<300,this.statusText=$.statusText===void 0?\"\":\"\"+$.statusText,this.headers=new m($.headers),this.url=$.url||\"\",this._initBody(V)}L.call(ie.prototype),ie.prototype.clone=function(){return new ie(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new m(this.headers),url:this.url})},ie.error=function(){var V=new ie(null,{status:200,statusText:\"\"});return V.ok=!1,V.status=0,V.type=\"error\",V};var Z=[301,302,303,307,308];ie.redirect=function(V,$){if(Z.indexOf($)===-1)throw new RangeError(\"Invalid status code\");return new ie(null,{status:$,headers:{location:V}})},n.DOMException=r.DOMException;try{new n.DOMException}catch{n.DOMException=function($,F){this.message=$,this.name=F;var _=Error($);this.stack=_.stack},n.DOMException.prototype=Object.create(Error.prototype),n.DOMException.prototype.constructor=n.DOMException}function ae(V,$){return new Promise(function(F,_){var O=new W(V,$);if(O.signal&&O.signal.aborted)return _(new n.DOMException(\"Aborted\",\"AbortError\"));var z=new XMLHttpRequest;function N(){z.abort()}z.onload=function(){var q={statusText:z.statusText,headers:ne(z.getAllResponseHeaders()||\"\")};O.url.indexOf(\"file://\")===0&&(z.status<200||z.status>599)?q.status=200:q.status=z.status,q.url=\"responseURL\"in z?z.responseURL:q.headers.get(\"X-Request-URL\");var H=\"response\"in z?z.response:z.responseText;setTimeout(function(){F(new ie(H,q))},0)},z.onerror=function(){setTimeout(function(){_(new TypeError(\"Network request failed\"))},0)},z.ontimeout=function(){setTimeout(function(){_(new TypeError(\"Network request timed out\"))},0)},z.onabort=function(){setTimeout(function(){_(new n.DOMException(\"Aborted\",\"AbortError\"))},0)};function B(q){try{return q===\"\"&&r.location.href?r.location.href:q}catch{return q}}if(z.open(O.method,B(O.url),!0),O.credentials===\"include\"?z.withCredentials=!0:O.credentials===\"omit\"&&(z.withCredentials=!1),\"responseType\"in z&&(o.blob?z.responseType=\"blob\":o.arrayBuffer&&(z.responseType=\"arraybuffer\")),$&&typeof $.headers==\"object\"&&!($.headers instanceof m||r.Headers&&$.headers instanceof r.Headers)){var j=[];Object.getOwnPropertyNames($.headers).forEach(function(q){j.push(u(q)),z.setRequestHeader(q,d($.headers[q]))}),O.headers.forEach(function(q,H){j.indexOf(H)===-1&&z.setRequestHeader(H,q)})}else O.headers.forEach(function(q,H){z.setRequestHeader(H,q)});O.signal&&(O.signal.addEventListener(\"abort\",N),z.onreadystatechange=function(){z.readyState===4&&O.signal.removeEventListener(\"abort\",N)}),z.send(typeof O._bodyInit>\"u\"?null:O._bodyInit)})}return ae.polyfill=!0,r.fetch||(r.fetch=ae,r.Headers=m,r.Request=W,r.Response=ie),n.Headers=m,n.Request=W,n.Response=ie,n.fetch=ae,Object.defineProperty(n,\"__esModule\",{value:!0}),n}({})})(JW);JW.fetch.ponyfill=!0;delete JW.fetch.polyfill;var mT=QW.fetch?QW:JW;O3=mT.fetch;O3.default=mT.fetch;O3.fetch=mT.fetch;O3.Headers=mT.Headers;O3.Request=mT.Request;O3.Response=mT.Response;tOe.exports=O3});var _Me=be(zV=>{\"use strict\";p();(function(){function t(x,k,P,Q){return\"\"+k+(P===\"s\"?\"\\\\\\\\73 \":\"\\\\\\\\53 \")+Q}function e(x,k,P,Q){return\"\"+k+(P===\"s\"?\"\\\\\\\\u0073\":\"\\\\\\\\u0053\")+Q}function n(x){return Object.prototype.toString.call(x).replace(/^\\\\[object (.*)\\\\]$/,function(k,P){return P})}function r(x){var k=JSON.stringify(x);return\\'\"\\'+x+\\'\"\\'===k?x:k}function o(x){switch(typeof x){case\"string\":return JSON.stringify(10>=x.length?x:x.slice(0,10)+\"...\");case\"object\":return el(x)?\"[...]\":x!==null&&x.$$typeof===ob?\"client\":(x=n(x),x===\"Object\"?\"{...}\":x);case\"function\":return x.$$typeof===ob?\"client\":(x=x.displayName||x.name)?\"function \"+x:\"function\";default:return String(x)}}function i(x){if(typeof x==\"string\")return x;switch(x){case op:return\"Suspense\";case Vu:return\"SuspenseList\"}if(typeof x==\"object\")switch(x.$$typeof){case Gf:return i(x.render);case $u:return i(x.type);case Js:var k=x._payload;x=x._init;try{return i(x(k))}catch{}}return\"\"}function a(x,k){var P=n(x);if(P!==\"Object\"&&P!==\"Array\")return P;var Q=-1,oe=0;if(el(x))if(R2.has(x)){var de=R2.get(x);P=\"<\"+i(de)+\">\";for(var Re=0;Re<x.length;Re++){var Pe=x[Re];Pe=typeof Pe==\"string\"?Pe:typeof Pe==\"object\"&&Pe!==null?\"{\"+a(Pe)+\"}\":\"{\"+o(Pe)+\"}\",\"\"+Re===k?(Q=P.length,oe=Pe.length,P+=Pe):P=15>Pe.length&&40>P.length+Pe.length?P+Pe:P+\"{...}\"}P+=\"</\"+i(de)+\">\"}else{for(P=\"[\",de=0;de<x.length;de++)0<de&&(P+=\", \"),Re=x[de],Re=typeof Re==\"object\"&&Re!==null?a(Re):o(Re),\"\"+de===k?(Q=P.length,oe=Re.length,P+=Re):P=10>Re.length&&40>P.length+Re.length?P+Re:P+\"...\";P+=\"]\"}else if(x.$$typeof===Vm)P=\"<\"+i(x.type)+\"/>\";else{if(x.$$typeof===ob)return\"client\";if(tl.has(x)){for(P=tl.get(x),P=\"<\"+(i(P)||\"...\"),de=Object.keys(x),Re=0;Re<de.length;Re++){P+=\" \",Pe=de[Re],P+=r(Pe)+\"=\";var nt=x[Pe],Ne=Pe===k&&typeof nt==\"object\"&&nt!==null?a(nt):o(nt);typeof nt!=\"string\"&&(Ne=\"{\"+Ne+\"}\"),Pe===k?(Q=P.length,oe=Ne.length,P+=Ne):P=10>Ne.length&&40>P.length+Ne.length?P+Ne:P+\"...\"}P+=\">\"}else{for(P=\"{\",de=Object.keys(x),Re=0;Re<de.length;Re++)0<Re&&(P+=\", \"),Pe=de[Re],P+=r(Pe)+\": \",nt=x[Pe],nt=typeof nt==\"object\"&&nt!==null?a(nt):o(nt),Pe===k?(Q=P.length,oe=nt.length,P+=nt):P=10>nt.length&&40>P.length+nt.length?P+nt:P+\"...\";P+=\"}\"}}return k===void 0?P:-1<Q&&0<oe?(x=\" \".repeat(Q)+\"^\".repeat(oe),`\\n  `+P+`\\n  `+x):`\\n  `+P}function c(x,k){var P=x.length&3,Q=x.length-P,oe=k;for(k=0;k<Q;){var de=x.charCodeAt(k)&255|(x.charCodeAt(++k)&255)<<8|(x.charCodeAt(++k)&255)<<16|(x.charCodeAt(++k)&255)<<24;++k,de=3432918353*(de&65535)+((3432918353*(de>>>16)&65535)<<16)&4294967295,de=de<<15|de>>>17,de=461845907*(de&65535)+((461845907*(de>>>16)&65535)<<16)&4294967295,oe^=de,oe=oe<<13|oe>>>19,oe=5*(oe&65535)+((5*(oe>>>16)&65535)<<16)&4294967295,oe=(oe&65535)+27492+(((oe>>>16)+58964&65535)<<16)}switch(de=0,P){case 3:de^=(x.charCodeAt(k+2)&255)<<16;case 2:de^=(x.charCodeAt(k+1)&255)<<8;case 1:de^=x.charCodeAt(k)&255,de=3432918353*(de&65535)+((3432918353*(de>>>16)&65535)<<16)&4294967295,de=de<<15|de>>>17,oe^=461845907*(de&65535)+((461845907*(de>>>16)&65535)<<16)&4294967295}return oe^=x.length,oe^=oe>>>16,oe=2246822507*(oe&65535)+((2246822507*(oe>>>16)&65535)<<16)&4294967295,oe^=oe>>>13,oe=3266489909*(oe&65535)+((3266489909*(oe>>>16)&65535)<<16)&4294967295,(oe^oe>>>16)>>>0}function u(x){return typeof Symbol==\"function\"&&Symbol.toStringTag&&x[Symbol.toStringTag]||x.constructor.name||\"Object\"}function d(x){try{return h(x),!1}catch{return!0}}function h(x){return\"\"+x}function m(x,k){if(d(x))return console.error(\"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",k,u(x)),h(x)}function g(x,k){if(d(x))return console.error(\"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",k,u(x)),h(x)}function b(x){if(d(x))return console.error(\"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",u(x)),h(x)}function E(x){return Yr.call(wa,x)?!0:Yr.call(ib,x)?!1:XT.test(x)?wa[x]=!0:(ib[x]=!0,console.error(\"Invalid attribute name: `%s`\",x),!1)}function C(x,k){jg[k.type]||k.onChange||k.onInput||k.readOnly||k.disabled||k.value==null||console.error(x===\"select\"?\"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`.\":\"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`.\"),k.onChange||k.readOnly||k.disabled||k.checked==null||console.error(\"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`.\")}function T(x,k){if(Yr.call(Yf,k)&&Yf[k])return!0;if(sp.test(k)){if(x=\"aria-\"+k.slice(4).toLowerCase(),x=Zf.hasOwnProperty(x)?x:null,x==null)return console.error(\"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",k),Yf[k]=!0;if(k!==x)return console.error(\"Invalid ARIA attribute `%s`. Did you mean `%s`?\",k,x),Yf[k]=!0}if(cE.test(k)){if(x=k.toLowerCase(),x=Zf.hasOwnProperty(x)?x:null,x==null)return Yf[k]=!0,!1;k!==x&&(console.error(\"Unknown ARIA attribute `%s`. Did you mean `%s`?\",k,x),Yf[k]=!0)}return!0}function R(x,k){var P=[],Q;for(Q in k)T(x,Q)||P.push(Q);k=P.map(function(oe){return\"`\"+oe+\"`\"}).join(\", \"),P.length===1?console.error(\"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",k,x):1<P.length&&console.error(\"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",k,x)}function L(x,k,P,Q){if(Yr.call(Is,k)&&Is[k])return!0;var oe=k.toLowerCase();if(oe===\"onfocusin\"||oe===\"onfocusout\")return console.error(\"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.\"),Is[k]=!0;if(typeof P==\"function\"&&(x===\"form\"&&k===\"action\"||x===\"input\"&&k===\"formAction\"||x===\"button\"&&k===\"formAction\"))return!0;if(Q!=null){if(x=Q.possibleRegistrationNames,Q.registrationNameDependencies.hasOwnProperty(k))return!0;if(Q=x.hasOwnProperty(oe)?x[oe]:null,Q!=null)return console.error(\"Invalid event handler property `%s`. Did you mean `%s`?\",k,Q),Is[k]=!0;if(uo.test(k))return console.error(\"Unknown event handler property `%s`. It will be ignored.\",k),Is[k]=!0}else if(uo.test(k))return Ar.test(k)&&console.error(\"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",k),Is[k]=!0;if(lE.test(k)||ap.test(k))return!0;if(oe===\"innerhtml\")return console.error(\"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"),Is[k]=!0;if(oe===\"aria\")return console.error(\"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"),Is[k]=!0;if(oe===\"is\"&&P!==null&&P!==void 0&&typeof P!=\"string\")return console.error(\"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",typeof P),Is[k]=!0;if(typeof P==\"number\"&&isNaN(P))return console.error(\"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",k),Is[k]=!0;if(xa.hasOwnProperty(oe)){if(oe=xa[oe],oe!==k)return console.error(\"Invalid DOM property `%s`. Did you mean `%s`?\",k,oe),Is[k]=!0}else if(k!==oe)return console.error(\"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.\",k,oe),Is[k]=!0;switch(k){case\"dangerouslySetInnerHTML\":case\"children\":case\"style\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":return!0;case\"innerText\":case\"textContent\":return!0}switch(typeof P){case\"boolean\":switch(k){case\"autoFocus\":case\"checked\":case\"multiple\":case\"muted\":case\"selected\":case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"capture\":case\"download\":case\"inert\":return!0;default:return oe=k.toLowerCase().slice(0,5),oe===\"data-\"||oe===\"aria-\"?!0:(P?console.error(\\'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()}.\\',P,k,k,P,k):console.error(\\'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.\\',P,k,k,P,k,k,k),Is[k]=!0)}case\"function\":case\"symbol\":return Is[k]=!0,!1;case\"string\":if(P===\"false\"||P===\"true\"){switch(k){case\"checked\":case\"selected\":case\"multiple\":case\"muted\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"inert\":break;default:return!0}console.error(\"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",P,k,P===\"false\"?\"The browser will interpret it as a truthy value.\":\\'Although this works, it will not work as expected if you pass the string \"false\".\\',k,P),Is[k]=!0}}return!0}function D(x,k,P){var Q=[],oe;for(oe in k)L(x,oe,k[oe],P)||Q.push(oe);k=Q.map(function(de){return\"`\"+de+\"`\"}).join(\", \"),Q.length===1?console.error(\"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 \",k,x):1<Q.length&&console.error(\"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 \",k,x)}function G(x){return x.replace(sb,function(k,P){return P.toUpperCase()})}function W(x){if(typeof x==\"boolean\"||typeof x==\"number\"||typeof x==\"bigint\")return\"\"+x;b(x),x=\"\"+x;var k=Qf.exec(x);if(k){var P=\"\",Q,oe=0;for(Q=k.index;Q<x.length;Q++){switch(x.charCodeAt(Q)){case 34:k=\"&quot;\";break;case 38:k=\"&amp;\";break;case 39:k=\"&#x27;\";break;case 60:k=\"&lt;\";break;case 62:k=\"&gt;\";break;default:continue}oe!==Q&&(P+=x.slice(oe,Q)),oe=Q+1,P+=k}x=oe!==Q?P+x.slice(oe,Q):P}return x}function J(x){return O2.test(\"\"+x)?\"javascript:throw new Error(\\'React has blocked a javascript: URL as a security precaution.\\')\":x}function ne(x){return b(x),(\"\"+x).replace(lb,e)}function ie(x,k,P,Q,oe){return{idPrefix:x===void 0?\"\":x,nextFormID:0,streamingFormat:0,bootstrapScriptContent:P,bootstrapScripts:Q,bootstrapModules:oe,instructions:Wd,hasBody:!1,hasHtml:!1,unknownResources:{},dnsResources:{},connectResources:{default:{},anonymous:{},credentials:{}},imageResources:{},styleResources:{},scriptResources:{},moduleUnknownResources:{},moduleScriptResources:{}}}function Z(){return{htmlChunks:null,headChunks:null,bodyChunks:null,contribution:M2}}function ae(x,k,P){return{insertionMode:x,selectedValue:k,tagScope:P}}function V(x,k,P){switch(k){case\"noscript\":return ae(pi,null,x.tagScope|1);case\"select\":return ae(pi,P.value!=null?P.value:P.defaultValue,x.tagScope);case\"svg\":return ae(na,null,x.tagScope);case\"picture\":return ae(pi,null,x.tagScope|2);case\"math\":return ae(Ku,null,x.tagScope);case\"foreignObject\":return ae(pi,null,x.tagScope);case\"table\":return ae(ub,null,x.tagScope);case\"thead\":case\"tbody\":case\"tfoot\":return ae(lp,null,x.tagScope);case\"colgroup\":return ae(Hg,null,x.tagScope);case\"tr\":return ae(Jm,null,x.tagScope);case\"head\":if(x.insertionMode<pi)return ae(Qm,null,x.tagScope);break;case\"html\":if(x.insertionMode===Ym)return ae(Lo,null,x.tagScope)}return x.insertionMode>=ub||x.insertionMode<pi?ae(pi,null,x.tagScope):x}function $(x,k){if(typeof k!=\"object\")throw Error(\"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.\");var P=!0,Q;for(Q in k)if(Yr.call(k,Q)){var oe=k[Q];if(oe!=null&&typeof oe!=\"boolean\"&&oe!==\"\"){if(Q.indexOf(\"--\")===0){var de=W(Q);g(oe,Q),oe=W((\"\"+oe).trim())}else{de=Q;var Re=oe;if(-1<de.indexOf(\"-\")){var Pe=de;cp.hasOwnProperty(Pe)&&cp[Pe]||(cp[Pe]=!0,console.error(\"Unsupported style property %s. Did you mean %s?\",Pe,G(Pe.replace(Uk,\"ms-\"))))}else if(uE.test(de))Pe=de,cp.hasOwnProperty(Pe)&&cp[Pe]||(cp[Pe]=!0,console.error(\"Unsupported vendor-prefixed style property %s. Did you mean %s?\",Pe,Pe.charAt(0).toUpperCase()+Pe.slice(1)));else if(zg.test(Re)){Pe=de;var nt=Re;jl.hasOwnProperty(nt)&&jl[nt]||(jl[nt]=!0,console.error(`Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.`,Pe,nt.replace(zg,\"\")))}typeof Re==\"number\"&&(isNaN(Re)?dE||(dE=!0,console.error(\"`NaN` is an invalid value for the `%s` css style property.\",de)):isFinite(Re)||ab||(ab=!0,console.error(\"`Infinity` is an invalid value for the `%s` css style property.\",de))),de=Q,Re=ns.get(de),Re!==void 0||(Re=W(de.replace(qd,\"-$1\").toLowerCase().replace(Xs,\"-ms-\")),ns.set(de,Re)),de=Re,typeof oe==\"number\"?oe=oe===0||aE.has(Q)?\"\"+oe:oe+\"px\":(g(oe,Q),oe=W((\"\"+oe).trim()))}P?(P=!1,x.push(xc,de,db,oe)):x.push(hE,de,db,oe)}}P||x.push(Sa)}function F(x,k,P){P&&typeof P!=\"function\"&&typeof P!=\"symbol\"&&x.push(Ea,k,qg)}function _(x,k,P){typeof P!=\"function\"&&typeof P!=\"symbol\"&&typeof P!=\"boolean\"&&x.push(Ea,k,rl,W(P),Sa)}function O(x,k){this.push(\\'<input type=\"hidden\"\\'),z(x),_(this,\"name\",k),_(this,\"value\",x),this.push(Xf)}function z(x){if(typeof x!=\"string\")throw Error(\"File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration.\")}function N(x,k){if(typeof k.$$FORM_ACTION==\"function\"){var P=x.nextFormID++;x=x.idPrefix+P;try{var Q=k.$$FORM_ACTION(x);if(Q){var oe=Q.data;oe?.forEach(z)}return Q}catch(de){if(typeof de==\"object\"&&de!==null&&typeof de.then==\"function\")throw de;console.error(`Failed to serialize an action for progressive enhancement:\\n%s`,de)}}return null}function B(x,k,P,Q,oe,de,Re,Pe){var nt=null;if(typeof Q==\"function\"){Pe===null||ol||(ol=!0,console.error(\\'Cannot specify a \"name\" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.\\')),oe===null&&de===null||gt||(gt=!0,console.error(\"Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.\")),Re===null||In||(In=!0,console.error(\"Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.\"));var Ne=N(k,Q);Ne!==null?(Pe=Ne.name,Q=Ne.action||\"\",oe=Ne.encType,de=Ne.method,Re=Ne.target,nt=Ne.data):(x.push(Ea,\"formAction\",rl,Vd,Sa),Re=de=oe=Q=Pe=null,U(k,P))}return Pe!=null&&j(x,\"name\",Pe),Q!=null&&j(x,\"formAction\",Q),oe!=null&&j(x,\"formEncType\",oe),de!=null&&j(x,\"formMethod\",de),Re!=null&&j(x,\"formTarget\",Re),nt}function j(x,k,P){switch(k){case\"className\":_(x,\"class\",P);break;case\"tabIndex\":_(x,\"tabindex\",P);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":_(x,k,P);break;case\"style\":$(x,P);break;case\"src\":case\"href\":if(P===\"\"){console.error(k===\"src\"?\\'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\':\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',k,k);break}case\"action\":case\"formAction\":if(P==null||typeof P==\"function\"||typeof P==\"symbol\"||typeof P==\"boolean\")break;m(P,k),P=J(\"\"+P),x.push(Ea,k,rl,W(P),Sa);break;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"ref\":break;case\"autoFocus\":case\"multiple\":case\"muted\":F(x,k.toLowerCase(),P);break;case\"xlinkHref\":if(typeof P==\"function\"||typeof P==\"symbol\"||typeof P==\"boolean\")break;m(P,k),P=J(\"\"+P),x.push(Ea,\"xlink:href\",rl,W(P),Sa);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":typeof P!=\"function\"&&typeof P!=\"symbol\"&&x.push(Ea,k,rl,W(P),Sa);break;case\"inert\":P!==\"\"||P2[k]||(P2[k]=!0,console.error(\"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",k));case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":P&&typeof P!=\"function\"&&typeof P!=\"symbol\"&&x.push(Ea,k,qg);break;case\"capture\":case\"download\":P===!0?x.push(Ea,k,qg):P!==!1&&typeof P!=\"function\"&&typeof P!=\"symbol\"&&x.push(Ea,k,rl,W(P),Sa);break;case\"cols\":case\"rows\":case\"size\":case\"span\":typeof P!=\"function\"&&typeof P!=\"symbol\"&&!isNaN(P)&&1<=P&&x.push(Ea,k,rl,W(P),Sa);break;case\"rowSpan\":case\"start\":typeof P==\"function\"||typeof P==\"symbol\"||isNaN(P)||x.push(Ea,k,rl,W(P),Sa);break;case\"xlinkActuate\":_(x,\"xlink:actuate\",P);break;case\"xlinkArcrole\":_(x,\"xlink:arcrole\",P);break;case\"xlinkRole\":_(x,\"xlink:role\",P);break;case\"xlinkShow\":_(x,\"xlink:show\",P);break;case\"xlinkTitle\":_(x,\"xlink:title\",P);break;case\"xlinkType\":_(x,\"xlink:type\",P);break;case\"xmlBase\":_(x,\"xml:base\",P);break;case\"xmlLang\":_(x,\"xml:lang\",P);break;case\"xmlSpace\":_(x,\"xml:space\",P);break;default:if((!(2<k.length)||k[0]!==\"o\"&&k[0]!==\"O\"||k[1]!==\"n\"&&k[1]!==\"N\")&&(k=I2.get(k)||k,E(k))){switch(typeof P){case\"function\":case\"symbol\":return;case\"boolean\":var Q=k.toLowerCase().slice(0,5);if(Q!==\"data-\"&&Q!==\"aria-\")return}x.push(Ea,k,rl,W(P),Sa)}}}function q(x,k,P){if(k!=null){if(P!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");if(typeof k!=\"object\"||!(\"__html\"in k))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");k=k.__html,k!=null&&(b(k),x.push(\"\"+k))}}function H(x,k){var P=x[k];P!=null&&(P=el(P),x.multiple&&!P?console.error(\"The `%s` prop supplied to <select> must be an array if `multiple` is true.\",k):!x.multiple&&P&&console.error(\"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.\",k))}function I(x){var k=\"\";return iE.Children.forEach(x,function(P){P!=null&&(k+=P,e0||typeof P==\"string\"||typeof P==\"number\"||typeof P==\"bigint\"||(e0=!0,console.error(\"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\")))}),k}function U(x,k){(x.instructions&16)===Wd&&(x.instructions|=16,k.bootstrapChunks.unshift(k.startInlineScript,up,\"<\\\\/script>\"))}function X(x,k){x.push(Me(\"link\"));for(var P in k)if(Yr.call(k,P)){var Q=k[P];if(Q!=null)switch(P){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:j(x,P,Q)}}return x.push(Xf),null}function ee(x){return b(x),(\"\"+x).replace(Vg,t)}function se(x,k,P){x.push(Me(P));for(var Q in k)if(Yr.call(k,Q)){var oe=k[Q];if(oe!=null)switch(Q){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(P+\" is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:j(x,Q,oe)}}return x.push(Xf),null}function pe(x,k){x.push(Me(\"title\"));var P=null,Q=null,oe;for(oe in k)if(Yr.call(k,oe)){var de=k[oe];if(de!=null)switch(oe){case\"children\":P=de;break;case\"dangerouslySetInnerHTML\":Q=de;break;default:j(x,oe,de)}}return x.push(oi),k=Array.isArray(P)?2>P.length?P[0]:null:P,typeof k!=\"function\"&&typeof k!=\"symbol\"&&k!==null&&k!==void 0&&x.push(W(\"\"+k)),q(x,Q,P),x.push(wt(\"title\")),null}function ye(x,k){x.push(Me(\"script\"));var P=null,Q=null,oe;for(oe in k)if(Yr.call(k,oe)){var de=k[oe];if(de!=null)switch(oe){case\"children\":P=de;break;case\"dangerouslySetInnerHTML\":Q=de;break;default:j(x,oe,de)}}return x.push(oi),P!=null&&typeof P!=\"string\"&&(k=typeof P==\"number\"?\"a number for children\":Array.isArray(P)?\"an array for children\":\"something unexpected for children\",console.error(\"A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.\",k)),q(x,Q,P),typeof P==\"string\"&&x.push(ne(P)),x.push(wt(\"script\")),null}function xe(x,k,P){x.push(Me(P));var Q=P=null,oe;for(oe in k)if(Yr.call(k,oe)){var de=k[oe];if(de!=null)switch(oe){case\"children\":P=de;break;case\"dangerouslySetInnerHTML\":Q=de;break;default:j(x,oe,de)}}return x.push(oi),q(x,Q,P),P}function _e(x,k,P){x.push(Me(P));var Q=P=null,oe;for(oe in k)if(Yr.call(k,oe)){var de=k[oe];if(de!=null)switch(oe){case\"children\":P=de;break;case\"dangerouslySetInnerHTML\":Q=de;break;default:j(x,oe,de)}}return x.push(oi),q(x,Q,P),typeof P==\"string\"?(x.push(W(P)),null):P}function Me(x){var k=hb.get(x);if(k===void 0){if(!Gu.test(x))throw Error(\"Invalid tag: \"+x);k=\"<\"+x,hb.set(x,k)}return k}function qe(x,k,P,Q,oe,de,Re,Pe,nt,Ne){R(k,P),k!==\"input\"&&k!==\"textarea\"&&k!==\"select\"||P==null||P.value!==null||ec||(ec=!0,k===\"select\"&&P.multiple?console.error(\"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",k):console.error(\"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",k));e:if(k.indexOf(\"-\")===-1)var Et=!1;else switch(k){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":Et=!1;break e;default:Et=!0}switch(Et||typeof P.is==\"string\"||D(k,P,null),!P.suppressContentEditableWarning&&P.contentEditable&&P.children!=null&&console.error(\"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\"),Pe.insertionMode!==na&&Pe.insertionMode!==Ku&&k.indexOf(\"-\")===-1&&k.toLowerCase()!==k&&console.error(\"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",k),k){case\"div\":case\"span\":case\"svg\":case\"path\":break;case\"a\":x.push(Me(\"a\"));var At=null,Rt=null,Ft;for(Ft in P)if(Yr.call(P,Ft)){var lt=P[Ft];if(lt!=null)switch(Ft){case\"children\":At=lt;break;case\"dangerouslySetInnerHTML\":Rt=lt;break;case\"href\":lt===\"\"?_(x,\"href\",\"\"):j(x,Ft,lt);break;default:j(x,Ft,lt)}}if(x.push(oi),q(x,Rt,At),typeof At==\"string\"){x.push(W(At));var Kn=null}else Kn=At;return Kn;case\"g\":case\"p\":case\"li\":break;case\"select\":C(\"select\",P),H(P,\"value\"),H(P,\"defaultValue\"),P.value===void 0||P.defaultValue===void 0||Xm||(console.error(\"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components\"),Xm=!0),x.push(Me(\"select\"));var Sn=null,mn=null,un;for(un in P)if(Yr.call(P,un)){var Vi=P[un];if(Vi!=null)switch(un){case\"children\":Sn=Vi;break;case\"dangerouslySetInnerHTML\":mn=Vi;break;case\"defaultValue\":case\"value\":break;default:j(x,un,Vi)}}return x.push(oi),q(x,mn,Sn),Sn;case\"option\":var cn=Pe.selectedValue;x.push(Me(\"option\"));var Tn=null,ro=null,Oi=null,$i=null,ii;for(ii in P)if(Yr.call(P,ii)){var Co=P[ii];if(Co!=null)switch(ii){case\"children\":Tn=Co;break;case\"selected\":Oi=Co,tc||(console.error(\"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"),tc=!0);break;case\"dangerouslySetInnerHTML\":$i=Co;break;case\"value\":ro=Co;default:j(x,ii,Co)}}if(cn!=null){if(ro!==null){m(ro,\"value\");var _c=\"\"+ro}else $i===null||t0||(t0=!0,console.error(\"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\")),_c=I(Tn);if(el(cn)){for(var Aa=0;Aa<cn.length;Aa++)if(m(cn[Aa],\"value\"),\"\"+cn[Aa]===_c){x.push(\\' selected=\"\"\\');break}}else m(cn,\"select.value\"),\"\"+cn===_c&&x.push(\\' selected=\"\"\\')}else Oi&&x.push(\\' selected=\"\"\\');return x.push(oi),q(x,$i,Tn),Tn;case\"textarea\":C(\"textarea\",P),P.value===void 0||P.defaultValue===void 0||N2||(console.error(\"Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components\"),N2=!0),x.push(Me(\"textarea\"));var Er=null,w=null,S=null,M;for(M in P)if(Yr.call(P,M)){var Y=P[M];if(Y!=null)switch(M){case\"children\":S=Y;break;case\"value\":Er=Y;break;case\"defaultValue\":w=Y;break;case\"dangerouslySetInnerHTML\":throw Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");default:j(x,M,Y)}}if(Er===null&&w!==null&&(Er=w),x.push(oi),S!=null){if(console.error(\"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\"),Er!=null)throw Error(\"If you supply `defaultValue` on a <textarea>, do not pass children.\");if(el(S)){if(1<S.length)throw Error(\"<textarea> can only have at most one child.\");b(S[0]),Er=\"\"+S[0]}b(S),Er=\"\"+S}return typeof Er==\"string\"&&Er[0]===`\\n`&&x.push(Yo),Er!==null&&(m(Er,\"value\"),x.push(W(\"\"+Er))),null;case\"input\":C(\"input\",P),x.push(Me(\"input\"));var re=null,ue=null,Ee=null,Ae=null,Le=null,Ie=null,pt=null,ut=null,_t=null,bt;for(bt in P)if(Yr.call(P,bt)){var rt=P[bt];if(rt!=null)switch(bt){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");case\"name\":re=rt;break;case\"formAction\":ue=rt;break;case\"formEncType\":Ee=rt;break;case\"formMethod\":Ae=rt;break;case\"formTarget\":Le=rt;break;case\"defaultChecked\":_t=rt;break;case\"defaultValue\":pt=rt;break;case\"checked\":ut=rt;break;case\"value\":Ie=rt;break;default:j(x,bt,rt)}}ue===null||P.type===\"image\"||P.type===\"submit\"||eh||(eh=!0,console.error(\\'An input can only specify a formAction along with type=\"submit\" or type=\"image\".\\'));var kn=B(x,Q,oe,ue,Ee,Ae,Le,re);return ut===null||_t===null||Wg||(console.error(\"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\"A component\",P.type),Wg=!0),Ie===null||pt===null||fb||(console.error(\"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\"A component\",P.type),fb=!0),ut!==null?F(x,\"checked\",ut):_t!==null&&F(x,\"checked\",_t),Ie!==null?j(x,\"value\",Ie):pt!==null&&j(x,\"value\",pt),x.push(Xf),kn?.forEach(O,x),null;case\"button\":x.push(Me(\"button\"));var Tr=null,_n=null,Gt=null,Bo=null,Lr=null,Rn=null,os=null,Ps;for(Ps in P)if(Yr.call(P,Ps)){var si=P[Ps];if(si!=null)switch(Ps){case\"children\":Tr=si;break;case\"dangerouslySetInnerHTML\":_n=si;break;case\"name\":Gt=si;break;case\"formAction\":Bo=si;break;case\"formEncType\":Lr=si;break;case\"formMethod\":Rn=si;break;case\"formTarget\":os=si;break;default:j(x,Ps,si)}}Bo===null||P.type==null||P.type===\"submit\"||eh||(eh=!0,console.error(\\'A button can only specify a formAction along with type=\"submit\" or no type.\\'));var gi=B(x,Q,oe,Bo,Lr,Rn,os,Gt);if(x.push(oi),gi?.forEach(O,x),q(x,_n,Tr),typeof Tr==\"string\"){x.push(W(Tr));var po=null}else po=Tr;return po;case\"form\":x.push(Me(\"form\"));var Jo=null,yi=null,Bn=null,mo=null,Br=null,is=null,ss;for(ss in P)if(Yr.call(P,ss)){var Pi=P[ss];if(Pi!=null)switch(ss){case\"children\":Jo=Pi;break;case\"dangerouslySetInnerHTML\":yi=Pi;break;case\"action\":Bn=Pi;break;case\"encType\":mo=Pi;break;case\"method\":Br=Pi;break;case\"target\":is=Pi;break;default:j(x,ss,Pi)}}var rc=null,Ki=null;if(typeof Bn==\"function\"){mo===null&&Br===null||gt||(gt=!0,console.error(\"Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.\")),is===null||In||(In=!0,console.error(\"Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.\"));var oc=N(Q,Bn);oc!==null?(Bn=oc.action||\"\",mo=oc.encType,Br=oc.method,is=oc.target,rc=oc.data,Ki=oc.name):(x.push(Ea,\"action\",rl,Vd,Sa),is=Br=mo=Bn=null,U(Q,oe))}if(Bn!=null&&j(x,\"action\",Bn),mo!=null&&j(x,\"encType\",mo),Br!=null&&j(x,\"method\",Br),is!=null&&j(x,\"target\",is),x.push(oi),Ki!==null&&(x.push(\\'<input type=\"hidden\"\\'),_(x,\"name\",Ki),x.push(Xf),rc?.forEach(O,x)),q(x,yi,Jo),typeof Jo==\"string\"){x.push(W(Jo));var Ju=null}else Ju=Jo;return Ju;case\"menuitem\":x.push(Me(\"menuitem\"));for(var Un in P)if(Yr.call(P,Un)){var cl=P[Un];if(cl!=null)switch(Un){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"menuitems cannot have `children` nor `dangerouslySetInnerHTML`.\");default:j(x,Un,cl)}}return x.push(oi),null;case\"object\":x.push(Me(\"object\"));var Ta=null,Xu=null,gs;for(gs in P)if(Yr.call(P,gs)){var Mi=P[gs];if(Mi!=null)switch(gs){case\"children\":Ta=Mi;break;case\"dangerouslySetInnerHTML\":Xu=Mi;break;case\"data\":m(Mi,\"data\");var Ao=J(\"\"+Mi);if(Ao===\"\"){console.error(\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',gs,gs);break}x.push(Ea,\"data\",rl,W(Ao),Sa);break;default:j(x,gs,Mi)}}if(x.push(oi),q(x,Xu,Ta),typeof Ta==\"string\"){x.push(W(Ta));var ys=null}else ys=Ta;return ys;case\"title\":var ia=Pe.insertionMode,$l=!!(Pe.tagScope&1);if(Yr.call(P,\"children\")){var as=P.children,Cc=Array.isArray(as)?2>as.length?as[0]:null:as;Array.isArray(as)&&1<as.length?console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.\",as.length):typeof Cc==\"function\"||typeof Cc==\"symbol\"?console.error(\"React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.\",typeof Cc==\"function\"?\"a Function\":\"a Sybmol\"):Cc&&Cc.toString==={}.toString&&(Cc.$$typeof!=null?console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML.\"):console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>.\"))}if(ia===na||$l||P.itemProp!=null)var Ra=pe(x,P);else Ne?Ra=null:(pe(oe.hoistableChunks,P),Ra=void 0);return Ra;case\"link\":var sa=P.rel,To=P.href,Ms=P.precedence;if(Pe.insertionMode===na||Pe.tagScope&1||P.itemProp!=null||typeof sa!=\"string\"||typeof To!=\"string\"||To===\"\"){sa===\"stylesheet\"&&typeof P.precedence==\"string\"&&(typeof To==\"string\"&&To||console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.\\',To===null?\"`null`\":To===void 0?\"`undefined`\":To===\"\"?\"an empty string\":\\'something with type \"\\'+typeof To+\\'\"\\')),X(x,P);var ic=null}else if(P.rel===\"stylesheet\")if(typeof Ms!=\"string\"||P.disabled!=null||P.onLoad||P.onError){if(typeof Ms==\"string\"){if(P.disabled!=null)console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.\\');else if(P.onLoad||P.onError){var Ac=P.onLoad&&P.onError?\"`onLoad` and `onError` props\":P.onLoad?\"`onLoad` prop\":\"`onError` prop\";console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.\\',Ac,Ac)}}ic=X(x,P)}else{var sc=oe.styles.get(Ms),Kl=Q.styleResources.hasOwnProperty(To)?Q.styleResources[To]:void 0;if(Kl!==ko){Q.styleResources[To]=ko,sc||(sc={precedence:W(Ms),rules:[],hrefs:[],sheets:new Map},oe.styles.set(Ms,sc));var aa={state:a0,props:Ii({},P,{\"data-precedence\":P.precedence,precedence:null})};if(Kl){Kl.length===2&&Ri(aa.props,Kl);var ll=oe.preloads.stylesheets.get(To);ll&&0<ll.length?ll.length=0:aa.state=gb}sc.sheets.set(To,aa),Re&&Re.stylesheets.add(aa)}else if(sc){var Tc=sc.sheets.get(To);Tc&&Re&&Re.stylesheets.add(Tc)}nt&&x.push(\"<!-- -->\"),ic=null}else P.onLoad||P.onError?ic=X(x,P):(nt&&x.push(\"<!-- -->\"),ic=Ne?null:X(oe.hoistableChunks,P));return ic;case\"script\":var ul=P.async;if(typeof P.src!=\"string\"||!P.src||!ul||typeof ul==\"function\"||typeof ul==\"symbol\"||P.onLoad||P.onError||Pe.insertionMode===na||Pe.tagScope&1||P.itemProp!=null)var dl=ye(x,P);else{var Ia=P.src;if(P.type===\"module\")var ca=Q.moduleScriptResources,ah=oe.preloads.moduleScripts;else ca=Q.scriptResources,ah=oe.preloads.scripts;var pn=ca.hasOwnProperty(Ia)?ca[Ia]:void 0;if(pn!==ko){ca[Ia]=ko;var Gl=P;if(pn){pn.length===2&&(Gl=Ii({},P),Ri(Gl,pn));var Zl=ah.get(Ia);Zl&&(Zl.length=0)}var gp=[];oe.scripts.add(gp),ye(gp,Gl)}nt&&x.push(\"<!-- -->\"),dl=null}return dl;case\"style\":var ac=Pe.insertionMode,Yl=!!(Pe.tagScope&1);if(Yr.call(P,\"children\")){var cs=P.children,bs=Array.isArray(cs)?2>cs.length?cs[0]:null:cs;(typeof bs==\"function\"||typeof bs==\"symbol\"||Array.isArray(bs))&&console.error(\"React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.\",typeof bs==\"function\"?\"a Function\":typeof bs==\"symbol\"?\"a Sybmol\":\"an Array\")}var Do=P.precedence,bi=P.href;if(ac===na||Yl||P.itemProp!=null||typeof Do!=\"string\"||typeof bi!=\"string\"||bi===\"\"){x.push(Me(\"style\"));var Sr=null,b0=null,vi;for(vi in P)if(Yr.call(P,vi)){var fl=P[vi];if(fl!=null)switch(vi){case\"children\":Sr=fl;break;case\"dangerouslySetInnerHTML\":b0=fl;break;default:j(x,vi,fl)}}x.push(oi);var Ns=Array.isArray(Sr)?2>Sr.length?Sr[0]:null:Sr;typeof Ns!=\"function\"&&typeof Ns!=\"symbol\"&&Ns!==null&&Ns!==void 0&&x.push(ee(Ns)),q(x,b0,Sr),x.push(wt(\"style\"));var v0=null}else{bi.includes(\" \")&&console.error(\\'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is \"%s\".\\',bi);var Xo=oe.styles.get(Do),hr=Q.styleResources.hasOwnProperty(bi)?Q.styleResources[bi]:void 0;if(hr!==ko){Q.styleResources[bi]=ko,hr&&console.error(\\'React encountered a hoistable style tag for the same href as a preload: \"%s\". When using a style tag to inline styles you should not also preload it as a stylsheet.\\',bi),Xo?Xo.hrefs.push(W(bi)):(Xo={precedence:W(Do),rules:[],hrefs:[W(bi)],sheets:new Map},oe.styles.set(Do,Xo));var Ql=Xo.rules,Ro=null,ch=null,ed;for(ed in P)if(Yr.call(P,ed)){var Qd=P[ed];if(Qd!=null)switch(ed){case\"children\":Ro=Qd;break;case\"dangerouslySetInnerHTML\":ch=Qd}}var Jd=Array.isArray(Ro)?2>Ro.length?Ro[0]:null:Ro;typeof Jd!=\"function\"&&typeof Jd!=\"symbol\"&&Jd!==null&&Jd!==void 0&&Ql.push(ee(Jd)),q(Ql,ch,Ro)}Xo&&Re&&Re.styles.add(Xo),nt&&x.push(\"<!-- -->\"),v0=void 0}return v0;case\"meta\":if(Pe.insertionMode===na||Pe.tagScope&1||P.itemProp!=null)var Oa=se(x,P,\"meta\");else nt&&x.push(\"<!-- -->\"),Oa=Ne?null:typeof P.charSet==\"string\"?se(oe.charsetChunks,P,\"meta\"):P.name===\"viewport\"?se(oe.viewportChunks,P,\"meta\"):se(oe.hoistableChunks,P,\"meta\");return Oa;case\"listing\":case\"pre\":x.push(Me(k));var Xd=null,Jl=null,Xl;for(Xl in P)if(Yr.call(P,Xl)){var cc=P[Xl];if(cc!=null)switch(Xl){case\"children\":Xd=cc;break;case\"dangerouslySetInnerHTML\":Jl=cc;break;default:j(x,Xl,cc)}}if(x.push(oi),Jl!=null){if(Xd!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");if(typeof Jl!=\"object\"||!(\"__html\"in Jl))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");var eu=Jl.__html;eu!=null&&(typeof eu==\"string\"&&0<eu.length&&eu[0]===`\\n`?x.push(Yo,eu):(b(eu),x.push(\"\"+eu)))}return typeof Xd==\"string\"&&Xd[0]===`\\n`&&x.push(Yo),Xd;case\"img\":var Gi=P.src,ei=P.srcSet;if(!(P.loading===\"lazy\"||!Gi&&!ei||typeof Gi!=\"string\"&&Gi!=null||typeof ei!=\"string\"&&ei!=null)&&P.fetchPriority!==\"low\"&&!(Pe.tagScope&3)&&(typeof Gi!=\"string\"||Gi[4]!==\":\"||Gi[0]!==\"d\"&&Gi[0]!==\"D\"||Gi[1]!==\"a\"&&Gi[1]!==\"A\"||Gi[2]!==\"t\"&&Gi[2]!==\"T\"||Gi[3]!==\"a\"&&Gi[3]!==\"A\")&&(typeof ei!=\"string\"||ei[4]!==\":\"||ei[0]!==\"d\"&&ei[0]!==\"D\"||ei[1]!==\"a\"&&ei[1]!==\"A\"||ei[2]!==\"t\"&&ei[2]!==\"T\"||ei[3]!==\"a\"&&ei[3]!==\"A\")){var cy=typeof P.sizes==\"string\"?P.sizes:void 0,ef=ei?ei+`\\n`+(cy||\"\"):Gi,w0=oe.preloads.images,tf=w0.get(ef);if(tf)(P.fetchPriority===\"high\"||10>oe.highImagePreloads.size)&&(w0.delete(ef),oe.highImagePreloads.add(tf));else if(!Q.imageResources.hasOwnProperty(ef)){Q.imageResources[ef]=ta;var nf=P.crossOrigin,ly=typeof nf==\"string\"?nf===\"use-credentials\"?nf:\"\":void 0,rf=oe.headers,hl;rf&&0<rf.remainingCapacity&&typeof P.srcSet!=\"string\"&&(P.fetchPriority===\"high\"||500>rf.highImagePreloads.length)&&(hl=le(Gi,\"image\",{imageSrcSet:P.srcSet,imageSizes:P.sizes,crossOrigin:ly,integrity:P.integrity,nonce:P.nonce,type:P.type,fetchPriority:P.fetchPriority,referrerPolicy:P.refererPolicy}),0<=(rf.remainingCapacity-=hl.length+2))?(oe.resets.image[ef]=ta,rf.highImagePreloads&&(rf.highImagePreloads+=\", \"),rf.highImagePreloads+=hl):(tf=[],X(tf,{rel:\"preload\",as:\"image\",href:ei?void 0:Gi,imageSrcSet:ei,imageSizes:cy,crossOrigin:ly,integrity:P.integrity,type:P.type,fetchPriority:P.fetchPriority,referrerPolicy:P.referrerPolicy}),P.fetchPriority===\"high\"||10>oe.highImagePreloads.size?oe.highImagePreloads.add(tf):(oe.bulkPreloads.add(tf),w0.set(ef,tf)))}}return se(x,P,\"img\");case\"base\":case\"area\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"param\":case\"source\":case\"track\":case\"wbr\":return se(x,P,k);case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":break;case\"head\":if(Pe.insertionMode<pi){var yp=de||oe.preamble;if(yp.headChunks)throw Error(\"The `<head>` tag may only be rendered once.\");yp.headChunks=[];var of=xe(yp.headChunks,P,\"head\")}else of=_e(x,P,\"head\");return of;case\"body\":if(Pe.insertionMode<pi){var x0=de||oe.preamble;if(x0.bodyChunks)throw Error(\"The `<body>` tag may only be rendered once.\");x0.bodyChunks=[];var Rb=xe(x0.bodyChunks,P,\"body\")}else Rb=_e(x,P,\"body\");return Rb;case\"html\":if(Pe.insertionMode===Ym){var bp=de||oe.preamble;if(bp.htmlChunks)throw Error(\"The `<html>` tag may only be rendered once.\");bp.htmlChunks=[J2];var UE=xe(bp.htmlChunks,P,\"html\")}else UE=_e(x,P,\"html\");return UE;default:if(k.indexOf(\"-\")!==-1){x.push(Me(k));var lh=null,jE=null,E0;for(E0 in P)if(Yr.call(P,E0)){var Ls=P[E0];if(Ls!=null){var zE=E0;switch(E0){case\"children\":lh=Ls;break;case\"dangerouslySetInnerHTML\":jE=Ls;break;case\"style\":$(x,Ls);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"ref\":break;case\"className\":zE=\"class\";default:if(E(E0)&&typeof Ls!=\"function\"&&typeof Ls!=\"symbol\"&&Ls!==!1){if(Ls===!0)Ls=\"\";else if(typeof Ls==\"object\")continue;x.push(Ea,zE,rl,W(Ls),Sa)}}}}return x.push(oi),q(x,jE,lh),lh}}return _e(x,P,k)}function wt(x){var k=pE.get(x);return k===void 0&&(k=\"</\"+x+\">\",pE.set(x,k)),k}function Ge(x,k){x=x.preamble,x.htmlChunks===null&&k.htmlChunks&&(x.htmlChunks=k.htmlChunks,k.contribution|=1),x.headChunks===null&&k.headChunks&&(x.headChunks=k.headChunks,k.contribution|=4),x.bodyChunks===null&&k.bodyChunks&&(x.bodyChunks=k.bodyChunks,k.contribution|=2)}function ht(x,k){k=k.bootstrapChunks;for(var P=0;P<k.length-1;P++)x.push(k[P]);return P<k.length?(P=k[P],k.length=0,x.push(P)):!0}function Ct(x,k,P){if(x.push(Ec),P===null)throw Error(\"An ID must have been assigned before we can complete the boundary.\");return x.push(k.boundaryPrefix),k=P.toString(16),x.push(k),x.push(nc)}function dt(x,k){k=k.contribution,k!==M2&&(x.push(F2),x.push(\"\"+k),x.push($g))}function Ze(x,k,P,Q){switch(P.insertionMode){case Ym:case Lo:case Qm:case pi:return x.push(U2),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(r0);case na:return x.push(pb),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(mb);case Ku:return x.push(jk),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(gE);case ub:return x.push(bE),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(z2);case lp:return x.push(vE),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(t7);case Jm:return x.push(Hk),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(qk);case Hg:return x.push(Wk),x.push(k.segmentPrefix),k=Q.toString(16),x.push(k),x.push(Vk);default:throw Error(\"Unknown insertion mode. This is a bug in React.\")}}function rn(x,k){switch(k.insertionMode){case Ym:case Lo:case Qm:case pi:return x.push(mE);case na:return x.push(j2);case Ku:return x.push(yE);case ub:return x.push(zk);case lp:return x.push(wE);case Jm:return x.push(xE);case Hg:return x.push(Kg);default:throw Error(\"Unknown insertion mode. This is a bug in React.\")}}function zt(x){return JSON.stringify(x).replace(CE,function(k){switch(k){case\"<\":return\"\\\\\\\\u003c\";case\"\\\\u2028\":return\"\\\\\\\\u2028\";case\"\\\\u2029\":return\"\\\\\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}})}function Bt(x){return JSON.stringify(x).replace(Gk,function(k){switch(k){case\"&\":return\"\\\\\\\\u0026\";case\">\":return\"\\\\\\\\u003e\";case\"<\":return\"\\\\\\\\u003c\";case\"\\\\u2028\":return\"\\\\\\\\u2028\";case\"\\\\u2029\":return\"\\\\\\\\u2029\";default:throw Error(\"escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}})}function Mt(x){var k=x.rules,P=x.hrefs;0<k.length&&P.length===0&&console.error(\"React expected to have at least one href for an a hoistable style but found none. This is a bug in React.\");var Q=0;if(P.length){for(this.push(Zk),this.push(x.precedence),this.push(AE);Q<P.length-1;Q++)this.push(P[Q]),this.push(RE);for(this.push(P[Q]),this.push(Yk),Q=0;Q<k.length;Q++)this.push(k[Q]);Z2=this.push(Qk),Yg=!0,k.length=0,P.length=0}}function qt(x){return x.state!==Qg?Yg=!0:!1}function Wt(x,k,P){return Yg=!1,Z2=!0,k.styles.forEach(Mt,x),k.stylesheets.forEach(qt),Yg&&(P.stylesToHoist=!0),Z2}function zn(x){for(var k=0;k<x.length;k++)this.push(x[k]);x.length=0}function Mn(x){X(th,x.props);for(var k=0;k<th.length;k++)this.push(th[k]);th.length=0,x.state=Qg}function br(x){var k=0<x.sheets.size;x.sheets.forEach(Mn,this),x.sheets.clear();var P=x.rules,Q=x.hrefs;if(!k||Q.length){if(this.push(TE),this.push(x.precedence),x=0,Q.length){for(this.push(Jk);x<Q.length-1;x++)this.push(Q[x]),this.push(RE);this.push(Q[x])}for(this.push(s0),x=0;x<P.length;x++)this.push(P[x]);this.push(IE),P.length=0,Q.length=0}}function Zs(x){if(x.state===a0){x.state=gb;var k=x.props;for(X(th,{rel:\"preload\",as:\"style\",href:x.props.href,crossOrigin:k.crossOrigin,fetchPriority:k.fetchPriority,integrity:k.integrity,media:k.media,hrefLang:k.hrefLang,referrerPolicy:k.referrerPolicy}),x=0;x<th.length;x++)this.push(th[x]);th.length=0}}function Pr(x){x.sheets.forEach(Zs,this),x.sheets.clear()}function vr(x,k){x.push(Y2);var P=Y2;k.stylesheets.forEach(function(Q){if(Q.state!==Qg)if(Q.state===PE)x.push(P),Q=Q.props.href,m(Q,\"href\"),Q=Bt(\"\"+Q),x.push(Q),x.push(Q2),P=Xk;else{x.push(P);var oe=Q.props[\"data-precedence\"],de=Q.props,Re=J(\"\"+Q.props.href);Re=Bt(Re),x.push(Re),m(oe,\"precedence\"),oe=\"\"+oe,x.push(OE),oe=Bt(oe),x.push(oe);for(var Pe in de)if(Yr.call(de,Pe)&&(oe=de[Pe],oe!=null))switch(Pe){case\"href\":case\"rel\":case\"precedence\":case\"data-precedence\":break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:hi(x,Pe,oe)}x.push(Q2),P=Xk,Q.state=PE}}),x.push(Q2)}function hi(x,k,P){var Q=k.toLowerCase();switch(typeof P){case\"function\":case\"symbol\":return}switch(k){case\"innerHTML\":case\"dangerouslySetInnerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"style\":case\"ref\":return;case\"className\":Q=\"class\",m(P,Q),k=\"\"+P;break;case\"hidden\":if(P===!1)return;k=\"\";break;case\"src\":case\"href\":P=J(P),m(P,Q),k=\"\"+P;break;default:if(2<k.length&&(k[0]===\"o\"||k[0]===\"O\")&&(k[1]===\"n\"||k[1]===\"N\")||!E(k))return;m(P,Q),k=\"\"+P}x.push(OE),Q=Bt(Q),x.push(Q),x.push(OE),Q=Bt(k),x.push(Q)}function er(){return{styles:new Set,stylesheets:new Set}}function wr(x,k,P,Q){(x.scriptResources.hasOwnProperty(P)||x.moduleScriptResources.hasOwnProperty(P))&&console.error(\\'Internal React Error: React expected bootstrap script or module with src \"%s\" to not have been preloaded already. please file an issue\\',P),x.scriptResources[P]=ko,x.moduleScriptResources[P]=ko,x=[],X(x,Q),k.bootstrapScripts.add(x)}function Ri(x,k){x.crossOrigin==null&&(x.crossOrigin=k[0]),x.integrity==null&&(x.integrity=k[1])}function le(x,k,P){x=Te(x),k=tt(k,\"as\"),k=\"<\"+x+\\'>; rel=preload; as=\"\\'+k+\\'\"\\';for(var Q in P)Yr.call(P,Q)&&(x=P[Q],typeof x==\"string\"&&(k+=\"; \"+Q.toLowerCase()+\\'=\"\\'+tt(x,Q)+\\'\"\\'));return k}function Te(x){return m(x,\"href\"),(\"\"+x).replace(e_,xt)}function xt(x){switch(x){case\"<\":return\"%3C\";case\">\":return\"%3E\";case`\\n`:return\"%0A\";case\"\\\\r\":return\"%0D\";default:throw Error(\"escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}function tt(x,k){return d(x)&&(console.error(\"The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.\",k,u(x)),h(x)),(\"\"+x).replace(oa,It)}function It(x){switch(x){case\\'\"\\':return\"%22\";case\"\\'\":return\"%27\";case\";\":return\"%3B\";case\",\":return\"%2C\";case`\\n`:return\"%0A\";case\"\\\\r\":return\"%0D\";default:throw Error(\"escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}function hn(x){this.styles.add(x)}function Dt(x){this.stylesheets.add(x)}function sn(x,k){var P=x.idPrefix,Q=[],oe=x.bootstrapScriptContent,de=x.bootstrapScripts,Re=x.bootstrapModules;if(oe!==void 0&&Q.push(\"<script>\",ne(oe),\"<\\\\/script>\"),P={placeholderPrefix:P+\"P:\",segmentPrefix:P+\"S:\",boundaryPrefix:P+\"B:\",startInlineScript:\"<script>\",preamble:Z(),externalRuntimeScript:null,bootstrapChunks:Q,importMapChunks:[],onHeaders:void 0,headers:null,resets:{font:{},dns:{},connect:{default:{},anonymous:{},credentials:{}},image:{},style:{}},charsetChunks:[],viewportChunks:[],hoistableChunks:[],preconnects:new Set,fontPreloads:new Set,highImagePreloads:new Set,styles:new Map,bootstrapScripts:new Set,scripts:new Set,bulkPreloads:new Set,preloads:{images:new Map,stylesheets:new Map,scripts:new Map,moduleScripts:new Map},nonce:void 0,hoistableState:null,stylesToHoist:!1},de!==void 0)for(oe=0;oe<de.length;oe++){var Pe=de[oe],nt,Ne=void 0,Et=void 0,At={rel:\"preload\",as:\"script\",fetchPriority:\"low\",nonce:void 0};typeof Pe==\"string\"?At.href=nt=Pe:(At.href=nt=Pe.src,At.integrity=Et=typeof Pe.integrity==\"string\"?Pe.integrity:void 0,At.crossOrigin=Ne=typeof Pe==\"string\"||Pe.crossOrigin==null?void 0:Pe.crossOrigin===\"use-credentials\"?\"use-credentials\":\"\"),wr(x,P,nt,At),Q.push(\\'<script src=\"\\',W(nt)),typeof Et==\"string\"&&Q.push(\\'\" integrity=\"\\',W(Et)),typeof Ne==\"string\"&&Q.push(\\'\" crossorigin=\"\\',W(Ne)),Q.push(\\'\" async=\"\"><\\\\/script>\\')}if(Re!==void 0)for(de=0;de<Re.length;de++)oe=Re[de],Ne=nt=void 0,Et={rel:\"modulepreload\",fetchPriority:\"low\",nonce:void 0},typeof oe==\"string\"?Et.href=Pe=oe:(Et.href=Pe=oe.src,Et.integrity=Ne=typeof oe.integrity==\"string\"?oe.integrity:void 0,Et.crossOrigin=nt=typeof oe==\"string\"||oe.crossOrigin==null?void 0:oe.crossOrigin===\"use-credentials\"?\"use-credentials\":\"\"),wr(x,P,Pe,Et),Q.push(\\'<script type=\"module\" src=\"\\',W(Pe)),typeof Ne==\"string\"&&Q.push(\\'\" integrity=\"\\',W(Ne)),typeof nt==\"string\"&&Q.push(\\'\" crossorigin=\"\\',W(nt)),Q.push(\\'\" async=\"\"><\\\\/script>\\');return{placeholderPrefix:P.placeholderPrefix,segmentPrefix:P.segmentPrefix,boundaryPrefix:P.boundaryPrefix,startInlineScript:P.startInlineScript,preamble:P.preamble,externalRuntimeScript:P.externalRuntimeScript,bootstrapChunks:P.bootstrapChunks,importMapChunks:P.importMapChunks,onHeaders:P.onHeaders,headers:P.headers,resets:P.resets,charsetChunks:P.charsetChunks,viewportChunks:P.viewportChunks,hoistableChunks:P.hoistableChunks,preconnects:P.preconnects,fontPreloads:P.fontPreloads,highImagePreloads:P.highImagePreloads,styles:P.styles,bootstrapScripts:P.bootstrapScripts,scripts:P.scripts,bulkPreloads:P.bulkPreloads,preloads:P.preloads,stylesToHoist:P.stylesToHoist,generateStaticMarkup:k}}function bn(x,k,P,Q){return P.generateStaticMarkup?(x.push(W(k)),!1):(k===\"\"?x=Q:(Q&&x.push(\"<!-- -->\"),x.push(W(k)),x=!0),x)}function Fn(x,k,P,Q){k.generateStaticMarkup||P&&Q&&x.push(\"<!-- -->\")}function en(x){if(x==null)return null;if(typeof x==\"function\")return x.$$typeof===yb?null:x.displayName||x.name||null;if(typeof x==\"string\")return x;switch(x){case np:return\"Fragment\";case rp:return\"Profiler\";case $m:return\"StrictMode\";case op:return\"Suspense\";case Vu:return\"SuspenseList\";case Km:return\"Activity\"}if(typeof x==\"object\")switch(typeof x.tag==\"number\"&&console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),x.$$typeof){case T2:return\"Portal\";case Dg:return(x.displayName||\"Context\")+\".Provider\";case Bg:return(x._context.displayName||\"Context\")+\".Consumer\";case Gf:var k=x.render;return x=x.displayName,x||(x=k.displayName||k.name||\"\",x=x!==\"\"?\"ForwardRef(\"+x+\")\":\"ForwardRef\"),x;case $u:return k=x.displayName||null,k!==null?k:en(x.type)||\"Memo\";case Js:k=x._payload,x=x._init;try{return en(x(k))}catch{}}return null}function ni(x,k){if(x!==k){x.context._currentValue2=x.parentValue,x=x.parent;var P=k.parent;if(x===null){if(P!==null)throw Error(\"The stacks must reach the root at the same time. This is a bug in React.\")}else{if(P===null)throw Error(\"The stacks must reach the root at the same time. This is a bug in React.\");ni(x,P)}k.context._currentValue2=k.value}}function jr(x){x.context._currentValue2=x.parentValue,x=x.parent,x!==null&&jr(x)}function Eo(x){var k=x.parent;k!==null&&Eo(k),x.context._currentValue2=x.value}function zu(x,k){if(x.context._currentValue2=x.parentValue,x=x.parent,x===null)throw Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");x.depth===k.depth?ni(x,k):zu(x,k)}function tr(x,k){var P=k.parent;if(P===null)throw Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");x.depth===P.depth?ni(x,P):tr(x,P),k.context._currentValue2=k.value}function dr(x){var k=sl;k!==x&&(k===null?Eo(x):x===null?jr(k):k.depth===x.depth?ni(k,x):k.depth>x.depth?zu(k,x):tr(k,x),sl=x)}function Bl(x){if(x!==null&&typeof x!=\"function\"){var k=String(x);fp.has(k)||(fp.add(k),console.error(\"Expected the last optional `callback` argument to be a function. Instead received: %s.\",x))}}function vn(x,k){x=(x=x.constructor)&&en(x)||\"ReactClass\";var P=x+\".\"+k;ME[P]||(console.error(`Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\\n\\nPlease check the code for the %s component.`,k,x),ME[P]=!0)}function zr(x,k,P){var Q=x.id;x=x.overflow;var oe=32-wb(Q)-1;Q&=~(1<<oe),P+=1;var de=32-wb(k)+oe;if(30<de){var Re=oe-oe%5;return de=(Q&(1<<Re)-1).toString(32),Q>>=Re,oe-=Re,{id:1<<32-wb(k)+oe|P<<oe|Q,overflow:de+x}}return{id:1<<de|P<<oe|Q,overflow:x}}function Dd(x){return x>>>=0,x===0?32:31-(tw(x)/DE|0)|0}function Mr(){}function So(x,k,P){switch(P=x[P],P===void 0?x.push(k):P!==k&&(k.then(Mr,Mr),k=P),k.status){case\"fulfilled\":return k.value;case\"rejected\":throw k.reason;default:switch(typeof k.status==\"string\"?k.then(Mr,Mr):(x=k,x.status=\"pending\",x.then(function(Q){if(k.status===\"pending\"){var oe=k;oe.status=\"fulfilled\",oe.value=Q}},function(Q){if(k.status===\"pending\"){var oe=k;oe.status=\"rejected\",oe.reason=Q}})),k.status){case\"fulfilled\":return k.value;case\"rejected\":throw k.reason}throw hp=k,Gd}}function jt(){if(hp===null)throw Error(\"Expected a suspended thenable. This is a bug in React. Please file an issue.\");var x=hp;return hp=null,x}function xr(x,k){return x===k&&(x!==0||1/x===1/k)||x!==x&&k!==k}function En(){if(Zu===null)throw Error(`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.`);return Wl&&console.error(\"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks\"),Zu}function Hu(){if(0<d0)throw Error(\"Rendered more hooks than during the previous render\");return{memoizedState:null,queue:null,next:null}}function Zr(){return _o===null?Sb===null?(Xg=!1,Sb=_o=Hu()):(Xg=!0,_o=Sb):_o.next===null?(Xg=!1,_o=_o.next=Hu()):(Xg=!0,_o=_o.next),_o}function Cr(){var x=ih;return ih=null,x}function Ys(){Wl=!1,Eb=Jg=Wi=Zu=null,u0=!1,Sb=null,d0=0,_o=Yu=null}function Zc(x){return Wl&&console.error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"),x._currentValue2}function Zo(x,k){return typeof k==\"function\"?k(x):k}function qu(x,k,P){if(x!==Zo&&(pp=\"useReducer\"),Zu=En(),_o=Zr(),Xg){if(P=_o.queue,k=P.dispatch,Yu!==null){var Q=Yu.get(P);if(Q!==void 0){Yu.delete(P),P=_o.memoizedState;do{var oe=Q.action;Wl=!0,P=x(P,oe),Wl=!1,Q=Q.next}while(Q!==null);return _o.memoizedState=P,[P,k]}}return[_o.memoizedState,k]}return Wl=!0,x=x===Zo?typeof k==\"function\"?k():k:P!==void 0?P(k):k,Wl=!1,_o.memoizedState=x,x=_o.queue={last:null,dispatch:null},x=x.dispatch=Wu.bind(null,Zu,x),[_o.memoizedState,x]}function ts(x,k){if(Zu=En(),_o=Zr(),k=k===void 0?null:k,_o!==null){var P=_o.memoizedState;if(P!==null&&k!==null){e:{var Q=P[1];if(Q===null)console.error(\"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",pp),Q=!1;else{k.length!==Q.length&&console.error(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s`,pp,\"[\"+k.join(\", \")+\"]\",\"[\"+Q.join(\", \")+\"]\");for(var oe=0;oe<Q.length&&oe<k.length;oe++)if(!xb(k[oe],Q[oe])){Q=!1;break e}Q=!0}}if(Q)return P[0]}}return Wl=!0,x=x(),Wl=!1,_o.memoizedState=[x,k],x}function Wu(x,k,P){if(25<=d0)throw Error(\"Too many re-renders. React limits the number of renders to prevent an infinite loop.\");if(x===Zu)if(u0=!0,x={action:P,next:null},Yu===null&&(Yu=new Map),P=Yu.get(k),P===void 0)Yu.set(k,x);else{for(k=P;k.next!==null;)k=k.next;k.next=x}}function Yc(){throw Error(\"startTransition cannot be called during server rendering.\")}function Ya(){throw Error(\"Cannot update optimistic state while rendering.\")}function Qa(x,k,P){En();var Q=oh++,oe=Jg;if(typeof x.$$FORM_ACTION==\"function\"){var de=null,Re=Eb;oe=oe.formState;var Pe=x.$$IS_SIGNATURE_EQUAL;if(oe!==null&&typeof Pe==\"function\"){var nt=oe[1];Pe.call(x,oe[2],oe[3])&&(de=P!==void 0?\"p\"+P:\"k\"+c(JSON.stringify([Re,null,Q]),0),nt===de&&(ql=Q,k=oe[0]))}var Ne=x.bind(null,k);return x=function(At){Ne(At)},typeof Ne.$$FORM_ACTION==\"function\"&&(x.$$FORM_ACTION=function(At){At=Ne.$$FORM_ACTION(At),P!==void 0&&(m(P,\"target\"),P+=\"\",At.action=P);var Rt=At.data;return Rt&&(de===null&&(de=P!==void 0?\"p\"+P:\"k\"+c(JSON.stringify([Re,null,Q]),0)),Rt.append(\"$ACTION_KEY\",de)),At}),[k,x,!1]}var Et=x.bind(null,k);return[k,function(At){Et(At)},!1]}function ya(x){var k=ey;return ey+=1,ih===null&&(ih=[]),So(ih,x,k)}function Dl(){throw Error(\"Cache cannot be refreshed during server rendering.\")}function Ja(){}function Fl(){}function Fd(){if(mp===0){nw=console.log,Zd=console.info,h0=console.warn,t_=console.error,rw=console.group,Ca=console.groupCollapsed,ny=console.groupEnd;var x={configurable:!0,enumerable:!0,value:Fl,writable:!0};Object.defineProperties(console,{info:x,log:x,warn:x,error:x,group:x,groupCollapsed:x,groupEnd:x})}mp++}function Cg(){if(mp--,mp===0){var x={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ii({},x,{value:nw}),info:Ii({},x,{value:Zd}),warn:Ii({},x,{value:h0}),error:Ii({},x,{value:t_}),group:Ii({},x,{value:rw}),groupCollapsed:Ii({},x,{value:Ca}),groupEnd:Ii({},x,{value:ny})})}0>mp&&console.error(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}function ri(x){if(ry===void 0)try{throw Error()}catch(P){var k=P.stack.trim().match(/\\\\n( *(at )?)/);ry=k&&k[1]||\"\",kc=-1<P.stack.indexOf(`\\n    at`)?\" (<anonymous>)\":-1<P.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return`\\n`+ry+x+kc}function bc(x,k){if(!x||fo)return\"\";var P=kb.get(x);if(P!==void 0)return P;fo=!0,P=Error.prepareStackTrace,Error.prepareStackTrace=void 0;var Q=null;Q=ea.H,ea.H=null,Fd();try{var oe={DetermineComponentFrameRoot:function(){try{if(k){var Rt=function(){throw Error()};if(Object.defineProperty(Rt.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(Rt,[])}catch(lt){var Ft=lt}Reflect.construct(x,[],Rt)}else{try{Rt.call()}catch(lt){Ft=lt}x.call(Rt.prototype)}}else{try{throw Error()}catch(lt){Ft=lt}(Rt=x())&&typeof Rt.catch==\"function\"&&Rt.catch(function(){})}}catch(lt){if(lt&&Ft&&typeof lt.stack==\"string\")return[lt.stack,Ft.stack]}return[null,null]}};oe.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var de=Object.getOwnPropertyDescriptor(oe.DetermineComponentFrameRoot,\"name\");de&&de.configurable&&Object.defineProperty(oe.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var Re=oe.DetermineComponentFrameRoot(),Pe=Re[0],nt=Re[1];if(Pe&&nt){var Ne=Pe.split(`\\n`),Et=nt.split(`\\n`);for(Re=de=0;de<Ne.length&&!Ne[de].includes(\"DetermineComponentFrameRoot\");)de++;for(;Re<Et.length&&!Et[Re].includes(\"DetermineComponentFrameRoot\");)Re++;if(de===Ne.length||Re===Et.length)for(de=Ne.length-1,Re=Et.length-1;1<=de&&0<=Re&&Ne[de]!==Et[Re];)Re--;for(;1<=de&&0<=Re;de--,Re--)if(Ne[de]!==Et[Re]){if(de!==1||Re!==1)do if(de--,Re--,0>Re||Ne[de]!==Et[Re]){var At=`\\n`+Ne[de].replace(\" at new \",\" at \");return x.displayName&&At.includes(\"<anonymous>\")&&(At=At.replace(\"<anonymous>\",x.displayName)),typeof x==\"function\"&&kb.set(x,At),At}while(1<=de&&0<=Re);break}}}finally{fo=!1,ea.H=Q,Cg(),Error.prepareStackTrace=P}return Ne=(Ne=x?x.displayName||x.name:\"\")?ri(Ne):\"\",typeof x==\"function\"&&kb.set(x,Ne),Ne}function Qc(x){var k=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,x=x.stack,Error.prepareStackTrace=k,x.startsWith(`Error: react-stack-top-frame\\n`)&&(x=x.slice(29)),k=x.indexOf(`\\n`),k!==-1&&(x=x.slice(k+1)),k=x.indexOf(\"react-stack-bottom-frame\"),k!==-1&&(k=x.lastIndexOf(`\\n`,k)),k!==-1)x=x.slice(0,k);else return\"\";return x}function Vh(x){if(typeof x==\"string\")return ri(x);if(typeof x==\"function\")return x.prototype&&x.prototype.isReactComponent?bc(x,!0):bc(x,!1);if(typeof x==\"object\"&&x!==null){switch(x.$$typeof){case Gf:return bc(x.render,!1);case $u:return bc(x.type,!1);case Js:var k=x,P=k._payload;k=k._init;try{x=k(P)}catch{return ri(\"Lazy\")}return Vh(x)}if(typeof x.name==\"string\")return P=x.env,ri(x.name+(P?\" [\"+P+\"]\":\"\"))}switch(x){case Vu:return ri(\"SuspenseList\");case op:return ri(\"Suspense\")}return\"\"}function Wf(x){if(typeof x==\"object\"&&x!==null&&typeof x.environmentName==\"string\"){var k=x.environmentName;x=[x].slice(0),typeof x[0]==\"string\"?x.splice(0,1,\"[%s] \"+x[0],\" \"+k+\" \"):x.splice(0,0,\"[%s] \",\" \"+k+\" \"),x.unshift(console),k=X2.apply(console.error,x),k()}else console.error(x);return null}function Ud(){}function nE(x,k,P,Q,oe,de,Re,Pe,nt,Ne,Et){var At=new Set;this.destination=null,this.flushScheduled=!1,this.resumableState=x,this.renderState=k,this.rootFormatContext=P,this.progressiveChunkSize=Q===void 0?12800:Q,this.status=10,this.fatalError=null,this.pendingRootTasks=this.allPendingTasks=this.nextSegmentId=0,this.completedPreambleSegments=this.completedRootSegment=null,this.abortableTasks=At,this.pingedTasks=[],this.clientRenderedBoundaries=[],this.completedBoundaries=[],this.partialBoundaries=[],this.trackedPostpones=null,this.onError=oe===void 0?Wf:oe,this.onPostpone=Ne===void 0?Ud:Ne,this.onAllReady=de===void 0?Ud:de,this.onShellReady=Re===void 0?Ud:Re,this.onShellError=Pe===void 0?Ud:Pe,this.onFatalError=nt===void 0?Ud:nt,this.formState=Et===void 0?null:Et,this.didWarnForKey=null}function X1(x,k,P,Q,oe,de,Re,Pe,nt,Ne,Et,At){var Rt=m0();return 1e3<Rt-Qu&&(ea.recentlyCreatedOwnerStacks=0,Qu=Rt),k=new nE(k,P,Q,oe,de,Re,Pe,nt,Ne,Et,At),P=Um(k,0,null,Q,!1,!1),P.parentFlushed=!0,x=Ag(k,null,x,-1,null,P,null,null,k.abortableTasks,null,Q,null,BE,null,!1,il,null),Kh(x),k.pingedTasks.push(x),k}function vc(x,k){x.pingedTasks.push(k),x.pingedTasks.length===1&&(x.flushScheduled=x.destination!==null,Jc(x))}function jd(x,k,P,Q){return{status:Vl,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,completedSegments:[],byteSize:0,fallbackAbortableTasks:k,errorDigest:null,contentState:er(),fallbackState:er(),contentPreamble:P,fallbackPreamble:Q,trackedContentKeyPath:null,trackedFallbackNode:null,errorMessage:null,errorStack:null,errorComponentStack:null}}function Ag(x,k,P,Q,oe,de,Re,Pe,nt,Ne,Et,At,Rt,Ft,lt,Kn,Sn){x.allPendingTasks++,oe===null?x.pendingRootTasks++:oe.pendingTasks++;var mn={replay:null,node:P,childIndex:Q,ping:function(){return vc(x,mn)},blockedBoundary:oe,blockedSegment:de,blockedPreamble:Re,hoistableState:Pe,abortSet:nt,keyPath:Ne,formatContext:Et,context:At,treeContext:Rt,componentStack:Ft,thenableState:k,isFallback:lt};return mn.debugTask=Sn,nt.add(mn),mn}function C2(x,k,P,Q,oe,de,Re,Pe,nt,Ne,Et,At,Rt,Ft,lt,Kn){x.allPendingTasks++,de===null?x.pendingRootTasks++:de.pendingTasks++,P.pendingTasks++;var Sn={replay:P,node:Q,childIndex:oe,ping:function(){return vc(x,Sn)},blockedBoundary:de,blockedSegment:null,blockedPreamble:null,hoistableState:Re,abortSet:Pe,keyPath:nt,formatContext:Ne,context:Et,treeContext:At,componentStack:Rt,thenableState:k,isFallback:Ft};return Sn.debugTask=Kn,Pe.add(Sn),Sn}function Um(x,k,P,Q,oe,de){return{status:Vl,parentFlushed:!1,id:-1,index:k,chunks:[],children:[],preambleChildren:[],parentFormatContext:Q,boundary:P,lastPushedText:oe,textEmbedded:de}}function $h(){if(al===null||al.componentStack===null)return\"\";var x=al.componentStack;try{var k=\"\";if(typeof x.type==\"string\")k+=ri(x.type);else if(typeof x.type==\"function\"){if(!x.owner){var P=k,Q=x.type,oe=Q?Q.displayName||Q.name:\"\",de=oe?ri(oe):\"\";k=P+de}}else x.owner||(k+=Vh(x.type));for(;x;)P=null,x.debugStack!=null?P=Qc(x.debugStack):(de=x,de.stack!=null&&(P=typeof de.stack!=\"string\"?de.stack=Qc(de.stack):de.stack)),(x=x.owner)&&P&&(k+=`\\n`+P);var Re=k}catch(Pe){Re=`\\nError generating stack: `+Pe.message+`\\n`+Pe.stack}return Re}function Tg(x,k){if(k!=null)for(var P=0;P<k.length;P++){var Q=k[P];typeof Q.name==\"string\"&&Q.debugStack!==void 0&&(x.componentStack={parent:x.componentStack,type:Q,owner:Q.owner,stack:Q.debugStack},x.debugTask=Q.debugTask)}}function Kh(x){var k=x.node;if(typeof k==\"object\"&&k!==null)switch(k.$$typeof){case Vm:var P=k.type,Q=k._owner,oe=k._debugStack;Tg(x,k._debugInfo),x.debugTask=k._debugTask,x.componentStack={parent:x.componentStack,type:P,owner:Q,stack:oe};break;case Js:Tg(x,k._debugInfo);break;default:typeof k.then==\"function\"&&Tg(x,k._debugInfo)}}function Gh(x){var k={};return x&&Object.defineProperty(k,\"componentStack\",{configurable:!0,enumerable:!0,get:function(){try{var P=\"\",Q=x;do P+=Vh(Q.type),Q=Q.parent;while(Q);var oe=P}catch(de){oe=`\\nError generating stack: `+de.message+`\\n`+de.stack}return Object.defineProperty(k,\"componentStack\",{value:oe}),oe}}),k}function Zh(x,k,P,Q,oe){x.errorDigest=k,P instanceof Error?(k=String(P.message),P=String(P.stack)):(k=typeof P==\"object\"&&P!==null?a(P):String(P),P=null),oe=oe?`Switched to client rendering because the server rendering aborted due to:\\n\\n`:`Switched to client rendering because the server rendering errored:\\n\\n`,x.errorMessage=oe+k,x.errorStack=P!==null?oe+P:null,x.errorComponentStack=Q.componentStack}function Qs(x,k,P,Q){if(x=x.onError,k=Q?Q.run(x.bind(null,k,P)):x(k,P),k!=null&&typeof k!=\"string\")console.error(\\'onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"%s\" instead\\',typeof k);else return k}function zd(x,k,P,Q){P=x.onShellError;var oe=x.onFatalError;Q?(Q.run(P.bind(null,k)),Q.run(oe.bind(null,k))):(P(k),oe(k)),x.destination!==null?(x.status=Os,x.destination.destroy(k)):(x.status=13,x.fatalError=k)}function eb(x,k,P,Q,oe,de){var Re=k.thenableState;for(k.thenableState=null,Zu={},Wi=k,Jg=x,Eb=P,Wl=!1,oh=_a=0,ql=-1,ey=0,ih=Re,x=_b(Q,oe,de);u0;)u0=!1,oh=_a=0,ql=-1,ey=0,d0+=1,_o=null,x=Q(oe,de);return Ys(),x}function Hd(x,k,P,Q,oe,de,Re){var Pe=!1;if(de!==0&&x.formState!==null){var nt=k.blockedSegment;if(nt!==null){Pe=!0,nt=nt.chunks;for(var Ne=0;Ne<de;Ne++)Ne===Re?nt.push(\"<!--F!-->\"):nt.push(\"<!--F-->\")}}de=k.keyPath,k.keyPath=P,oe?(P=k.treeContext,k.treeContext=zr(P,1,0),Xa(x,k,Q,-1),k.treeContext=P):Pe?Xa(x,k,Q,-1):ms(x,k,Q,-1),k.keyPath=de}function Vf(x,k,P,Q,oe,de){if(typeof Q==\"function\")if(Q.prototype&&Q.prototype.isReactComponent){var Re=oe;if(\"ref\"in oe){Re={};for(var Pe in oe)Pe!==\"ref\"&&(Re[Pe]=oe[Pe])}var nt=Q.defaultProps;if(nt){Re===oe&&(Re=Ii({},Re,oe));for(var Ne in nt)Re[Ne]===void 0&&(Re[Ne]=nt[Ne])}var Et=Re,At=il,Rt=Q.contextType;if(\"contextType\"in Q&&Rt!==null&&(Rt===void 0||Rt.$$typeof!==Dg)&&!Kd.has(Q)){Kd.add(Q);var Ft=Rt===void 0?\" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\":typeof Rt!=\"object\"?\" However, it is set to a \"+typeof Rt+\".\":Rt.$$typeof===Bg?\" Did you accidentally pass the Context.Consumer instead?\":\" However, it is set to an object with keys {\"+Object.keys(Rt).join(\", \")+\"}.\";console.error(\"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",en(Q)||\"Component\",Ft)}typeof Rt==\"object\"&&Rt!==null&&(At=Rt._currentValue2);var lt=new Q(Et,At);if(typeof Q.getDerivedStateFromProps==\"function\"&&(lt.state===null||lt.state===void 0)){var Kn=en(Q)||\"Component\";NE.has(Kn)||(NE.add(Kn),console.error(\"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",Kn,lt.state===null?\"null\":\"undefined\",Kn))}if(typeof Q.getDerivedStateFromProps==\"function\"||typeof lt.getSnapshotBeforeUpdate==\"function\"){var Sn=null,mn=null,un=null;if(typeof lt.componentWillMount==\"function\"&&lt.componentWillMount.__suppressDeprecationWarning!==!0?Sn=\"componentWillMount\":typeof lt.UNSAFE_componentWillMount==\"function\"&&(Sn=\"UNSAFE_componentWillMount\"),typeof lt.componentWillReceiveProps==\"function\"&&lt.componentWillReceiveProps.__suppressDeprecationWarning!==!0?mn=\"componentWillReceiveProps\":typeof lt.UNSAFE_componentWillReceiveProps==\"function\"&&(mn=\"UNSAFE_componentWillReceiveProps\"),typeof lt.componentWillUpdate==\"function\"&&lt.componentWillUpdate.__suppressDeprecationWarning!==!0?un=\"componentWillUpdate\":typeof lt.UNSAFE_componentWillUpdate==\"function\"&&(un=\"UNSAFE_componentWillUpdate\"),Sn!==null||mn!==null||un!==null){var Vi=en(Q)||\"Component\",cn=typeof Q.getDerivedStateFromProps==\"function\"?\"getDerivedStateFromProps()\":\"getSnapshotBeforeUpdate()\";$d.has(Vi)||($d.add(Vi),console.error(`Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://react.dev/link/unsafe-component-lifecycles`,Vi,cn,Sn!==null?`\\n  `+Sn:\"\",mn!==null?`\\n  `+mn:\"\",un!==null?`\\n  `+un:\"\"))}}var Tn=en(Q)||\"Component\";lt.render||(Q.prototype&&typeof Q.prototype.render==\"function\"?console.error(\"No `render` method found on the %s instance: did you accidentally return an object from the constructor?\",Tn):console.error(\"No `render` method found on the %s instance: you may have forgotten to define `render`.\",Tn)),!lt.getInitialState||lt.getInitialState.isReactClassApproved||lt.state||console.error(\"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",Tn),lt.getDefaultProps&&!lt.getDefaultProps.isReactClassApproved&&console.error(\"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",Tn),lt.contextType&&console.error(\"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",Tn),Q.childContextTypes&&!vb.has(Q)&&(vb.add(Q),console.error(\"%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)\",Tn)),Q.contextTypes&&!l0.has(Q)&&(l0.add(Q),console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)\",Tn)),typeof lt.componentShouldUpdate==\"function\"&&console.error(\"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",Tn),Q.prototype&&Q.prototype.isPureReactComponent&&typeof lt.shouldComponentUpdate<\"u\"&&console.error(\"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",en(Q)||\"A pure component\"),typeof lt.componentDidUnmount==\"function\"&&console.error(\"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",Tn),typeof lt.componentDidReceiveProps==\"function\"&&console.error(\"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",Tn),typeof lt.componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",Tn),typeof lt.UNSAFE_componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",Tn);var ro=lt.props!==Et;lt.props!==void 0&&ro&&console.error(\"When calling super() in `%s`, make sure to pass up the same props that your component\\'s constructor was passed.\",Tn),lt.defaultProps&&console.error(\"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",Tn,Tn),typeof lt.getSnapshotBeforeUpdate!=\"function\"||typeof lt.componentDidUpdate==\"function\"||rh.has(Q)||(rh.add(Q),console.error(\"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",en(Q))),typeof lt.getDerivedStateFromProps==\"function\"&&console.error(\"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",Tn),typeof lt.getDerivedStateFromError==\"function\"&&console.error(\"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",Tn),typeof Q.getSnapshotBeforeUpdate==\"function\"&&console.error(\"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",Tn);var Oi=lt.state;Oi&&(typeof Oi!=\"object\"||el(Oi))&&console.error(\"%s.state: must be set to an object or null\",Tn),typeof lt.getChildContext==\"function\"&&typeof Q.childContextTypes!=\"object\"&&console.error(\"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",Tn);var $i=lt.state!==void 0?lt.state:null;lt.updater=LE,lt.props=Et,lt.state=$i;var ii={queue:[],replace:!1};lt._reactInternals=ii;var Co=Q.contextType;if(lt.context=typeof Co==\"object\"&&Co!==null?Co._currentValue2:il,lt.state===Et){var _c=en(Q)||\"Component\";bb.has(_c)||(bb.add(_c),console.error(\"%s: It is not recommended to assign props directly to state because updates to props won\\'t be reflected in state. In most cases, it is better to use props directly.\",_c))}var Aa=Q.getDerivedStateFromProps;if(typeof Aa==\"function\"){var Er=Aa(Et,$i);if(Er===void 0){var w=en(Q)||\"Component\";ew.has(w)||(ew.add(w),console.error(\"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",w))}var S=Er==null?$i:Ii({},$i,Er);lt.state=S}if(typeof Q.getDerivedStateFromProps!=\"function\"&&typeof lt.getSnapshotBeforeUpdate!=\"function\"&&(typeof lt.UNSAFE_componentWillMount==\"function\"||typeof lt.componentWillMount==\"function\")){var M=lt.state;if(typeof lt.componentWillMount==\"function\"){if(lt.componentWillMount.__suppressDeprecationWarning!==!0){var Y=en(Q)||\"Unknown\";nh[Y]||(console.warn(`componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\\n\\nPlease update the following components: %s`,Y),nh[Y]=!0)}lt.componentWillMount()}if(typeof lt.UNSAFE_componentWillMount==\"function\"&&lt.UNSAFE_componentWillMount(),M!==lt.state&&(console.error(\"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component\\'s constructor). Use setState instead.\",en(Q)||\"Component\"),LE.enqueueReplaceState(lt,lt.state,null)),ii.queue!==null&&0<ii.queue.length){var re=ii.queue,ue=ii.replace;if(ii.queue=null,ii.replace=!1,ue&&re.length===1)lt.state=re[0];else{for(var Ee=ue?re[0]:lt.state,Ae=!0,Le=ue?1:0;Le<re.length;Le++){var Ie=re[Le],pt=typeof Ie==\"function\"?Ie.call(lt,Ee,Et,void 0):Ie;pt!=null&&(Ae?(Ae=!1,Ee=Ii({},Ee,pt)):Ii(Ee,pt))}lt.state=Ee}}else ii.queue=null}var ut=oy(lt);if(x.status===12)throw null;lt.props!==Et&&(Ab||console.error(\"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",en(Q)||\"a component\"),Ab=!0);var _t=k.keyPath;k.keyPath=P,ms(x,k,ut,-1),k.keyPath=_t}else{if(Q.prototype&&typeof Q.prototype.render==\"function\"){var bt=en(Q)||\"Unknown\";n_[bt]||(console.error(\"The <%s /> component appears to have a render method, but doesn\\'t extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",bt,bt),n_[bt]=!0)}var rt=eb(x,k,P,Q,oe,void 0);if(x.status===12)throw null;var kn=_a!==0,Tr=oh,_n=ql;if(Q.contextTypes){var Gt=en(Q)||\"Unknown\";y0[Gt]||(y0[Gt]=!0,console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)\",Gt))}if(Q&&Q.childContextTypes&&console.error(`childContextTypes cannot be defined on a function component.\\n  %s.childContextTypes = ...`,Q.displayName||Q.name||\"Component\"),typeof Q.getDerivedStateFromProps==\"function\"){var Bo=en(Q)||\"Unknown\";iw[Bo]||(console.error(\"%s: Function components do not support getDerivedStateFromProps.\",Bo),iw[Bo]=!0)}if(typeof Q.contextType==\"object\"&&Q.contextType!==null){var Lr=en(Q)||\"Unknown\";Cb[Lr]||(console.error(\"%s: Function components do not support contextType.\",Lr),Cb[Lr]=!0)}Hd(x,k,P,rt,kn,Tr,_n)}else if(typeof Q==\"string\"){var Rn=k.blockedSegment;if(Rn===null){var os=oe.children,Ps=k.formatContext,si=k.keyPath;k.formatContext=V(Ps,Q,oe),k.keyPath=P,Xa(x,k,os,-1),k.formatContext=Ps,k.keyPath=si}else{var gi=qe(Rn.chunks,Q,oe,x.resumableState,x.renderState,k.blockedPreamble,k.hoistableState,k.formatContext,Rn.lastPushedText,k.isFallback);Rn.lastPushedText=!1;var po=k.formatContext,Jo=k.keyPath;if(k.keyPath=P,(k.formatContext=V(po,Q,oe)).insertionMode===Qm){var yi=Um(x,0,null,k.formatContext,!1,!1);Rn.preambleChildren.push(yi);var Bn=Ag(x,null,gi,-1,k.blockedBoundary,yi,k.blockedPreamble,k.hoistableState,x.abortableTasks,k.keyPath,k.formatContext,k.context,k.treeContext,k.componentStack,k.isFallback,il,k.debugTask);Kh(Bn),x.pingedTasks.push(Bn)}else Xa(x,k,gi,-1);k.formatContext=po,k.keyPath=Jo;e:{var mo=Rn.chunks,Br=x.resumableState;switch(Q){case\"title\":case\"style\":case\"script\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break e;case\"body\":if(po.insertionMode<=Lo){Br.hasBody=!0;break e}break;case\"html\":if(po.insertionMode===Ym){Br.hasHtml=!0;break e}break;case\"head\":if(po.insertionMode<=Lo)break e}mo.push(wt(Q))}Rn.lastPushedText=!1}}else{switch(Q){case ip:case $m:case rp:case np:var is=k.keyPath;k.keyPath=P,ms(x,k,oe.children,-1),k.keyPath=is;return;case Km:if(oe.mode!==\"hidden\"){var ss=k.keyPath;k.keyPath=P,ms(x,k,oe.children,-1),k.keyPath=ss}return;case Vu:var Pi=k.keyPath;k.keyPath=P,ms(x,k,oe.children,-1),k.keyPath=Pi;return;case Rs:case Xc:throw Error(\"ReactDOMServer does not yet support scope components.\");case op:e:if(k.replay!==null){var rc=k.keyPath;k.keyPath=P;var Ki=oe.children;try{Xa(x,k,Ki,-1)}finally{k.keyPath=rc}}else{var oc=k.keyPath,Ju=k.blockedBoundary,Un=k.blockedPreamble,cl=k.hoistableState,Ta=k.blockedSegment,Xu=oe.fallback,gs=oe.children,Mi=new Set,Ao=k.formatContext.insertionMode<pi?jd(x,Mi,Z(),Z()):jd(x,Mi,null,null);x.trackedPostpones!==null&&(Ao.trackedContentKeyPath=P);var ys=Um(x,Ta.chunks.length,Ao,k.formatContext,!1,!1);Ta.children.push(ys),Ta.lastPushedText=!1;var ia=Um(x,0,null,k.formatContext,!1,!1);if(ia.parentFlushed=!0,x.trackedPostpones!==null){var $l=[P[0],\"Suspense Fallback\",P[2]],as=[$l[1],$l[2],[],null];x.trackedPostpones.workingMap.set($l,as),Ao.trackedFallbackNode=as,k.blockedSegment=ys,k.blockedPreamble=Ao.fallbackPreamble,k.keyPath=$l,ys.status=6;try{Xa(x,k,Xu,-1),Fn(ys.chunks,x.renderState,ys.lastPushedText,ys.textEmbedded),ys.status=Qo}catch(cs){throw ys.status=x.status===12?3:4,cs}finally{k.blockedSegment=Ta,k.blockedPreamble=Un,k.keyPath=oc}var Cc=Ag(x,null,gs,-1,Ao,ia,Ao.contentPreamble,Ao.contentState,k.abortSet,P,k.formatContext,k.context,k.treeContext,k.componentStack,k.isFallback,il,k.debugTask);Kh(Cc),x.pingedTasks.push(Cc)}else{k.blockedBoundary=Ao,k.blockedPreamble=Ao.contentPreamble,k.hoistableState=Ao.contentState,k.blockedSegment=ia,k.keyPath=P,ia.status=6;try{if(Xa(x,k,gs,-1),Fn(ia.chunks,x.renderState,ia.lastPushedText,ia.textEmbedded),ia.status=Qo,Kf(Ao,ia),Ao.pendingTasks===0&&Ao.status===Vl){Ao.status=Qo,x.pendingRootTasks===0&&k.blockedPreamble&&Jh(x);break e}}catch(cs){if(Ao.status=rs,x.status===12){ia.status=3;var Ra=x.fatalError}else ia.status=4,Ra=cs;var sa=Gh(k.componentStack),To=Qs(x,Ra,sa,k.debugTask);Zh(Ao,To,Ra,sa,!1),jm(x,Ao)}finally{k.blockedBoundary=Ju,k.blockedPreamble=Un,k.hoistableState=cl,k.blockedSegment=Ta,k.keyPath=oc}var Ms=Ag(x,null,Xu,-1,Ju,ys,Ao.fallbackPreamble,Ao.fallbackState,Mi,[P[0],\"Suspense Fallback\",P[2]],k.formatContext,k.context,k.treeContext,k.componentStack,!0,il,k.debugTask);Kh(Ms),x.pingedTasks.push(Ms)}}return}if(typeof Q==\"object\"&&Q!==null)switch(Q.$$typeof){case Gf:if(\"ref\"in oe){var ic={};for(var Ac in oe)Ac!==\"ref\"&&(ic[Ac]=oe[Ac])}else ic=oe;var sc=eb(x,k,P,Q.render,ic,de);Hd(x,k,P,sc,_a!==0,oh,ql);return;case $u:Vf(x,k,P,Q.type,oe,de);return;case sE:case Dg:var Kl=oe.value,aa=oe.children,ll=k.context,Tc=k.keyPath,ul=Q._currentValue2;Q._currentValue2=Kl,Q._currentRenderer2!==void 0&&Q._currentRenderer2!==null&&Q._currentRenderer2!==c0&&console.error(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),Q._currentRenderer2=c0;var dl=sl,Ia={parent:dl,depth:dl===null?0:dl.depth+1,context:Q,parentValue:ul,value:Kl};sl=Ia,k.context=Ia,k.keyPath=P,ms(x,k,aa,-1);var ca=sl;if(ca===null)throw Error(\"Tried to pop a Context at the root of the app. This is a bug in React.\");ca.context!==Q&&console.error(\"The parent context is not the expected context. This is probably a bug in React.\"),ca.context._currentValue2=ca.parentValue,Q._currentRenderer2!==void 0&&Q._currentRenderer2!==null&&Q._currentRenderer2!==c0&&console.error(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),Q._currentRenderer2=c0;var ah=sl=ca.parent;k.context=ah,k.keyPath=Tc,ll!==k.context&&console.error(\"Popping the context provider did not return back to the original snapshot. This is a bug in React.\");return;case Bg:var pn=Q._context,Gl=oe.children;typeof Gl!=\"function\"&&console.error(\"A context consumer was rendered with multiple children, or a child that isn\\'t a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\");var Zl=Gl(pn._currentValue2),gp=k.keyPath;k.keyPath=P,ms(x,k,Zl,-1),k.keyPath=gp;return;case Js:var ac=Yd(Q);if(x.status===12)throw null;Vf(x,k,P,ac,oe,de);return}var Yl=\"\";throw(Q===void 0||typeof Q==\"object\"&&Q!==null&&Object.keys(Q).length===0)&&(Yl+=\" You likely forgot to export your component from the file it\\'s defined in, or you might have mixed up default and named imports.\"),Error(\"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \"+((Q==null?Q:typeof Q)+\".\"+Yl))}}function Rg(x,k,P,Q,oe){var de=k.replay,Re=k.blockedBoundary,Pe=Um(x,0,null,k.formatContext,!1,!1);Pe.id=P,Pe.parentFlushed=!0;try{k.replay=null,k.blockedSegment=Pe,Xa(x,k,Q,oe),Pe.status=Qo,Re===null?x.completedRootSegment=Pe:(Kf(Re,Pe),Re.parentFlushed&&x.partialBoundaries.push(Re))}finally{k.replay=de,k.blockedSegment=null}}function Yh(x,k,P,Q,oe,de,Re,Pe,nt,Ne){de=Ne.nodes;for(var Et=0;Et<de.length;Et++){var At=de[Et];if(oe===At[1]){if(At.length===4){if(Q!==null&&Q!==At[0])throw Error(\"Expected the resume to render <\"+At[0]+\"> in this slot but instead it rendered <\"+Q+\">. The tree doesn\\'t match so React will fallback to client rendering.\");var Rt=At[2];At=At[3],Q=k.node,k.replay={nodes:Rt,slots:At,pendingTasks:1};try{if(Vf(x,k,P,Re,Pe,nt),k.replay.pendingTasks===1&&0<k.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");k.replay.pendingTasks--}catch(cn){if(typeof cn==\"object\"&&cn!==null&&(cn===Gd||typeof cn.then==\"function\"))throw k.node===Q&&(k.replay=Ne),cn;k.replay.pendingTasks--,Re=Gh(k.componentStack),Pe=x,x=k.blockedBoundary,P=cn,nt=At,At=Qs(Pe,P,Re,k.debugTask),Qh(Pe,x,Rt,nt,P,At,Re,!1)}k.replay=Ne}else{if(Re!==op)throw Error(\"Expected the resume to render <Suspense> in this slot but instead it rendered <\"+(en(Re)||\"Unknown\")+\">. The tree doesn\\'t match so React will fallback to client rendering.\");e:{Ne=void 0,Re=At[5],nt=At[2],Q=At[3],oe=At[4]===null?[]:At[4][2],At=At[4]===null?null:At[4][3];var Ft=k.keyPath,lt=k.replay,Kn=k.blockedBoundary,Sn=k.hoistableState,mn=Pe.children,un=Pe.fallback,Vi=new Set;Pe=k.formatContext.insertionMode<pi?jd(x,Vi,Z(),Z()):jd(x,Vi,null,null),Pe.parentFlushed=!0,Pe.rootSegmentID=Re,k.blockedBoundary=Pe,k.hoistableState=Pe.contentState,k.keyPath=P,k.replay={nodes:nt,slots:Q,pendingTasks:1};try{if(Xa(x,k,mn,-1),k.replay.pendingTasks===1&&0<k.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");if(k.replay.pendingTasks--,Pe.pendingTasks===0&&Pe.status===Vl){Pe.status=Qo,x.completedBoundaries.push(Pe);break e}}catch(cn){Pe.status=rs,Rt=Gh(k.componentStack),Ne=Qs(x,cn,Rt,k.debugTask),Zh(Pe,Ne,cn,Rt,!1),k.replay.pendingTasks--,x.clientRenderedBoundaries.push(Pe)}finally{k.blockedBoundary=Kn,k.hoistableState=Sn,k.replay=lt,k.keyPath=Ft}Pe=C2(x,null,{nodes:oe,slots:At,pendingTasks:0},un,-1,Kn,Pe.fallbackState,Vi,[P[0],\"Suspense Fallback\",P[2]],k.formatContext,k.context,k.treeContext,k.componentStack,!0,il,k.debugTask),Kh(Pe),x.pingedTasks.push(Pe)}}de.splice(Et,1);break}}}function ms(x,k,P,Q){k.replay!==null&&typeof k.replay.slots==\"number\"?Rg(x,k,k.replay.slots,P,Q):(k.node=P,k.childIndex=Q,P=k.componentStack,Q=k.debugTask,Kh(k),Ul(x,k),k.componentStack=P,k.debugTask=Q)}function Ul(x,k){var P=k.node,Q=k.childIndex;if(P!==null){if(typeof P==\"object\"){switch(P.$$typeof){case Vm:var oe=P.type,de=P.key;P=P.props;var Re=P.ref;Re=Re!==void 0?Re:null;var Pe=k.debugTask,nt=en(oe);de=de??(Q===-1?0:Q);var Ne=[k.keyPath,nt,de];k.replay!==null?Pe?Pe.run(Yh.bind(null,x,k,Ne,nt,de,Q,oe,P,Re,k.replay)):Yh(x,k,Ne,nt,de,Q,oe,P,Re,k.replay):Pe?Pe.run(Vf.bind(null,x,k,Ne,oe,P,Re)):Vf(x,k,Ne,oe,P,Re);return;case T2:throw Error(\"Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render.\");case Js:if(P=Yd(P),x.status===12)throw null;ms(x,k,P,Q);return}if(el(P)){ba(x,k,P,Q);return}if(P===null||typeof P!=\"object\"?de=null:(oe=Ug&&P[Ug]||P[\"@@iterator\"],de=typeof oe==\"function\"?oe:null),de&&(oe=de.call(P))){if(oe===P?(Q!==-1||k.componentStack===null||typeof k.componentStack.type!=\"function\"||Object.prototype.toString.call(k.componentStack.type)!==\"[object GeneratorFunction]\"||Object.prototype.toString.call(oe)!==\"[object Generator]\")&&(Tb||console.error(\"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.\"),Tb=!0):P.entries!==de||ay||(console.error(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),ay=!0),P=oe.next(),!P.done){de=[];do de.push(P.value),P=oe.next();while(!P.done);ba(x,k,de,Q)}return}if(typeof P.then==\"function\")return k.thenableState=null,ms(x,k,ya(P),Q);if(P.$$typeof===Dg)return ms(x,k,P._currentValue2,Q);throw x=Object.prototype.toString.call(P),Error(\"Objects are not valid as a React child (found: \"+(x===\"[object Object]\"?\"object with keys {\"+Object.keys(P).join(\", \")+\"}\":x)+\"). If you meant to render a collection of children, use an array instead.\")}typeof P==\"string\"?(k=k.blockedSegment,k!==null&&(k.lastPushedText=bn(k.chunks,P,x.renderState,k.lastPushedText))):typeof P==\"number\"||typeof P==\"bigint\"?(k=k.blockedSegment,k!==null&&(k.lastPushedText=bn(k.chunks,\"\"+P,x.renderState,k.lastPushedText))):(typeof P==\"function\"&&(x=P.displayName||P.name||\"Component\",console.error(\"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\",x,x)),typeof P==\"symbol\"&&console.error(`Symbols are not valid as a React child.\\n  %s`,String(P)))}}function ba(x,k,P,Q){var oe=k.keyPath,de=k.componentStack,Re=k.debugTask;if(Tg(k,k.node._debugInfo),Q!==-1&&(k.keyPath=[k.keyPath,\"Fragment\",Q],k.replay!==null)){for(var Pe=k.replay,nt=Pe.nodes,Ne=0;Ne<nt.length;Ne++){var Et=nt[Ne];if(Et[1]===Q){Q=Et[2],Et=Et[3],k.replay={nodes:Q,slots:Et,pendingTasks:1};try{if(ba(x,k,P,-1),k.replay.pendingTasks===1&&0<k.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");k.replay.pendingTasks--}catch(mn){if(typeof mn==\"object\"&&mn!==null&&(mn===Gd||typeof mn.then==\"function\"))throw mn;k.replay.pendingTasks--;var At=Gh(k.componentStack);P=k.blockedBoundary;var Rt=mn,Ft=Et;Et=Qs(x,Rt,At,k.debugTask),Qh(x,P,Q,Ft,Rt,Et,At,!1)}k.replay=Pe,nt.splice(Ne,1);break}}k.keyPath=oe,k.componentStack=de,k.debugTask=Re;return}if(Pe=k.treeContext,nt=P.length,k.replay!==null&&(Ne=k.replay.slots,Ne!==null&&typeof Ne==\"object\")){for(Q=0;Q<nt;Q++)Et=P[Q],k.treeContext=zr(Pe,nt,Q),Rt=Ne[Q],typeof Rt==\"number\"?(Rg(x,k,Rt,Et,Q),delete Ne[Q]):Xa(x,k,Et,Q);k.treeContext=Pe,k.keyPath=oe,k.componentStack=de,k.debugTask=Re;return}for(Ne=0;Ne<nt;Ne++){if(Q=P[Ne],Ft=x,Et=k,Rt=Q,Rt!==null&&typeof Rt==\"object\"&&(Rt.$$typeof===Vm||Rt.$$typeof===T2)&&Rt._store&&(!Rt._store.validated&&Rt.key==null||Rt._store.validated===2)){if(typeof Rt._store!=\"object\")throw Error(\"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\");if(Rt._store.validated=1,At=Ft.didWarnForKey,At==null&&(At=Ft.didWarnForKey=new WeakSet),Ft=Et.componentStack,Ft!==null&&!At.has(Ft)){At.add(Ft);var lt=en(Rt.type);At=Rt._owner;var Kn=Ft.owner;if(Ft=\"\",Kn&&typeof Kn.type<\"u\"){var Sn=en(Kn.type);Sn&&(Ft=`\\n\\nCheck the render method of \\\\``+Sn+\"`.\")}Ft||lt&&(Ft=`\\n\\nCheck the top-level render call using <`+lt+\">.\"),lt=\"\",At!=null&&Kn!==At&&(Kn=null,typeof At.type<\"u\"?Kn=en(At.type):typeof At.name==\"string\"&&(Kn=At.name),Kn&&(lt=\" It was passed a child from \"+Kn+\".\")),At=Et.componentStack,Et.componentStack={parent:Et.componentStack,type:Rt.type,owner:Rt._owner,stack:Rt._debugStack},console.error(\\'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.\\',Ft,lt),Et.componentStack=At}}k.treeContext=zr(Pe,nt,Ne),Xa(x,k,Q,Ne)}k.treeContext=Pe,k.keyPath=oe,k.componentStack=de,k.debugTask=Re}function jm(x,k){x=x.trackedPostpones,x!==null&&(k=k.trackedContentKeyPath,k!==null&&(k=x.workingMap.get(k),k!==void 0&&(k.length=4,k[2]=[],k[3]=null)))}function rE(x,k,P){return C2(x,P,k.replay,k.node,k.childIndex,k.blockedBoundary,k.hoistableState,k.abortSet,k.keyPath,k.formatContext,k.context,k.treeContext,k.componentStack,k.isFallback,il,k.debugTask)}function oE(x,k,P){var Q=k.blockedSegment,oe=Um(x,Q.chunks.length,null,k.formatContext,Q.lastPushedText,!0);return Q.children.push(oe),Q.lastPushedText=!1,Ag(x,P,k.node,k.childIndex,k.blockedBoundary,oe,k.blockedPreamble,k.hoistableState,k.abortSet,k.keyPath,k.formatContext,k.context,k.treeContext,k.componentStack,k.isFallback,il,k.debugTask)}function Xa(x,k,P,Q){var oe=k.formatContext,de=k.context,Re=k.keyPath,Pe=k.treeContext,nt=k.componentStack,Ne=k.debugTask,Et=k.blockedSegment;if(Et===null)try{return ms(x,k,P,Q)}catch(Ft){if(Ys(),P=Ft===Gd?jt():Ft,typeof P==\"object\"&&P!==null){if(typeof P.then==\"function\"){Q=Cr(),x=rE(x,k,Q).ping,P.then(x,x),k.formatContext=oe,k.context=de,k.keyPath=Re,k.treeContext=Pe,k.componentStack=nt,k.debugTask=Ne,dr(de);return}if(P.message===\"Maximum call stack size exceeded\"){P=Cr(),P=rE(x,k,P),x.pingedTasks.push(P),k.formatContext=oe,k.context=de,k.keyPath=Re,k.treeContext=Pe,k.componentStack=nt,k.debugTask=Ne,dr(de);return}}}else{var At=Et.children.length,Rt=Et.chunks.length;try{return ms(x,k,P,Q)}catch(Ft){if(Ys(),Et.children.length=At,Et.chunks.length=Rt,P=Ft===Gd?jt():Ft,typeof P==\"object\"&&P!==null){if(typeof P.then==\"function\"){Q=Cr(),x=oE(x,k,Q).ping,P.then(x,x),k.formatContext=oe,k.context=de,k.keyPath=Re,k.treeContext=Pe,k.componentStack=nt,k.debugTask=Ne,dr(de);return}if(P.message===\"Maximum call stack size exceeded\"){P=Cr(),P=oE(x,k,P),x.pingedTasks.push(P),k.formatContext=oe,k.context=de,k.keyPath=Re,k.treeContext=Pe,k.componentStack=nt,k.debugTask=Ne,dr(de);return}}}}throw k.formatContext=oe,k.context=de,k.keyPath=Re,k.treeContext=Pe,dr(de),P}function zm(x){var k=x.blockedBoundary;x=x.blockedSegment,x!==null&&(x.status=3,qm(this,k,x))}function Qh(x,k,P,Q,oe,de,Re,Pe){for(var nt=0;nt<P.length;nt++){var Ne=P[nt];if(Ne.length===4)Qh(x,k,Ne[2],Ne[3],oe,de,Re,Pe);else{var Et=x;Ne=Ne[5];var At=oe,Rt=de,Ft=Re,lt=Pe,Kn=jd(Et,new Set,null,null);Kn.parentFlushed=!0,Kn.rootSegmentID=Ne,Kn.status=rs,Zh(Kn,Rt,At,Ft,lt),Kn.parentFlushed&&Et.clientRenderedBoundaries.push(Kn)}}if(P.length=0,Q!==null){if(k===null)throw Error(\"We should not have any resumable nodes in the shell. This is a bug in React.\");if(k.status!==rs&&(k.status=rs,Zh(k,de,oe,Re,Pe),k.parentFlushed&&x.clientRenderedBoundaries.push(k)),typeof Q==\"object\")for(var Sn in Q)delete Q[Sn]}}function wc(x,k,P){var Q=x.blockedBoundary,oe=x.blockedSegment;if(oe!==null){if(oe.status===6)return;oe.status=3}if(oe=Gh(x.componentStack),Q===null){if(k.status!==13&&k.status!==Os){if(Q=x.replay,Q===null){Qs(k,P,oe,null),zd(k,P,oe,null);return}Q.pendingTasks--,Q.pendingTasks===0&&0<Q.nodes.length&&(x=Qs(k,P,oe,null),Qh(k,null,Q.nodes,Q.slots,P,x,oe,!0)),k.pendingRootTasks--,k.pendingRootTasks===0&&$f(k)}}else Q.pendingTasks--,Q.status!==rs&&(Q.status=rs,x=Qs(k,P,oe,null),Q.status=rs,Zh(Q,x,P,oe,!0),jm(k,Q),Q.parentFlushed&&k.clientRenderedBoundaries.push(Q)),Q.fallbackAbortableTasks.forEach(function(de){return wc(de,k,P)}),Q.fallbackAbortableTasks.clear();k.allPendingTasks--,k.allPendingTasks===0&&Hm(k)}function Ig(x,k){try{var P=x.renderState,Q=P.onHeaders;if(Q){var oe=P.headers;if(oe){P.headers=null;var de=oe.preconnects;if(oe.fontPreloads&&(de&&(de+=\", \"),de+=oe.fontPreloads),oe.highImagePreloads&&(de&&(de+=\", \"),de+=oe.highImagePreloads),!k){var Re=P.styles.values(),Pe=Re.next();e:for(;0<oe.remainingCapacity&&!Pe.done;Pe=Re.next())for(var nt=Pe.value.sheets.values(),Ne=nt.next();0<oe.remainingCapacity&&!Ne.done;Ne=nt.next()){var Et=Ne.value,At=Et.props,Rt=At.href,Ft=Et.props,lt=le(Ft.href,\"style\",{crossOrigin:Ft.crossOrigin,integrity:Ft.integrity,nonce:Ft.nonce,type:Ft.type,fetchPriority:Ft.fetchPriority,referrerPolicy:Ft.referrerPolicy,media:Ft.media});if(0<=(oe.remainingCapacity-=lt.length+2))P.resets.style[Rt]=ta,de&&(de+=\", \"),de+=lt,P.resets.style[Rt]=typeof At.crossOrigin==\"string\"||typeof At.integrity==\"string\"?[At.crossOrigin,At.integrity]:ta;else break e}}Q(de?{Link:de}:{})}}}catch(Kn){Qs(x,Kn,{},null)}}function $f(x){x.trackedPostpones===null&&Ig(x,!0),x.trackedPostpones===null&&Jh(x),x.onShellError=Ud,x=x.onShellReady,x()}function Hm(x){Ig(x,x.trackedPostpones===null?!0:x.completedRootSegment===null||x.completedRootSegment.status!==sh),Jh(x),x=x.onAllReady,x()}function Kf(x,k){if(k.chunks.length===0&&k.children.length===1&&k.children[0].boundary===null&&k.children[0].id===-1){var P=k.children[0];P.id=k.id,P.parentFlushed=!0,P.status===Qo&&Kf(x,P)}else x.completedSegments.push(k)}function qm(x,k,P){if(k===null){if(P!==null&&P.parentFlushed){if(x.completedRootSegment!==null)throw Error(\"There can only be one root segment. This is a bug in React.\");x.completedRootSegment=P}x.pendingRootTasks--,x.pendingRootTasks===0&&$f(x)}else k.pendingTasks--,k.status!==rs&&(k.pendingTasks===0?(k.status===Vl&&(k.status=Qo),P!==null&&P.parentFlushed&&P.status===Qo&&Kf(k,P),k.parentFlushed&&x.completedBoundaries.push(k),k.status===Qo&&(k.fallbackAbortableTasks.forEach(zm,x),k.fallbackAbortableTasks.clear(),x.pendingRootTasks===0&&x.trackedPostpones===null&&k.contentPreamble!==null&&Jh(x))):P!==null&&P.parentFlushed&&P.status===Qo&&(Kf(k,P),k.completedSegments.length===1&&k.parentFlushed&&x.partialBoundaries.push(k)));x.allPendingTasks--,x.allPendingTasks===0&&Hm(x)}function Jc(x){if(x.status!==Os&&x.status!==13){var k=sl,P=ea.H;ea.H=ty;var Q=ea.A;ea.A=FE;var oe=ho;ho=x;var de=ea.getCurrentStack;ea.getCurrentStack=$h;var Re=f0;f0=x.resumableState;try{var Pe=x.pingedTasks,nt;for(nt=0;nt<Pe.length;nt++){var Ne=x,Et=Pe[nt],At=Et.blockedSegment;if(At===null){var Rt=void 0,Ft=Ne;if(Ne=Et,Ne.replay.pendingTasks!==0){dr(Ne.context),Rt=al,al=Ne;try{if(typeof Ne.replay.slots==\"number\"?Rg(Ft,Ne,Ne.replay.slots,Ne.node,Ne.childIndex):Ul(Ft,Ne),Ne.replay.pendingTasks===1&&0<Ne.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");Ne.replay.pendingTasks--,Ne.abortSet.delete(Ne),qm(Ft,Ne.blockedBoundary,null)}catch(S){Ys();var lt=S===Gd?jt():S;if(typeof lt==\"object\"&&lt!==null&&typeof lt.then==\"function\"){var Kn=Ne.ping;lt.then(Kn,Kn),Ne.thenableState=Cr()}else{Ne.replay.pendingTasks--,Ne.abortSet.delete(Ne);var Sn=Gh(Ne.componentStack),mn=void 0,un=Ft,Vi=Ne.blockedBoundary,cn=Ft.status===12?Ft.fatalError:lt,Tn=Sn,ro=Ne.replay.nodes,Oi=Ne.replay.slots;mn=Qs(un,cn,Tn,Ne.debugTask),Qh(un,Vi,ro,Oi,cn,mn,Tn,!1),Ft.pendingRootTasks--,Ft.pendingRootTasks===0&&$f(Ft),Ft.allPendingTasks--,Ft.allPendingTasks===0&&Hm(Ft)}}finally{al=Rt}}}else if(Ft=Rt=void 0,mn=Et,un=At,un.status===Vl){un.status=6,dr(mn.context),Ft=al,al=mn;var $i=un.children.length,ii=un.chunks.length;try{Ul(Ne,mn),Fn(un.chunks,Ne.renderState,un.lastPushedText,un.textEmbedded),mn.abortSet.delete(mn),un.status=Qo,qm(Ne,mn.blockedBoundary,un)}catch(S){Ys(),un.children.length=$i,un.chunks.length=ii;var Co=S===Gd?jt():Ne.status===12?Ne.fatalError:S;if(typeof Co==\"object\"&&Co!==null&&typeof Co.then==\"function\"){un.status=Vl,mn.thenableState=Cr();var _c=mn.ping;Co.then(_c,_c)}else{var Aa=Gh(mn.componentStack);mn.abortSet.delete(mn),un.status=4;var Er=mn.blockedBoundary,w=mn.debugTask;Rt=Qs(Ne,Co,Aa,w),Er===null?zd(Ne,Co,Aa,w):(Er.pendingTasks--,Er.status!==rs&&(Er.status=rs,Zh(Er,Rt,Co,Aa,!1),jm(Ne,Er),Er.parentFlushed&&Ne.clientRenderedBoundaries.push(Er),Ne.pendingRootTasks===0&&Ne.trackedPostpones===null&&Er.contentPreamble!==null&&Jh(Ne))),Ne.allPendingTasks--,Ne.allPendingTasks===0&&Hm(Ne)}}finally{al=Ft}}}Pe.splice(0,nt),x.destination!==null&&Ng(x,x.destination)}catch(S){Pe={},Qs(x,S,Pe,null),zd(x,S,Pe,null)}finally{f0=Re,ea.H=P,ea.A=Q,ea.getCurrentStack=de,P===ty&&dr(k),ho=oe}}}function va(x,k,P){k.preambleChildren.length&&P.push(k.preambleChildren);for(var Q=!1,oe=0;oe<k.children.length;oe++)Q=Og(x,k.children[oe],P)||Q;return Q}function Og(x,k,P){var Q=k.boundary;if(Q===null)return va(x,k,P);var oe=Q.contentPreamble,de=Q.fallbackPreamble;if(oe===null||de===null)return!1;switch(Q.status){case Qo:if(Ge(x.renderState,oe),k=Q.completedSegments[0],!k)throw Error(\"A previously unvisited boundary must have exactly one root segment. This is a bug in React.\");return va(x,k,P);case sh:if(x.trackedPostpones!==null)return!0;case rs:if(k.status===Qo)return Ge(x.renderState,de),va(x,k,P);default:return!0}}function Jh(x){if(x.completedRootSegment&&x.completedPreambleSegments===null){var k=[],P=Og(x,x.completedRootSegment,k),Q=x.renderState.preamble;(P===!1||Q.headChunks&&Q.bodyChunks)&&(x.completedPreambleSegments=k)}}function Wm(x,k,P,Q){switch(P.parentFlushed=!0,P.status){case Vl:P.id=x.nextSegmentId++;case sh:return Q=P.id,P.lastPushedText=!1,P.textEmbedded=!1,x=x.renderState,k.push(L2),k.push(x.placeholderPrefix),x=Q.toString(16),k.push(x),k.push(e7);case Qo:P.status=sy;var oe=!0,de=P.chunks,Re=0;P=P.children;for(var Pe=0;Pe<P.length;Pe++){for(oe=P[Pe];Re<oe.index;Re++)k.push(de[Re]);oe=Xh(x,k,oe,Q)}for(;Re<de.length-1;Re++)k.push(de[Re]);return Re<de.length&&(oe=k.push(de[Re])),oe;default:throw Error(\"Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.\")}}function Xh(x,k,P,Q){var oe=P.boundary;if(oe===null)return Wm(x,k,P,Q);if(oe.parentFlushed=!0,oe.status===rs){if(!x.renderState.generateStaticMarkup){var de=oe.errorDigest,Re=oe.errorMessage,Pe=oe.errorStack,nt=oe.errorComponentStack;k.push(ka),k.push(B2),de&&(k.push(zl),de=W(de),k.push(de),k.push(mi)),Re&&(k.push(dp),Re=W(Re),k.push(Re),k.push(mi)),Pe&&(k.push(Hl),Pe=W(Pe),k.push(Pe),k.push(mi)),nt&&(k.push(D2),nt=W(nt),k.push(nt),k.push(mi)),k.push(n0)}return Wm(x,k,P,Q),x.renderState.generateStaticMarkup?k=!0:((x=oe.fallbackPreamble)&&dt(k,x),k=k.push(Nr)),k}if(oe.status!==Qo)return oe.status===Vl&&(oe.rootSegmentID=x.nextSegmentId++),0<oe.completedSegments.length&&x.partialBoundaries.push(oe),Ct(k,x.renderState,oe.rootSegmentID),Q&&(oe=oe.fallbackState,oe.styles.forEach(hn,Q),oe.stylesheets.forEach(Dt,Q)),Wm(x,k,P,Q),k.push(Nr);if(oe.byteSize>x.progressiveChunkSize)return oe.rootSegmentID=x.nextSegmentId++,x.completedBoundaries.push(oe),Ct(k,x.renderState,oe.rootSegmentID),Wm(x,k,P,Q),k.push(Nr);if(Q&&(P=oe.contentState,P.styles.forEach(hn,Q),P.stylesheets.forEach(Dt,Q)),x.renderState.generateStaticMarkup||k.push(ra),P=oe.completedSegments,P.length!==1)throw Error(\"A previously unvisited boundary must have exactly one root segment. This is a bug in React.\");return Xh(x,k,P[0],Q),x.renderState.generateStaticMarkup?k=!0:((x=oe.contentPreamble)&&dt(k,x),k=k.push(Nr)),k}function Pg(x,k,P,Q){return Ze(k,x.renderState,P.parentFormatContext,P.id),Xh(x,k,P,Q),rn(k,P.parentFormatContext)}function Mg(x,k,P){for(var Q=P.completedSegments,oe=0;oe<Q.length;oe++)tb(x,k,P,Q[oe]);Q.length=0,Wt(k,P.contentState,x.renderState),Q=x.resumableState,x=x.renderState,oe=P.rootSegmentID,P=P.contentState;var de=x.stylesToHoist;return x.stylesToHoist=!1,k.push(x.startInlineScript),de?(Q.instructions&Zm)===Wd?(Q.instructions=Q.instructions|Jf|Zm,k.push(EE)):(Q.instructions&Jf)===Wd?(Q.instructions|=Jf,k.push(i0)):k.push(Sc):(Q.instructions&Zm)===Wd?(Q.instructions|=Zm,k.push(Gg)):k.push(W2),Q=oe.toString(16),k.push(x.boundaryPrefix),k.push(Q),k.push(V2),k.push(x.segmentPrefix),k.push(Q),de?(k.push(SE),vr(k,P)):k.push(Kk),P=k.push(kE),ht(k,x)&&P}function tb(x,k,P,Q){if(Q.status===sy)return!0;var oe=P.contentState,de=Q.id;if(de===-1){if((Q.id=P.rootSegmentID)===-1)throw Error(\"A root segment ID must have been assigned by now. This is a bug in React.\");return Pg(x,k,Q,oe)}return de===P.rootSegmentID?Pg(x,k,Q,oe):(Pg(x,k,Q,oe),P=x.resumableState,x=x.renderState,k.push(x.startInlineScript),(P.instructions&fE)===Wd?(P.instructions|=fE,k.push(o0)):k.push($k),k.push(x.segmentPrefix),de=de.toString(16),k.push(de),k.push(H2),k.push(x.placeholderPrefix),k.push(de),k=k.push(q2),k)}function Ng(x,k){try{if(!(0<x.pendingRootTasks)){var P,Q=x.completedRootSegment;if(Q!==null){if(Q.status===sh)return;var oe=x.completedPreambleSegments;if(oe===null)return;var de=x.renderState,Re=de.preamble,Pe=Re.htmlChunks,nt=Re.headChunks,Ne;if(Pe){for(Ne=0;Ne<Pe.length;Ne++)k.push(Pe[Ne]);if(nt)for(Ne=0;Ne<nt.length;Ne++)k.push(nt[Ne]);else{var Et=Me(\"head\");k.push(Et),k.push(oi)}}else if(nt)for(Ne=0;Ne<nt.length;Ne++)k.push(nt[Ne]);var At=de.charsetChunks;for(Ne=0;Ne<At.length;Ne++)k.push(At[Ne]);At.length=0,de.preconnects.forEach(zn,k),de.preconnects.clear();var Rt=de.viewportChunks;for(Ne=0;Ne<Rt.length;Ne++)k.push(Rt[Ne]);Rt.length=0,de.fontPreloads.forEach(zn,k),de.fontPreloads.clear(),de.highImagePreloads.forEach(zn,k),de.highImagePreloads.clear(),de.styles.forEach(br,k);var Ft=de.importMapChunks;for(Ne=0;Ne<Ft.length;Ne++)k.push(Ft[Ne]);Ft.length=0,de.bootstrapScripts.forEach(zn,k),de.scripts.forEach(zn,k),de.scripts.clear(),de.bulkPreloads.forEach(zn,k),de.bulkPreloads.clear();var lt=de.hoistableChunks;for(Ne=0;Ne<lt.length;Ne++)k.push(lt[Ne]);for(de=lt.length=0;de<oe.length;de++){var Kn=oe[de];for(Re=0;Re<Kn.length;Re++)Xh(x,k,Kn[Re],null)}var Sn=x.renderState.preamble,mn=Sn.headChunks;if(Sn.htmlChunks||mn){var un=wt(\"head\");k.push(un)}var Vi=Sn.bodyChunks;if(Vi)for(oe=0;oe<Vi.length;oe++)k.push(Vi[oe]);Xh(x,k,Q,null),x.completedRootSegment=null,ht(k,x.renderState)}var cn=x.renderState;Q=0;var Tn=cn.viewportChunks;for(Q=0;Q<Tn.length;Q++)k.push(Tn[Q]);Tn.length=0,cn.preconnects.forEach(zn,k),cn.preconnects.clear(),cn.fontPreloads.forEach(zn,k),cn.fontPreloads.clear(),cn.highImagePreloads.forEach(zn,k),cn.highImagePreloads.clear(),cn.styles.forEach(Pr,k),cn.scripts.forEach(zn,k),cn.scripts.clear(),cn.bulkPreloads.forEach(zn,k),cn.bulkPreloads.clear();var ro=cn.hoistableChunks;for(Q=0;Q<ro.length;Q++)k.push(ro[Q]);ro.length=0;var Oi=x.clientRenderedBoundaries;for(P=0;P<Oi.length;P++){var $i=Oi[P];cn=k;var ii=x.resumableState,Co=x.renderState,_c=$i.rootSegmentID,Aa=$i.errorDigest,Er=$i.errorMessage,w=$i.errorStack,S=$i.errorComponentStack;cn.push(Co.startInlineScript),(ii.instructions&nl)===Wd?(ii.instructions|=nl,cn.push($2)):cn.push(_E),cn.push(Co.boundaryPrefix);var M=_c.toString(16);if(cn.push(M),cn.push(K2),Aa||Er||w||S){cn.push(Zg);var Y=zt(Aa||\"\");cn.push(Y)}if(Er||w||S){cn.push(Zg);var re=zt(Er||\"\");cn.push(re)}if(w||S){cn.push(Zg);var ue=zt(w||\"\");cn.push(ue)}if(S){cn.push(Zg);var Ee=zt(S);cn.push(Ee)}var Ae=cn.push(G2);if(!Ae){x.destination=null,P++,Oi.splice(0,P);return}}Oi.splice(0,P);var Le=x.completedBoundaries;for(P=0;P<Le.length;P++)if(!Mg(x,k,Le[P])){x.destination=null,P++,Le.splice(0,P);return}Le.splice(0,P);var Ie=x.partialBoundaries;for(P=0;P<Ie.length;P++){e:{Oi=x,$i=k;var pt=Ie[P],ut=pt.completedSegments;for(Ae=0;Ae<ut.length;Ae++)if(!tb(Oi,$i,pt,ut[Ae])){Ae++,ut.splice(0,Ae);var _t=!1;break e}ut.splice(0,Ae),_t=Wt($i,pt.contentState,Oi.renderState)}if(!_t){x.destination=null,P++,Ie.splice(0,P);return}}Ie.splice(0,P);var bt=x.completedBoundaries;for(P=0;P<bt.length;P++)if(!Mg(x,k,bt[P])){x.destination=null,P++,bt.splice(0,P);return}bt.splice(0,P)}}finally{x.allPendingTasks===0&&x.pingedTasks.length===0&&x.clientRenderedBoundaries.length===0&&x.completedBoundaries.length===0&&(x.flushScheduled=!1,P=x.resumableState,P.hasBody&&(Ie=wt(\"body\"),k.push(Ie)),P.hasHtml&&(P=wt(\"html\"),k.push(P)),x.abortableTasks.size!==0&&console.error(\"There was still abortable task at the root when we closed. This is a bug in React.\"),x.status=Os,k.push(null),x.destination=null)}}function A2(x){x.flushScheduled=x.destination!==null,Jc(x),x.status===10&&(x.status=11),x.trackedPostpones===null&&Ig(x,x.pendingRootTasks===0)}function ep(x){if(x.flushScheduled===!1&&x.pingedTasks.length===0&&x.destination!==null){x.flushScheduled=!0;var k=x.destination;k?Ng(x,k):x.flushScheduled=!1}}function tp(x,k){if(x.status===13)x.status=Os,k.destroy(x.fatalError);else if(x.status!==Os&&x.destination===null){x.destination=k;try{Ng(x,k)}catch(P){k={},Qs(x,P,k,null),zd(x,P,k,null)}}}function nb(x,k){(x.status===11||x.status===10)&&(x.status=12);try{var P=x.abortableTasks;if(0<P.size){var Q=k===void 0?Error(\"The render was aborted by the server without a reason.\"):typeof k==\"object\"&&k!==null&&typeof k.then==\"function\"?Error(\"The render was aborted by the server with a promise.\"):k;x.fatalError=Q,P.forEach(function(oe){return wc(oe,x,Q)}),P.clear()}x.destination!==null&&Ng(x,x.destination)}catch(oe){k={},Qs(x,oe,k,null),zd(x,oe,k,null)}}function Lg(){}function rb(x,k,P,Q){var oe=!1,de=null,Re=\"\",Pe=!1;if(k=ie(k?k.identifierPrefix:void 0),x=X1(x,k,sn(k,P),ae(Ym,null,0),1/0,Lg,void 0,function(){Pe=!0},void 0,void 0,void 0),A2(x),nb(x,Q),tp(x,{push:function(nt){return nt!==null&&(Re+=nt),!0},destroy:function(nt){oe=!0,de=nt}}),oe&&de!==Q)throw de;if(!Pe)throw Error(\"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\");return Re}var iE=et(),Fk=I0(),Vm=Symbol.for(\"react.transitional.element\"),T2=Symbol.for(\"react.portal\"),np=Symbol.for(\"react.fragment\"),$m=Symbol.for(\"react.strict_mode\"),rp=Symbol.for(\"react.profiler\"),sE=Symbol.for(\"react.provider\"),Bg=Symbol.for(\"react.consumer\"),Dg=Symbol.for(\"react.context\"),Gf=Symbol.for(\"react.forward_ref\"),op=Symbol.for(\"react.suspense\"),Vu=Symbol.for(\"react.suspense_list\"),$u=Symbol.for(\"react.memo\"),Js=Symbol.for(\"react.lazy\"),Xc=Symbol.for(\"react.scope\"),Km=Symbol.for(\"react.activity\"),ip=Symbol.for(\"react.legacy_hidden\"),Fg=Symbol.for(\"react.memo_cache_sentinel\"),Rs=Symbol.for(\"react.view_transition\"),Ug=Symbol.iterator,el=Array.isArray,tl=new WeakMap,R2=new WeakMap,ob=Symbol.for(\"react.client.reference\"),Ii=Object.assign,Yr=Object.prototype.hasOwnProperty,XT=RegExp(\"^[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),ib={},wa={},aE=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \")),I2=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),jg={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},Zf={\"aria-current\":0,\"aria-description\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},Yf={},cE=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),sp=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),ec=!1,xa={accept:\"accept\",acceptcharset:\"acceptCharset\",\"accept-charset\":\"acceptCharset\",accesskey:\"accessKey\",action:\"action\",allowfullscreen:\"allowFullScreen\",alt:\"alt\",as:\"as\",async:\"async\",autocapitalize:\"autoCapitalize\",autocomplete:\"autoComplete\",autocorrect:\"autoCorrect\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",autosave:\"autoSave\",capture:\"capture\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",challenge:\"challenge\",charset:\"charSet\",checked:\"checked\",children:\"children\",cite:\"cite\",class:\"className\",classid:\"classID\",classname:\"className\",cols:\"cols\",colspan:\"colSpan\",content:\"content\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",controls:\"controls\",controlslist:\"controlsList\",coords:\"coords\",crossorigin:\"crossOrigin\",dangerouslysetinnerhtml:\"dangerouslySetInnerHTML\",data:\"data\",datetime:\"dateTime\",default:\"default\",defaultchecked:\"defaultChecked\",defaultvalue:\"defaultValue\",defer:\"defer\",dir:\"dir\",disabled:\"disabled\",disablepictureinpicture:\"disablePictureInPicture\",disableremoteplayback:\"disableRemotePlayback\",download:\"download\",draggable:\"draggable\",enctype:\"encType\",enterkeyhint:\"enterKeyHint\",fetchpriority:\"fetchPriority\",for:\"htmlFor\",form:\"form\",formmethod:\"formMethod\",formaction:\"formAction\",formenctype:\"formEncType\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",headers:\"headers\",height:\"height\",hidden:\"hidden\",high:\"high\",href:\"href\",hreflang:\"hrefLang\",htmlfor:\"htmlFor\",httpequiv:\"httpEquiv\",\"http-equiv\":\"httpEquiv\",icon:\"icon\",id:\"id\",imagesizes:\"imageSizes\",imagesrcset:\"imageSrcSet\",inert:\"inert\",innerhtml:\"innerHTML\",inputmode:\"inputMode\",integrity:\"integrity\",is:\"is\",itemid:\"itemID\",itemprop:\"itemProp\",itemref:\"itemRef\",itemscope:\"itemScope\",itemtype:\"itemType\",keyparams:\"keyParams\",keytype:\"keyType\",kind:\"kind\",label:\"label\",lang:\"lang\",list:\"list\",loop:\"loop\",low:\"low\",manifest:\"manifest\",marginwidth:\"marginWidth\",marginheight:\"marginHeight\",max:\"max\",maxlength:\"maxLength\",media:\"media\",mediagroup:\"mediaGroup\",method:\"method\",min:\"min\",minlength:\"minLength\",multiple:\"multiple\",muted:\"muted\",name:\"name\",nomodule:\"noModule\",nonce:\"nonce\",novalidate:\"noValidate\",open:\"open\",optimum:\"optimum\",pattern:\"pattern\",placeholder:\"placeholder\",playsinline:\"playsInline\",poster:\"poster\",preload:\"preload\",profile:\"profile\",radiogroup:\"radioGroup\",readonly:\"readOnly\",referrerpolicy:\"referrerPolicy\",rel:\"rel\",required:\"required\",reversed:\"reversed\",role:\"role\",rows:\"rows\",rowspan:\"rowSpan\",sandbox:\"sandbox\",scope:\"scope\",scoped:\"scoped\",scrolling:\"scrolling\",seamless:\"seamless\",selected:\"selected\",shape:\"shape\",size:\"size\",sizes:\"sizes\",span:\"span\",spellcheck:\"spellCheck\",src:\"src\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",start:\"start\",step:\"step\",style:\"style\",summary:\"summary\",tabindex:\"tabIndex\",target:\"target\",title:\"title\",type:\"type\",usemap:\"useMap\",value:\"value\",width:\"width\",wmode:\"wmode\",wrap:\"wrap\",about:\"about\",accentheight:\"accentHeight\",\"accent-height\":\"accentHeight\",accumulate:\"accumulate\",additive:\"additive\",alignmentbaseline:\"alignmentBaseline\",\"alignment-baseline\":\"alignmentBaseline\",allowreorder:\"allowReorder\",alphabetic:\"alphabetic\",amplitude:\"amplitude\",arabicform:\"arabicForm\",\"arabic-form\":\"arabicForm\",ascent:\"ascent\",attributename:\"attributeName\",attributetype:\"attributeType\",autoreverse:\"autoReverse\",azimuth:\"azimuth\",basefrequency:\"baseFrequency\",baselineshift:\"baselineShift\",\"baseline-shift\":\"baselineShift\",baseprofile:\"baseProfile\",bbox:\"bbox\",begin:\"begin\",bias:\"bias\",by:\"by\",calcmode:\"calcMode\",capheight:\"capHeight\",\"cap-height\":\"capHeight\",clip:\"clip\",clippath:\"clipPath\",\"clip-path\":\"clipPath\",clippathunits:\"clipPathUnits\",cliprule:\"clipRule\",\"clip-rule\":\"clipRule\",color:\"color\",colorinterpolation:\"colorInterpolation\",\"color-interpolation\":\"colorInterpolation\",colorinterpolationfilters:\"colorInterpolationFilters\",\"color-interpolation-filters\":\"colorInterpolationFilters\",colorprofile:\"colorProfile\",\"color-profile\":\"colorProfile\",colorrendering:\"colorRendering\",\"color-rendering\":\"colorRendering\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",cursor:\"cursor\",cx:\"cx\",cy:\"cy\",d:\"d\",datatype:\"datatype\",decelerate:\"decelerate\",descent:\"descent\",diffuseconstant:\"diffuseConstant\",direction:\"direction\",display:\"display\",divisor:\"divisor\",dominantbaseline:\"dominantBaseline\",\"dominant-baseline\":\"dominantBaseline\",dur:\"dur\",dx:\"dx\",dy:\"dy\",edgemode:\"edgeMode\",elevation:\"elevation\",enablebackground:\"enableBackground\",\"enable-background\":\"enableBackground\",end:\"end\",exponent:\"exponent\",externalresourcesrequired:\"externalResourcesRequired\",fill:\"fill\",fillopacity:\"fillOpacity\",\"fill-opacity\":\"fillOpacity\",fillrule:\"fillRule\",\"fill-rule\":\"fillRule\",filter:\"filter\",filterres:\"filterRes\",filterunits:\"filterUnits\",floodopacity:\"floodOpacity\",\"flood-opacity\":\"floodOpacity\",floodcolor:\"floodColor\",\"flood-color\":\"floodColor\",focusable:\"focusable\",fontfamily:\"fontFamily\",\"font-family\":\"fontFamily\",fontsize:\"fontSize\",\"font-size\":\"fontSize\",fontsizeadjust:\"fontSizeAdjust\",\"font-size-adjust\":\"fontSizeAdjust\",fontstretch:\"fontStretch\",\"font-stretch\":\"fontStretch\",fontstyle:\"fontStyle\",\"font-style\":\"fontStyle\",fontvariant:\"fontVariant\",\"font-variant\":\"fontVariant\",fontweight:\"fontWeight\",\"font-weight\":\"fontWeight\",format:\"format\",from:\"from\",fx:\"fx\",fy:\"fy\",g1:\"g1\",g2:\"g2\",glyphname:\"glyphName\",\"glyph-name\":\"glyphName\",glyphorientationhorizontal:\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\":\"glyphOrientationHorizontal\",glyphorientationvertical:\"glyphOrientationVertical\",\"glyph-orientation-vertical\":\"glyphOrientationVertical\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",hanging:\"hanging\",horizadvx:\"horizAdvX\",\"horiz-adv-x\":\"horizAdvX\",horizoriginx:\"horizOriginX\",\"horiz-origin-x\":\"horizOriginX\",ideographic:\"ideographic\",imagerendering:\"imageRendering\",\"image-rendering\":\"imageRendering\",in2:\"in2\",in:\"in\",inlist:\"inlist\",intercept:\"intercept\",k1:\"k1\",k2:\"k2\",k3:\"k3\",k4:\"k4\",k:\"k\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",kerning:\"kerning\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",letterspacing:\"letterSpacing\",\"letter-spacing\":\"letterSpacing\",lightingcolor:\"lightingColor\",\"lighting-color\":\"lightingColor\",limitingconeangle:\"limitingConeAngle\",local:\"local\",markerend:\"markerEnd\",\"marker-end\":\"markerEnd\",markerheight:\"markerHeight\",markermid:\"markerMid\",\"marker-mid\":\"markerMid\",markerstart:\"markerStart\",\"marker-start\":\"markerStart\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",mask:\"mask\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",mathematical:\"mathematical\",mode:\"mode\",numoctaves:\"numOctaves\",offset:\"offset\",opacity:\"opacity\",operator:\"operator\",order:\"order\",orient:\"orient\",orientation:\"orientation\",origin:\"origin\",overflow:\"overflow\",overlineposition:\"overlinePosition\",\"overline-position\":\"overlinePosition\",overlinethickness:\"overlineThickness\",\"overline-thickness\":\"overlineThickness\",paintorder:\"paintOrder\",\"paint-order\":\"paintOrder\",panose1:\"panose1\",\"panose-1\":\"panose1\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointerevents:\"pointerEvents\",\"pointer-events\":\"pointerEvents\",points:\"points\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",popover:\"popover\",popovertarget:\"popoverTarget\",popovertargetaction:\"popoverTargetAction\",prefix:\"prefix\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",property:\"property\",r:\"r\",radius:\"radius\",refx:\"refX\",refy:\"refY\",renderingintent:\"renderingIntent\",\"rendering-intent\":\"renderingIntent\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",resource:\"resource\",restart:\"restart\",result:\"result\",results:\"results\",rotate:\"rotate\",rx:\"rx\",ry:\"ry\",scale:\"scale\",security:\"security\",seed:\"seed\",shaperendering:\"shapeRendering\",\"shape-rendering\":\"shapeRendering\",slope:\"slope\",spacing:\"spacing\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",speed:\"speed\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stemh:\"stemh\",stemv:\"stemv\",stitchtiles:\"stitchTiles\",stopcolor:\"stopColor\",\"stop-color\":\"stopColor\",stopopacity:\"stopOpacity\",\"stop-opacity\":\"stopOpacity\",strikethroughposition:\"strikethroughPosition\",\"strikethrough-position\":\"strikethroughPosition\",strikethroughthickness:\"strikethroughThickness\",\"strikethrough-thickness\":\"strikethroughThickness\",string:\"string\",stroke:\"stroke\",strokedasharray:\"strokeDasharray\",\"stroke-dasharray\":\"strokeDasharray\",strokedashoffset:\"strokeDashoffset\",\"stroke-dashoffset\":\"strokeDashoffset\",strokelinecap:\"strokeLinecap\",\"stroke-linecap\":\"strokeLinecap\",strokelinejoin:\"strokeLinejoin\",\"stroke-linejoin\":\"strokeLinejoin\",strokemiterlimit:\"strokeMiterlimit\",\"stroke-miterlimit\":\"strokeMiterlimit\",strokewidth:\"strokeWidth\",\"stroke-width\":\"strokeWidth\",strokeopacity:\"strokeOpacity\",\"stroke-opacity\":\"strokeOpacity\",suppresscontenteditablewarning:\"suppressContentEditableWarning\",suppresshydrationwarning:\"suppressHydrationWarning\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textanchor:\"textAnchor\",\"text-anchor\":\"textAnchor\",textdecoration:\"textDecoration\",\"text-decoration\":\"textDecoration\",textlength:\"textLength\",textrendering:\"textRendering\",\"text-rendering\":\"textRendering\",to:\"to\",transform:\"transform\",transformorigin:\"transformOrigin\",\"transform-origin\":\"transformOrigin\",typeof:\"typeof\",u1:\"u1\",u2:\"u2\",underlineposition:\"underlinePosition\",\"underline-position\":\"underlinePosition\",underlinethickness:\"underlineThickness\",\"underline-thickness\":\"underlineThickness\",unicode:\"unicode\",unicodebidi:\"unicodeBidi\",\"unicode-bidi\":\"unicodeBidi\",unicoderange:\"unicodeRange\",\"unicode-range\":\"unicodeRange\",unitsperem:\"unitsPerEm\",\"units-per-em\":\"unitsPerEm\",unselectable:\"unselectable\",valphabetic:\"vAlphabetic\",\"v-alphabetic\":\"vAlphabetic\",values:\"values\",vectoreffect:\"vectorEffect\",\"vector-effect\":\"vectorEffect\",version:\"version\",vertadvy:\"vertAdvY\",\"vert-adv-y\":\"vertAdvY\",vertoriginx:\"vertOriginX\",\"vert-origin-x\":\"vertOriginX\",vertoriginy:\"vertOriginY\",\"vert-origin-y\":\"vertOriginY\",vhanging:\"vHanging\",\"v-hanging\":\"vHanging\",videographic:\"vIdeographic\",\"v-ideographic\":\"vIdeographic\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",visibility:\"visibility\",vmathematical:\"vMathematical\",\"v-mathematical\":\"vMathematical\",vocab:\"vocab\",widths:\"widths\",wordspacing:\"wordSpacing\",\"word-spacing\":\"wordSpacing\",writingmode:\"writingMode\",\"writing-mode\":\"writingMode\",x1:\"x1\",x2:\"x2\",x:\"x\",xchannelselector:\"xChannelSelector\",xheight:\"xHeight\",\"x-height\":\"xHeight\",xlinkactuate:\"xlinkActuate\",\"xlink:actuate\":\"xlinkActuate\",xlinkarcrole:\"xlinkArcrole\",\"xlink:arcrole\":\"xlinkArcrole\",xlinkhref:\"xlinkHref\",\"xlink:href\":\"xlinkHref\",xlinkrole:\"xlinkRole\",\"xlink:role\":\"xlinkRole\",xlinkshow:\"xlinkShow\",\"xlink:show\":\"xlinkShow\",xlinktitle:\"xlinkTitle\",\"xlink:title\":\"xlinkTitle\",xlinktype:\"xlinkType\",\"xlink:type\":\"xlinkType\",xmlbase:\"xmlBase\",\"xml:base\":\"xmlBase\",xmllang:\"xmlLang\",\"xml:lang\":\"xmlLang\",xmlns:\"xmlns\",\"xml:space\":\"xmlSpace\",xmlnsxlink:\"xmlnsXlink\",\"xmlns:xlink\":\"xmlnsXlink\",xmlspace:\"xmlSpace\",y1:\"y1\",y2:\"y2\",y:\"y\",ychannelselector:\"yChannelSelector\",z:\"z\",zoomandpan:\"zoomAndPan\"},Is={},uo=/^on./,Ar=/^on[^A-Z]/,lE=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),ap=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),uE=/^(?:webkit|moz|o)[A-Z]/,Uk=/^-ms-/,sb=/-(.)/g,zg=/;\\\\s*$/,cp={},jl={},dE=!1,ab=!1,Qf=/[\"\\'&<>]/,qd=/([A-Z])/g,Xs=/^ms-/,O2=/^[\\\\u0000-\\\\u001F ]*j[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*v[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*s[\\\\r\\\\n\\\\t]*c[\\\\r\\\\n\\\\t]*r[\\\\r\\\\n\\\\t]*i[\\\\r\\\\n\\\\t]*p[\\\\r\\\\n\\\\t]*t[\\\\r\\\\n\\\\t]*:/i,ea=iE.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,cb=Fk.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Gm=Object.freeze({pending:!1,data:null,method:null,action:null}),Hr=cb.d;cb.d={f:Hr.f,r:Hr.r,D:function(x){var k=ho||null;if(k){var P=k.resumableState,Q=k.renderState;if(typeof x==\"string\"&&x){if(!P.dnsResources.hasOwnProperty(x)){P.dnsResources[x]=ko,P=Q.headers;var oe,de;(de=P&&0<P.remainingCapacity)&&(de=(oe=\"<\"+Te(x)+\">; rel=dns-prefetch\",0<=(P.remainingCapacity-=oe.length+2))),de?(Q.resets.dns[x]=ko,P.preconnects&&(P.preconnects+=\", \"),P.preconnects+=oe):(oe=[],X(oe,{href:x,rel:\"dns-prefetch\"}),Q.preconnects.add(oe))}ep(k)}}else Hr.D(x)},C:function(x,k){var P=ho||null;if(P){var Q=P.resumableState,oe=P.renderState;if(typeof x==\"string\"&&x){var de=k===\"use-credentials\"?\"credentials\":typeof k==\"string\"?\"anonymous\":\"default\";if(!Q.connectResources[de].hasOwnProperty(x)){Q.connectResources[de][x]=ko,Q=oe.headers;var Re,Pe;if(Pe=Q&&0<Q.remainingCapacity){if(Pe=\"<\"+Te(x)+\">; rel=preconnect\",typeof k==\"string\"){var nt=tt(k,\"crossOrigin\");Pe+=\\'; crossorigin=\"\\'+nt+\\'\"\\'}Pe=(Re=Pe,0<=(Q.remainingCapacity-=Re.length+2))}Pe?(oe.resets.connect[de][x]=ko,Q.preconnects&&(Q.preconnects+=\", \"),Q.preconnects+=Re):(de=[],X(de,{rel:\"preconnect\",href:x,crossOrigin:k}),oe.preconnects.add(de))}ep(P)}}else Hr.C(x,k)},L:function(x,k,P){var Q=ho||null;if(Q){var oe=Q.resumableState,de=Q.renderState;if(k&&x){switch(k){case\"image\":if(P)var Re=P.imageSrcSet,Pe=P.imageSizes,nt=P.fetchPriority;var Ne=Re?Re+`\\n`+(Pe||\"\"):x;if(oe.imageResources.hasOwnProperty(Ne))return;oe.imageResources[Ne]=ta,oe=de.headers;var Et;oe&&0<oe.remainingCapacity&&typeof Re!=\"string\"&&nt===\"high\"&&(Et=le(x,k,P),0<=(oe.remainingCapacity-=Et.length+2))?(de.resets.image[Ne]=ta,oe.highImagePreloads&&(oe.highImagePreloads+=\", \"),oe.highImagePreloads+=Et):(oe=[],X(oe,Ii({rel:\"preload\",href:Re?void 0:x,as:k},P)),nt===\"high\"?de.highImagePreloads.add(oe):(de.bulkPreloads.add(oe),de.preloads.images.set(Ne,oe)));break;case\"style\":if(oe.styleResources.hasOwnProperty(x))return;Re=[],X(Re,Ii({rel:\"preload\",href:x,as:k},P)),oe.styleResources[x]=!P||typeof P.crossOrigin!=\"string\"&&typeof P.integrity!=\"string\"?ta:[P.crossOrigin,P.integrity],de.preloads.stylesheets.set(x,Re),de.bulkPreloads.add(Re);break;case\"script\":if(oe.scriptResources.hasOwnProperty(x))return;Re=[],de.preloads.scripts.set(x,Re),de.bulkPreloads.add(Re),X(Re,Ii({rel:\"preload\",href:x,as:k},P)),oe.scriptResources[x]=!P||typeof P.crossOrigin!=\"string\"&&typeof P.integrity!=\"string\"?ta:[P.crossOrigin,P.integrity];break;default:if(oe.unknownResources.hasOwnProperty(k)){if(Re=oe.unknownResources[k],Re.hasOwnProperty(x))return}else Re={},oe.unknownResources[k]=Re;if(Re[x]=ta,(oe=de.headers)&&0<oe.remainingCapacity&&k===\"font\"&&(Ne=le(x,k,P),0<=(oe.remainingCapacity-=Ne.length+2)))de.resets.font[x]=ta,oe.fontPreloads&&(oe.fontPreloads+=\", \"),oe.fontPreloads+=Ne;else switch(oe=[],x=Ii({rel:\"preload\",href:x,as:k},P),X(oe,x),k){case\"font\":de.fontPreloads.add(oe);break;default:de.bulkPreloads.add(oe)}}ep(Q)}}else Hr.L(x,k,P)},m:function(x,k){var P=ho||null;if(P){var Q=P.resumableState,oe=P.renderState;if(x){var de=k&&typeof k.as==\"string\"?k.as:\"script\";switch(de){case\"script\":if(Q.moduleScriptResources.hasOwnProperty(x))return;de=[],Q.moduleScriptResources[x]=!k||typeof k.crossOrigin!=\"string\"&&typeof k.integrity!=\"string\"?ta:[k.crossOrigin,k.integrity],oe.preloads.moduleScripts.set(x,de);break;default:if(Q.moduleUnknownResources.hasOwnProperty(de)){var Re=Q.unknownResources[de];if(Re.hasOwnProperty(x))return}else Re={},Q.moduleUnknownResources[de]=Re;de=[],Re[x]=ta}X(de,Ii({rel:\"modulepreload\",href:x},k)),oe.bulkPreloads.add(de),ep(P)}}else Hr.m(x,k)},X:function(x,k){var P=ho||null;if(P){var Q=P.resumableState,oe=P.renderState;if(x){var de=Q.scriptResources.hasOwnProperty(x)?Q.scriptResources[x]:void 0;de!==ko&&(Q.scriptResources[x]=ko,k=Ii({src:x,async:!0},k),de&&(de.length===2&&Ri(k,de),x=oe.preloads.scripts.get(x))&&(x.length=0),x=[],oe.scripts.add(x),ye(x,k),ep(P))}}else Hr.X(x,k)},S:function(x,k,P){var Q=ho||null;if(Q){var oe=Q.resumableState,de=Q.renderState;if(x){k=k||\"default\";var Re=de.styles.get(k),Pe=oe.styleResources.hasOwnProperty(x)?oe.styleResources[x]:void 0;Pe!==ko&&(oe.styleResources[x]=ko,Re||(Re={precedence:W(k),rules:[],hrefs:[],sheets:new Map},de.styles.set(k,Re)),k={state:a0,props:Ii({rel:\"stylesheet\",href:x,\"data-precedence\":k},P)},Pe&&(Pe.length===2&&Ri(k.props,Pe),(de=de.preloads.stylesheets.get(x))&&0<de.length?de.length=0:k.state=gb),Re.sheets.set(x,k),ep(Q))}}else Hr.S(x,k,P)},M:function(x,k){var P=ho||null;if(P){var Q=P.resumableState,oe=P.renderState;if(x){var de=Q.moduleScriptResources.hasOwnProperty(x)?Q.moduleScriptResources[x]:void 0;de!==ko&&(Q.moduleScriptResources[x]=ko,k=Ii({src:x,type:\"module\",async:!0},k),de&&(de.length===2&&Ri(k,de),x=oe.preloads.moduleScripts.get(x))&&(x.length=0),x=[],oe.scripts.add(x),ye(x,k),ep(P))}}else Hr.M(x,k)}};var Wd=0,fE=1,Zm=2,nl=4,Jf=8,ko=null,ta=[];Object.freeze(ta);var lb=/(<\\\\/|<)(s)(cript)/gi,P2={},M2=0,Ym=0,Lo=1,pi=2,Qm=3,na=4,Ku=5,ub=6,lp=7,Jm=8,Hg=9,ns=new Map,xc=\\' style=\"\\',db=\":\",hE=\";\",Ea=\" \",rl=\\'=\"\\',Sa=\\'\"\\',qg=\\'=\"\"\\',Vd=W(\"javascript:throw new Error(\\'React form unexpectedly submitted.\\')\"),oi=\">\",Xf=\"/>\",fb=!1,Wg=!1,Xm=!1,N2=!1,e0=!1,t0=!1,tc=!1,eh=!1,ol=!1,In=!1,gt=!1,up=`addEventListener(\"submit\",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute(\"formAction\");null!=f&&(e=f,b=null)}\"javascript:throw new Error(\\'React form unexpectedly submitted.\\')\"===e&&(a.preventDefault(),b?(a=document.createElement(\"input\"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`,Vg=/(<\\\\/|<)(s)(tyle)/gi,Yo=`\\n`,Gu=/^[a-zA-Z][a-zA-Z:_\\\\.\\\\-\\\\d]*$/,hb=new Map,pE=new Map,L2=\\'<template id=\"\\',e7=\\'\"></template>\\',ra=\"<!--$-->\",Ec=\\'<!--$?--><template id=\"\\',nc=\\'\"></template>\\',ka=\"<!--$!-->\",Nr=\"<!--/$-->\",B2=\"<template\",mi=\\'\"\\',zl=\\' data-dgst=\"\\',dp=\\' data-msg=\"\\',Hl=\\' data-stck=\"\\',D2=\\' data-cstck=\"\\',n0=\"></template>\",F2=\"<!--\",$g=\"-->\",U2=\\'<div hidden id=\"\\',r0=\\'\">\\',mE=\"</div>\",pb=\\'<svg aria-hidden=\"true\" style=\"display:none\" id=\"\\',mb=\\'\">\\',j2=\"</svg>\",jk=\\'<math aria-hidden=\"true\" style=\"display:none\" id=\"\\',gE=\\'\">\\',yE=\"</math>\",bE=\\'<table hidden id=\"\\',z2=\\'\">\\',zk=\"</table>\",vE=\\'<table hidden><tbody id=\"\\',t7=\\'\">\\',wE=\"</tbody></table>\",Hk=\\'<table hidden><tr id=\"\\',qk=\\'\">\\',xE=\"</tr></table>\",Wk=\\'<table hidden><colgroup id=\"\\',Vk=\\'\">\\',Kg=\"</colgroup></table>\",o0=\\'$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"\\',$k=\\'$RS(\"\\',H2=\\'\",\"\\',q2=\\'\")<\\\\/script>\\',Gg=\\'$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data=\"$!\",a.setAttribute(\"data-dgst\",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if(\"/$\"===d)if(0===f)break;else f--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data=\"$\"}b._reactRetry&&b._reactRetry()}};$RC(\"\\',W2=\\'$RC(\"\\',EE=`$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data=\"$!\",a.setAttribute(\"data-dgst\",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if(\"/$\"===d)if(0===f)break;else f--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data=\"$\"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),x=[],k=0;b=h[k++];)\"not all\"===b.getAttribute(\"media\")?x.push(b):(\"LINK\"===b.tagName&&p.set(b.getAttribute(\"href\"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement(\"link\");a.href=\\nd;a.rel=\"stylesheet\";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute(\"media\");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute(\"data-precedence\");a.removeAttribute(\"media\")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\\nt,u,\"\"),w.bind(null,t,u,\"Resource failed to load\"))};$RR(\"`,i0=`$RM=new Map;\\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),x=[],k=0;b=h[k++];)\"not all\"===b.getAttribute(\"media\")?x.push(b):(\"LINK\"===b.tagName&&p.set(b.getAttribute(\"href\"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement(\"link\");a.href=\\nd;a.rel=\"stylesheet\";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute(\"media\");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute(\"data-precedence\");a.removeAttribute(\"media\")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\\nt,u,\"\"),w.bind(null,t,u,\"Resource failed to load\"))};$RR(\"`,Sc=\\'$RR(\"\\',V2=\\'\",\"\\',SE=\\'\",\\',Kk=\\'\"\\',kE=\")<\\\\/script>\",$2=\\'$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX(\"\\',_E=\\'$RX(\"\\',K2=\\'\"\\',Zg=\",\",G2=\")<\\\\/script>\",CE=/[<\\\\u2028\\\\u2029]/g,Gk=/[&><\\\\u2028\\\\u2029]/g,Zk=\\'<style media=\"not all\" data-precedence=\"\\',AE=\\'\" data-href=\"\\',Yk=\\'\">\\',Qk=\"</style>\",Yg=!1,Z2=!0,th=[],TE=\\'<style data-precedence=\"\\',Jk=\\'\" data-href=\"\\',RE=\" \",s0=\\'\">\\',IE=\"</style>\",Y2=\"[\",Xk=\",[\",OE=\",\",Q2=\"]\",a0=0,gb=1,Qg=2,PE=3,e_=/[<>\\\\r\\\\n]/g,oa=/[\"\\';,\\\\r\\\\n]/g,J2=\"\",X2=Function.prototype.bind,yb=Symbol.for(\"react.client.reference\"),il={};Object.freeze(il);var c0={},sl=null,ME={},nh={},NE=new Set,rh=new Set,$d=new Set,bb=new Set,ew=new Set,l0=new Set,vb=new Set,Kd=new Set,fp=new Set,LE={enqueueSetState:function(x,k,P){var Q=x._reactInternals;Q.queue===null?vn(x,\"setState\"):(Q.queue.push(k),P!=null&&Bl(P))},enqueueReplaceState:function(x,k,P){x=x._reactInternals,x.replace=!0,x.queue=[k],P!=null&&Bl(P)},enqueueForceUpdate:function(x,k){x._reactInternals.queue===null?vn(x,\"forceUpdate\"):k!=null&&Bl(k)}},BE={id:1,overflow:\"\"},wb=Math.clz32?Math.clz32:Dd,tw=Math.log,DE=Math.LN2,Gd=Error(\"Suspense Exception: This is not a real error! It\\'s an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\\\n\\\\nTo handle async errors, wrap your component in an error boundary, or call the promise\\'s `.catch` method and pass the result to `use`.\"),hp=null,xb=typeof Object.is==\"function\"?Object.is:xr,Zu=null,Wi=null,Jg=null,Eb=null,Sb=null,_o=null,Xg=!1,u0=!1,_a=0,oh=0,ql=-1,ey=0,ih=null,Yu=null,d0=0,Wl=!1,pp,ty={readContext:Zc,use:function(x){if(x!==null&&typeof x==\"object\"){if(typeof x.then==\"function\")return ya(x);if(x.$$typeof===Dg)return Zc(x)}throw Error(\"An unsupported type was passed to use(): \"+String(x))},useContext:function(x){return pp=\"useContext\",En(),x._currentValue2},useMemo:ts,useReducer:qu,useRef:function(x){Zu=En(),_o=Zr();var k=_o.memoizedState;return k===null?(x={current:x},Object.seal(x),_o.memoizedState=x):k},useState:function(x){return pp=\"useState\",qu(Zo,x)},useInsertionEffect:Ja,useLayoutEffect:Ja,useCallback:function(x,k){return ts(function(){return x},k)},useImperativeHandle:Ja,useEffect:Ja,useDebugValue:Ja,useDeferredValue:function(x,k){return En(),k!==void 0?k:x},useTransition:function(){return En(),[!1,Yc]},useId:function(){var x=Wi.treeContext,k=x.overflow;x=x.id,x=(x&~(1<<32-wb(x)-1)).toString(32)+k;var P=f0;if(P===null)throw Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component.\");return k=_a++,x=\"\\\\xAB\"+P.idPrefix+\"R\"+x,0<k&&(x+=\"H\"+k.toString(32)),x+\"\\\\xBB\"},useSyncExternalStore:function(x,k,P){if(P===void 0)throw Error(\"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\");return P()},useOptimistic:function(x){return En(),[x,Ya]},useActionState:Qa,useFormState:Qa,useHostTransitionStatus:function(){return En(),Gm},useMemoCache:function(x){for(var k=Array(x),P=0;P<x;P++)k[P]=Fg;return k},useCacheRefresh:function(){return Dl}},f0=null,al=null,FE={getCacheForType:function(){throw Error(\"Not implemented.\")},getOwner:function(){return al===null?null:al.componentStack}},mp=0,nw,Zd,h0,t_,rw,Ca,ny;Fl.__reactDisabledLog=!0;var ry,kc,fo=!1,kb=new(typeof WeakMap==\"function\"?WeakMap:Map),ow={\"react-stack-bottom-frame\":function(x,k,P){return x(k,P)}},_b=ow[\"react-stack-bottom-frame\"].bind(ow),fr={\"react-stack-bottom-frame\":function(x){return x.render()}},oy=fr[\"react-stack-bottom-frame\"].bind(fr),p0={\"react-stack-bottom-frame\":function(x){var k=x._init;return k(x._payload)}},Yd=p0[\"react-stack-bottom-frame\"].bind(p0),Qu=0;if(typeof performance==\"object\"&&typeof performance.now==\"function\")var iy=performance,m0=function(){return iy.now()};else{var g0=Date;m0=function(){return g0.now()}}var rs=4,Vl=0,Qo=1,sy=2,sh=5,Os=14,ho=null,n_={},y0={},Cb={},iw={},Ab=!1,Tb=!1,ay=!1;zV.renderToStaticMarkup=function(x,k){return rb(x,k,!0,\\'The server used \"renderToStaticMarkup\" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server\\')},zV.renderToString=function(x,k){return rb(x,k,!1,\\'The server used \"renderToString\" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server\\')},zV.version=\"19.1.0\"})()});var CMe=be(HV=>{\"use strict\";p();(function(){function t(w,S,M,Y){return\"\"+S+(M===\"s\"?\"\\\\\\\\73 \":\"\\\\\\\\53 \")+Y}function e(w,S,M,Y){return\"\"+S+(M===\"s\"?\"\\\\\\\\u0073\":\"\\\\\\\\u0053\")+Y}function n(w){return Object.prototype.toString.call(w).replace(/^\\\\[object (.*)\\\\]$/,function(S,M){return M})}function r(w){var S=JSON.stringify(w);return\\'\"\\'+w+\\'\"\\'===S?w:S}function o(w){switch(typeof w){case\"string\":return JSON.stringify(10>=w.length?w:w.slice(0,10)+\"...\");case\"object\":return wa(w)?\"[...]\":w!==null&&w.$$typeof===jg?\"client\":(w=n(w),w===\"Object\"?\"{...}\":w);case\"function\":return w.$$typeof===jg?\"client\":(w=w.displayName||w.name)?\"function \"+w:\"function\";default:return String(w)}}function i(w){if(typeof w==\"string\")return w;switch(w){case Rs:return\"Suspense\";case Ug:return\"SuspenseList\"}if(typeof w==\"object\")switch(w.$$typeof){case Fg:return i(w.render);case el:return i(w.type);case tl:var S=w._payload;w=w._init;try{return i(w(S))}catch{}}return\"\"}function a(w,S){var M=n(w);if(M!==\"Object\"&&M!==\"Array\")return M;var Y=-1,re=0;if(wa(w))if(I2.has(w)){var ue=I2.get(w);M=\"<\"+i(ue)+\">\";for(var Ee=0;Ee<w.length;Ee++){var Ae=w[Ee];Ae=typeof Ae==\"string\"?Ae:typeof Ae==\"object\"&&Ae!==null?\"{\"+a(Ae)+\"}\":\"{\"+o(Ae)+\"}\",\"\"+Ee===S?(Y=M.length,re=Ae.length,M+=Ae):M=15>Ae.length&&40>M.length+Ae.length?M+Ae:M+\"{...}\"}M+=\"</\"+i(ue)+\">\"}else{for(M=\"[\",ue=0;ue<w.length;ue++)0<ue&&(M+=\", \"),Ee=w[ue],Ee=typeof Ee==\"object\"&&Ee!==null?a(Ee):o(Ee),\"\"+ue===S?(Y=M.length,re=Ee.length,M+=Ee):M=10>Ee.length&&40>M.length+Ee.length?M+Ee:M+\"...\";M+=\"]\"}else if(w.$$typeof===Gf)M=\"<\"+i(w.type)+\"/>\";else{if(w.$$typeof===jg)return\"client\";if(aE.has(w)){for(M=aE.get(w),M=\"<\"+(i(M)||\"...\"),ue=Object.keys(w),Ee=0;Ee<ue.length;Ee++){M+=\" \",Ae=ue[Ee],M+=r(Ae)+\"=\";var Le=w[Ae],Ie=Ae===S&&typeof Le==\"object\"&&Le!==null?a(Le):o(Le);typeof Le!=\"string\"&&(Ie=\"{\"+Ie+\"}\"),Ae===S?(Y=M.length,re=Ie.length,M+=Ie):M=10>Ie.length&&40>M.length+Ie.length?M+Ie:M+\"...\"}M+=\">\"}else{for(M=\"{\",ue=Object.keys(w),Ee=0;Ee<ue.length;Ee++)0<Ee&&(M+=\", \"),Ae=ue[Ee],M+=r(Ae)+\": \",Le=w[Ae],Le=typeof Le==\"object\"&&Le!==null?a(Le):o(Le),Ae===S?(Y=M.length,re=Le.length,M+=Le):M=10>Le.length&&40>M.length+Le.length?M+Le:M+\"...\";M+=\"}\"}}return S===void 0?M:-1<Y&&0<re?(w=\" \".repeat(Y)+\"^\".repeat(re),`\\n  `+M+`\\n  `+w):`\\n  `+M}function c(w,S){var M=w.length&3,Y=w.length-M,re=S;for(S=0;S<Y;){var ue=w.charCodeAt(S)&255|(w.charCodeAt(++S)&255)<<8|(w.charCodeAt(++S)&255)<<16|(w.charCodeAt(++S)&255)<<24;++S,ue=3432918353*(ue&65535)+((3432918353*(ue>>>16)&65535)<<16)&4294967295,ue=ue<<15|ue>>>17,ue=461845907*(ue&65535)+((461845907*(ue>>>16)&65535)<<16)&4294967295,re^=ue,re=re<<13|re>>>19,re=5*(re&65535)+((5*(re>>>16)&65535)<<16)&4294967295,re=(re&65535)+27492+(((re>>>16)+58964&65535)<<16)}switch(ue=0,M){case 3:ue^=(w.charCodeAt(S+2)&255)<<16;case 2:ue^=(w.charCodeAt(S+1)&255)<<8;case 1:ue^=w.charCodeAt(S)&255,ue=3432918353*(ue&65535)+((3432918353*(ue>>>16)&65535)<<16)&4294967295,ue=ue<<15|ue>>>17,re^=461845907*(ue&65535)+((461845907*(ue>>>16)&65535)<<16)&4294967295}return re^=w.length,re^=re>>>16,re=2246822507*(re&65535)+((2246822507*(re>>>16)&65535)<<16)&4294967295,re^=re>>>13,re=3266489909*(re&65535)+((3266489909*(re>>>16)&65535)<<16)&4294967295,(re^re>>>16)>>>0}function u(w){Yf.push(w),Zf.port2.postMessage(null)}function d(w){setTimeout(function(){throw w})}function h(w,S){if(S.byteLength!==0)if(2048<S.byteLength)0<xa&&(w.enqueue(new Uint8Array(ec.buffer,0,xa)),ec=new Uint8Array(2048),xa=0),w.enqueue(S);else{var M=ec.length-xa;M<S.byteLength&&(M===0?w.enqueue(ec):(ec.set(S.subarray(0,M),xa),w.enqueue(ec),S=S.subarray(M)),ec=new Uint8Array(2048),xa=0),ec.set(S,xa),xa+=S.byteLength}}function m(w,S){return h(w,S),!0}function g(w){ec&&0<xa&&(w.enqueue(new Uint8Array(ec.buffer,0,xa)),ec=null,xa=0)}function b(w){return Is.encode(w)}function E(w){return w=Is.encode(w),2048<w.byteLength&&console.error(\"precomputed chunks must be smaller than the view size configured for this host. This is a bug in React.\"),w}function C(w,S){typeof w.error==\"function\"?w.error(S):w.close()}function T(w){return typeof Symbol==\"function\"&&Symbol.toStringTag&&w[Symbol.toStringTag]||w.constructor.name||\"Object\"}function R(w){try{return L(w),!1}catch{return!0}}function L(w){return\"\"+w}function D(w,S){if(R(w))return console.error(\"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",S,T(w)),L(w)}function G(w,S){if(R(w))return console.error(\"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",S,T(w)),L(w)}function W(w){if(R(w))return console.error(\"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",T(w)),L(w)}function J(w){return Ar.call(uE,w)?!0:Ar.call(ap,w)?!1:lE.test(w)?uE[w]=!0:(ap[w]=!0,console.error(\"Invalid attribute name: `%s`\",w),!1)}function ne(w,S){zg[S.type]||S.onChange||S.onInput||S.readOnly||S.disabled||S.value==null||console.error(w===\"select\"?\"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`.\":\"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`.\"),S.onChange||S.readOnly||S.disabled||S.checked==null||console.error(\"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`.\")}function ie(w,S){if(Ar.call(jl,S)&&jl[S])return!0;if(ab.test(S)){if(w=\"aria-\"+S.slice(4).toLowerCase(),w=cp.hasOwnProperty(w)?w:null,w==null)return console.error(\"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",S),jl[S]=!0;if(S!==w)return console.error(\"Invalid ARIA attribute `%s`. Did you mean `%s`?\",S,w),jl[S]=!0}if(dE.test(S)){if(w=S.toLowerCase(),w=cp.hasOwnProperty(w)?w:null,w==null)return jl[S]=!0,!1;S!==w&&(console.error(\"Unknown ARIA attribute `%s`. Did you mean `%s`?\",S,w),jl[S]=!0)}return!0}function Z(w,S){var M=[],Y;for(Y in S)ie(w,Y)||M.push(Y);S=M.map(function(re){return\"`\"+re+\"`\"}).join(\", \"),M.length===1?console.error(\"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",S,w):1<M.length&&console.error(\"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",S,w)}function ae(w,S,M,Y){if(Ar.call(Xs,S)&&Xs[S])return!0;var re=S.toLowerCase();if(re===\"onfocusin\"||re===\"onfocusout\")return console.error(\"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.\"),Xs[S]=!0;if(typeof M==\"function\"&&(w===\"form\"&&S===\"action\"||w===\"input\"&&S===\"formAction\"||w===\"button\"&&S===\"formAction\"))return!0;if(Y!=null){if(w=Y.possibleRegistrationNames,Y.registrationNameDependencies.hasOwnProperty(S))return!0;if(Y=w.hasOwnProperty(re)?w[re]:null,Y!=null)return console.error(\"Invalid event handler property `%s`. Did you mean `%s`?\",S,Y),Xs[S]=!0;if(O2.test(S))return console.error(\"Unknown event handler property `%s`. It will be ignored.\",S),Xs[S]=!0}else if(O2.test(S))return ea.test(S)&&console.error(\"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",S),Xs[S]=!0;if(cb.test(S)||Gm.test(S))return!0;if(re===\"innerhtml\")return console.error(\"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"),Xs[S]=!0;if(re===\"aria\")return console.error(\"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"),Xs[S]=!0;if(re===\"is\"&&M!==null&&M!==void 0&&typeof M!=\"string\")return console.error(\"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",typeof M),Xs[S]=!0;if(typeof M==\"number\"&&isNaN(M))return console.error(\"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",S),Xs[S]=!0;if(qd.hasOwnProperty(re)){if(re=qd[re],re!==S)return console.error(\"Invalid DOM property `%s`. Did you mean `%s`?\",S,re),Xs[S]=!0}else if(S!==re)return console.error(\"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.\",S,re),Xs[S]=!0;switch(S){case\"dangerouslySetInnerHTML\":case\"children\":case\"style\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":return!0;case\"innerText\":case\"textContent\":return!0}switch(typeof M){case\"boolean\":switch(S){case\"autoFocus\":case\"checked\":case\"multiple\":case\"muted\":case\"selected\":case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"capture\":case\"download\":case\"inert\":return!0;default:return re=S.toLowerCase().slice(0,5),re===\"data-\"||re===\"aria-\"?!0:(M?console.error(\\'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()}.\\',M,S,S,M,S):console.error(\\'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.\\',M,S,S,M,S,S,S),Xs[S]=!0)}case\"function\":case\"symbol\":return Xs[S]=!0,!1;case\"string\":if(M===\"false\"||M===\"true\"){switch(S){case\"checked\":case\"selected\":case\"multiple\":case\"muted\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":case\"inert\":break;default:return!0}console.error(\"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",M,S,M===\"false\"?\"The browser will interpret it as a truthy value.\":\\'Although this works, it will not work as expected if you pass the string \"false\".\\',S,M),Xs[S]=!0}}return!0}function V(w,S,M){var Y=[],re;for(re in S)ae(w,re,S[re],M)||Y.push(re);S=Y.map(function(ue){return\"`\"+ue+\"`\"}).join(\", \"),Y.length===1?console.error(\"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 \",S,w):1<Y.length&&console.error(\"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 \",S,w)}function $(w){return w.replace(fE,function(S,M){return M.toUpperCase()})}function F(w){if(typeof w==\"boolean\"||typeof w==\"number\"||typeof w==\"bigint\")return\"\"+w;W(w),w=\"\"+w;var S=lb.exec(w);if(S){var M=\"\",Y,re=0;for(Y=S.index;Y<w.length;Y++){switch(w.charCodeAt(Y)){case 34:S=\"&quot;\";break;case 38:S=\"&amp;\";break;case 39:S=\"&#x27;\";break;case 60:S=\"&lt;\";break;case 62:S=\"&gt;\";break;default:continue}re!==Y&&(M+=w.slice(re,Y)),re=Y+1,M+=S}w=re!==Y?M+w.slice(re,Y):M}return w}function _(w){return Ym.test(\"\"+w)?\"javascript:throw new Error(\\'React has blocked a javascript: URL as a security precaution.\\')\":w}function O(w){return W(w),(\"\"+w).replace(Xf,e)}function z(w,S,M,Y,re,ue){var Ee=S===void 0?db:E(\\'<script nonce=\"\\'+F(S)+\\'\">\\'),Ae=w.idPrefix;M=[];var Le=w.bootstrapScriptContent,Ie=w.bootstrapScripts,pt=w.bootstrapModules;if(Le!==void 0&&M.push(Ee,b(O(Le)),hE),Le=[],Y!==void 0&&(Le.push(fb),Le.push(b(O(JSON.stringify(Y)))),Le.push(Wg)),re&&typeof ue==\"number\"&&0>=ue&&console.error(\"React expected a positive non-zero `maxHeadersLength` option but found %s instead. When using the `onHeaders` option you may supply an optional `maxHeadersLength` option as well however, when setting this value to zero or less no headers will be captured.\",ue===0?\"zero\":ue),Y=re?{preconnects:\"\",fontPreloads:\"\",highImagePreloads:\"\",remainingCapacity:2+(typeof ue==\"number\"?ue:2e3)}:null,re={placeholderPrefix:E(Ae+\"P:\"),segmentPrefix:E(Ae+\"S:\"),boundaryPrefix:E(Ae+\"B:\"),startInlineScript:Ee,preamble:B(),externalRuntimeScript:null,bootstrapChunks:M,importMapChunks:Le,onHeaders:re,headers:Y,resets:{font:{},dns:{},connect:{default:{},anonymous:{},credentials:{}},image:{},style:{}},charsetChunks:[],viewportChunks:[],hoistableChunks:[],preconnects:new Set,fontPreloads:new Set,highImagePreloads:new Set,styles:new Map,bootstrapScripts:new Set,scripts:new Set,bulkPreloads:new Set,preloads:{images:new Map,stylesheets:new Map,scripts:new Map,moduleScripts:new Map},nonce:S,hoistableState:null,stylesToHoist:!1},Ie!==void 0)for(Y=0;Y<Ie.length;Y++){ue=Ie[Y],Le=Ae=void 0;var ut={rel:\"preload\",as:\"script\",fetchPriority:\"low\",nonce:S};typeof ue==\"string\"?ut.href=Ee=ue:(ut.href=Ee=ue.src,ut.integrity=Le=typeof ue.integrity==\"string\"?ue.integrity:void 0,ut.crossOrigin=Ae=typeof ue==\"string\"||ue.crossOrigin==null?void 0:ue.crossOrigin===\"use-credentials\"?\"use-credentials\":\"\"),Fn(w,re,Ee,ut),M.push(Ea,b(F(Ee))),S&&M.push(Sa,b(F(S))),typeof Le==\"string\"&&M.push(qg,b(F(Le))),typeof Ae==\"string\"&&M.push(Vd,b(F(Ae))),M.push(oi)}if(pt!==void 0)for(Ie=0;Ie<pt.length;Ie++)Y=pt[Ie],Ae=Ee=void 0,Le={rel:\"modulepreload\",fetchPriority:\"low\",nonce:S},typeof Y==\"string\"?Le.href=ue=Y:(Le.href=ue=Y.src,Le.integrity=Ae=typeof Y.integrity==\"string\"?Y.integrity:void 0,Le.crossOrigin=Ee=typeof Y==\"string\"||Y.crossOrigin==null?void 0:Y.crossOrigin===\"use-credentials\"?\"use-credentials\":\"\"),Fn(w,re,ue,Le),M.push(rl,b(F(ue))),S&&M.push(Sa,b(F(S))),typeof Ae==\"string\"&&M.push(qg,b(F(Ae))),typeof Ee==\"string\"&&M.push(Vd,b(F(Ee))),M.push(oi);return re}function N(w,S,M,Y,re){return{idPrefix:w===void 0?\"\":w,nextFormID:0,streamingFormat:0,bootstrapScriptContent:M,bootstrapScripts:Y,bootstrapModules:re,instructions:Ku,hasBody:!1,hasHtml:!1,unknownResources:{},dnsResources:{},connectResources:{default:{},anonymous:{},credentials:{}},imageResources:{},styleResources:{},scriptResources:{},moduleUnknownResources:{},moduleScriptResources:{}}}function B(){return{htmlChunks:null,headChunks:null,bodyChunks:null,contribution:N2}}function j(w,S,M){return{insertionMode:w,selectedValue:S,tagScope:M}}function q(w){return j(w===\"http://www.w3.org/2000/svg\"?ol:w===\"http://www.w3.org/1998/Math/MathML\"?In:e0,null,0)}function H(w,S,M){switch(S){case\"noscript\":return j(tc,null,w.tagScope|1);case\"select\":return j(tc,M.value!=null?M.value:M.defaultValue,w.tagScope);case\"svg\":return j(ol,null,w.tagScope);case\"picture\":return j(tc,null,w.tagScope|2);case\"math\":return j(In,null,w.tagScope);case\"foreignObject\":return j(tc,null,w.tagScope);case\"table\":return j(gt,null,w.tagScope);case\"thead\":case\"tbody\":case\"tfoot\":return j(up,null,w.tagScope);case\"colgroup\":return j(Yo,null,w.tagScope);case\"tr\":return j(Vg,null,w.tagScope);case\"head\":if(w.insertionMode<tc)return j(eh,null,w.tagScope);break;case\"html\":if(w.insertionMode===e0)return j(t0,null,w.tagScope)}return w.insertionMode>=gt||w.insertionMode<tc?j(tc,null,w.tagScope):w}function I(w,S,M,Y){return S===\"\"?Y:(Y&&w.push(Gu),w.push(b(F(S))),!0)}function U(w,S){if(typeof S!=\"object\")throw Error(\"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.\");var M=!0,Y;for(Y in S)if(Ar.call(S,Y)){var re=S[Y];if(re!=null&&typeof re!=\"boolean\"&&re!==\"\"){if(Y.indexOf(\"--\")===0){var ue=b(F(Y));G(re,Y),re=b(F((\"\"+re).trim()))}else{ue=Y;var Ee=re;if(-1<ue.indexOf(\"-\")){var Ae=ue;nl.hasOwnProperty(Ae)&&nl[Ae]||(nl[Ae]=!0,console.error(\"Unsupported style property %s. Did you mean %s?\",Ae,$(Ae.replace(Wd,\"ms-\"))))}else if(Hr.test(ue))Ae=ue,nl.hasOwnProperty(Ae)&&nl[Ae]||(nl[Ae]=!0,console.error(\"Unsupported vendor-prefixed style property %s. Did you mean %s?\",Ae,Ae.charAt(0).toUpperCase()+Ae.slice(1)));else if(Zm.test(Ee)){Ae=ue;var Le=Ee;Jf.hasOwnProperty(Le)&&Jf[Le]||(Jf[Le]=!0,console.error(`Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.`,Ae,Le.replace(Zm,\"\")))}typeof Ee==\"number\"&&(isNaN(Ee)?ko||(ko=!0,console.error(\"`NaN` is an invalid value for the `%s` css style property.\",ue)):isFinite(Ee)||ta||(ta=!0,console.error(\"`Infinity` is an invalid value for the `%s` css style property.\",ue))),ue=Y,Ee=hb.get(ue),Ee!==void 0||(Ee=E(F(ue.replace(P2,\"-$1\").toLowerCase().replace(M2,\"-ms-\"))),hb.set(ue,Ee)),ue=Ee,typeof re==\"number\"?re=re===0||Uk.has(Y)?b(\"\"+re):b(re+\"px\"):(G(re,Y),re=b(F((\"\"+re).trim())))}M?(M=!1,w.push(pE,ue,L2,re)):w.push(e7,ue,L2,re)}}M||w.push(nc)}function X(w,S,M){M&&typeof M!=\"function\"&&typeof M!=\"symbol\"&&w.push(ra,b(S),ka)}function ee(w,S,M){typeof M!=\"function\"&&typeof M!=\"symbol\"&&typeof M!=\"boolean\"&&w.push(ra,b(S),Ec,b(F(M)),nc)}function se(w,S){this.push(B2),pe(w),ee(this,\"name\",S),ee(this,\"value\",w),this.push(zl)}function pe(w){if(typeof w!=\"string\")throw Error(\"File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration.\")}function ye(w,S){if(typeof S.$$FORM_ACTION==\"function\"){var M=w.nextFormID++;w=w.idPrefix+M;try{var Y=S.$$FORM_ACTION(w);if(Y){var re=Y.data;re?.forEach(pe)}return Y}catch(ue){if(typeof ue==\"object\"&&ue!==null&&typeof ue.then==\"function\")throw ue;console.error(`Failed to serialize an action for progressive enhancement:\\n%s`,ue)}}return null}function xe(w,S,M,Y,re,ue,Ee,Ae){var Le=null;if(typeof Y==\"function\"){Ae===null||mE||(mE=!0,console.error(\\'Cannot specify a \"name\" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.\\')),re===null&&ue===null||mb||(mb=!0,console.error(\"Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.\")),Ee===null||pb||(pb=!0,console.error(\"Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.\"));var Ie=ye(S,Y);Ie!==null?(Ae=Ie.name,Y=Ie.action||\"\",re=Ie.encType,ue=Ie.method,Ee=Ie.target,Le=Ie.data):(w.push(ra,b(\"formAction\"),Ec,Nr,nc),Ee=ue=re=Y=Ae=null,Ge(S,M))}return Ae!=null&&_e(w,\"name\",Ae),Y!=null&&_e(w,\"formAction\",Y),re!=null&&_e(w,\"formEncType\",re),ue!=null&&_e(w,\"formMethod\",ue),Ee!=null&&_e(w,\"formTarget\",Ee),Le}function _e(w,S,M){switch(S){case\"className\":ee(w,\"class\",M);break;case\"tabIndex\":ee(w,\"tabindex\",M);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":ee(w,S,M);break;case\"style\":U(w,M);break;case\"src\":case\"href\":if(M===\"\"){console.error(S===\"src\"?\\'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\':\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',S,S);break}case\"action\":case\"formAction\":if(M==null||typeof M==\"function\"||typeof M==\"symbol\"||typeof M==\"boolean\")break;D(M,S),M=_(\"\"+M),w.push(ra,b(S),Ec,b(F(M)),nc);break;case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"ref\":break;case\"autoFocus\":case\"multiple\":case\"muted\":X(w,S.toLowerCase(),M);break;case\"xlinkHref\":if(typeof M==\"function\"||typeof M==\"symbol\"||typeof M==\"boolean\")break;D(M,S),M=_(\"\"+M),w.push(ra,b(\"xlink:href\"),Ec,b(F(M)),nc);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":typeof M!=\"function\"&&typeof M!=\"symbol\"&&w.push(ra,b(S),Ec,b(F(M)),nc);break;case\"inert\":M!==\"\"||Xm[S]||(Xm[S]=!0,console.error(\"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",S));case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":M&&typeof M!=\"function\"&&typeof M!=\"symbol\"&&w.push(ra,b(S),ka);break;case\"capture\":case\"download\":M===!0?w.push(ra,b(S),ka):M!==!1&&typeof M!=\"function\"&&typeof M!=\"symbol\"&&w.push(ra,b(S),Ec,b(F(M)),nc);break;case\"cols\":case\"rows\":case\"size\":case\"span\":typeof M!=\"function\"&&typeof M!=\"symbol\"&&!isNaN(M)&&1<=M&&w.push(ra,b(S),Ec,b(F(M)),nc);break;case\"rowSpan\":case\"start\":typeof M==\"function\"||typeof M==\"symbol\"||isNaN(M)||w.push(ra,b(S),Ec,b(F(M)),nc);break;case\"xlinkActuate\":ee(w,\"xlink:actuate\",M);break;case\"xlinkArcrole\":ee(w,\"xlink:arcrole\",M);break;case\"xlinkRole\":ee(w,\"xlink:role\",M);break;case\"xlinkShow\":ee(w,\"xlink:show\",M);break;case\"xlinkTitle\":ee(w,\"xlink:title\",M);break;case\"xlinkType\":ee(w,\"xlink:type\",M);break;case\"xmlBase\":ee(w,\"xml:base\",M);break;case\"xmlLang\":ee(w,\"xml:lang\",M);break;case\"xmlSpace\":ee(w,\"xml:space\",M);break;default:if((!(2<S.length)||S[0]!==\"o\"&&S[0]!==\"O\"||S[1]!==\"n\"&&S[1]!==\"N\")&&(S=sb.get(S)||S,J(S))){switch(typeof M){case\"function\":case\"symbol\":return;case\"boolean\":var Y=S.toLowerCase().slice(0,5);if(Y!==\"data-\"&&Y!==\"aria-\")return}w.push(ra,b(S),Ec,b(F(M)),nc)}}}function Me(w,S,M){if(S!=null){if(M!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");if(typeof S!=\"object\"||!(\"__html\"in S))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");S=S.__html,S!=null&&(W(S),w.push(b(\"\"+S)))}}function qe(w,S){var M=w[S];M!=null&&(M=wa(M),w.multiple&&!M?console.error(\"The `%s` prop supplied to <select> must be an array if `multiple` is true.\",S):!w.multiple&&M&&console.error(\"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.\",S))}function wt(w){var S=\"\";return Bg.Children.forEach(w,function(M){M!=null&&(S+=M,F2||typeof M==\"string\"||typeof M==\"number\"||typeof M==\"bigint\"||(F2=!0,console.error(\"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\")))}),S}function Ge(w,S){(w.instructions&16)===Ku&&(w.instructions|=16,S.bootstrapChunks.unshift(S.startInlineScript,jk,hE))}function ht(w,S){w.push(Mt(\"link\"));for(var M in S)if(Ar.call(S,M)){var Y=S[M];if(Y!=null)switch(M){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:_e(w,M,Y)}}return w.push(zl),null}function Ct(w){return W(w),(\"\"+w).replace(bE,t)}function dt(w,S,M){w.push(Mt(M));for(var Y in S)if(Ar.call(S,Y)){var re=S[Y];if(re!=null)switch(Y){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(M+\" is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:_e(w,Y,re)}}return w.push(zl),null}function Ze(w,S){w.push(Mt(\"title\"));var M=null,Y=null,re;for(re in S)if(Ar.call(S,re)){var ue=S[re];if(ue!=null)switch(re){case\"children\":M=ue;break;case\"dangerouslySetInnerHTML\":Y=ue;break;default:_e(w,re,ue)}}return w.push(mi),S=Array.isArray(M)?2>M.length?M[0]:null:M,typeof S!=\"function\"&&typeof S!=\"symbol\"&&S!==null&&S!==void 0&&w.push(b(F(\"\"+S))),Me(w,Y,M),w.push(Wt(\"title\")),null}function rn(w,S){w.push(Mt(\"script\"));var M=null,Y=null,re;for(re in S)if(Ar.call(S,re)){var ue=S[re];if(ue!=null)switch(re){case\"children\":M=ue;break;case\"dangerouslySetInnerHTML\":Y=ue;break;default:_e(w,re,ue)}}return w.push(mi),M!=null&&typeof M!=\"string\"&&(S=typeof M==\"number\"?\"a number for children\":Array.isArray(M)?\"an array for children\":\"something unexpected for children\",console.error(\"A script element was rendered with %s. If script element has children it must be a single string. Consider using dangerouslySetInnerHTML or passing a plain string as children.\",S)),Me(w,Y,M),typeof M==\"string\"&&w.push(b(O(M))),w.push(Wt(\"script\")),null}function zt(w,S,M){w.push(Mt(M));var Y=M=null,re;for(re in S)if(Ar.call(S,re)){var ue=S[re];if(ue!=null)switch(re){case\"children\":M=ue;break;case\"dangerouslySetInnerHTML\":Y=ue;break;default:_e(w,re,ue)}}return w.push(mi),Me(w,Y,M),M}function Bt(w,S,M){w.push(Mt(M));var Y=M=null,re;for(re in S)if(Ar.call(S,re)){var ue=S[re];if(ue!=null)switch(re){case\"children\":M=ue;break;case\"dangerouslySetInnerHTML\":Y=ue;break;default:_e(w,re,ue)}}return w.push(mi),Me(w,Y,M),typeof M==\"string\"?(w.push(b(F(M))),null):M}function Mt(w){var S=vE.get(w);if(S===void 0){if(!zk.test(w))throw Error(\"Invalid tag: \"+w);S=E(\"<\"+w),vE.set(w,S)}return S}function qt(w,S,M,Y,re,ue,Ee,Ae,Le,Ie){Z(S,M),S!==\"input\"&&S!==\"textarea\"&&S!==\"select\"||M==null||M.value!==null||Qf||(Qf=!0,S===\"select\"&&M.multiple?console.error(\"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",S):console.error(\"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",S));e:if(S.indexOf(\"-\")===-1)var pt=!1;else switch(S){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":pt=!1;break e;default:pt=!0}switch(pt||typeof M.is==\"string\"||V(S,M,null),!M.suppressContentEditableWarning&&M.contentEditable&&M.children!=null&&console.error(\"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\"),Ae.insertionMode!==ol&&Ae.insertionMode!==In&&S.indexOf(\"-\")===-1&&S.toLowerCase()!==S&&console.error(\"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",S),S){case\"div\":case\"span\":case\"svg\":case\"path\":break;case\"a\":w.push(Mt(\"a\"));var ut=null,_t=null,bt;for(bt in M)if(Ar.call(M,bt)){var rt=M[bt];if(rt!=null)switch(bt){case\"children\":ut=rt;break;case\"dangerouslySetInnerHTML\":_t=rt;break;case\"href\":rt===\"\"?ee(w,\"href\",\"\"):_e(w,bt,rt);break;default:_e(w,bt,rt)}}if(w.push(mi),Me(w,_t,ut),typeof ut==\"string\"){w.push(b(F(ut)));var kn=null}else kn=ut;return kn;case\"g\":case\"p\":case\"li\":break;case\"select\":ne(\"select\",M),qe(M,\"value\"),qe(M,\"defaultValue\"),M.value===void 0||M.defaultValue===void 0||D2||(console.error(\"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components\"),D2=!0),w.push(Mt(\"select\"));var Tr=null,_n=null,Gt;for(Gt in M)if(Ar.call(M,Gt)){var Bo=M[Gt];if(Bo!=null)switch(Gt){case\"children\":Tr=Bo;break;case\"dangerouslySetInnerHTML\":_n=Bo;break;case\"defaultValue\":case\"value\":break;default:_e(w,Gt,Bo)}}return w.push(mi),Me(w,_n,Tr),Tr;case\"option\":var Lr=Ae.selectedValue;w.push(Mt(\"option\"));var Rn=null,os=null,Ps=null,si=null,gi;for(gi in M)if(Ar.call(M,gi)){var po=M[gi];if(po!=null)switch(gi){case\"children\":Rn=po;break;case\"selected\":Ps=po,U2||(console.error(\"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"),U2=!0);break;case\"dangerouslySetInnerHTML\":si=po;break;case\"value\":os=po;default:_e(w,gi,po)}}if(Lr!=null){if(os!==null){D(os,\"value\");var Jo=\"\"+os}else si===null||$g||($g=!0,console.error(\"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\")),Jo=wt(Rn);if(wa(Lr)){for(var yi=0;yi<Lr.length;yi++)if(D(Lr[yi],\"value\"),\"\"+Lr[yi]===Jo){w.push(j2);break}}else D(Lr,\"select.value\"),\"\"+Lr===Jo&&w.push(j2)}else Ps&&w.push(j2);return w.push(mi),Me(w,si,Rn),Rn;case\"textarea\":ne(\"textarea\",M),M.value===void 0||M.defaultValue===void 0||n0||(console.error(\"Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components\"),n0=!0),w.push(Mt(\"textarea\"));var Bn=null,mo=null,Br=null,is;for(is in M)if(Ar.call(M,is)){var ss=M[is];if(ss!=null)switch(is){case\"children\":Br=ss;break;case\"value\":Bn=ss;break;case\"defaultValue\":mo=ss;break;case\"dangerouslySetInnerHTML\":throw Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");default:_e(w,is,ss)}}if(Bn===null&&mo!==null&&(Bn=mo),w.push(mi),Br!=null){if(console.error(\"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\"),Bn!=null)throw Error(\"If you supply `defaultValue` on a <textarea>, do not pass children.\");if(wa(Br)){if(1<Br.length)throw Error(\"<textarea> can only have at most one child.\");W(Br[0]),Bn=\"\"+Br[0]}W(Br),Bn=\"\"+Br}return typeof Bn==\"string\"&&Bn[0]===`\\n`&&w.push(z2),Bn!==null&&(D(Bn,\"value\"),w.push(b(F(\"\"+Bn)))),null;case\"input\":ne(\"input\",M),w.push(Mt(\"input\"));var Pi=null,rc=null,Ki=null,oc=null,Ju=null,Un=null,cl=null,Ta=null,Xu=null,gs;for(gs in M)if(Ar.call(M,gs)){var Mi=M[gs];if(Mi!=null)switch(gs){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");case\"name\":Pi=Mi;break;case\"formAction\":rc=Mi;break;case\"formEncType\":Ki=Mi;break;case\"formMethod\":oc=Mi;break;case\"formTarget\":Ju=Mi;break;case\"defaultChecked\":Xu=Mi;break;case\"defaultValue\":cl=Mi;break;case\"checked\":Ta=Mi;break;case\"value\":Un=Mi;break;default:_e(w,gs,Mi)}}rc===null||M.type===\"image\"||M.type===\"submit\"||r0||(r0=!0,console.error(\\'An input can only specify a formAction along with type=\"submit\" or type=\"image\".\\'));var Ao=xe(w,Y,re,rc,Ki,oc,Ju,Pi);return Ta===null||Xu===null||Hl||(console.error(\"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\"A component\",M.type),Hl=!0),Un===null||cl===null||dp||(console.error(\"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\"A component\",M.type),dp=!0),Ta!==null?X(w,\"checked\",Ta):Xu!==null&&X(w,\"checked\",Xu),Un!==null?_e(w,\"value\",Un):cl!==null&&_e(w,\"value\",cl),w.push(zl),Ao?.forEach(se,w),null;case\"button\":w.push(Mt(\"button\"));var ys=null,ia=null,$l=null,as=null,Cc=null,Ra=null,sa=null,To;for(To in M)if(Ar.call(M,To)){var Ms=M[To];if(Ms!=null)switch(To){case\"children\":ys=Ms;break;case\"dangerouslySetInnerHTML\":ia=Ms;break;case\"name\":$l=Ms;break;case\"formAction\":as=Ms;break;case\"formEncType\":Cc=Ms;break;case\"formMethod\":Ra=Ms;break;case\"formTarget\":sa=Ms;break;default:_e(w,To,Ms)}}as===null||M.type==null||M.type===\"submit\"||r0||(r0=!0,console.error(\\'A button can only specify a formAction along with type=\"submit\" or no type.\\'));var ic=xe(w,Y,re,as,Cc,Ra,sa,$l);if(w.push(mi),ic?.forEach(se,w),Me(w,ia,ys),typeof ys==\"string\"){w.push(b(F(ys)));var Ac=null}else Ac=ys;return Ac;case\"form\":w.push(Mt(\"form\"));var sc=null,Kl=null,aa=null,ll=null,Tc=null,ul=null,dl;for(dl in M)if(Ar.call(M,dl)){var Ia=M[dl];if(Ia!=null)switch(dl){case\"children\":sc=Ia;break;case\"dangerouslySetInnerHTML\":Kl=Ia;break;case\"action\":aa=Ia;break;case\"encType\":ll=Ia;break;case\"method\":Tc=Ia;break;case\"target\":ul=Ia;break;default:_e(w,dl,Ia)}}var ca=null,ah=null;if(typeof aa==\"function\"){ll===null&&Tc===null||mb||(mb=!0,console.error(\"Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.\")),ul===null||pb||(pb=!0,console.error(\"Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.\"));var pn=ye(Y,aa);pn!==null?(aa=pn.action||\"\",ll=pn.encType,Tc=pn.method,ul=pn.target,ca=pn.data,ah=pn.name):(w.push(ra,b(\"action\"),Ec,Nr,nc),ul=Tc=ll=aa=null,Ge(Y,re))}if(aa!=null&&_e(w,\"action\",aa),ll!=null&&_e(w,\"encType\",ll),Tc!=null&&_e(w,\"method\",Tc),ul!=null&&_e(w,\"target\",ul),w.push(mi),ah!==null&&(w.push(B2),ee(w,\"name\",ah),w.push(zl),ca?.forEach(se,w)),Me(w,Kl,sc),typeof sc==\"string\"){w.push(b(F(sc)));var Gl=null}else Gl=sc;return Gl;case\"menuitem\":w.push(Mt(\"menuitem\"));for(var Zl in M)if(Ar.call(M,Zl)){var gp=M[Zl];if(gp!=null)switch(Zl){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"menuitems cannot have `children` nor `dangerouslySetInnerHTML`.\");default:_e(w,Zl,gp)}}return w.push(mi),null;case\"object\":w.push(Mt(\"object\"));var ac=null,Yl=null,cs;for(cs in M)if(Ar.call(M,cs)){var bs=M[cs];if(bs!=null)switch(cs){case\"children\":ac=bs;break;case\"dangerouslySetInnerHTML\":Yl=bs;break;case\"data\":D(bs,\"data\");var Do=_(\"\"+bs);if(Do===\"\"){console.error(\\'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.\\',cs,cs);break}w.push(ra,b(\"data\"),Ec,b(F(Do)),nc);break;default:_e(w,cs,bs)}}if(w.push(mi),Me(w,Yl,ac),typeof ac==\"string\"){w.push(b(F(ac)));var bi=null}else bi=ac;return bi;case\"title\":var Sr=Ae.insertionMode,b0=!!(Ae.tagScope&1);if(Ar.call(M,\"children\")){var vi=M.children,fl=Array.isArray(vi)?2>vi.length?vi[0]:null:vi;Array.isArray(vi)&&1<vi.length?console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an Array with length %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert `children` of <title> tags to a single string value which is why Arrays of length greater than 1 are not supported. When using JSX it can be common to combine text nodes and value nodes. For example: <title>hello {nameOfUser}</title>. While not immediately apparent, `children` in this case is an Array with length 2. If your `children` prop is using this form try rewriting it using a template string: <title>{`hello ${nameOfUser}`}</title>.\",vi.length):typeof fl==\"function\"||typeof fl==\"symbol\"?console.error(\"React expect children of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found %s instead. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value.\",typeof fl==\"function\"?\"a Function\":\"a Sybmol\"):fl&&fl.toString==={}.toString&&(fl.$$typeof!=null?console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that appears to be a React element which never implements a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value which is why rendering React elements is not supported. If the `children` of <title> is a React Component try moving the <title> tag into that component. If the `children` of <title> is some HTML markup change it to be Text only to be valid HTML.\"):console.error(\"React expects the `children` prop of <title> tags to be a string, number, bigint, or object with a novel `toString` method but found an object that does not implement a suitable `toString` method. Browsers treat all child Nodes of <title> tags as Text content and React expects to be able to convert children of <title> tags to a single string value. Using the default `toString` method available on every object is almost certainly an error. Consider whether the `children` of this <title> is an object in error and change it to a string or number value if so. Otherwise implement a `toString` method that React can use to produce a valid <title>.\"))}if(Sr===ol||b0||M.itemProp!=null)var Ns=Ze(w,M);else Ie?Ns=null:(Ze(re.hoistableChunks,M),Ns=void 0);return Ns;case\"link\":var v0=M.rel,Xo=M.href,hr=M.precedence;if(Ae.insertionMode===ol||Ae.tagScope&1||M.itemProp!=null||typeof v0!=\"string\"||typeof Xo!=\"string\"||Xo===\"\"){v0===\"stylesheet\"&&typeof M.precedence==\"string\"&&(typeof Xo==\"string\"&&Xo||console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and expected the `href` prop to be a non-empty string but ecountered %s instead. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop ensure there is a non-empty string `href` prop as well, otherwise remove the `precedence` prop.\\',Xo===null?\"`null`\":Xo===void 0?\"`undefined`\":Xo===\"\"?\"an empty string\":\\'something with type \"\\'+typeof Xo+\\'\"\\')),ht(w,M);var Ql=null}else if(M.rel===\"stylesheet\")if(typeof hr!=\"string\"||M.disabled!=null||M.onLoad||M.onError){if(typeof hr==\"string\"){if(M.disabled!=null)console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and a `disabled` prop. The presence of the `disabled` prop indicates an intent to manage the stylesheet active state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the `disabled` prop, otherwise remove the `precedence` prop.\\');else if(M.onLoad||M.onError){var Ro=M.onLoad&&M.onError?\"`onLoad` and `onError` props\":M.onLoad?\"`onLoad` prop\":\"`onError` prop\";console.error(\\'React encountered a `<link rel=\"stylesheet\" .../>` with a `precedence` prop and %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.\\',Ro,Ro)}}Ql=ht(w,M)}else{var ch=re.styles.get(hr),ed=Y.styleResources.hasOwnProperty(Xo)?Y.styleResources[Xo]:void 0;if(ed!==ns){Y.styleResources[Xo]=ns,ch||(ch={precedence:b(F(hr)),rules:[],hrefs:[],sheets:new Map},re.styles.set(hr,ch));var Qd={state:Zu,props:uo({},M,{\"data-precedence\":M.precedence,precedence:null})};if(ed){ed.length===2&&en(Qd.props,ed);var Jd=re.preloads.stylesheets.get(Xo);Jd&&0<Jd.length?Jd.length=0:Qd.state=Wi}ch.sheets.set(Xo,Qd),Ee&&Ee.stylesheets.add(Qd)}else if(ch){var Oa=ch.sheets.get(Xo);Oa&&Ee&&Ee.stylesheets.add(Oa)}Le&&w.push(Gu),Ql=null}else M.onLoad||M.onError?Ql=ht(w,M):(Le&&w.push(Gu),Ql=Ie?null:ht(re.hoistableChunks,M));return Ql;case\"script\":var Xd=M.async;if(typeof M.src!=\"string\"||!M.src||!Xd||typeof Xd==\"function\"||typeof Xd==\"symbol\"||M.onLoad||M.onError||Ae.insertionMode===ol||Ae.tagScope&1||M.itemProp!=null)var Jl=rn(w,M);else{var Xl=M.src;if(M.type===\"module\")var cc=Y.moduleScriptResources,eu=re.preloads.moduleScripts;else cc=Y.scriptResources,eu=re.preloads.scripts;var Gi=cc.hasOwnProperty(Xl)?cc[Xl]:void 0;if(Gi!==ns){cc[Xl]=ns;var ei=M;if(Gi){Gi.length===2&&(ei=uo({},M),en(ei,Gi));var cy=eu.get(Xl);cy&&(cy.length=0)}var ef=[];re.scripts.add(ef),rn(ef,ei)}Le&&w.push(Gu),Jl=null}return Jl;case\"style\":var w0=Ae.insertionMode,tf=!!(Ae.tagScope&1);if(Ar.call(M,\"children\")){var nf=M.children,ly=Array.isArray(nf)?2>nf.length?nf[0]:null:nf;(typeof ly==\"function\"||typeof ly==\"symbol\"||Array.isArray(ly))&&console.error(\"React expect children of <style> tags to be a string, number, or object with a `toString` method but found %s instead. In browsers style Elements can only have `Text` Nodes as children.\",typeof ly==\"function\"?\"a Function\":typeof ly==\"symbol\"?\"a Sybmol\":\"an Array\")}var rf=M.precedence,hl=M.href;if(w0===ol||tf||M.itemProp!=null||typeof rf!=\"string\"||typeof hl!=\"string\"||hl===\"\"){w.push(Mt(\"style\"));var yp=null,of=null,x0;for(x0 in M)if(Ar.call(M,x0)){var Rb=M[x0];if(Rb!=null)switch(x0){case\"children\":yp=Rb;break;case\"dangerouslySetInnerHTML\":of=Rb;break;default:_e(w,x0,Rb)}}w.push(mi);var bp=Array.isArray(yp)?2>yp.length?yp[0]:null:yp;typeof bp!=\"function\"&&typeof bp!=\"symbol\"&&bp!==null&&bp!==void 0&&w.push(b(Ct(bp))),Me(w,of,yp),w.push(Wt(\"style\"));var UE=null}else{hl.includes(\" \")&&console.error(\\'React expected the `href` prop for a <style> tag opting into hoisting semantics using the `precedence` prop to not have any spaces but ecountered spaces instead. using spaces in this prop will cause hydration of this style to fail on the client. The href for the <style> where this ocurred is \"%s\".\\',hl);var lh=re.styles.get(rf),jE=Y.styleResources.hasOwnProperty(hl)?Y.styleResources[hl]:void 0;if(jE!==ns){Y.styleResources[hl]=ns,jE&&console.error(\\'React encountered a hoistable style tag for the same href as a preload: \"%s\". When using a style tag to inline styles you should not also preload it as a stylsheet.\\',hl),lh?lh.hrefs.push(b(F(hl))):(lh={precedence:b(F(rf)),rules:[],hrefs:[b(F(hl))],sheets:new Map},re.styles.set(rf,lh));var E0=lh.rules,Ls=null,zE=null,r_;for(r_ in M)if(Ar.call(M,r_)){var HE=M[r_];if(HE!=null)switch(r_){case\"children\":Ls=HE;break;case\"dangerouslySetInnerHTML\":zE=HE}}var qE=Array.isArray(Ls)?2>Ls.length?Ls[0]:null:Ls;typeof qE!=\"function\"&&typeof qE!=\"symbol\"&&qE!==null&&qE!==void 0&&E0.push(b(Ct(qE))),Me(E0,zE,Ls)}lh&&Ee&&Ee.styles.add(lh),Le&&w.push(Gu),UE=void 0}return UE;case\"meta\":if(Ae.insertionMode===ol||Ae.tagScope&1||M.itemProp!=null)var td=dt(w,M,\"meta\");else Le&&w.push(Gu),td=Ie?null:typeof M.charSet==\"string\"?dt(re.charsetChunks,M,\"meta\"):M.name===\"viewport\"?dt(re.viewportChunks,M,\"meta\"):dt(re.hoistableChunks,M,\"meta\");return td;case\"listing\":case\"pre\":w.push(Mt(S));var sw=null,aw=null,cw;for(cw in M)if(Ar.call(M,cw)){var WE=M[cw];if(WE!=null)switch(cw){case\"children\":sw=WE;break;case\"dangerouslySetInnerHTML\":aw=WE;break;default:_e(w,cw,WE)}}if(w.push(mi),aw!=null){if(sw!=null)throw Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");if(typeof aw!=\"object\"||!(\"__html\"in aw))throw Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\");var uy=aw.__html;uy!=null&&(typeof uy==\"string\"&&0<uy.length&&uy[0]===`\\n`?w.push(z2,b(uy)):(W(uy),w.push(b(\"\"+uy))))}return typeof sw==\"string\"&&sw[0]===`\\n`&&w.push(z2),sw;case\"img\":var Rc=M.src,Pa=M.srcSet;if(!(M.loading===\"lazy\"||!Rc&&!Pa||typeof Rc!=\"string\"&&Rc!=null||typeof Pa!=\"string\"&&Pa!=null)&&M.fetchPriority!==\"low\"&&!(Ae.tagScope&3)&&(typeof Rc!=\"string\"||Rc[4]!==\":\"||Rc[0]!==\"d\"&&Rc[0]!==\"D\"||Rc[1]!==\"a\"&&Rc[1]!==\"A\"||Rc[2]!==\"t\"&&Rc[2]!==\"T\"||Rc[3]!==\"a\"&&Rc[3]!==\"A\")&&(typeof Pa!=\"string\"||Pa[4]!==\":\"||Pa[0]!==\"d\"&&Pa[0]!==\"D\"||Pa[1]!==\"a\"&&Pa[1]!==\"A\"||Pa[2]!==\"t\"&&Pa[2]!==\"T\"||Pa[3]!==\"a\"&&Pa[3]!==\"A\")){var VM=typeof M.sizes==\"string\"?M.sizes:void 0,vp=Pa?Pa+`\\n`+(VM||\"\"):Rc,lw=re.preloads.images,dy=lw.get(vp);if(dy)(M.fetchPriority===\"high\"||10>re.highImagePreloads.size)&&(lw.delete(vp),re.highImagePreloads.add(dy));else if(!Y.imageResources.hasOwnProperty(vp)){Y.imageResources[vp]=xc;var o_=M.crossOrigin,VE=typeof o_==\"string\"?o_===\"use-credentials\"?o_:\"\":void 0,sf=re.headers,Ib;sf&&0<sf.remainingCapacity&&typeof M.srcSet!=\"string\"&&(M.fetchPriority===\"high\"||500>sf.highImagePreloads.length)&&(Ib=ni(Rc,\"image\",{imageSrcSet:M.srcSet,imageSizes:M.sizes,crossOrigin:VE,integrity:M.integrity,nonce:M.nonce,type:M.type,fetchPriority:M.fetchPriority,referrerPolicy:M.refererPolicy}),0<=(sf.remainingCapacity-=Ib.length+2))?(re.resets.image[vp]=xc,sf.highImagePreloads&&(sf.highImagePreloads+=\", \"),sf.highImagePreloads+=Ib):(dy=[],ht(dy,{rel:\"preload\",as:\"image\",href:Pa?void 0:Rc,imageSrcSet:Pa,imageSizes:VM,crossOrigin:VE,integrity:M.integrity,type:M.type,fetchPriority:M.fetchPriority,referrerPolicy:M.referrerPolicy}),M.fetchPriority===\"high\"||10>re.highImagePreloads.size?re.highImagePreloads.add(dy):(re.bulkPreloads.add(dy),lw.set(vp,dy)))}}return dt(w,M,\"img\");case\"base\":case\"area\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"param\":case\"source\":case\"track\":case\"wbr\":return dt(w,M,S);case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":break;case\"head\":if(Ae.insertionMode<tc){var i_=ue||re.preamble;if(i_.headChunks)throw Error(\"The `<head>` tag may only be rendered once.\");i_.headChunks=[];var $M=zt(i_.headChunks,M,\"head\")}else $M=Bt(w,M,\"head\");return $M;case\"body\":if(Ae.insertionMode<tc){var fy=ue||re.preamble;if(fy.bodyChunks)throw Error(\"The `<body>` tag may only be rendered once.\");fy.bodyChunks=[];var uw=zt(fy.bodyChunks,M,\"body\")}else uw=Bt(w,M,\"body\");return uw;case\"html\":if(Ae.insertionMode===e0){var s_=ue||re.preamble;if(s_.htmlChunks)throw Error(\"The `<html>` tag may only be rendered once.\");s_.htmlChunks=[t7];var $E=zt(s_.htmlChunks,M,\"html\")}else $E=Bt(w,M,\"html\");return $E;default:if(S.indexOf(\"-\")!==-1){w.push(Mt(S));var KE=null,a_=null,Ob;for(Ob in M)if(Ar.call(M,Ob)){var af=M[Ob];if(af!=null){var KM=Ob;switch(Ob){case\"children\":KE=af;break;case\"dangerouslySetInnerHTML\":a_=af;break;case\"style\":U(w,af);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"ref\":break;case\"className\":KM=\"class\";default:if(J(Ob)&&typeof af!=\"function\"&&typeof af!=\"symbol\"&&af!==!1){if(af===!0)af=\"\";else if(typeof af==\"object\")continue;w.push(ra,b(KM),Ec,b(F(af)),nc)}}}}return w.push(mi),Me(w,a_,KE),KE}}return Bt(w,M,S)}function Wt(w){var S=wE.get(w);return S===void 0&&(S=E(\"</\"+w+\">\"),wE.set(w,S)),S}function zn(w,S){w=w.preamble,w.htmlChunks===null&&S.htmlChunks&&(w.htmlChunks=S.htmlChunks,S.contribution|=1),w.headChunks===null&&S.headChunks&&(w.headChunks=S.headChunks,S.contribution|=4),w.bodyChunks===null&&S.bodyChunks&&(w.bodyChunks=S.bodyChunks,S.contribution|=2)}function Mn(w,S){S=S.bootstrapChunks;for(var M=0;M<S.length-1;M++)h(w,S[M]);return M<S.length?(M=S[M],S.length=0,m(w,M)):!0}function br(w,S,M){if(h(w,Wk),M===null)throw Error(\"An ID must have been assigned before we can complete the boundary.\");return h(w,S.boundaryPrefix),h(w,b(M.toString(16))),m(w,Vk)}function Zs(w,S){S=S.contribution,S!==N2&&(h(w,Sc),h(w,b(\"\"+S)),h(w,V2))}function Pr(w,S,M,Y){switch(M.insertionMode){case e0:case t0:case eh:case tc:return h(w,SE),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,Kk);case ol:return h(w,$2),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,_E);case In:return h(w,Zg),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,G2);case gt:return h(w,Gk),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,Zk);case up:return h(w,Yk),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,Qk);case Vg:return h(w,Z2),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,th);case Yo:return h(w,Jk),h(w,S.segmentPrefix),h(w,b(Y.toString(16))),m(w,RE);default:throw Error(\"Unknown insertion mode. This is a bug in React.\")}}function vr(w,S){switch(S.insertionMode){case e0:case t0:case eh:case tc:return m(w,kE);case ol:return m(w,K2);case In:return m(w,CE);case gt:return m(w,AE);case up:return m(w,Yg);case Vg:return m(w,TE);case Yo:return m(w,s0);default:throw Error(\"Unknown insertion mode. This is a bug in React.\")}}function hi(w){return JSON.stringify(w).replace(nh,function(S){switch(S){case\"<\":return\"\\\\\\\\u003c\";case\"\\\\u2028\":return\"\\\\\\\\u2028\";case\"\\\\u2029\":return\"\\\\\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}})}function er(w){return JSON.stringify(w).replace(NE,function(S){switch(S){case\"&\":return\"\\\\\\\\u0026\";case\">\":return\"\\\\\\\\u003e\";case\"<\":return\"\\\\\\\\u003c\";case\"\\\\u2028\":return\"\\\\\\\\u2028\";case\"\\\\u2029\":return\"\\\\\\\\u2029\";default:throw Error(\"escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}})}function wr(w){var S=w.rules,M=w.hrefs;0<S.length&&M.length===0&&console.error(\"React expected to have at least one href for an a hoistable style but found none. This is a bug in React.\");var Y=0;if(M.length){for(h(this,rh),h(this,w.precedence),h(this,$d);Y<M.length-1;Y++)h(this,M[Y]),h(this,BE);for(h(this,M[Y]),h(this,bb),Y=0;Y<S.length;Y++)h(this,S[Y]);vb=m(this,ew),l0=!0,S.length=0,M.length=0}}function Ri(w){return w.state!==Jg?l0=!0:!1}function le(w,S,M){return l0=!1,vb=!0,S.styles.forEach(wr,w),S.stylesheets.forEach(Ri),l0&&(M.stylesToHoist=!0),vb}function Te(w){for(var S=0;S<w.length;S++)h(this,w[S]);w.length=0}function xt(w){ht(Kd,w.props);for(var S=0;S<Kd.length;S++)h(this,Kd[S]);Kd.length=0,w.state=Jg}function tt(w){var S=0<w.sheets.size;w.sheets.forEach(xt,this),w.sheets.clear();var M=w.rules,Y=w.hrefs;if(!S||Y.length){if(h(this,fp),h(this,w.precedence),w=0,Y.length){for(h(this,LE);w<Y.length-1;w++)h(this,Y[w]),h(this,BE);h(this,Y[w])}for(h(this,wb),w=0;w<M.length;w++)h(this,M[w]);h(this,tw),M.length=0,Y.length=0}}function It(w){if(w.state===Zu){w.state=Wi;var S=w.props;for(ht(Kd,{rel:\"preload\",as:\"style\",href:w.props.href,crossOrigin:S.crossOrigin,fetchPriority:S.fetchPriority,integrity:S.integrity,media:S.media,hrefLang:S.hrefLang,referrerPolicy:S.referrerPolicy}),w=0;w<Kd.length;w++)h(this,Kd[w]);Kd.length=0}}function hn(w){w.sheets.forEach(It,this),w.sheets.clear()}function Dt(w,S){h(w,DE);var M=DE;S.stylesheets.forEach(function(Y){if(Y.state!==Jg)if(Y.state===Eb)h(w,M),Y=Y.props.href,D(Y,\"href\"),h(w,b(er(\"\"+Y))),h(w,xb),M=Gd;else{h(w,M);var re=Y.props[\"data-precedence\"],ue=Y.props,Ee=_(\"\"+Y.props.href);h(w,b(er(Ee))),D(re,\"precedence\"),re=\"\"+re,h(w,hp),h(w,b(er(re)));for(var Ae in ue)if(Ar.call(ue,Ae)&&(re=ue[Ae],re!=null))switch(Ae){case\"href\":case\"rel\":case\"precedence\":case\"data-precedence\":break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(\"link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");default:sn(w,Ae,re)}h(w,xb),M=Gd,Y.state=Eb}}),h(w,xb)}function sn(w,S,M){var Y=S.toLowerCase();switch(typeof M){case\"function\":case\"symbol\":return}switch(S){case\"innerHTML\":case\"dangerouslySetInnerHTML\":case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"style\":case\"ref\":return;case\"className\":Y=\"class\",D(M,Y),S=\"\"+M;break;case\"hidden\":if(M===!1)return;S=\"\";break;case\"src\":case\"href\":M=_(M),D(M,Y),S=\"\"+M;break;default:if(2<S.length&&(S[0]===\"o\"||S[0]===\"O\")&&(S[1]===\"n\"||S[1]===\"N\")||!J(S))return;D(M,Y),S=\"\"+M}h(w,hp),h(w,b(er(Y))),h(w,hp),h(w,b(er(S)))}function bn(){return{styles:new Set,stylesheets:new Set}}function Fn(w,S,M,Y){(w.scriptResources.hasOwnProperty(M)||w.moduleScriptResources.hasOwnProperty(M))&&console.error(\\'Internal React Error: React expected bootstrap script or module with src \"%s\" to not have been preloaded already. please file an issue\\',M),w.scriptResources[M]=ns,w.moduleScriptResources[M]=ns,w=[],ht(w,Y),S.bootstrapScripts.add(w)}function en(w,S){w.crossOrigin==null&&(w.crossOrigin=S[0]),w.integrity==null&&(w.integrity=S[1])}function ni(w,S,M){w=jr(w),S=zu(S,\"as\"),S=\"<\"+w+\\'>; rel=preload; as=\"\\'+S+\\'\"\\';for(var Y in M)Ar.call(M,Y)&&(w=M[Y],typeof w==\"string\"&&(S+=\"; \"+Y.toLowerCase()+\\'=\"\\'+zu(w,Y)+\\'\"\\'));return S}function jr(w){return D(w,\"href\"),(\"\"+w).replace(Sb,Eo)}function Eo(w){switch(w){case\"<\":return\"%3C\";case\">\":return\"%3E\";case`\\n`:return\"%0A\";case\"\\\\r\":return\"%0D\";default:throw Error(\"escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}function zu(w,S){return R(w)&&(console.error(\"The provided `%s` option is an unsupported type %s. This value must be coerced to a string before using it here.\",S,T(w)),L(w)),(\"\"+w).replace(_o,tr)}function tr(w){switch(w){case\\'\"\\':return\"%22\";case\"\\'\":return\"%27\";case\";\":return\"%3B\";case\",\":return\"%2C\";case`\\n`:return\"%0A\";case\"\\\\r\":return\"%0D\";default:throw Error(\"escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\")}}function dr(w){this.styles.add(w)}function Bl(w){this.stylesheets.add(w)}function vn(w){if(w==null)return null;if(typeof w==\"function\")return w.$$typeof===u0?null:w.displayName||w.name||null;if(typeof w==\"string\")return w;switch(w){case Vu:return\"Fragment\";case Js:return\"Profiler\";case $u:return\"StrictMode\";case Rs:return\"Suspense\";case Ug:return\"SuspenseList\";case ob:return\"Activity\"}if(typeof w==\"object\")switch(typeof w.tag==\"number\"&&console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),w.$$typeof){case op:return\"Portal\";case ip:return(w.displayName||\"Context\")+\".Provider\";case Km:return(w._context.displayName||\"Context\")+\".Consumer\";case Fg:var S=w.render;return w=w.displayName,w||(w=S.displayName||S.name||\"\",w=w!==\"\"?\"ForwardRef(\"+w+\")\":\"ForwardRef\"),w;case el:return S=w.displayName||null,S!==null?S:vn(w.type)||\"Memo\";case tl:S=w._payload,w=w._init;try{return vn(w(S))}catch{}}return null}function zr(w,S){if(w!==S){w.context._currentValue=w.parentValue,w=w.parent;var M=S.parent;if(w===null){if(M!==null)throw Error(\"The stacks must reach the root at the same time. This is a bug in React.\")}else{if(M===null)throw Error(\"The stacks must reach the root at the same time. This is a bug in React.\");zr(w,M)}S.context._currentValue=S.value}}function Dd(w){w.context._currentValue=w.parentValue,w=w.parent,w!==null&&Dd(w)}function Mr(w){var S=w.parent;S!==null&&Mr(S),w.context._currentValue=w.value}function So(w,S){if(w.context._currentValue=w.parentValue,w=w.parent,w===null)throw Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");w.depth===S.depth?zr(w,S):So(w,S)}function jt(w,S){var M=S.parent;if(M===null)throw Error(\"The depth must equal at least at zero before reaching the root. This is a bug in React.\");w.depth===M.depth?zr(w,M):jt(w,M),S.context._currentValue=S.value}function xr(w){var S=ql;S!==w&&(S===null?Mr(w):w===null?Dd(S):S.depth===w.depth?zr(S,w):S.depth>w.depth?So(S,w):jt(S,w),ql=w)}function En(w){if(w!==null&&typeof w!=\"function\"){var S=String(w);mp.has(S)||(mp.add(S),console.error(\"Expected the last optional `callback` argument to be a function. Instead received: %s.\",w))}}function Hu(w,S){w=(w=w.constructor)&&vn(w)||\"ReactClass\";var M=w+\".\"+S;ey[M]||(console.error(`Can only update a mounting component. This usually means you called %s() outside componentWillMount() on the server. This is a no-op.\\n\\nPlease check the code for the %s component.`,S,w),ey[M]=!0)}function Zr(w,S,M){var Y=w.id;w=w.overflow;var re=32-h0(Y)-1;Y&=~(1<<re),M+=1;var ue=32-h0(S)+re;if(30<ue){var Ee=re-re%5;return ue=(Y&(1<<Ee)-1).toString(32),Y>>=Ee,re-=Ee,{id:1<<32-h0(S)+re|M<<re|Y,overflow:ue+w}}return{id:1<<ue|M<<re|Y,overflow:w}}function Cr(w){return w>>>=0,w===0?32:31-(t_(w)/rw|0)|0}function Ys(){}function Zc(w,S,M){switch(M=w[M],M===void 0?w.push(S):M!==S&&(S.then(Ys,Ys),S=M),S.status){case\"fulfilled\":return S.value;case\"rejected\":throw S.reason;default:switch(typeof S.status==\"string\"?S.then(Ys,Ys):(w=S,w.status=\"pending\",w.then(function(Y){if(S.status===\"pending\"){var re=S;re.status=\"fulfilled\",re.value=Y}},function(Y){if(S.status===\"pending\"){var re=S;re.status=\"rejected\",re.reason=Y}})),S.status){case\"fulfilled\":return S.value;case\"rejected\":throw S.reason}throw ny=S,Ca}}function Zo(){if(ny===null)throw Error(\"Expected a suspended thenable. This is a bug in React. Please file an issue.\");var w=ny;return ny=null,w}function qu(w,S){return w===S&&(w!==0||1/w===1/S)||w!==w&&S!==S}function ts(){if(kc===null)throw Error(`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.`);return Qo&&console.error(\"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks\"),kc}function Wu(){if(0<Vl)throw Error(\"Rendered more hooks than during the previous render\");return{memoizedState:null,queue:null,next:null}}function Yc(){return fr===null?_b===null?(oy=!1,_b=fr=Wu()):(oy=!0,fr=_b):fr.next===null?(oy=!1,fr=fr.next=Wu()):(oy=!0,fr=fr.next),fr}function Ya(){var w=g0;return g0=null,w}function Qa(){Qo=!1,ow=kb=fo=kc=null,p0=!1,_b=null,Vl=0,fr=rs=null}function ya(w){return Qo&&console.error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"),w._currentValue}function Dl(w,S){return typeof S==\"function\"?S(w):S}function Ja(w,S,M){if(w!==Dl&&(sy=\"useReducer\"),kc=ts(),fr=Yc(),oy){if(M=fr.queue,S=M.dispatch,rs!==null){var Y=rs.get(M);if(Y!==void 0){rs.delete(M),M=fr.memoizedState;do{var re=Y.action;Qo=!0,M=w(M,re),Qo=!1,Y=Y.next}while(Y!==null);return fr.memoizedState=M,[M,S]}}return[fr.memoizedState,S]}return Qo=!0,w=w===Dl?typeof S==\"function\"?S():S:M!==void 0?M(S):S,Qo=!1,fr.memoizedState=w,w=fr.queue={last:null,dispatch:null},w=w.dispatch=Fd.bind(null,kc,w),[fr.memoizedState,w]}function Fl(w,S){if(kc=ts(),fr=Yc(),S=S===void 0?null:S,fr!==null){var M=fr.memoizedState;if(M!==null&&S!==null){e:{var Y=M[1];if(Y===null)console.error(\"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",sy),Y=!1;else{S.length!==Y.length&&console.error(`The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s`,sy,\"[\"+S.join(\", \")+\"]\",\"[\"+Y.join(\", \")+\"]\");for(var re=0;re<Y.length&&re<S.length;re++)if(!ry(S[re],Y[re])){Y=!1;break e}Y=!0}}if(Y)return M[0]}}return Qo=!0,w=w(),Qo=!1,fr.memoizedState=[w,S],w}function Fd(w,S,M){if(25<=Vl)throw Error(\"Too many re-renders. React limits the number of renders to prevent an infinite loop.\");if(w===kc)if(p0=!0,w={action:M,next:null},rs===null&&(rs=new Map),M=rs.get(S),M===void 0)rs.set(S,w);else{for(S=M;S.next!==null;)S=S.next;S.next=w}}function Cg(){throw Error(\"startTransition cannot be called during server rendering.\")}function ri(){throw Error(\"Cannot update optimistic state while rendering.\")}function bc(w,S,M){ts();var Y=Qu++,re=kb;if(typeof w.$$FORM_ACTION==\"function\"){var ue=null,Ee=ow;re=re.formState;var Ae=w.$$IS_SIGNATURE_EQUAL;if(re!==null&&typeof Ae==\"function\"){var Le=re[1];Ae.call(w,re[2],re[3])&&(ue=M!==void 0?\"p\"+M:\"k\"+c(JSON.stringify([Ee,null,Y]),0),Le===ue&&(iy=Y,S=re[0]))}var Ie=w.bind(null,S);return w=function(ut){Ie(ut)},typeof Ie.$$FORM_ACTION==\"function\"&&(w.$$FORM_ACTION=function(ut){ut=Ie.$$FORM_ACTION(ut),M!==void 0&&(D(M,\"target\"),M+=\"\",ut.action=M);var _t=ut.data;return _t&&(ue===null&&(ue=M!==void 0?\"p\"+M:\"k\"+c(JSON.stringify([Ee,null,Y]),0)),_t.append(\"$ACTION_KEY\",ue)),ut}),[S,w,!1]}var pt=w.bind(null,S);return[S,function(ut){pt(ut)},!1]}function Qc(w){var S=m0;return m0+=1,g0===null&&(g0=[]),Zc(g0,w,S)}function Vh(){throw Error(\"Cache cannot be refreshed during server rendering.\")}function Wf(){}function Ud(){}function nE(){if(y0===0){Cb=console.log,iw=console.info,Ab=console.warn,Tb=console.error,ay=console.group,x=console.groupCollapsed,k=console.groupEnd;var w={configurable:!0,enumerable:!0,value:Ud,writable:!0};Object.defineProperties(console,{info:w,log:w,warn:w,error:w,group:w,groupCollapsed:w,groupEnd:w})}y0++}function X1(){if(y0--,y0===0){var w={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:uo({},w,{value:Cb}),info:uo({},w,{value:iw}),warn:uo({},w,{value:Ab}),error:uo({},w,{value:Tb}),group:uo({},w,{value:ay}),groupCollapsed:uo({},w,{value:x}),groupEnd:uo({},w,{value:k})})}0>y0&&console.error(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}function vc(w){if(P===void 0)try{throw Error()}catch(M){var S=M.stack.trim().match(/\\\\n( *(at )?)/);P=S&&S[1]||\"\",Q=-1<M.stack.indexOf(`\\n    at`)?\" (<anonymous>)\":-1<M.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return`\\n`+P+w+Q}function jd(w,S){if(!w||oe)return\"\";var M=de.get(w);if(M!==void 0)return M;oe=!0,M=Error.prepareStackTrace,Error.prepareStackTrace=void 0;var Y=null;Y=Lo.H,Lo.H=null,nE();try{var re={DetermineComponentFrameRoot:function(){try{if(S){var _t=function(){throw Error()};if(Object.defineProperty(_t.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(_t,[])}catch(rt){var bt=rt}Reflect.construct(w,[],_t)}else{try{_t.call()}catch(rt){bt=rt}w.call(_t.prototype)}}else{try{throw Error()}catch(rt){bt=rt}(_t=w())&&typeof _t.catch==\"function\"&&_t.catch(function(){})}}catch(rt){if(rt&&bt&&typeof rt.stack==\"string\")return[rt.stack,bt.stack]}return[null,null]}};re.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var ue=Object.getOwnPropertyDescriptor(re.DetermineComponentFrameRoot,\"name\");ue&&ue.configurable&&Object.defineProperty(re.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var Ee=re.DetermineComponentFrameRoot(),Ae=Ee[0],Le=Ee[1];if(Ae&&Le){var Ie=Ae.split(`\\n`),pt=Le.split(`\\n`);for(Ee=ue=0;ue<Ie.length&&!Ie[ue].includes(\"DetermineComponentFrameRoot\");)ue++;for(;Ee<pt.length&&!pt[Ee].includes(\"DetermineComponentFrameRoot\");)Ee++;if(ue===Ie.length||Ee===pt.length)for(ue=Ie.length-1,Ee=pt.length-1;1<=ue&&0<=Ee&&Ie[ue]!==pt[Ee];)Ee--;for(;1<=ue&&0<=Ee;ue--,Ee--)if(Ie[ue]!==pt[Ee]){if(ue!==1||Ee!==1)do if(ue--,Ee--,0>Ee||Ie[ue]!==pt[Ee]){var ut=`\\n`+Ie[ue].replace(\" at new \",\" at \");return w.displayName&&ut.includes(\"<anonymous>\")&&(ut=ut.replace(\"<anonymous>\",w.displayName)),typeof w==\"function\"&&de.set(w,ut),ut}while(1<=ue&&0<=Ee);break}}}finally{oe=!1,Lo.H=Y,X1(),Error.prepareStackTrace=M}return Ie=(Ie=w?w.displayName||w.name:\"\")?vc(Ie):\"\",typeof w==\"function\"&&de.set(w,Ie),Ie}function Ag(w){var S=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,w=w.stack,Error.prepareStackTrace=S,w.startsWith(`Error: react-stack-top-frame\\n`)&&(w=w.slice(29)),S=w.indexOf(`\\n`),S!==-1&&(w=w.slice(S+1)),S=w.indexOf(\"react-stack-bottom-frame\"),S!==-1&&(S=w.lastIndexOf(`\\n`,S)),S!==-1)w=w.slice(0,S);else return\"\";return w}function C2(w){if(typeof w==\"string\")return vc(w);if(typeof w==\"function\")return w.prototype&&w.prototype.isReactComponent?jd(w,!0):jd(w,!1);if(typeof w==\"object\"&&w!==null){switch(w.$$typeof){case Fg:return jd(w.render,!1);case el:return jd(w.type,!1);case tl:var S=w,M=S._payload;S=S._init;try{w=S(M)}catch{return vc(\"Lazy\")}return C2(w)}if(typeof w.name==\"string\")return M=w.env,vc(w.name+(M?\" [\"+M+\"]\":\"\"))}switch(w){case Ug:return vc(\"SuspenseList\");case Rs:return vc(\"Suspense\")}return\"\"}function Um(w){if(typeof w==\"object\"&&w!==null&&typeof w.environmentName==\"string\"){var S=w.environmentName;w=[w].slice(0),typeof w[0]==\"string\"?w.splice(0,1,\"%c%s%c \"+w[0],\"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\",\" \"+S+\" \",\"\"):w.splice(0,0,\"%c%s%c \",\"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\",\" \"+S+\" \",\"\"),w.unshift(console),S=Xg.apply(console.error,w),S()}else console.error(w);return null}function $h(){}function Tg(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt){var ut=new Set;this.destination=null,this.flushScheduled=!1,this.resumableState=w,this.renderState=S,this.rootFormatContext=M,this.progressiveChunkSize=Y===void 0?12800:Y,this.status=10,this.fatalError=null,this.pendingRootTasks=this.allPendingTasks=this.nextSegmentId=0,this.completedPreambleSegments=this.completedRootSegment=null,this.abortableTasks=ut,this.pingedTasks=[],this.clientRenderedBoundaries=[],this.completedBoundaries=[],this.partialBoundaries=[],this.trackedPostpones=null,this.onError=re===void 0?Um:re,this.onPostpone=Ie===void 0?$h:Ie,this.onAllReady=ue===void 0?$h:ue,this.onShellReady=Ee===void 0?$h:Ee,this.onShellError=Ae===void 0?$h:Ae,this.onFatalError=Le===void 0?$h:Le,this.formState=pt===void 0?null:pt,this.didWarnForKey=null}function Kh(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt,ut){var _t=lt();return 1e3<_t-Rt&&(Lo.recentlyCreatedOwnerStacks=0,Rt=_t),S=new Tg(S,M,Y,re,ue,Ee,Ae,Le,Ie,pt,ut),M=Hd(S,0,null,Y,!1,!1),M.parentFlushed=!0,w=zd(S,null,w,-1,null,M,null,null,S.abortableTasks,null,Y,null,Zd,null,!1,_a,null),Yh(w),S.pingedTasks.push(w),S}function Gh(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt){return w=Kh(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt,void 0),w.trackedPostpones={workingMap:new Map,rootNodes:[],rootSlots:null},w}function Zh(w,S){w.pingedTasks.push(S),w.pingedTasks.length===1&&(w.flushScheduled=w.destination!==null,w.trackedPostpones!==null||w.status===10?sp(function(){return Ng(w)}):u(function(){return Ng(w)}))}function Qs(w,S,M,Y){return{status:mn,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,completedSegments:[],byteSize:0,fallbackAbortableTasks:S,errorDigest:null,contentState:bn(),fallbackState:bn(),contentPreamble:M,fallbackPreamble:Y,trackedContentKeyPath:null,trackedFallbackNode:null,errorMessage:null,errorStack:null,errorComponentStack:null}}function zd(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt,ut,_t,bt,rt,kn,Tr){w.allPendingTasks++,re===null?w.pendingRootTasks++:re.pendingTasks++;var _n={replay:null,node:M,childIndex:Y,ping:function(){return Zh(w,_n)},blockedBoundary:re,blockedSegment:ue,blockedPreamble:Ee,hoistableState:Ae,abortSet:Le,keyPath:Ie,formatContext:pt,context:ut,treeContext:_t,componentStack:bt,thenableState:S,isFallback:rt};return _n.debugTask=Tr,Le.add(_n),_n}function eb(w,S,M,Y,re,ue,Ee,Ae,Le,Ie,pt,ut,_t,bt,rt,kn){w.allPendingTasks++,ue===null?w.pendingRootTasks++:ue.pendingTasks++,M.pendingTasks++;var Tr={replay:M,node:Y,childIndex:re,ping:function(){return Zh(w,Tr)},blockedBoundary:ue,blockedSegment:null,blockedPreamble:null,hoistableState:Ee,abortSet:Ae,keyPath:Le,formatContext:Ie,context:pt,treeContext:ut,componentStack:_t,thenableState:S,isFallback:bt};return Tr.debugTask=kn,Ae.add(Tr),Tr}function Hd(w,S,M,Y,re,ue){return{status:mn,parentFlushed:!1,id:-1,index:S,chunks:[],children:[],preambleChildren:[],parentFormatContext:Y,boundary:M,lastPushedText:re,textEmbedded:ue}}function Vf(){if(ho===null||ho.componentStack===null)return\"\";var w=ho.componentStack;try{var S=\"\";if(typeof w.type==\"string\")S+=vc(w.type);else if(typeof w.type==\"function\"){if(!w.owner){var M=S,Y=w.type,re=Y?Y.displayName||Y.name:\"\",ue=re?vc(re):\"\";S=M+ue}}else w.owner||(S+=C2(w.type));for(;w;)M=null,w.debugStack!=null?M=Ag(w.debugStack):(ue=w,ue.stack!=null&&(M=typeof ue.stack!=\"string\"?ue.stack=Ag(ue.stack):ue.stack)),(w=w.owner)&&M&&(S+=`\\n`+M);var Ee=S}catch(Ae){Ee=`\\nError generating stack: `+Ae.message+`\\n`+Ae.stack}return Ee}function Rg(w,S){if(S!=null)for(var M=0;M<S.length;M++){var Y=S[M];typeof Y.name==\"string\"&&Y.debugStack!==void 0&&(w.componentStack={parent:w.componentStack,type:Y,owner:Y.owner,stack:Y.debugStack},w.debugTask=Y.debugTask)}}function Yh(w){var S=w.node;if(typeof S==\"object\"&&S!==null)switch(S.$$typeof){case Gf:var M=S.type,Y=S._owner,re=S._debugStack;Rg(w,S._debugInfo),w.debugTask=S._debugTask,w.componentStack={parent:w.componentStack,type:M,owner:Y,stack:re};break;case tl:Rg(w,S._debugInfo);break;default:typeof S.then==\"function\"&&Rg(w,S._debugInfo)}}function ms(w){var S={};return w&&Object.defineProperty(S,\"componentStack\",{configurable:!0,enumerable:!0,get:function(){try{var M=\"\",Y=w;do M+=C2(Y.type),Y=Y.parent;while(Y);var re=M}catch(ue){re=`\\nError generating stack: `+ue.message+`\\n`+ue.stack}return Object.defineProperty(S,\"componentStack\",{value:re}),re}}),S}function Ul(w,S,M,Y,re){w.errorDigest=S,M instanceof Error?(S=String(M.message),M=String(M.stack)):(S=typeof M==\"object\"&&M!==null?a(M):String(M),M=null),re=re?`Switched to client rendering because the server rendering aborted due to:\\n\\n`:`Switched to client rendering because the server rendering errored:\\n\\n`,w.errorMessage=re+S,w.errorStack=M!==null?re+M:null,w.errorComponentStack=Y.componentStack}function ba(w,S,M,Y){if(w=w.onError,S=Y?Y.run(w.bind(null,S,M)):w(S,M),S!=null&&typeof S!=\"string\")console.error(\\'onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"%s\" instead\\',typeof S);else return S}function jm(w,S,M,Y){M=w.onShellError;var re=w.onFatalError;Y?(Y.run(M.bind(null,S)),Y.run(re.bind(null,S))):(M(S),re(S)),w.destination!==null?(w.status=Tn,C(w.destination,S)):(w.status=13,w.fatalError=S)}function rE(w,S,M,Y,re,ue){var Ee=S.thenableState;for(S.thenableState=null,kc={},fo=S,kb=w,ow=M,Qo=!1,Qu=Yd=0,iy=-1,m0=0,g0=Ee,w=Pe(Y,re,ue);p0;)p0=!1,Qu=Yd=0,iy=-1,m0=0,Vl+=1,fr=null,w=Y(re,ue);return Qa(),w}function oE(w,S,M,Y,re,ue,Ee){var Ae=!1;if(ue!==0&&w.formState!==null){var Le=S.blockedSegment;if(Le!==null){Ae=!0,Le=Le.chunks;for(var Ie=0;Ie<ue;Ie++)Ie===Ee?Le.push(gE):Le.push(yE)}}ue=S.keyPath,S.keyPath=M,re?(M=S.treeContext,S.treeContext=Zr(M,1,0),Jc(w,S,Y,-1),S.treeContext=M):Ae?Jc(w,S,Y,-1):wc(w,S,Y,-1),S.keyPath=ue}function Xa(w,S,M,Y,re,ue){if(typeof Y==\"function\")if(Y.prototype&&Y.prototype.isReactComponent){var Ee=re;if(\"ref\"in re){Ee={};for(var Ae in re)Ae!==\"ref\"&&(Ee[Ae]=re[Ae])}var Le=Y.defaultProps;if(Le){Ee===re&&(Ee=uo({},Ee,re));for(var Ie in Le)Ee[Ie]===void 0&&(Ee[Ie]=Le[Ie])}var pt=Ee,ut=_a,_t=Y.contextType;if(\"contextType\"in Y&&_t!==null&&(_t===void 0||_t.$$typeof!==ip)&&!FE.has(Y)){FE.add(Y);var bt=_t===void 0?\" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\":typeof _t!=\"object\"?\" However, it is set to a \"+typeof _t+\".\":_t.$$typeof===Km?\" Did you accidentally pass the Context.Consumer instead?\":\" However, it is set to an object with keys {\"+Object.keys(_t).join(\", \")+\"}.\";console.error(\"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",vn(Y)||\"Component\",bt)}typeof _t==\"object\"&&_t!==null&&(ut=_t._currentValue);var rt=new Y(pt,ut);if(typeof Y.getDerivedStateFromProps==\"function\"&&(rt.state===null||rt.state===void 0)){var kn=vn(Y)||\"Component\";Yu.has(kn)||(Yu.add(kn),console.error(\"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",kn,rt.state===null?\"null\":\"undefined\",kn))}if(typeof Y.getDerivedStateFromProps==\"function\"||typeof rt.getSnapshotBeforeUpdate==\"function\"){var Tr=null,_n=null,Gt=null;if(typeof rt.componentWillMount==\"function\"&&rt.componentWillMount.__suppressDeprecationWarning!==!0?Tr=\"componentWillMount\":typeof rt.UNSAFE_componentWillMount==\"function\"&&(Tr=\"UNSAFE_componentWillMount\"),typeof rt.componentWillReceiveProps==\"function\"&&rt.componentWillReceiveProps.__suppressDeprecationWarning!==!0?_n=\"componentWillReceiveProps\":typeof rt.UNSAFE_componentWillReceiveProps==\"function\"&&(_n=\"UNSAFE_componentWillReceiveProps\"),typeof rt.componentWillUpdate==\"function\"&&rt.componentWillUpdate.__suppressDeprecationWarning!==!0?Gt=\"componentWillUpdate\":typeof rt.UNSAFE_componentWillUpdate==\"function\"&&(Gt=\"UNSAFE_componentWillUpdate\"),Tr!==null||_n!==null||Gt!==null){var Bo=vn(Y)||\"Component\",Lr=typeof Y.getDerivedStateFromProps==\"function\"?\"getDerivedStateFromProps()\":\"getSnapshotBeforeUpdate()\";Wl.has(Bo)||(Wl.add(Bo),console.error(`Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://react.dev/link/unsafe-component-lifecycles`,Bo,Lr,Tr!==null?`\\n  `+Tr:\"\",_n!==null?`\\n  `+_n:\"\",Gt!==null?`\\n  `+Gt:\"\"))}}var Rn=vn(Y)||\"Component\";rt.render||(Y.prototype&&typeof Y.prototype.render==\"function\"?console.error(\"No `render` method found on the %s instance: did you accidentally return an object from the constructor?\",Rn):console.error(\"No `render` method found on the %s instance: you may have forgotten to define `render`.\",Rn)),!rt.getInitialState||rt.getInitialState.isReactClassApproved||rt.state||console.error(\"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",Rn),rt.getDefaultProps&&!rt.getDefaultProps.isReactClassApproved&&console.error(\"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",Rn),rt.contextType&&console.error(\"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",Rn),Y.childContextTypes&&!al.has(Y)&&(al.add(Y),console.error(\"%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)\",Rn)),Y.contextTypes&&!f0.has(Y)&&(f0.add(Y),console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)\",Rn)),typeof rt.componentShouldUpdate==\"function\"&&console.error(\"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",Rn),Y.prototype&&Y.prototype.isPureReactComponent&&typeof rt.shouldComponentUpdate<\"u\"&&console.error(\"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",vn(Y)||\"A pure component\"),typeof rt.componentDidUnmount==\"function\"&&console.error(\"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",Rn),typeof rt.componentDidReceiveProps==\"function\"&&console.error(\"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",Rn),typeof rt.componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",Rn),typeof rt.UNSAFE_componentWillRecieveProps==\"function\"&&console.error(\"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",Rn);var os=rt.props!==pt;rt.props!==void 0&&os&&console.error(\"When calling super() in `%s`, make sure to pass up the same props that your component\\'s constructor was passed.\",Rn),rt.defaultProps&&console.error(\"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",Rn,Rn),typeof rt.getSnapshotBeforeUpdate!=\"function\"||typeof rt.componentDidUpdate==\"function\"||d0.has(Y)||(d0.add(Y),console.error(\"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",vn(Y))),typeof rt.getDerivedStateFromProps==\"function\"&&console.error(\"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",Rn),typeof rt.getDerivedStateFromError==\"function\"&&console.error(\"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",Rn),typeof Y.getSnapshotBeforeUpdate==\"function\"&&console.error(\"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",Rn);var Ps=rt.state;Ps&&(typeof Ps!=\"object\"||wa(Ps))&&console.error(\"%s.state: must be set to an object or null\",Rn),typeof rt.getChildContext==\"function\"&&typeof Y.childContextTypes!=\"object\"&&console.error(\"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",Rn);var si=rt.state!==void 0?rt.state:null;rt.updater=nw,rt.props=pt,rt.state=si;var gi={queue:[],replace:!1};rt._reactInternals=gi;var po=Y.contextType;if(rt.context=typeof po==\"object\"&&po!==null?po._currentValue:_a,rt.state===pt){var Jo=vn(Y)||\"Component\";pp.has(Jo)||(pp.add(Jo),console.error(\"%s: It is not recommended to assign props directly to state because updates to props won\\'t be reflected in state. In most cases, it is better to use props directly.\",Jo))}var yi=Y.getDerivedStateFromProps;if(typeof yi==\"function\"){var Bn=yi(pt,si);if(Bn===void 0){var mo=vn(Y)||\"Component\";ty.has(mo)||(ty.add(mo),console.error(\"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",mo))}var Br=Bn==null?si:uo({},si,Bn);rt.state=Br}if(typeof Y.getDerivedStateFromProps!=\"function\"&&typeof rt.getSnapshotBeforeUpdate!=\"function\"&&(typeof rt.UNSAFE_componentWillMount==\"function\"||typeof rt.componentWillMount==\"function\")){var is=rt.state;if(typeof rt.componentWillMount==\"function\"){if(rt.componentWillMount.__suppressDeprecationWarning!==!0){var ss=vn(Y)||\"Unknown\";ih[ss]||(console.warn(`componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code from componentWillMount to componentDidMount (preferred in most cases) or the constructor.\\n\\nPlease update the following components: %s`,ss),ih[ss]=!0)}rt.componentWillMount()}if(typeof rt.UNSAFE_componentWillMount==\"function\"&&rt.UNSAFE_componentWillMount(),is!==rt.state&&(console.error(\"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component\\'s constructor). Use setState instead.\",vn(Y)||\"Component\"),nw.enqueueReplaceState(rt,rt.state,null)),gi.queue!==null&&0<gi.queue.length){var Pi=gi.queue,rc=gi.replace;if(gi.queue=null,gi.replace=!1,rc&&Pi.length===1)rt.state=Pi[0];else{for(var Ki=rc?Pi[0]:rt.state,oc=!0,Ju=rc?1:0;Ju<Pi.length;Ju++){var Un=Pi[Ju],cl=typeof Un==\"function\"?Un.call(rt,Ki,pt,void 0):Un;cl!=null&&(oc?(oc=!1,Ki=uo({},Ki,cl)):uo(Ki,cl))}rt.state=Ki}}else gi.queue=null}var Ta=Ne(rt);if(w.status===12)throw null;rt.props!==pt&&(_c||console.error(\"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",vn(Y)||\"a component\"),_c=!0);var Xu=S.keyPath;S.keyPath=M,wc(w,S,Ta,-1),S.keyPath=Xu}else{if(Y.prototype&&typeof Y.prototype.render==\"function\"){var gs=vn(Y)||\"Unknown\";Oi[gs]||(console.error(\"The <%s /> component appears to have a render method, but doesn\\'t extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",gs,gs),Oi[gs]=!0)}var Mi=rE(w,S,M,Y,re,void 0);if(w.status===12)throw null;var Ao=Yd!==0,ys=Qu,ia=iy;if(Y.contextTypes){var $l=vn(Y)||\"Unknown\";$i[$l]||($i[$l]=!0,console.error(\"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)\",$l))}if(Y&&Y.childContextTypes&&console.error(`childContextTypes cannot be defined on a function component.\\n  %s.childContextTypes = ...`,Y.displayName||Y.name||\"Component\"),typeof Y.getDerivedStateFromProps==\"function\"){var as=vn(Y)||\"Unknown\";Co[as]||(console.error(\"%s: Function components do not support getDerivedStateFromProps.\",as),Co[as]=!0)}if(typeof Y.contextType==\"object\"&&Y.contextType!==null){var Cc=vn(Y)||\"Unknown\";ii[Cc]||(console.error(\"%s: Function components do not support contextType.\",Cc),ii[Cc]=!0)}oE(w,S,M,Mi,Ao,ys,ia)}else if(typeof Y==\"string\"){var Ra=S.blockedSegment;if(Ra===null){var sa=re.children,To=S.formatContext,Ms=S.keyPath;S.formatContext=H(To,Y,re),S.keyPath=M,Jc(w,S,sa,-1),S.formatContext=To,S.keyPath=Ms}else{var ic=qt(Ra.chunks,Y,re,w.resumableState,w.renderState,S.blockedPreamble,S.hoistableState,S.formatContext,Ra.lastPushedText,S.isFallback);Ra.lastPushedText=!1;var Ac=S.formatContext,sc=S.keyPath;if(S.keyPath=M,(S.formatContext=H(Ac,Y,re)).insertionMode===eh){var Kl=Hd(w,0,null,S.formatContext,!1,!1);Ra.preambleChildren.push(Kl);var aa=zd(w,null,ic,-1,S.blockedBoundary,Kl,S.blockedPreamble,S.hoistableState,w.abortableTasks,S.keyPath,S.formatContext,S.context,S.treeContext,S.componentStack,S.isFallback,_a,S.debugTask);Yh(aa),w.pingedTasks.push(aa)}else Jc(w,S,ic,-1);S.formatContext=Ac,S.keyPath=sc;e:{var ll=Ra.chunks,Tc=w.resumableState;switch(Y){case\"title\":case\"style\":case\"script\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"img\":case\"input\":case\"keygen\":case\"link\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":break e;case\"body\":if(Ac.insertionMode<=t0){Tc.hasBody=!0;break e}break;case\"html\":if(Ac.insertionMode===e0){Tc.hasHtml=!0;break e}break;case\"head\":if(Ac.insertionMode<=t0)break e}ll.push(Wt(Y))}Ra.lastPushedText=!1}}else{switch(Y){case Ii:case $u:case Js:case Vu:var ul=S.keyPath;S.keyPath=M,wc(w,S,re.children,-1),S.keyPath=ul;return;case ob:if(re.mode!==\"hidden\"){var dl=S.keyPath;S.keyPath=M,wc(w,S,re.children,-1),S.keyPath=dl}return;case Ug:var Ia=S.keyPath;S.keyPath=M,wc(w,S,re.children,-1),S.keyPath=Ia;return;case XT:case R2:throw Error(\"ReactDOMServer does not yet support scope components.\");case Rs:e:if(S.replay!==null){var ca=S.keyPath;S.keyPath=M;var ah=re.children;try{Jc(w,S,ah,-1)}finally{S.keyPath=ca}}else{var pn=S.keyPath,Gl=S.blockedBoundary,Zl=S.blockedPreamble,gp=S.hoistableState,ac=S.blockedSegment,Yl=re.fallback,cs=re.children,bs=new Set,Do=S.formatContext.insertionMode<tc?Qs(w,bs,B(),B()):Qs(w,bs,null,null);w.trackedPostpones!==null&&(Do.trackedContentKeyPath=M);var bi=Hd(w,ac.chunks.length,Do,S.formatContext,!1,!1);ac.children.push(bi),ac.lastPushedText=!1;var Sr=Hd(w,0,null,S.formatContext,!1,!1);if(Sr.parentFlushed=!0,w.trackedPostpones!==null){var b0=[M[0],\"Suspense Fallback\",M[2]],vi=[b0[1],b0[2],[],null];w.trackedPostpones.workingMap.set(b0,vi),Do.trackedFallbackNode=vi,S.blockedSegment=bi,S.blockedPreamble=Do.fallbackPreamble,S.keyPath=b0,bi.status=6;try{Jc(w,S,Yl,-1),bi.lastPushedText&&bi.textEmbedded&&bi.chunks.push(Gu),bi.status=un}catch(nf){throw bi.status=w.status===12?3:4,nf}finally{S.blockedSegment=ac,S.blockedPreamble=Zl,S.keyPath=pn}var fl=zd(w,null,cs,-1,Do,Sr,Do.contentPreamble,Do.contentState,S.abortSet,M,S.formatContext,S.context,S.treeContext,S.componentStack,S.isFallback,_a,S.debugTask);Yh(fl),w.pingedTasks.push(fl)}else{S.blockedBoundary=Do,S.blockedPreamble=Do.contentPreamble,S.hoistableState=Do.contentState,S.blockedSegment=Sr,S.keyPath=M,Sr.status=6;try{if(Jc(w,S,cs,-1),Sr.lastPushedText&&Sr.textEmbedded&&Sr.chunks.push(Gu),Sr.status=un,Mg(Do,Sr),Do.pendingTasks===0&&Do.status===mn){Do.status=un,w.pendingRootTasks===0&&S.blockedPreamble&&tp(w);break e}}catch(nf){if(Do.status=Sn,w.status===12){Sr.status=3;var Ns=w.fatalError}else Sr.status=4,Ns=nf;var v0=ms(S.componentStack),Xo=ba(w,Ns,v0,S.debugTask);Ul(Do,Xo,Ns,v0,!1),Hm(w,Do)}finally{S.blockedBoundary=Gl,S.blockedPreamble=Zl,S.hoistableState=gp,S.blockedSegment=ac,S.keyPath=pn}var hr=zd(w,null,Yl,-1,Gl,bi,Do.fallbackPreamble,Do.fallbackState,bs,[M[0],\"Suspense Fallback\",M[2]],S.formatContext,S.context,S.treeContext,S.componentStack,!0,_a,S.debugTask);Yh(hr),w.pingedTasks.push(hr)}}return}if(typeof Y==\"object\"&&Y!==null)switch(Y.$$typeof){case Fg:if(\"ref\"in re){var Ql={};for(var Ro in re)Ro!==\"ref\"&&(Ql[Ro]=re[Ro])}else Ql=re;var ch=rE(w,S,M,Y.render,Ql,ue);oE(w,S,M,ch,Yd!==0,Qu,iy);return;case el:Xa(w,S,M,Y.type,re,ue);return;case Xc:case ip:var ed=re.value,Qd=re.children,Jd=S.context,Oa=S.keyPath,Xd=Y._currentValue;Y._currentValue=ed,Y._currentRenderer!==void 0&&Y._currentRenderer!==null&&Y._currentRenderer!==oh&&console.error(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),Y._currentRenderer=oh;var Jl=ql,Xl={parent:Jl,depth:Jl===null?0:Jl.depth+1,context:Y,parentValue:Xd,value:ed};ql=Xl,S.context=Xl,S.keyPath=M,wc(w,S,Qd,-1);var cc=ql;if(cc===null)throw Error(\"Tried to pop a Context at the root of the app. This is a bug in React.\");cc.context!==Y&&console.error(\"The parent context is not the expected context. This is probably a bug in React.\"),cc.context._currentValue=cc.parentValue,Y._currentRenderer!==void 0&&Y._currentRenderer!==null&&Y._currentRenderer!==oh&&console.error(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),Y._currentRenderer=oh;var eu=ql=cc.parent;S.context=eu,S.keyPath=Oa,Jd!==S.context&&console.error(\"Popping the context provider did not return back to the original snapshot. This is a bug in React.\");return;case Km:var Gi=Y._context,ei=re.children;typeof ei!=\"function\"&&console.error(\"A context consumer was rendered with multiple children, or a child that isn\\'t a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\");var cy=ei(Gi._currentValue),ef=S.keyPath;S.keyPath=M,wc(w,S,cy,-1),S.keyPath=ef;return;case tl:var w0=At(Y);if(w.status===12)throw null;Xa(w,S,M,w0,re,ue);return}var tf=\"\";throw(Y===void 0||typeof Y==\"object\"&&Y!==null&&Object.keys(Y).length===0)&&(tf+=\" You likely forgot to export your component from the file it\\'s defined in, or you might have mixed up default and named imports.\"),Error(\"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \"+((Y==null?Y:typeof Y)+\".\"+tf))}}function zm(w,S,M,Y,re){var ue=S.replay,Ee=S.blockedBoundary,Ae=Hd(w,0,null,S.formatContext,!1,!1);Ae.id=M,Ae.parentFlushed=!0;try{S.replay=null,S.blockedSegment=Ae,Jc(w,S,Y,re),Ae.status=un,Ee===null?w.completedRootSegment=Ae:(Mg(Ee,Ae),Ee.parentFlushed&&w.partialBoundaries.push(Ee))}finally{S.replay=ue,S.blockedSegment=null}}function Qh(w,S,M,Y,re,ue,Ee,Ae,Le,Ie){ue=Ie.nodes;for(var pt=0;pt<ue.length;pt++){var ut=ue[pt];if(re===ut[1]){if(ut.length===4){if(Y!==null&&Y!==ut[0])throw Error(\"Expected the resume to render <\"+ut[0]+\"> in this slot but instead it rendered <\"+Y+\">. The tree doesn\\'t match so React will fallback to client rendering.\");var _t=ut[2];ut=ut[3],Y=S.node,S.replay={nodes:_t,slots:ut,pendingTasks:1};try{if(Xa(w,S,M,Ee,Ae,Le),S.replay.pendingTasks===1&&0<S.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");S.replay.pendingTasks--}catch(Lr){if(typeof Lr==\"object\"&&Lr!==null&&(Lr===Ca||typeof Lr.then==\"function\"))throw S.node===Y&&(S.replay=Ie),Lr;S.replay.pendingTasks--,Ee=ms(S.componentStack),Ae=w,w=S.blockedBoundary,M=Lr,Le=ut,ut=ba(Ae,M,Ee,S.debugTask),Og(Ae,w,_t,Le,M,ut,Ee,!1)}S.replay=Ie}else{if(Ee!==Rs)throw Error(\"Expected the resume to render <Suspense> in this slot but instead it rendered <\"+(vn(Ee)||\"Unknown\")+\">. The tree doesn\\'t match so React will fallback to client rendering.\");e:{Ie=void 0,Ee=ut[5],Le=ut[2],Y=ut[3],re=ut[4]===null?[]:ut[4][2],ut=ut[4]===null?null:ut[4][3];var bt=S.keyPath,rt=S.replay,kn=S.blockedBoundary,Tr=S.hoistableState,_n=Ae.children,Gt=Ae.fallback,Bo=new Set;Ae=S.formatContext.insertionMode<tc?Qs(w,Bo,B(),B()):Qs(w,Bo,null,null),Ae.parentFlushed=!0,Ae.rootSegmentID=Ee,S.blockedBoundary=Ae,S.hoistableState=Ae.contentState,S.keyPath=M,S.replay={nodes:Le,slots:Y,pendingTasks:1};try{if(Jc(w,S,_n,-1),S.replay.pendingTasks===1&&0<S.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");if(S.replay.pendingTasks--,Ae.pendingTasks===0&&Ae.status===mn){Ae.status=un,w.completedBoundaries.push(Ae);break e}}catch(Lr){Ae.status=Sn,_t=ms(S.componentStack),Ie=ba(w,Lr,_t,S.debugTask),Ul(Ae,Ie,Lr,_t,!1),S.replay.pendingTasks--,w.clientRenderedBoundaries.push(Ae)}finally{S.blockedBoundary=kn,S.hoistableState=Tr,S.replay=rt,S.keyPath=bt}Ae=eb(w,null,{nodes:re,slots:ut,pendingTasks:0},Gt,-1,kn,Ae.fallbackState,Bo,[M[0],\"Suspense Fallback\",M[2]],S.formatContext,S.context,S.treeContext,S.componentStack,!0,_a,S.debugTask),Yh(Ae),w.pingedTasks.push(Ae)}}ue.splice(pt,1);break}}}function wc(w,S,M,Y){S.replay!==null&&typeof S.replay.slots==\"number\"?zm(w,S,S.replay.slots,M,Y):(S.node=M,S.childIndex=Y,M=S.componentStack,Y=S.debugTask,Yh(S),Ig(w,S),S.componentStack=M,S.debugTask=Y)}function Ig(w,S){var M=S.node,Y=S.childIndex;if(M!==null){if(typeof M==\"object\"){switch(M.$$typeof){case Gf:var re=M.type,ue=M.key;M=M.props;var Ee=M.ref;Ee=Ee!==void 0?Ee:null;var Ae=S.debugTask,Le=vn(re);ue=ue??(Y===-1?0:Y);var Ie=[S.keyPath,Le,ue];S.replay!==null?Ae?Ae.run(Qh.bind(null,w,S,Ie,Le,ue,Y,re,M,Ee,S.replay)):Qh(w,S,Ie,Le,ue,Y,re,M,Ee,S.replay):Ae?Ae.run(Xa.bind(null,w,S,Ie,re,M,Ee)):Xa(w,S,Ie,re,M,Ee);return;case op:throw Error(\"Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render.\");case tl:if(M=At(M),w.status===12)throw null;wc(w,S,M,Y);return}if(wa(M)){$f(w,S,M,Y);return}if(M===null||typeof M!=\"object\"?ue=null:(re=ib&&M[ib]||M[\"@@iterator\"],ue=typeof re==\"function\"?re:null),ue&&(re=ue.call(M))){if(re===M?(Y!==-1||S.componentStack===null||typeof S.componentStack.type!=\"function\"||Object.prototype.toString.call(S.componentStack.type)!==\"[object GeneratorFunction]\"||Object.prototype.toString.call(re)!==\"[object Generator]\")&&(Aa||console.error(\"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.\"),Aa=!0):M.entries!==ue||Er||(console.error(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),Er=!0),M=re.next(),!M.done){ue=[];do ue.push(M.value),M=re.next();while(!M.done);$f(w,S,ue,Y)}return}if(typeof M.then==\"function\")return S.thenableState=null,wc(w,S,Qc(M),Y);if(M.$$typeof===ip)return wc(w,S,M._currentValue,Y);throw w=Object.prototype.toString.call(M),Error(\"Objects are not valid as a React child (found: \"+(w===\"[object Object]\"?\"object with keys {\"+Object.keys(M).join(\", \")+\"}\":w)+\"). If you meant to render a collection of children, use an array instead.\")}typeof M==\"string\"?(S=S.blockedSegment,S!==null&&(S.lastPushedText=I(S.chunks,M,w.renderState,S.lastPushedText))):typeof M==\"number\"||typeof M==\"bigint\"?(S=S.blockedSegment,S!==null&&(S.lastPushedText=I(S.chunks,\"\"+M,w.renderState,S.lastPushedText))):(typeof M==\"function\"&&(w=M.displayName||M.name||\"Component\",console.error(\"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\",w,w)),typeof M==\"symbol\"&&console.error(`Symbols are not valid as a React child.\\n  %s`,String(M)))}}function $f(w,S,M,Y){var re=S.keyPath,ue=S.componentStack,Ee=S.debugTask;if(Rg(S,S.node._debugInfo),Y!==-1&&(S.keyPath=[S.keyPath,\"Fragment\",Y],S.replay!==null)){for(var Ae=S.replay,Le=Ae.nodes,Ie=0;Ie<Le.length;Ie++){var pt=Le[Ie];if(pt[1]===Y){Y=pt[2],pt=pt[3],S.replay={nodes:Y,slots:pt,pendingTasks:1};try{if($f(w,S,M,-1),S.replay.pendingTasks===1&&0<S.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");S.replay.pendingTasks--}catch(_n){if(typeof _n==\"object\"&&_n!==null&&(_n===Ca||typeof _n.then==\"function\"))throw _n;S.replay.pendingTasks--;var ut=ms(S.componentStack);M=S.blockedBoundary;var _t=_n,bt=pt;pt=ba(w,_t,ut,S.debugTask),Og(w,M,Y,bt,_t,pt,ut,!1)}S.replay=Ae,Le.splice(Ie,1);break}}S.keyPath=re,S.componentStack=ue,S.debugTask=Ee;return}if(Ae=S.treeContext,Le=M.length,S.replay!==null&&(Ie=S.replay.slots,Ie!==null&&typeof Ie==\"object\")){for(Y=0;Y<Le;Y++)pt=M[Y],S.treeContext=Zr(Ae,Le,Y),_t=Ie[Y],typeof _t==\"number\"?(zm(w,S,_t,pt,Y),delete Ie[Y]):Jc(w,S,pt,Y);S.treeContext=Ae,S.keyPath=re,S.componentStack=ue,S.debugTask=Ee;return}for(Ie=0;Ie<Le;Ie++){if(Y=M[Ie],bt=w,pt=S,_t=Y,_t!==null&&typeof _t==\"object\"&&(_t.$$typeof===Gf||_t.$$typeof===op)&&_t._store&&(!_t._store.validated&&_t.key==null||_t._store.validated===2)){if(typeof _t._store!=\"object\")throw Error(\"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\");if(_t._store.validated=1,ut=bt.didWarnForKey,ut==null&&(ut=bt.didWarnForKey=new WeakSet),bt=pt.componentStack,bt!==null&&!ut.has(bt)){ut.add(bt);var rt=vn(_t.type);ut=_t._owner;var kn=bt.owner;if(bt=\"\",kn&&typeof kn.type<\"u\"){var Tr=vn(kn.type);Tr&&(bt=`\\n\\nCheck the render method of \\\\``+Tr+\"`.\")}bt||rt&&(bt=`\\n\\nCheck the top-level render call using <`+rt+\">.\"),rt=\"\",ut!=null&&kn!==ut&&(kn=null,typeof ut.type<\"u\"?kn=vn(ut.type):typeof ut.name==\"string\"&&(kn=ut.name),kn&&(rt=\" It was passed a child from \"+kn+\".\")),ut=pt.componentStack,pt.componentStack={parent:pt.componentStack,type:_t.type,owner:_t._owner,stack:_t._debugStack},console.error(\\'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.\\',bt,rt),pt.componentStack=ut}}S.treeContext=Zr(Ae,Le,Ie),Jc(w,S,Y,Ie)}S.treeContext=Ae,S.keyPath=re,S.componentStack=ue,S.debugTask=Ee}function Hm(w,S){w=w.trackedPostpones,w!==null&&(S=S.trackedContentKeyPath,S!==null&&(S=w.workingMap.get(S),S!==void 0&&(S.length=4,S[2]=[],S[3]=null)))}function Kf(w,S,M){return eb(w,M,S.replay,S.node,S.childIndex,S.blockedBoundary,S.hoistableState,S.abortSet,S.keyPath,S.formatContext,S.context,S.treeContext,S.componentStack,S.isFallback,_a,S.debugTask)}function qm(w,S,M){var Y=S.blockedSegment,re=Hd(w,Y.chunks.length,null,S.formatContext,Y.lastPushedText,!0);return Y.children.push(re),Y.lastPushedText=!1,zd(w,M,S.node,S.childIndex,S.blockedBoundary,re,S.blockedPreamble,S.hoistableState,S.abortSet,S.keyPath,S.formatContext,S.context,S.treeContext,S.componentStack,S.isFallback,_a,S.debugTask)}function Jc(w,S,M,Y){var re=S.formatContext,ue=S.context,Ee=S.keyPath,Ae=S.treeContext,Le=S.componentStack,Ie=S.debugTask,pt=S.blockedSegment;if(pt===null)try{return wc(w,S,M,Y)}catch(bt){if(Qa(),M=bt===Ca?Zo():bt,typeof M==\"object\"&&M!==null){if(typeof M.then==\"function\"){Y=Ya(),w=Kf(w,S,Y).ping,M.then(w,w),S.formatContext=re,S.context=ue,S.keyPath=Ee,S.treeContext=Ae,S.componentStack=Le,S.debugTask=Ie,xr(ue);return}if(M.message===\"Maximum call stack size exceeded\"){M=Ya(),M=Kf(w,S,M),w.pingedTasks.push(M),S.formatContext=re,S.context=ue,S.keyPath=Ee,S.treeContext=Ae,S.componentStack=Le,S.debugTask=Ie,xr(ue);return}}}else{var ut=pt.children.length,_t=pt.chunks.length;try{return wc(w,S,M,Y)}catch(bt){if(Qa(),pt.children.length=ut,pt.chunks.length=_t,M=bt===Ca?Zo():bt,typeof M==\"object\"&&M!==null){if(typeof M.then==\"function\"){Y=Ya(),w=qm(w,S,Y).ping,M.then(w,w),S.formatContext=re,S.context=ue,S.keyPath=Ee,S.treeContext=Ae,S.componentStack=Le,S.debugTask=Ie,xr(ue);return}if(M.message===\"Maximum call stack size exceeded\"){M=Ya(),M=qm(w,S,M),w.pingedTasks.push(M),S.formatContext=re,S.context=ue,S.keyPath=Ee,S.treeContext=Ae,S.componentStack=Le,S.debugTask=Ie,xr(ue);return}}}}throw S.formatContext=re,S.context=ue,S.keyPath=Ee,S.treeContext=Ae,xr(ue),M}function va(w){var S=w.blockedBoundary;w=w.blockedSegment,w!==null&&(w.status=3,tb(this,S,w))}function Og(w,S,M,Y,re,ue,Ee,Ae){for(var Le=0;Le<M.length;Le++){var Ie=M[Le];if(Ie.length===4)Og(w,S,Ie[2],Ie[3],re,ue,Ee,Ae);else{var pt=w;Ie=Ie[5];var ut=re,_t=ue,bt=Ee,rt=Ae,kn=Qs(pt,new Set,null,null);kn.parentFlushed=!0,kn.rootSegmentID=Ie,kn.status=Sn,Ul(kn,_t,ut,bt,rt),kn.parentFlushed&&pt.clientRenderedBoundaries.push(kn)}}if(M.length=0,Y!==null){if(S===null)throw Error(\"We should not have any resumable nodes in the shell. This is a bug in React.\");if(S.status!==Sn&&(S.status=Sn,Ul(S,ue,re,Ee,Ae),S.parentFlushed&&w.clientRenderedBoundaries.push(S)),typeof Y==\"object\")for(var Tr in Y)delete Y[Tr]}}function Jh(w,S,M){var Y=w.blockedBoundary,re=w.blockedSegment;if(re!==null){if(re.status===6)return;re.status=3}if(re=ms(w.componentStack),Y===null){if(S.status!==13&&S.status!==Tn){if(Y=w.replay,Y===null){ba(S,M,re,null),jm(S,M,re,null);return}Y.pendingTasks--,Y.pendingTasks===0&&0<Y.nodes.length&&(w=ba(S,M,re,null),Og(S,null,Y.nodes,Y.slots,M,w,re,!0)),S.pendingRootTasks--,S.pendingRootTasks===0&&Xh(S)}}else Y.pendingTasks--,Y.status!==Sn&&(Y.status=Sn,w=ba(S,M,re,null),Y.status=Sn,Ul(Y,w,M,re,!0),Hm(S,Y),Y.parentFlushed&&S.clientRenderedBoundaries.push(Y)),Y.fallbackAbortableTasks.forEach(function(ue){return Jh(ue,S,M)}),Y.fallbackAbortableTasks.clear();S.allPendingTasks--,S.allPendingTasks===0&&Pg(S)}function Wm(w,S){try{var M=w.renderState,Y=M.onHeaders;if(Y){var re=M.headers;if(re){M.headers=null;var ue=re.preconnects;if(re.fontPreloads&&(ue&&(ue+=\", \"),ue+=re.fontPreloads),re.highImagePreloads&&(ue&&(ue+=\", \"),ue+=re.highImagePreloads),!S){var Ee=M.styles.values(),Ae=Ee.next();e:for(;0<re.remainingCapacity&&!Ae.done;Ae=Ee.next())for(var Le=Ae.value.sheets.values(),Ie=Le.next();0<re.remainingCapacity&&!Ie.done;Ie=Le.next()){var pt=Ie.value,ut=pt.props,_t=ut.href,bt=pt.props,rt=ni(bt.href,\"style\",{crossOrigin:bt.crossOrigin,integrity:bt.integrity,nonce:bt.nonce,type:bt.type,fetchPriority:bt.fetchPriority,referrerPolicy:bt.referrerPolicy,media:bt.media});if(0<=(re.remainingCapacity-=rt.length+2))M.resets.style[_t]=xc,ue&&(ue+=\", \"),ue+=rt,M.resets.style[_t]=typeof ut.crossOrigin==\"string\"||typeof ut.integrity==\"string\"?[ut.crossOrigin,ut.integrity]:xc;else break e}}Y(ue?{Link:ue}:{})}}}catch(kn){ba(w,kn,{},null)}}function Xh(w){w.trackedPostpones===null&&Wm(w,!0),w.trackedPostpones===null&&tp(w),w.onShellError=$h,w=w.onShellReady,w()}function Pg(w){Wm(w,w.trackedPostpones===null?!0:w.completedRootSegment===null||w.completedRootSegment.status!==cn),tp(w),w=w.onAllReady,w()}function Mg(w,S){if(S.chunks.length===0&&S.children.length===1&&S.children[0].boundary===null&&S.children[0].id===-1){var M=S.children[0];M.id=S.id,M.parentFlushed=!0,M.status===un&&Mg(w,M)}else w.completedSegments.push(S)}function tb(w,S,M){if(S===null){if(M!==null&&M.parentFlushed){if(w.completedRootSegment!==null)throw Error(\"There can only be one root segment. This is a bug in React.\");w.completedRootSegment=M}w.pendingRootTasks--,w.pendingRootTasks===0&&Xh(w)}else S.pendingTasks--,S.status!==Sn&&(S.pendingTasks===0?(S.status===mn&&(S.status=un),M!==null&&M.parentFlushed&&M.status===un&&Mg(S,M),S.parentFlushed&&w.completedBoundaries.push(S),S.status===un&&(S.fallbackAbortableTasks.forEach(va,w),S.fallbackAbortableTasks.clear(),w.pendingRootTasks===0&&w.trackedPostpones===null&&S.contentPreamble!==null&&tp(w))):M!==null&&M.parentFlushed&&M.status===un&&(Mg(S,M),S.completedSegments.length===1&&S.parentFlushed&&w.partialBoundaries.push(S)));w.allPendingTasks--,w.allPendingTasks===0&&Pg(w)}function Ng(w){if(w.status!==Tn&&w.status!==13){var S=ql,M=Lo.H;Lo.H=sh;var Y=Lo.A;Lo.A=n_;var re=ro;ro=w;var ue=Lo.getCurrentStack;Lo.getCurrentStack=Vf;var Ee=Os;Os=w.resumableState;try{var Ae=w.pingedTasks,Le;for(Le=0;Le<Ae.length;Le++){var Ie=w,pt=Ae[Le],ut=pt.blockedSegment;if(ut===null){var _t=void 0,bt=Ie;if(Ie=pt,Ie.replay.pendingTasks!==0){xr(Ie.context),_t=ho,ho=Ie;try{if(typeof Ie.replay.slots==\"number\"?zm(bt,Ie,Ie.replay.slots,Ie.node,Ie.childIndex):Ig(bt,Ie),Ie.replay.pendingTasks===1&&0<Ie.replay.nodes.length)throw Error(\"Couldn\\'t find all resumable slots by key/index during replaying. The tree doesn\\'t match so React will fallback to client rendering.\");Ie.replay.pendingTasks--,Ie.abortSet.delete(Ie),tb(bt,Ie.blockedBoundary,null)}catch(Br){Qa();var rt=Br===Ca?Zo():Br;if(typeof rt==\"object\"&&rt!==null&&typeof rt.then==\"function\"){var kn=Ie.ping;rt.then(kn,kn),Ie.thenableState=Ya()}else{Ie.replay.pendingTasks--,Ie.abortSet.delete(Ie);var Tr=ms(Ie.componentStack),_n=void 0,Gt=bt,Bo=Ie.blockedBoundary,Lr=bt.status===12?bt.fatalError:rt,Rn=Tr,os=Ie.replay.nodes,Ps=Ie.replay.slots;_n=ba(Gt,Lr,Rn,Ie.debugTask),Og(Gt,Bo,os,Ps,Lr,_n,Rn,!1),bt.pendingRootTasks--,bt.pendingRootTasks===0&&Xh(bt),bt.allPendingTasks--,bt.allPendingTasks===0&&Pg(bt)}}finally{ho=_t}}}else if(bt=_t=void 0,_n=pt,Gt=ut,Gt.status===mn){Gt.status=6,xr(_n.context),bt=ho,ho=_n;var si=Gt.children.length,gi=Gt.chunks.length;try{Ig(Ie,_n),Gt.lastPushedText&&Gt.textEmbedded&&Gt.chunks.push(Gu),_n.abortSet.delete(_n),Gt.status=un,tb(Ie,_n.blockedBoundary,Gt)}catch(Br){Qa(),Gt.children.length=si,Gt.chunks.length=gi;var po=Br===Ca?Zo():Ie.status===12?Ie.fatalError:Br;if(typeof po==\"object\"&&po!==null&&typeof po.then==\"function\"){Gt.status=mn,_n.thenableState=Ya();var Jo=_n.ping;po.then(Jo,Jo)}else{var yi=ms(_n.componentStack);_n.abortSet.delete(_n),Gt.status=4;var Bn=_n.blockedBoundary,mo=_n.debugTask;_t=ba(Ie,po,yi,mo),Bn===null?jm(Ie,po,yi,mo):(Bn.pendingTasks--,Bn.status!==Sn&&(Bn.status=Sn,Ul(Bn,_t,po,yi,!1),Hm(Ie,Bn),Bn.parentFlushed&&Ie.clientRenderedBoundaries.push(Bn),Ie.pendingRootTasks===0&&Ie.trackedPostpones===null&&Bn.contentPreamble!==null&&tp(Ie))),Ie.allPendingTasks--,Ie.allPendingTasks===0&&Pg(Ie)}}finally{ho=bt}}}Ae.splice(0,Le),w.destination!==null&&Vm(w,w.destination)}catch(Br){Ae={},ba(w,Br,Ae,null),jm(w,Br,Ae,null)}finally{Os=Ee,Lo.H=M,Lo.A=Y,Lo.getCurrentStack=ue,M===sh&&xr(S),ro=re}}}function A2(w,S,M){S.preambleChildren.length&&M.push(S.preambleChildren);for(var Y=!1,re=0;re<S.children.length;re++)Y=ep(w,S.children[re],M)||Y;return Y}function ep(w,S,M){var Y=S.boundary;if(Y===null)return A2(w,S,M);var re=Y.contentPreamble,ue=Y.fallbackPreamble;if(re===null||ue===null)return!1;switch(Y.status){case un:if(zn(w.renderState,re),S=Y.completedSegments[0],!S)throw Error(\"A previously unvisited boundary must have exactly one root segment. This is a bug in React.\");return A2(w,S,M);case cn:if(w.trackedPostpones!==null)return!0;case Sn:if(S.status===un)return zn(w.renderState,ue),A2(w,S,M);default:return!0}}function tp(w){if(w.completedRootSegment&&w.completedPreambleSegments===null){var S=[],M=ep(w,w.completedRootSegment,S),Y=w.renderState.preamble;(M===!1||Y.headChunks&&Y.bodyChunks)&&(w.completedPreambleSegments=S)}}function nb(w,S,M,Y){switch(M.parentFlushed=!0,M.status){case mn:M.id=w.nextSegmentId++;case cn:return Y=M.id,M.lastPushedText=!1,M.textEmbedded=!1,w=w.renderState,h(S,Hk),h(S,w.placeholderPrefix),w=b(Y.toString(16)),h(S,w),m(S,qk);case un:M.status=Vi;var re=!0,ue=M.chunks,Ee=0;M=M.children;for(var Ae=0;Ae<M.length;Ae++){for(re=M[Ae];Ee<re.index;Ee++)h(S,ue[Ee]);re=Lg(w,S,re,Y)}for(;Ee<ue.length-1;Ee++)h(S,ue[Ee]);return Ee<ue.length&&(re=m(S,ue[Ee])),re;default:throw Error(\"Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.\")}}function Lg(w,S,M,Y){var re=M.boundary;if(re===null)return nb(w,S,M,Y);if(re.parentFlushed=!0,re.status===Sn){var ue=re.errorDigest,Ee=re.errorMessage,Ae=re.errorStack,Le=re.errorComponentStack;return m(S,Kg),h(S,$k),ue&&(h(S,q2),h(S,b(F(ue))),h(S,H2)),Ee&&(h(S,Gg),h(S,b(F(Ee))),h(S,H2)),Ae&&(h(S,W2),h(S,b(F(Ae))),h(S,H2)),Le&&(h(S,EE),h(S,b(F(Le))),h(S,H2)),m(S,i0),nb(w,S,M,Y),(w=re.fallbackPreamble)&&Zs(S,w),m(S,o0)}if(re.status!==un)return re.status===mn&&(re.rootSegmentID=w.nextSegmentId++),0<re.completedSegments.length&&w.partialBoundaries.push(re),br(S,w.renderState,re.rootSegmentID),Y&&(re=re.fallbackState,re.styles.forEach(dr,Y),re.stylesheets.forEach(Bl,Y)),nb(w,S,M,Y),m(S,o0);if(re.byteSize>w.progressiveChunkSize)return re.rootSegmentID=w.nextSegmentId++,w.completedBoundaries.push(re),br(S,w.renderState,re.rootSegmentID),nb(w,S,M,Y),m(S,o0);if(Y&&(M=re.contentState,M.styles.forEach(dr,Y),M.stylesheets.forEach(Bl,Y)),m(S,xE),M=re.completedSegments,M.length!==1)throw Error(\"A previously unvisited boundary must have exactly one root segment. This is a bug in React.\");return Lg(w,S,M[0],Y),(w=re.contentPreamble)&&Zs(S,w),m(S,o0)}function rb(w,S,M,Y){return Pr(S,w.renderState,M.parentFormatContext,M.id),Lg(w,S,M,Y),vr(S,M.parentFormatContext)}function iE(w,S,M){for(var Y=M.completedSegments,re=0;re<Y.length;re++)Fk(w,S,M,Y[re]);Y.length=0,le(S,M.contentState,w.renderState),Y=w.resumableState,w=w.renderState,re=M.rootSegmentID,M=M.contentState;var ue=w.stylesToHoist;return w.stylesToHoist=!1,h(S,w.startInlineScript),ue?(Y.instructions&lp)===Ku?(Y.instructions=Y.instructions|Hg|lp,h(S,gb)):(Y.instructions&Hg)===Ku?(Y.instructions|=Hg,h(S,Qg)):h(S,PE):(Y.instructions&lp)===Ku?(Y.instructions|=lp,h(S,Q2)):h(S,a0),Y=b(re.toString(16)),h(S,w.boundaryPrefix),h(S,Y),h(S,e_),h(S,w.segmentPrefix),h(S,Y),ue?(h(S,oa),Dt(S,M)):h(S,J2),M=m(S,X2),Mn(S,w)&&M}function Fk(w,S,M,Y){if(Y.status===Vi)return!0;var re=M.contentState,ue=Y.id;if(ue===-1){if((Y.id=M.rootSegmentID)===-1)throw Error(\"A root segment ID must have been assigned by now. This is a bug in React.\");return rb(w,S,Y,re)}return ue===M.rootSegmentID?rb(w,S,Y,re):(rb(w,S,Y,re),M=w.resumableState,w=w.renderState,h(S,w.startInlineScript),(M.instructions&ub)===Ku?(M.instructions|=ub,h(S,IE)):h(S,Y2),h(S,w.segmentPrefix),ue=b(ue.toString(16)),h(S,ue),h(S,Xk),h(S,w.placeholderPrefix),h(S,ue),S=m(S,OE),S)}function Vm(w,S){ec=new Uint8Array(2048),xa=0;try{if(!(0<w.pendingRootTasks)){var M,Y=w.completedRootSegment;if(Y!==null){if(Y.status===cn)return;var re=w.completedPreambleSegments;if(re===null)return;var ue=w.renderState,Ee=ue.preamble,Ae=Ee.htmlChunks,Le=Ee.headChunks,Ie;if(Ae){for(Ie=0;Ie<Ae.length;Ie++)h(S,Ae[Ie]);if(Le)for(Ie=0;Ie<Le.length;Ie++)h(S,Le[Ie]);else h(S,Mt(\"head\")),h(S,mi)}else if(Le)for(Ie=0;Ie<Le.length;Ie++)h(S,Le[Ie]);var pt=ue.charsetChunks;for(Ie=0;Ie<pt.length;Ie++)h(S,pt[Ie]);pt.length=0,ue.preconnects.forEach(Te,S),ue.preconnects.clear();var ut=ue.viewportChunks;for(Ie=0;Ie<ut.length;Ie++)h(S,ut[Ie]);ut.length=0,ue.fontPreloads.forEach(Te,S),ue.fontPreloads.clear(),ue.highImagePreloads.forEach(Te,S),ue.highImagePreloads.clear(),ue.styles.forEach(tt,S);var _t=ue.importMapChunks;for(Ie=0;Ie<_t.length;Ie++)h(S,_t[Ie]);_t.length=0,ue.bootstrapScripts.forEach(Te,S),ue.scripts.forEach(Te,S),ue.scripts.clear(),ue.bulkPreloads.forEach(Te,S),ue.bulkPreloads.clear();var bt=ue.hoistableChunks;for(Ie=0;Ie<bt.length;Ie++)h(S,bt[Ie]);for(ue=bt.length=0;ue<re.length;ue++){var rt=re[ue];for(Ee=0;Ee<rt.length;Ee++)Lg(w,S,rt[Ee],null)}var kn=w.renderState.preamble,Tr=kn.headChunks;(kn.htmlChunks||Tr)&&h(S,Wt(\"head\"));var _n=kn.bodyChunks;if(_n)for(re=0;re<_n.length;re++)h(S,_n[re]);Lg(w,S,Y,null),w.completedRootSegment=null,Mn(S,w.renderState)}var Gt=w.renderState;Y=0;var Bo=Gt.viewportChunks;for(Y=0;Y<Bo.length;Y++)h(S,Bo[Y]);Bo.length=0,Gt.preconnects.forEach(Te,S),Gt.preconnects.clear(),Gt.fontPreloads.forEach(Te,S),Gt.fontPreloads.clear(),Gt.highImagePreloads.forEach(Te,S),Gt.highImagePreloads.clear(),Gt.styles.forEach(hn,S),Gt.scripts.forEach(Te,S),Gt.scripts.clear(),Gt.bulkPreloads.forEach(Te,S),Gt.bulkPreloads.clear();var Lr=Gt.hoistableChunks;for(Y=0;Y<Lr.length;Y++)h(S,Lr[Y]);Lr.length=0;var Rn=w.clientRenderedBoundaries;for(M=0;M<Rn.length;M++){var os=Rn[M];Gt=S;var Ps=w.resumableState,si=w.renderState,gi=os.rootSegmentID,po=os.errorDigest,Jo=os.errorMessage,yi=os.errorStack,Bn=os.errorComponentStack;h(Gt,si.startInlineScript),(Ps.instructions&Jm)===Ku?(Ps.instructions|=Jm,h(Gt,yb)):h(Gt,il),h(Gt,si.boundaryPrefix),h(Gt,b(gi.toString(16))),h(Gt,c0),(po||Jo||yi||Bn)&&(h(Gt,sl),h(Gt,b(hi(po||\"\")))),(Jo||yi||Bn)&&(h(Gt,sl),h(Gt,b(hi(Jo||\"\")))),(yi||Bn)&&(h(Gt,sl),h(Gt,b(hi(yi||\"\")))),Bn&&(h(Gt,sl),h(Gt,b(hi(Bn))));var mo=m(Gt,ME);if(!mo){w.destination=null,M++,Rn.splice(0,M);return}}Rn.splice(0,M);var Br=w.completedBoundaries;for(M=0;M<Br.length;M++)if(!iE(w,S,Br[M])){w.destination=null,M++,Br.splice(0,M);return}Br.splice(0,M),g(S),ec=new Uint8Array(2048),xa=0;var is=w.partialBoundaries;for(M=0;M<is.length;M++){e:{Rn=w,os=S;var ss=is[M],Pi=ss.completedSegments;for(mo=0;mo<Pi.length;mo++)if(!Fk(Rn,os,ss,Pi[mo])){mo++,Pi.splice(0,mo);var rc=!1;break e}Pi.splice(0,mo),rc=le(os,ss.contentState,Rn.renderState)}if(!rc){w.destination=null,M++,is.splice(0,M);return}}is.splice(0,M);var Ki=w.completedBoundaries;for(M=0;M<Ki.length;M++)if(!iE(w,S,Ki[M])){w.destination=null,M++,Ki.splice(0,M);return}Ki.splice(0,M)}}finally{w.allPendingTasks===0&&w.pingedTasks.length===0&&w.clientRenderedBoundaries.length===0&&w.completedBoundaries.length===0?(w.flushScheduled=!1,M=w.resumableState,M.hasBody&&h(S,Wt(\"body\")),M.hasHtml&&h(S,Wt(\"html\")),g(S),w.abortableTasks.size!==0&&console.error(\"There was still abortable task at the root when we closed. This is a bug in React.\"),w.status=Tn,S.close(),w.destination=null):g(S)}}function T2(w){w.flushScheduled=w.destination!==null,sp(function(){return Ng(w)}),u(function(){w.status===10&&(w.status=11),w.trackedPostpones===null&&Wm(w,w.pendingRootTasks===0)})}function np(w){w.flushScheduled===!1&&w.pingedTasks.length===0&&w.destination!==null&&(w.flushScheduled=!0,u(function(){var S=w.destination;S?Vm(w,S):w.flushScheduled=!1}))}function $m(w,S){if(w.status===13)w.status=Tn,C(S,w.fatalError);else if(w.status!==Tn&&w.destination===null){w.destination=S;try{Vm(w,S)}catch(M){S={},ba(w,M,S,null),jm(w,M,S,null)}}}function rp(w,S){(w.status===11||w.status===10)&&(w.status=12);try{var M=w.abortableTasks;if(0<M.size){var Y=S===void 0?Error(\"The render was aborted by the server without a reason.\"):typeof S==\"object\"&&S!==null&&typeof S.then==\"function\"?Error(\"The render was aborted by the server with a promise.\"):S;w.fatalError=Y,M.forEach(function(re){return Jh(re,w,Y)}),M.clear()}w.destination!==null&&Vm(w,w.destination)}catch(re){S={},ba(w,re,S,null),jm(w,re,S,null)}}function sE(){var w=Bg.version;if(w!==\"19.1.0\")throw Error(`Incompatible React versions: The \"react\" and \"react-dom\" packages must have the exact same version. Instead got:\\n  - react:      `+(w+`\\n  - react-dom:  19.1.0\\nLearn more: https://react.dev/warnings/version-mismatch`))}var Bg=et(),Dg=I0(),Gf=Symbol.for(\"react.transitional.element\"),op=Symbol.for(\"react.portal\"),Vu=Symbol.for(\"react.fragment\"),$u=Symbol.for(\"react.strict_mode\"),Js=Symbol.for(\"react.profiler\"),Xc=Symbol.for(\"react.provider\"),Km=Symbol.for(\"react.consumer\"),ip=Symbol.for(\"react.context\"),Fg=Symbol.for(\"react.forward_ref\"),Rs=Symbol.for(\"react.suspense\"),Ug=Symbol.for(\"react.suspense_list\"),el=Symbol.for(\"react.memo\"),tl=Symbol.for(\"react.lazy\"),R2=Symbol.for(\"react.scope\"),ob=Symbol.for(\"react.activity\"),Ii=Symbol.for(\"react.legacy_hidden\"),Yr=Symbol.for(\"react.memo_cache_sentinel\"),XT=Symbol.for(\"react.view_transition\"),ib=Symbol.iterator,wa=Array.isArray,aE=new WeakMap,I2=new WeakMap,jg=Symbol.for(\"react.client.reference\"),Zf=new MessageChannel,Yf=[];Zf.port1.onmessage=function(){var w=Yf.shift();w&&w()};var cE=Promise,sp=typeof queueMicrotask==\"function\"?queueMicrotask:function(w){cE.resolve(null).then(w).catch(d)},ec=null,xa=0,Is=new TextEncoder,uo=Object.assign,Ar=Object.prototype.hasOwnProperty,lE=RegExp(\"^[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),ap={},uE={},Uk=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \")),sb=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),zg={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},cp={\"aria-current\":0,\"aria-description\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},jl={},dE=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),ab=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),Qf=!1,qd={accept:\"accept\",acceptcharset:\"acceptCharset\",\"accept-charset\":\"acceptCharset\",accesskey:\"accessKey\",action:\"action\",allowfullscreen:\"allowFullScreen\",alt:\"alt\",as:\"as\",async:\"async\",autocapitalize:\"autoCapitalize\",autocomplete:\"autoComplete\",autocorrect:\"autoCorrect\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",autosave:\"autoSave\",capture:\"capture\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",challenge:\"challenge\",charset:\"charSet\",checked:\"checked\",children:\"children\",cite:\"cite\",class:\"className\",classid:\"classID\",classname:\"className\",cols:\"cols\",colspan:\"colSpan\",content:\"content\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",controls:\"controls\",controlslist:\"controlsList\",coords:\"coords\",crossorigin:\"crossOrigin\",dangerouslysetinnerhtml:\"dangerouslySetInnerHTML\",data:\"data\",datetime:\"dateTime\",default:\"default\",defaultchecked:\"defaultChecked\",defaultvalue:\"defaultValue\",defer:\"defer\",dir:\"dir\",disabled:\"disabled\",disablepictureinpicture:\"disablePictureInPicture\",disableremoteplayback:\"disableRemotePlayback\",download:\"download\",draggable:\"draggable\",enctype:\"encType\",enterkeyhint:\"enterKeyHint\",fetchpriority:\"fetchPriority\",for:\"htmlFor\",form:\"form\",formmethod:\"formMethod\",formaction:\"formAction\",formenctype:\"formEncType\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",headers:\"headers\",height:\"height\",hidden:\"hidden\",high:\"high\",href:\"href\",hreflang:\"hrefLang\",htmlfor:\"htmlFor\",httpequiv:\"httpEquiv\",\"http-equiv\":\"httpEquiv\",icon:\"icon\",id:\"id\",imagesizes:\"imageSizes\",imagesrcset:\"imageSrcSet\",inert:\"inert\",innerhtml:\"innerHTML\",inputmode:\"inputMode\",integrity:\"integrity\",is:\"is\",itemid:\"itemID\",itemprop:\"itemProp\",itemref:\"itemRef\",itemscope:\"itemScope\",itemtype:\"itemType\",keyparams:\"keyParams\",keytype:\"keyType\",kind:\"kind\",label:\"label\",lang:\"lang\",list:\"list\",loop:\"loop\",low:\"low\",manifest:\"manifest\",marginwidth:\"marginWidth\",marginheight:\"marginHeight\",max:\"max\",maxlength:\"maxLength\",media:\"media\",mediagroup:\"mediaGroup\",method:\"method\",min:\"min\",minlength:\"minLength\",multiple:\"multiple\",muted:\"muted\",name:\"name\",nomodule:\"noModule\",nonce:\"nonce\",novalidate:\"noValidate\",open:\"open\",optimum:\"optimum\",pattern:\"pattern\",placeholder:\"placeholder\",playsinline:\"playsInline\",poster:\"poster\",preload:\"preload\",profile:\"profile\",radiogroup:\"radioGroup\",readonly:\"readOnly\",referrerpolicy:\"referrerPolicy\",rel:\"rel\",required:\"required\",reversed:\"reversed\",role:\"role\",rows:\"rows\",rowspan:\"rowSpan\",sandbox:\"sandbox\",scope:\"scope\",scoped:\"scoped\",scrolling:\"scrolling\",seamless:\"seamless\",selected:\"selected\",shape:\"shape\",size:\"size\",sizes:\"sizes\",span:\"span\",spellcheck:\"spellCheck\",src:\"src\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",start:\"start\",step:\"step\",style:\"style\",summary:\"summary\",tabindex:\"tabIndex\",target:\"target\",title:\"title\",type:\"type\",usemap:\"useMap\",value:\"value\",width:\"width\",wmode:\"wmode\",wrap:\"wrap\",about:\"about\",accentheight:\"accentHeight\",\"accent-height\":\"accentHeight\",accumulate:\"accumulate\",additive:\"additive\",alignmentbaseline:\"alignmentBaseline\",\"alignment-baseline\":\"alignmentBaseline\",allowreorder:\"allowReorder\",alphabetic:\"alphabetic\",amplitude:\"amplitude\",arabicform:\"arabicForm\",\"arabic-form\":\"arabicForm\",ascent:\"ascent\",attributename:\"attributeName\",attributetype:\"attributeType\",autoreverse:\"autoReverse\",azimuth:\"azimuth\",basefrequency:\"baseFrequency\",baselineshift:\"baselineShift\",\"baseline-shift\":\"baselineShift\",baseprofile:\"baseProfile\",bbox:\"bbox\",begin:\"begin\",bias:\"bias\",by:\"by\",calcmode:\"calcMode\",capheight:\"capHeight\",\"cap-height\":\"capHeight\",clip:\"clip\",clippath:\"clipPath\",\"clip-path\":\"clipPath\",clippathunits:\"clipPathUnits\",cliprule:\"clipRule\",\"clip-rule\":\"clipRule\",color:\"color\",colorinterpolation:\"colorInterpolation\",\"color-interpolation\":\"colorInterpolation\",colorinterpolationfilters:\"colorInterpolationFilters\",\"color-interpolation-filters\":\"colorInterpolationFilters\",colorprofile:\"colorProfile\",\"color-profile\":\"colorProfile\",colorrendering:\"colorRendering\",\"color-rendering\":\"colorRendering\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",cursor:\"cursor\",cx:\"cx\",cy:\"cy\",d:\"d\",datatype:\"datatype\",decelerate:\"decelerate\",descent:\"descent\",diffuseconstant:\"diffuseConstant\",direction:\"direction\",display:\"display\",divisor:\"divisor\",dominantbaseline:\"dominantBaseline\",\"dominant-baseline\":\"dominantBaseline\",dur:\"dur\",dx:\"dx\",dy:\"dy\",edgemode:\"edgeMode\",elevation:\"elevation\",enablebackground:\"enableBackground\",\"enable-background\":\"enableBackground\",end:\"end\",exponent:\"exponent\",externalresourcesrequired:\"externalResourcesRequired\",fill:\"fill\",fillopacity:\"fillOpacity\",\"fill-opacity\":\"fillOpacity\",fillrule:\"fillRule\",\"fill-rule\":\"fillRule\",filter:\"filter\",filterres:\"filterRes\",filterunits:\"filterUnits\",floodopacity:\"floodOpacity\",\"flood-opacity\":\"floodOpacity\",floodcolor:\"floodColor\",\"flood-color\":\"floodColor\",focusable:\"focusable\",fontfamily:\"fontFamily\",\"font-family\":\"fontFamily\",fontsize:\"fontSize\",\"font-size\":\"fontSize\",fontsizeadjust:\"fontSizeAdjust\",\"font-size-adjust\":\"fontSizeAdjust\",fontstretch:\"fontStretch\",\"font-stretch\":\"fontStretch\",fontstyle:\"fontStyle\",\"font-style\":\"fontStyle\",fontvariant:\"fontVariant\",\"font-variant\":\"fontVariant\",fontweight:\"fontWeight\",\"font-weight\":\"fontWeight\",format:\"format\",from:\"from\",fx:\"fx\",fy:\"fy\",g1:\"g1\",g2:\"g2\",glyphname:\"glyphName\",\"glyph-name\":\"glyphName\",glyphorientationhorizontal:\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\":\"glyphOrientationHorizontal\",glyphorientationvertical:\"glyphOrientationVertical\",\"glyph-orientation-vertical\":\"glyphOrientationVertical\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",hanging:\"hanging\",horizadvx:\"horizAdvX\",\"horiz-adv-x\":\"horizAdvX\",horizoriginx:\"horizOriginX\",\"horiz-origin-x\":\"horizOriginX\",ideographic:\"ideographic\",imagerendering:\"imageRendering\",\"image-rendering\":\"imageRendering\",in2:\"in2\",in:\"in\",inlist:\"inlist\",intercept:\"intercept\",k1:\"k1\",k2:\"k2\",k3:\"k3\",k4:\"k4\",k:\"k\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",kerning:\"kerning\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",letterspacing:\"letterSpacing\",\"letter-spacing\":\"letterSpacing\",lightingcolor:\"lightingColor\",\"lighting-color\":\"lightingColor\",limitingconeangle:\"limitingConeAngle\",local:\"local\",markerend:\"markerEnd\",\"marker-end\":\"markerEnd\",markerheight:\"markerHeight\",markermid:\"markerMid\",\"marker-mid\":\"markerMid\",markerstart:\"markerStart\",\"marker-start\":\"markerStart\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",mask:\"mask\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",mathematical:\"mathematical\",mode:\"mode\",numoctaves:\"numOctaves\",offset:\"offset\",opacity:\"opacity\",operator:\"operator\",order:\"order\",orient:\"orient\",orientation:\"orientation\",origin:\"origin\",overflow:\"overflow\",overlineposition:\"overlinePosition\",\"overline-position\":\"overlinePosition\",overlinethickness:\"overlineThickness\",\"overline-thickness\":\"overlineThickness\",paintorder:\"paintOrder\",\"paint-order\":\"paintOrder\",panose1:\"panose1\",\"panose-1\":\"panose1\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointerevents:\"pointerEvents\",\"pointer-events\":\"pointerEvents\",points:\"points\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",popover:\"popover\",popovertarget:\"popoverTarget\",popovertargetaction:\"popoverTargetAction\",prefix:\"prefix\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",property:\"property\",r:\"r\",radius:\"radius\",refx:\"refX\",refy:\"refY\",renderingintent:\"renderingIntent\",\"rendering-intent\":\"renderingIntent\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",resource:\"resource\",restart:\"restart\",result:\"result\",results:\"results\",rotate:\"rotate\",rx:\"rx\",ry:\"ry\",scale:\"scale\",security:\"security\",seed:\"seed\",shaperendering:\"shapeRendering\",\"shape-rendering\":\"shapeRendering\",slope:\"slope\",spacing:\"spacing\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",speed:\"speed\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stemh:\"stemh\",stemv:\"stemv\",stitchtiles:\"stitchTiles\",stopcolor:\"stopColor\",\"stop-color\":\"stopColor\",stopopacity:\"stopOpacity\",\"stop-opacity\":\"stopOpacity\",strikethroughposition:\"strikethroughPosition\",\"strikethrough-position\":\"strikethroughPosition\",strikethroughthickness:\"strikethroughThickness\",\"strikethrough-thickness\":\"strikethroughThickness\",string:\"string\",stroke:\"stroke\",strokedasharray:\"strokeDasharray\",\"stroke-dasharray\":\"strokeDasharray\",strokedashoffset:\"strokeDashoffset\",\"stroke-dashoffset\":\"strokeDashoffset\",strokelinecap:\"strokeLinecap\",\"stroke-linecap\":\"strokeLinecap\",strokelinejoin:\"strokeLinejoin\",\"stroke-linejoin\":\"strokeLinejoin\",strokemiterlimit:\"strokeMiterlimit\",\"stroke-miterlimit\":\"strokeMiterlimit\",strokewidth:\"strokeWidth\",\"stroke-width\":\"strokeWidth\",strokeopacity:\"strokeOpacity\",\"stroke-opacity\":\"strokeOpacity\",suppresscontenteditablewarning:\"suppressContentEditableWarning\",suppresshydrationwarning:\"suppressHydrationWarning\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textanchor:\"textAnchor\",\"text-anchor\":\"textAnchor\",textdecoration:\"textDecoration\",\"text-decoration\":\"textDecoration\",textlength:\"textLength\",textrendering:\"textRendering\",\"text-rendering\":\"textRendering\",to:\"to\",transform:\"transform\",transformorigin:\"transformOrigin\",\"transform-origin\":\"transformOrigin\",typeof:\"typeof\",u1:\"u1\",u2:\"u2\",underlineposition:\"underlinePosition\",\"underline-position\":\"underlinePosition\",underlinethickness:\"underlineThickness\",\"underline-thickness\":\"underlineThickness\",unicode:\"unicode\",unicodebidi:\"unicodeBidi\",\"unicode-bidi\":\"unicodeBidi\",unicoderange:\"unicodeRange\",\"unicode-range\":\"unicodeRange\",unitsperem:\"unitsPerEm\",\"units-per-em\":\"unitsPerEm\",unselectable:\"unselectable\",valphabetic:\"vAlphabetic\",\"v-alphabetic\":\"vAlphabetic\",values:\"values\",vectoreffect:\"vectorEffect\",\"vector-effect\":\"vectorEffect\",version:\"version\",vertadvy:\"vertAdvY\",\"vert-adv-y\":\"vertAdvY\",vertoriginx:\"vertOriginX\",\"vert-origin-x\":\"vertOriginX\",vertoriginy:\"vertOriginY\",\"vert-origin-y\":\"vertOriginY\",vhanging:\"vHanging\",\"v-hanging\":\"vHanging\",videographic:\"vIdeographic\",\"v-ideographic\":\"vIdeographic\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",visibility:\"visibility\",vmathematical:\"vMathematical\",\"v-mathematical\":\"vMathematical\",vocab:\"vocab\",widths:\"widths\",wordspacing:\"wordSpacing\",\"word-spacing\":\"wordSpacing\",writingmode:\"writingMode\",\"writing-mode\":\"writingMode\",x1:\"x1\",x2:\"x2\",x:\"x\",xchannelselector:\"xChannelSelector\",xheight:\"xHeight\",\"x-height\":\"xHeight\",xlinkactuate:\"xlinkActuate\",\"xlink:actuate\":\"xlinkActuate\",xlinkarcrole:\"xlinkArcrole\",\"xlink:arcrole\":\"xlinkArcrole\",xlinkhref:\"xlinkHref\",\"xlink:href\":\"xlinkHref\",xlinkrole:\"xlinkRole\",\"xlink:role\":\"xlinkRole\",xlinkshow:\"xlinkShow\",\"xlink:show\":\"xlinkShow\",xlinktitle:\"xlinkTitle\",\"xlink:title\":\"xlinkTitle\",xlinktype:\"xlinkType\",\"xlink:type\":\"xlinkType\",xmlbase:\"xmlBase\",\"xml:base\":\"xmlBase\",xmllang:\"xmlLang\",\"xml:lang\":\"xmlLang\",xmlns:\"xmlns\",\"xml:space\":\"xmlSpace\",xmlnsxlink:\"xmlnsXlink\",\"xmlns:xlink\":\"xmlnsXlink\",xmlspace:\"xmlSpace\",y1:\"y1\",y2:\"y2\",y:\"y\",ychannelselector:\"yChannelSelector\",z:\"z\",zoomandpan:\"zoomAndPan\"},Xs={},O2=/^on./,ea=/^on[^A-Z]/,cb=RegExp(\"^(aria)-[:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),Gm=RegExp(\"^(aria)[A-Z][:A-Z_a-z\\\\\\\\u00C0-\\\\\\\\u00D6\\\\\\\\u00D8-\\\\\\\\u00F6\\\\\\\\u00F8-\\\\\\\\u02FF\\\\\\\\u0370-\\\\\\\\u037D\\\\\\\\u037F-\\\\\\\\u1FFF\\\\\\\\u200C-\\\\\\\\u200D\\\\\\\\u2070-\\\\\\\\u218F\\\\\\\\u2C00-\\\\\\\\u2FEF\\\\\\\\u3001-\\\\\\\\uD7FF\\\\\\\\uF900-\\\\\\\\uFDCF\\\\\\\\uFDF0-\\\\\\\\uFFFD\\\\\\\\-.0-9\\\\\\\\u00B7\\\\\\\\u0300-\\\\\\\\u036F\\\\\\\\u203F-\\\\\\\\u2040]*$\"),Hr=/^(?:webkit|moz|o)[A-Z]/,Wd=/^-ms-/,fE=/-(.)/g,Zm=/;\\\\s*$/,nl={},Jf={},ko=!1,ta=!1,lb=/[\"\\'&<>]/,P2=/([A-Z])/g,M2=/^ms-/,Ym=/^[\\\\u0000-\\\\u001F ]*j[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*v[\\\\r\\\\n\\\\t]*a[\\\\r\\\\n\\\\t]*s[\\\\r\\\\n\\\\t]*c[\\\\r\\\\n\\\\t]*r[\\\\r\\\\n\\\\t]*i[\\\\r\\\\n\\\\t]*p[\\\\r\\\\n\\\\t]*t[\\\\r\\\\n\\\\t]*:/i,Lo=Bg.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,pi=Dg.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Qm=Object.freeze({pending:!1,data:null,method:null,action:null}),na=pi.d;pi.d={f:na.f,r:na.r,D:function(w){var S=ro||null;if(S){var M=S.resumableState,Y=S.renderState;if(typeof w==\"string\"&&w){if(!M.dnsResources.hasOwnProperty(w)){M.dnsResources[w]=ns,M=Y.headers;var re,ue;(ue=M&&0<M.remainingCapacity)&&(ue=(re=\"<\"+jr(w)+\">; rel=dns-prefetch\",0<=(M.remainingCapacity-=re.length+2))),ue?(Y.resets.dns[w]=ns,M.preconnects&&(M.preconnects+=\", \"),M.preconnects+=re):(re=[],ht(re,{href:w,rel:\"dns-prefetch\"}),Y.preconnects.add(re))}np(S)}}else na.D(w)},C:function(w,S){var M=ro||null;if(M){var Y=M.resumableState,re=M.renderState;if(typeof w==\"string\"&&w){var ue=S===\"use-credentials\"?\"credentials\":typeof S==\"string\"?\"anonymous\":\"default\";if(!Y.connectResources[ue].hasOwnProperty(w)){Y.connectResources[ue][w]=ns,Y=re.headers;var Ee,Ae;if(Ae=Y&&0<Y.remainingCapacity){if(Ae=\"<\"+jr(w)+\">; rel=preconnect\",typeof S==\"string\"){var Le=zu(S,\"crossOrigin\");Ae+=\\'; crossorigin=\"\\'+Le+\\'\"\\'}Ae=(Ee=Ae,0<=(Y.remainingCapacity-=Ee.length+2))}Ae?(re.resets.connect[ue][w]=ns,Y.preconnects&&(Y.preconnects+=\", \"),Y.preconnects+=Ee):(ue=[],ht(ue,{rel:\"preconnect\",href:w,crossOrigin:S}),re.preconnects.add(ue))}np(M)}}else na.C(w,S)},L:function(w,S,M){var Y=ro||null;if(Y){var re=Y.resumableState,ue=Y.renderState;if(S&&w){switch(S){case\"image\":if(M)var Ee=M.imageSrcSet,Ae=M.imageSizes,Le=M.fetchPriority;var Ie=Ee?Ee+`\\n`+(Ae||\"\"):w;if(re.imageResources.hasOwnProperty(Ie))return;re.imageResources[Ie]=xc,re=ue.headers;var pt;re&&0<re.remainingCapacity&&typeof Ee!=\"string\"&&Le===\"high\"&&(pt=ni(w,S,M),0<=(re.remainingCapacity-=pt.length+2))?(ue.resets.image[Ie]=xc,re.highImagePreloads&&(re.highImagePreloads+=\", \"),re.highImagePreloads+=pt):(re=[],ht(re,uo({rel:\"preload\",href:Ee?void 0:w,as:S},M)),Le===\"high\"?ue.highImagePreloads.add(re):(ue.bulkPreloads.add(re),ue.preloads.images.set(Ie,re)));break;case\"style\":if(re.styleResources.hasOwnProperty(w))return;Ee=[],ht(Ee,uo({rel:\"preload\",href:w,as:S},M)),re.styleResources[w]=!M||typeof M.crossOrigin!=\"string\"&&typeof M.integrity!=\"string\"?xc:[M.crossOrigin,M.integrity],ue.preloads.stylesheets.set(w,Ee),ue.bulkPreloads.add(Ee);break;case\"script\":if(re.scriptResources.hasOwnProperty(w))return;Ee=[],ue.preloads.scripts.set(w,Ee),ue.bulkPreloads.add(Ee),ht(Ee,uo({rel:\"preload\",href:w,as:S},M)),re.scriptResources[w]=!M||typeof M.crossOrigin!=\"string\"&&typeof M.integrity!=\"string\"?xc:[M.crossOrigin,M.integrity];break;default:if(re.unknownResources.hasOwnProperty(S)){if(Ee=re.unknownResources[S],Ee.hasOwnProperty(w))return}else Ee={},re.unknownResources[S]=Ee;if(Ee[w]=xc,(re=ue.headers)&&0<re.remainingCapacity&&S===\"font\"&&(Ie=ni(w,S,M),0<=(re.remainingCapacity-=Ie.length+2)))ue.resets.font[w]=xc,re.fontPreloads&&(re.fontPreloads+=\", \"),re.fontPreloads+=Ie;else switch(re=[],w=uo({rel:\"preload\",href:w,as:S},M),ht(re,w),S){case\"font\":ue.fontPreloads.add(re);break;default:ue.bulkPreloads.add(re)}}np(Y)}}else na.L(w,S,M)},m:function(w,S){var M=ro||null;if(M){var Y=M.resumableState,re=M.renderState;if(w){var ue=S&&typeof S.as==\"string\"?S.as:\"script\";switch(ue){case\"script\":if(Y.moduleScriptResources.hasOwnProperty(w))return;ue=[],Y.moduleScriptResources[w]=!S||typeof S.crossOrigin!=\"string\"&&typeof S.integrity!=\"string\"?xc:[S.crossOrigin,S.integrity],re.preloads.moduleScripts.set(w,ue);break;default:if(Y.moduleUnknownResources.hasOwnProperty(ue)){var Ee=Y.unknownResources[ue];if(Ee.hasOwnProperty(w))return}else Ee={},Y.moduleUnknownResources[ue]=Ee;ue=[],Ee[w]=xc}ht(ue,uo({rel:\"modulepreload\",href:w},S)),re.bulkPreloads.add(ue),np(M)}}else na.m(w,S)},X:function(w,S){var M=ro||null;if(M){var Y=M.resumableState,re=M.renderState;if(w){var ue=Y.scriptResources.hasOwnProperty(w)?Y.scriptResources[w]:void 0;ue!==ns&&(Y.scriptResources[w]=ns,S=uo({src:w,async:!0},S),ue&&(ue.length===2&&en(S,ue),w=re.preloads.scripts.get(w))&&(w.length=0),w=[],re.scripts.add(w),rn(w,S),np(M))}}else na.X(w,S)},S:function(w,S,M){var Y=ro||null;if(Y){var re=Y.resumableState,ue=Y.renderState;if(w){S=S||\"default\";var Ee=ue.styles.get(S),Ae=re.styleResources.hasOwnProperty(w)?re.styleResources[w]:void 0;Ae!==ns&&(re.styleResources[w]=ns,Ee||(Ee={precedence:b(F(S)),rules:[],hrefs:[],sheets:new Map},ue.styles.set(S,Ee)),S={state:Zu,props:uo({rel:\"stylesheet\",href:w,\"data-precedence\":S},M)},Ae&&(Ae.length===2&&en(S.props,Ae),(ue=ue.preloads.stylesheets.get(w))&&0<ue.length?ue.length=0:S.state=Wi),Ee.sheets.set(w,S),np(Y))}}else na.S(w,S,M)},M:function(w,S){var M=ro||null;if(M){var Y=M.resumableState,re=M.renderState;if(w){var ue=Y.moduleScriptResources.hasOwnProperty(w)?Y.moduleScriptResources[w]:void 0;ue!==ns&&(Y.moduleScriptResources[w]=ns,S=uo({src:w,type:\"module\",async:!0},S),ue&&(ue.length===2&&en(S,ue),w=re.preloads.moduleScripts.get(w))&&(w.length=0),w=[],re.scripts.add(w),rn(w,S),np(M))}}else na.M(w,S)}};var Ku=0,ub=1,lp=2,Jm=4,Hg=8,ns=null,xc=[];Object.freeze(xc),E(\\'\"></template>\\');var db=E(\"<script>\"),hE=E(\"<\\\\/script>\"),Ea=E(\\'<script src=\"\\'),rl=E(\\'<script type=\"module\" src=\"\\'),Sa=E(\\'\" nonce=\"\\'),qg=E(\\'\" integrity=\"\\'),Vd=E(\\'\" crossorigin=\"\\'),oi=E(\\'\" async=\"\"><\\\\/script>\\'),Xf=/(<\\\\/|<)(s)(cript)/gi,fb=E(\\'<script type=\"importmap\">\\'),Wg=E(\"<\\\\/script>\"),Xm={},N2=0,e0=0,t0=1,tc=2,eh=3,ol=4,In=5,gt=6,up=7,Vg=8,Yo=9,Gu=E(\"<!-- -->\"),hb=new Map,pE=E(\\' style=\"\\'),L2=E(\":\"),e7=E(\";\"),ra=E(\" \"),Ec=E(\\'=\"\\'),nc=E(\\'\"\\'),ka=E(\\'=\"\"\\'),Nr=E(F(\"javascript:throw new Error(\\'React form unexpectedly submitted.\\')\")),B2=E(\\'<input type=\"hidden\"\\'),mi=E(\">\"),zl=E(\"/>\"),dp=!1,Hl=!1,D2=!1,n0=!1,F2=!1,$g=!1,U2=!1,r0=!1,mE=!1,pb=!1,mb=!1,j2=E(\\' selected=\"\"\\'),jk=E(`addEventListener(\"submit\",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute(\"formAction\");null!=f&&(e=f,b=null)}\"javascript:throw new Error(\\'React form unexpectedly submitted.\\')\"===e&&(a.preventDefault(),b?(a=document.createElement(\"input\"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});`),gE=E(\"<!--F!-->\"),yE=E(\"<!--F-->\"),bE=/(<\\\\/|<)(s)(tyle)/gi,z2=E(`\\n`),zk=/^[a-zA-Z][a-zA-Z:_\\\\.\\\\-\\\\d]*$/,vE=new Map,t7=E(\"<!DOCTYPE html>\"),wE=new Map,Hk=E(\\'<template id=\"\\'),qk=E(\\'\"></template>\\'),xE=E(\"<!--$-->\"),Wk=E(\\'<!--$?--><template id=\"\\'),Vk=E(\\'\"></template>\\'),Kg=E(\"<!--$!-->\"),o0=E(\"<!--/$-->\"),$k=E(\"<template\"),H2=E(\\'\"\\'),q2=E(\\' data-dgst=\"\\'),Gg=E(\\' data-msg=\"\\'),W2=E(\\' data-stck=\"\\'),EE=E(\\' data-cstck=\"\\'),i0=E(\"></template>\"),Sc=E(\"<!--\"),V2=E(\"-->\"),SE=E(\\'<div hidden id=\"\\'),Kk=E(\\'\">\\'),kE=E(\"</div>\"),$2=E(\\'<svg aria-hidden=\"true\" style=\"display:none\" id=\"\\'),_E=E(\\'\">\\'),K2=E(\"</svg>\"),Zg=E(\\'<math aria-hidden=\"true\" style=\"display:none\" id=\"\\'),G2=E(\\'\">\\'),CE=E(\"</math>\"),Gk=E(\\'<table hidden id=\"\\'),Zk=E(\\'\">\\'),AE=E(\"</table>\"),Yk=E(\\'<table hidden><tbody id=\"\\'),Qk=E(\\'\">\\'),Yg=E(\"</tbody></table>\"),Z2=E(\\'<table hidden><tr id=\"\\'),th=E(\\'\">\\'),TE=E(\"</tr></table>\"),Jk=E(\\'<table hidden><colgroup id=\"\\'),RE=E(\\'\">\\'),s0=E(\"</colgroup></table>\"),IE=E(\\'$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"\\'),Y2=E(\\'$RS(\"\\'),Xk=E(\\'\",\"\\'),OE=E(\\'\")<\\\\/script>\\');E(\\'<template data-rsi=\"\" data-sid=\"\\'),E(\\'\" data-pid=\"\\');var Q2=E(\\'$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data=\"$!\",a.setAttribute(\"data-dgst\",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if(\"/$\"===d)if(0===f)break;else f--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data=\"$\"}b._reactRetry&&b._reactRetry()}};$RC(\"\\'),a0=E(\\'$RC(\"\\'),gb=E(`$RC=function(b,c,e){c=document.getElementById(c);c.parentNode.removeChild(c);var a=document.getElementById(b);if(a){b=a.previousSibling;if(e)b.data=\"$!\",a.setAttribute(\"data-dgst\",e);else{e=b.parentNode;a=b.nextSibling;var f=0;do{if(a&&8===a.nodeType){var d=a.data;if(\"/$\"===d)if(0===f)break;else f--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||f++}d=a.nextSibling;e.removeChild(a);a=d}while(a);for(;c.firstChild;)e.insertBefore(c.firstChild,a);b.data=\"$\"}b._reactRetry&&b._reactRetry()}};$RM=new Map;\\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),x=[],k=0;b=h[k++];)\"not all\"===b.getAttribute(\"media\")?x.push(b):(\"LINK\"===b.tagName&&p.set(b.getAttribute(\"href\"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement(\"link\");a.href=\\nd;a.rel=\"stylesheet\";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute(\"media\");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute(\"data-precedence\");a.removeAttribute(\"media\")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\\nt,u,\"\"),w.bind(null,t,u,\"Resource failed to load\"))};$RR(\"`),Qg=E(`$RM=new Map;\\n$RR=function(t,u,y){function v(n){this._p=null;n()}for(var w=$RC,p=$RM,q=new Map,r=document,g,b,h=r.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),x=[],k=0;b=h[k++];)\"not all\"===b.getAttribute(\"media\")?x.push(b):(\"LINK\"===b.tagName&&p.set(b.getAttribute(\"href\"),b),q.set(b.dataset.precedence,g=b));b=0;h=[];var l,a;for(k=!0;;){if(k){var e=y[b++];if(!e){k=!1;b=0;continue}var c=!1,m=0;var d=e[m++];if(a=p.get(d)){var f=a._p;c=!0}else{a=r.createElement(\"link\");a.href=\\nd;a.rel=\"stylesheet\";for(a.dataset.precedence=l=e[m++];f=e[m++];)a.setAttribute(f,e[m++]);f=a._p=new Promise(function(n,z){a.onload=v.bind(a,n);a.onerror=v.bind(a,z)});p.set(d,a)}d=a.getAttribute(\"media\");!f||d&&!matchMedia(d).matches||h.push(f);if(c)continue}else{a=x[b++];if(!a)break;l=a.getAttribute(\"data-precedence\");a.removeAttribute(\"media\")}c=q.get(l)||g;c===g&&(g=a);q.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=r.head,c.insertBefore(a,c.firstChild))}Promise.all(h).then(w.bind(null,\\nt,u,\"\"),w.bind(null,t,u,\"Resource failed to load\"))};$RR(\"`),PE=E(\\'$RR(\"\\'),e_=E(\\'\",\"\\'),oa=E(\\'\",\\'),J2=E(\\'\"\\'),X2=E(\")<\\\\/script>\");E(\\'<template data-rci=\"\" data-bid=\"\\'),E(\\'<template data-rri=\"\" data-bid=\"\\'),E(\\'\" data-sid=\"\\'),E(\\'\" data-sty=\"\\');var yb=E(\\'$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX(\"\\'),il=E(\\'$RX(\"\\'),c0=E(\\'\"\\'),sl=E(\",\"),ME=E(\")<\\\\/script>\");E(\\'<template data-rxi=\"\" data-bid=\"\\'),E(\\'\" data-dgst=\"\\'),E(\\'\" data-msg=\"\\'),E(\\'\" data-stck=\"\\'),E(\\'\" data-cstck=\"\\');var nh=/[<\\\\u2028\\\\u2029]/g,NE=/[&><\\\\u2028\\\\u2029]/g,rh=E(\\'<style media=\"not all\" data-precedence=\"\\'),$d=E(\\'\" data-href=\"\\'),bb=E(\\'\">\\'),ew=E(\"</style>\"),l0=!1,vb=!0,Kd=[],fp=E(\\'<style data-precedence=\"\\'),LE=E(\\'\" data-href=\"\\'),BE=E(\" \"),wb=E(\\'\">\\'),tw=E(\"</style>\"),DE=E(\"[\"),Gd=E(\",[\"),hp=E(\",\"),xb=E(\"]\"),Zu=0,Wi=1,Jg=2,Eb=3,Sb=/[<>\\\\r\\\\n]/g,_o=/[\"\\';,\\\\r\\\\n]/g,Xg=Function.prototype.bind,u0=Symbol.for(\"react.client.reference\"),_a={};Object.freeze(_a);var oh={},ql=null,ey={},ih={},Yu=new Set,d0=new Set,Wl=new Set,pp=new Set,ty=new Set,f0=new Set,al=new Set,FE=new Set,mp=new Set,nw={enqueueSetState:function(w,S,M){var Y=w._reactInternals;Y.queue===null?Hu(w,\"setState\"):(Y.queue.push(S),M!=null&&En(M))},enqueueReplaceState:function(w,S,M){w=w._reactInternals,w.replace=!0,w.queue=[S],M!=null&&En(M)},enqueueForceUpdate:function(w,S){w._reactInternals.queue===null?Hu(w,\"forceUpdate\"):S!=null&&En(S)}},Zd={id:1,overflow:\"\"},h0=Math.clz32?Math.clz32:Cr,t_=Math.log,rw=Math.LN2,Ca=Error(\"Suspense Exception: This is not a real error! It\\'s an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\\\n\\\\nTo handle async errors, wrap your component in an error boundary, or call the promise\\'s `.catch` method and pass the result to `use`.\"),ny=null,ry=typeof Object.is==\"function\"?Object.is:qu,kc=null,fo=null,kb=null,ow=null,_b=null,fr=null,oy=!1,p0=!1,Yd=0,Qu=0,iy=-1,m0=0,g0=null,rs=null,Vl=0,Qo=!1,sy,sh={readContext:ya,use:function(w){if(w!==null&&typeof w==\"object\"){if(typeof w.then==\"function\")return Qc(w);if(w.$$typeof===ip)return ya(w)}throw Error(\"An unsupported type was passed to use(): \"+String(w))},useContext:function(w){return sy=\"useContext\",ts(),w._currentValue},useMemo:Fl,useReducer:Ja,useRef:function(w){kc=ts(),fr=Yc();var S=fr.memoizedState;return S===null?(w={current:w},Object.seal(w),fr.memoizedState=w):S},useState:function(w){return sy=\"useState\",Ja(Dl,w)},useInsertionEffect:Wf,useLayoutEffect:Wf,useCallback:function(w,S){return Fl(function(){return w},S)},useImperativeHandle:Wf,useEffect:Wf,useDebugValue:Wf,useDeferredValue:function(w,S){return ts(),S!==void 0?S:w},useTransition:function(){return ts(),[!1,Cg]},useId:function(){var w=fo.treeContext,S=w.overflow;w=w.id,w=(w&~(1<<32-h0(w)-1)).toString(32)+S;var M=Os;if(M===null)throw Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component.\");return S=Yd++,w=\"\\\\xAB\"+M.idPrefix+\"R\"+w,0<S&&(w+=\"H\"+S.toString(32)),w+\"\\\\xBB\"},useSyncExternalStore:function(w,S,M){if(M===void 0)throw Error(\"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\");return M()},useOptimistic:function(w){return ts(),[w,ri]},useActionState:bc,useFormState:bc,useHostTransitionStatus:function(){return ts(),Qm},useMemoCache:function(w){for(var S=Array(w),M=0;M<w;M++)S[M]=Yr;return S},useCacheRefresh:function(){return Vh}},Os=null,ho=null,n_={getCacheForType:function(){throw Error(\"Not implemented.\")},getOwner:function(){return ho===null?null:ho.componentStack}},y0=0,Cb,iw,Ab,Tb,ay,x,k;Ud.__reactDisabledLog=!0;var P,Q,oe=!1,de=new(typeof WeakMap==\"function\"?WeakMap:Map),Re={\"react-stack-bottom-frame\":function(w,S,M){return w(S,M)}},Pe=Re[\"react-stack-bottom-frame\"].bind(Re),nt={\"react-stack-bottom-frame\":function(w){return w.render()}},Ne=nt[\"react-stack-bottom-frame\"].bind(nt),Et={\"react-stack-bottom-frame\":function(w){var S=w._init;return S(w._payload)}},At=Et[\"react-stack-bottom-frame\"].bind(Et),Rt=0;if(typeof performance==\"object\"&&typeof performance.now==\"function\")var Ft=performance,lt=function(){return Ft.now()};else{var Kn=Date;lt=function(){return Kn.now()}}var Sn=4,mn=0,un=1,Vi=2,cn=5,Tn=14,ro=null,Oi={},$i={},ii={},Co={},_c=!1,Aa=!1,Er=!1;sE(),sE(),HV.prerender=function(w,S){return new Promise(function(M,Y){var re=S?S.onHeaders:void 0,ue;re&&(ue=function(pt){re(new Headers(pt))});var Ee=N(S?S.identifierPrefix:void 0,S?S.unstable_externalRuntimeSrc:void 0,S?S.bootstrapScriptContent:void 0,S?S.bootstrapScripts:void 0,S?S.bootstrapModules:void 0),Ae=Gh(w,Ee,z(Ee,void 0,S?S.unstable_externalRuntimeSrc:void 0,S?S.importMap:void 0,ue,S?S.maxHeadersLength:void 0),q(S?S.namespaceURI:void 0),S?S.progressiveChunkSize:void 0,S?S.onError:void 0,function(){var pt={prelude:new ReadableStream({type:\"bytes\",pull:function(ut){$m(Ae,ut)},cancel:function(ut){Ae.destination=null,rp(Ae,ut)}},{highWaterMark:0})};M(pt)},void 0,void 0,Y,S?S.onPostpone:void 0);if(S&&S.signal){var Le=S.signal;if(Le.aborted)rp(Ae,Le.reason);else{var Ie=function(){rp(Ae,Le.reason),Le.removeEventListener(\"abort\",Ie)};Le.addEventListener(\"abort\",Ie)}}T2(Ae)})},HV.renderToReadableStream=function(w,S){return new Promise(function(M,Y){var re,ue,Ee=new Promise(function(bt,rt){ue=bt,re=rt}),Ae=S?S.onHeaders:void 0,Le;Ae&&(Le=function(bt){Ae(new Headers(bt))});var Ie=N(S?S.identifierPrefix:void 0,S?S.unstable_externalRuntimeSrc:void 0,S?S.bootstrapScriptContent:void 0,S?S.bootstrapScripts:void 0,S?S.bootstrapModules:void 0),pt=Kh(w,Ie,z(Ie,S?S.nonce:void 0,S?S.unstable_externalRuntimeSrc:void 0,S?S.importMap:void 0,Le,S?S.maxHeadersLength:void 0),q(S?S.namespaceURI:void 0),S?S.progressiveChunkSize:void 0,S?S.onError:void 0,ue,function(){var bt=new ReadableStream({type:\"bytes\",pull:function(rt){$m(pt,rt)},cancel:function(rt){pt.destination=null,rp(pt,rt)}},{highWaterMark:0});bt.allReady=Ee,M(bt)},function(bt){Ee.catch(function(){}),Y(bt)},re,S?S.onPostpone:void 0,S?S.formState:void 0);if(S&&S.signal){var ut=S.signal;if(ut.aborted)rp(pt,ut.reason);else{var _t=function(){rp(pt,ut.reason),ut.removeEventListener(\"abort\",_t)};ut.addEventListener(\"abort\",_t)}}T2(pt)})},HV.version=\"19.1.0\"})()});var AMe=be(UT=>{\"use strict\";p();var WV,qV;WV=_Me(),qV=CMe();UT.version=WV.version;UT.renderToString=WV.renderToString;UT.renderToStaticMarkup=WV.renderToStaticMarkup;UT.renderToReadableStream=qV.renderToReadableStream;qV.resume&&(UT.resume=qV.resume)});var IMe=be((vOn,RMe)=>{p();RMe.exports=function(){return typeof Promise==\"function\"&&Promise.prototype&&Promise.prototype.then}});var W3=be(_k=>{p();var Hse,Ayt=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];_k.getSymbolSize=function(e){if(!e)throw new Error(\\'\"version\" cannot be null or undefined\\');if(e<1||e>40)throw new Error(\\'\"version\" should be in range from 1 to 40\\');return e*4+17};_k.getSymbolTotalCodewords=function(e){return Ayt[e]};_k.getBCHDigit=function(t){let e=0;for(;t!==0;)e++,t>>>=1;return e};_k.setToSJISFunction=function(e){if(typeof e!=\"function\")throw new Error(\\'\"toSJISFunc\" is not a valid function.\\');Hse=e};_k.isKanjiModeEnabled=function(){return typeof Hse<\"u\"};_k.toSJIS=function(e){return Hse(e)}});var $V=be(Bm=>{p();Bm.L={bit:1};Bm.M={bit:0};Bm.Q={bit:3};Bm.H={bit:2};function Tyt(t){if(typeof t!=\"string\")throw new Error(\"Param is not a string\");switch(t.toLowerCase()){case\"l\":case\"low\":return Bm.L;case\"m\":case\"medium\":return Bm.M;case\"q\":case\"quartile\":return Bm.Q;case\"h\":case\"high\":return Bm.H;default:throw new Error(\"Unknown EC Level: \"+t)}}Bm.isValid=function(e){return e&&typeof e.bit<\"u\"&&e.bit>=0&&e.bit<4};Bm.from=function(e,n){if(Bm.isValid(e))return e;try{return Tyt(e)}catch{return n}}});var MMe=be((_On,PMe)=>{p();function OMe(){this.buffer=[],this.length=0}OMe.prototype={get:function(t){let e=Math.floor(t/8);return(this.buffer[e]>>>7-t%8&1)===1},put:function(t,e){for(let n=0;n<e;n++)this.putBit((t>>>e-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){let e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};PMe.exports=OMe});var LMe=be((AOn,NMe)=>{p();function xM(t){if(!t||t<1)throw new Error(\"BitMatrix size must be defined and greater than 0\");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}xM.prototype.set=function(t,e,n,r){let o=t*this.size+e;this.data[o]=n,r&&(this.reservedBit[o]=!0)};xM.prototype.get=function(t,e){return this.data[t*this.size+e]};xM.prototype.xor=function(t,e,n){this.data[t*this.size+e]^=n};xM.prototype.isReserved=function(t,e){return this.reservedBit[t*this.size+e]};NMe.exports=xM});var BMe=be(KV=>{p();var Ryt=W3().getSymbolSize;KV.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=Ryt(e),o=r===145?26:Math.ceil((r-13)/(2*n-2))*2,i=[r-7];for(let a=1;a<n-1;a++)i[a]=i[a-1]-o;return i.push(6),i.reverse()};KV.getPositions=function(e){let n=[],r=KV.getRowColCoords(e),o=r.length;for(let i=0;i<o;i++)for(let a=0;a<o;a++)i===0&&a===0||i===0&&a===o-1||i===o-1&&a===0||n.push([r[i],r[a]]);return n}});var UMe=be(FMe=>{p();var Iyt=W3().getSymbolSize,DMe=7;FMe.getPositions=function(e){let n=Iyt(e);return[[0,0],[n-DMe,0],[0,n-DMe]]}});var jMe=be(qi=>{p();qi.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var Ck={N1:3,N2:3,N3:40,N4:10};qi.isValid=function(e){return e!=null&&e!==\"\"&&!isNaN(e)&&e>=0&&e<=7};qi.from=function(e){return qi.isValid(e)?parseInt(e,10):void 0};qi.getPenaltyN1=function(e){let n=e.size,r=0,o=0,i=0,a=null,c=null;for(let u=0;u<n;u++){o=i=0,a=c=null;for(let d=0;d<n;d++){let h=e.get(u,d);h===a?o++:(o>=5&&(r+=Ck.N1+(o-5)),a=h,o=1),h=e.get(d,u),h===c?i++:(i>=5&&(r+=Ck.N1+(i-5)),c=h,i=1)}o>=5&&(r+=Ck.N1+(o-5)),i>=5&&(r+=Ck.N1+(i-5))}return r};qi.getPenaltyN2=function(e){let n=e.size,r=0;for(let o=0;o<n-1;o++)for(let i=0;i<n-1;i++){let a=e.get(o,i)+e.get(o,i+1)+e.get(o+1,i)+e.get(o+1,i+1);(a===4||a===0)&&r++}return r*Ck.N2};qi.getPenaltyN3=function(e){let n=e.size,r=0,o=0,i=0;for(let a=0;a<n;a++){o=i=0;for(let c=0;c<n;c++)o=o<<1&2047|e.get(a,c),c>=10&&(o===1488||o===93)&&r++,i=i<<1&2047|e.get(c,a),c>=10&&(i===1488||i===93)&&r++}return r*Ck.N3};qi.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let i=0;i<r;i++)n+=e.data[i];return Math.abs(Math.ceil(n*100/r/5)-10)*Ck.N4};function Oyt(t,e,n){switch(t){case qi.Patterns.PATTERN000:return(e+n)%2===0;case qi.Patterns.PATTERN001:return e%2===0;case qi.Patterns.PATTERN010:return n%3===0;case qi.Patterns.PATTERN011:return(e+n)%3===0;case qi.Patterns.PATTERN100:return(Math.floor(e/2)+Math.floor(n/3))%2===0;case qi.Patterns.PATTERN101:return e*n%2+e*n%3===0;case qi.Patterns.PATTERN110:return(e*n%2+e*n%3)%2===0;case qi.Patterns.PATTERN111:return(e*n%3+(e+n)%2)%2===0;default:throw new Error(\"bad maskPattern:\"+t)}}qi.applyMask=function(e,n){let r=n.size;for(let o=0;o<r;o++)for(let i=0;i<r;i++)n.isReserved(i,o)||n.xor(i,o,Oyt(e,i,o))};qi.getBestMask=function(e,n){let r=Object.keys(qi.Patterns).length,o=0,i=1/0;for(let a=0;a<r;a++){n(a),qi.applyMask(a,e);let c=qi.getPenaltyN1(e)+qi.getPenaltyN2(e)+qi.getPenaltyN3(e)+qi.getPenaltyN4(e);qi.applyMask(a,e),c<i&&(i=c,o=a)}return o}});var Wse=be(qse=>{p();var V3=$V(),GV=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],ZV=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];qse.getBlocksCount=function(e,n){switch(n){case V3.L:return GV[(e-1)*4+0];case V3.M:return GV[(e-1)*4+1];case V3.Q:return GV[(e-1)*4+2];case V3.H:return GV[(e-1)*4+3];default:return}};qse.getTotalCodewordsCount=function(e,n){switch(n){case V3.L:return ZV[(e-1)*4+0];case V3.M:return ZV[(e-1)*4+1];case V3.Q:return ZV[(e-1)*4+2];case V3.H:return ZV[(e-1)*4+3];default:return}}});var zMe=be(QV=>{p();var EM=new Uint8Array(512),YV=new Uint8Array(256);(function(){let e=1;for(let n=0;n<255;n++)EM[n]=e,YV[e]=n,e<<=1,e&256&&(e^=285);for(let n=255;n<512;n++)EM[n]=EM[n-255]})();QV.log=function(e){if(e<1)throw new Error(\"log(\"+e+\")\");return YV[e]};QV.exp=function(e){return EM[e]};QV.mul=function(e,n){return e===0||n===0?0:EM[YV[e]+YV[n]]}});var HMe=be(SM=>{p();var Vse=zMe();SM.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let o=0;o<e.length;o++)for(let i=0;i<n.length;i++)r[o+i]^=Vse.mul(e[o],n[i]);return r};SM.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let o=r[0];for(let a=0;a<n.length;a++)r[a]^=Vse.mul(n[a],o);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r};SM.generateECPolynomial=function(e){let n=new Uint8Array([1]);for(let r=0;r<e;r++)n=SM.mul(n,new Uint8Array([1,Vse.exp(r)]));return n}});var VMe=be((zOn,WMe)=>{p();var qMe=HMe();function $se(t){this.genPoly=void 0,this.degree=t,this.degree&&this.initialize(this.degree)}$se.prototype.initialize=function(e){this.degree=e,this.genPoly=qMe.generateECPolynomial(this.degree)};$se.prototype.encode=function(e){if(!this.genPoly)throw new Error(\"Encoder not initialized\");let n=new Uint8Array(e.length+this.degree);n.set(e);let r=qMe.mod(n,this.genPoly),o=this.degree-r.length;if(o>0){let i=new Uint8Array(this.degree);return i.set(r,o),i}return r};WMe.exports=$se});var Kse=be($Me=>{p();$Me.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}});var Gse=be(b2=>{p();var KMe=\"[0-9]+\",Pyt=\"[A-Z $%*+\\\\\\\\-./:]+\",kM=\"(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+\";kM=kM.replace(/u/g,\"\\\\\\\\u\");var Myt=\"(?:(?![A-Z0-9 $%*+\\\\\\\\-./:]|\"+kM+`)(?:.|[\\\\r\\n]))+`;b2.KANJI=new RegExp(kM,\"g\");b2.BYTE_KANJI=new RegExp(\"[^A-Z0-9 $%*+\\\\\\\\-./:]+\",\"g\");b2.BYTE=new RegExp(Myt,\"g\");b2.NUMERIC=new RegExp(KMe,\"g\");b2.ALPHANUMERIC=new RegExp(Pyt,\"g\");var Nyt=new RegExp(\"^\"+kM+\"$\"),Lyt=new RegExp(\"^\"+KMe+\"$\"),Byt=new RegExp(\"^[A-Z0-9 $%*+\\\\\\\\-./:]+$\");b2.testKanji=function(e){return Nyt.test(e)};b2.testNumeric=function(e){return Lyt.test(e)};b2.testAlphanumeric=function(e){return Byt.test(e)}});var $3=be(Ga=>{p();var Dyt=Kse(),Zse=Gse();Ga.NUMERIC={id:\"Numeric\",bit:1,ccBits:[10,12,14]};Ga.ALPHANUMERIC={id:\"Alphanumeric\",bit:2,ccBits:[9,11,13]};Ga.BYTE={id:\"Byte\",bit:4,ccBits:[8,16,16]};Ga.KANJI={id:\"Kanji\",bit:8,ccBits:[8,10,12]};Ga.MIXED={bit:-1};Ga.getCharCountIndicator=function(e,n){if(!e.ccBits)throw new Error(\"Invalid mode: \"+e);if(!Dyt.isValid(n))throw new Error(\"Invalid version: \"+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]};Ga.getBestModeForData=function(e){return Zse.testNumeric(e)?Ga.NUMERIC:Zse.testAlphanumeric(e)?Ga.ALPHANUMERIC:Zse.testKanji(e)?Ga.KANJI:Ga.BYTE};Ga.toString=function(e){if(e&&e.id)return e.id;throw new Error(\"Invalid mode\")};Ga.isValid=function(e){return e&&e.bit&&e.ccBits};function Fyt(t){if(typeof t!=\"string\")throw new Error(\"Param is not a string\");switch(t.toLowerCase()){case\"numeric\":return Ga.NUMERIC;case\"alphanumeric\":return Ga.ALPHANUMERIC;case\"kanji\":return Ga.KANJI;case\"byte\":return Ga.BYTE;default:throw new Error(\"Unknown mode: \"+t)}}Ga.from=function(e,n){if(Ga.isValid(e))return e;try{return Fyt(e)}catch{return n}}});var JMe=be(Ak=>{p();var JV=W3(),Uyt=Wse(),GMe=$V(),K3=$3(),Yse=Kse(),YMe=7973,ZMe=JV.getBCHDigit(YMe);function jyt(t,e,n){for(let r=1;r<=40;r++)if(e<=Ak.getCapacity(r,n,t))return r}function QMe(t,e){return K3.getCharCountIndicator(t,e)+4}function zyt(t,e){let n=0;return t.forEach(function(r){let o=QMe(r.mode,e);n+=o+r.getBitsLength()}),n}function Hyt(t,e){for(let n=1;n<=40;n++)if(zyt(t,n)<=Ak.getCapacity(n,e,K3.MIXED))return n}Ak.from=function(e,n){return Yse.isValid(e)?parseInt(e,10):n};Ak.getCapacity=function(e,n,r){if(!Yse.isValid(e))throw new Error(\"Invalid QR Code version\");typeof r>\"u\"&&(r=K3.BYTE);let o=JV.getSymbolTotalCodewords(e),i=Uyt.getTotalCodewordsCount(e,n),a=(o-i)*8;if(r===K3.MIXED)return a;let c=a-QMe(r,e);switch(r){case K3.NUMERIC:return Math.floor(c/10*3);case K3.ALPHANUMERIC:return Math.floor(c/11*2);case K3.KANJI:return Math.floor(c/13);case K3.BYTE:default:return Math.floor(c/8)}};Ak.getBestVersionForData=function(e,n){let r,o=GMe.from(n,GMe.M);if(Array.isArray(e)){if(e.length>1)return Hyt(e,o);if(e.length===0)return 1;r=e[0]}else r=e;return jyt(r.mode,r.getLength(),o)};Ak.getEncodedBits=function(e){if(!Yse.isValid(e)||e<7)throw new Error(\"Invalid QR Code version\");let n=e<<12;for(;JV.getBCHDigit(n)-ZMe>=0;)n^=YMe<<JV.getBCHDigit(n)-ZMe;return e<<12|n}});var nNe=be(tNe=>{p();var Qse=W3(),eNe=1335,qyt=21522,XMe=Qse.getBCHDigit(eNe);tNe.getEncodedBits=function(e,n){let r=e.bit<<3|n,o=r<<10;for(;Qse.getBCHDigit(o)-XMe>=0;)o^=eNe<<Qse.getBCHDigit(o)-XMe;return(r<<10|o)^qyt}});var oNe=be((XOn,rNe)=>{p();var Wyt=$3();function jT(t){this.mode=Wyt.NUMERIC,this.data=t.toString()}jT.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)};jT.prototype.getLength=function(){return this.data.length};jT.prototype.getBitsLength=function(){return jT.getBitsLength(this.data.length)};jT.prototype.write=function(e){let n,r,o;for(n=0;n+3<=this.data.length;n+=3)r=this.data.substr(n,3),o=parseInt(r,10),e.put(o,10);let i=this.data.length-n;i>0&&(r=this.data.substr(n),o=parseInt(r,10),e.put(o,i*3+1))};rNe.exports=jT});var sNe=be((tPn,iNe)=>{p();var Vyt=$3(),Jse=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\" \",\"$\",\"%\",\"*\",\"+\",\"-\",\".\",\"/\",\":\"];function zT(t){this.mode=Vyt.ALPHANUMERIC,this.data=t}zT.getBitsLength=function(e){return 11*Math.floor(e/2)+6*(e%2)};zT.prototype.getLength=function(){return this.data.length};zT.prototype.getBitsLength=function(){return zT.getBitsLength(this.data.length)};zT.prototype.write=function(e){let n;for(n=0;n+2<=this.data.length;n+=2){let r=Jse.indexOf(this.data[n])*45;r+=Jse.indexOf(this.data[n+1]),e.put(r,11)}this.data.length%2&&e.put(Jse.indexOf(this.data[n]),6)};iNe.exports=zT});var cNe=be((rPn,aNe)=>{p();var $yt=$3();function HT(t){this.mode=$yt.BYTE,typeof t==\"string\"?this.data=new TextEncoder().encode(t):this.data=new Uint8Array(t)}HT.getBitsLength=function(e){return e*8};HT.prototype.getLength=function(){return this.data.length};HT.prototype.getBitsLength=function(){return HT.getBitsLength(this.data.length)};HT.prototype.write=function(t){for(let e=0,n=this.data.length;e<n;e++)t.put(this.data[e],8)};aNe.exports=HT});var uNe=be((iPn,lNe)=>{p();var Kyt=$3(),Gyt=W3();function qT(t){this.mode=Kyt.KANJI,this.data=t}qT.getBitsLength=function(e){return e*13};qT.prototype.getLength=function(){return this.data.length};qT.prototype.getBitsLength=function(){return qT.getBitsLength(this.data.length)};qT.prototype.write=function(t){let e;for(e=0;e<this.data.length;e++){let n=Gyt.toSJIS(this.data[e]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw new Error(\"Invalid SJIS character: \"+this.data[e]+`\\nMake sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),t.put(n,13)}};lNe.exports=qT});var dNe=be((aPn,Xse)=>{\"use strict\";p();var _M={single_source_shortest_paths:function(t,e,n){var r={},o={};o[e]=0;var i=_M.PriorityQueue.make();i.push(e,0);for(var a,c,u,d,h,m,g,b,E;!i.empty();){a=i.pop(),c=a.value,d=a.cost,h=t[c]||{};for(u in h)h.hasOwnProperty(u)&&(m=h[u],g=d+m,b=o[u],E=typeof o[u]>\"u\",(E||b>g)&&(o[u]=g,i.push(u,g),r[u]=c))}if(typeof n<\"u\"&&typeof o[n]>\"u\"){var C=[\"Could not find a path from \",e,\" to \",n,\".\"].join(\"\");throw new Error(C)}return r},extract_shortest_path_from_predecessor_list:function(t,e){for(var n=[],r=e,o;r;)n.push(r),o=t[r],r=t[r];return n.reverse(),n},find_path:function(t,e,n){var r=_M.single_source_shortest_paths(t,e,n);return _M.extract_shortest_path_from_predecessor_list(r,n)},PriorityQueue:{make:function(t){var e=_M.PriorityQueue,n={},r;t=t||{};for(r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);return n.queue=[],n.sorter=t.sorter||e.default_sorter,n},default_sorter:function(t,e){return t.cost-e.cost},push:function(t,e){var n={value:t,cost:e};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof Xse<\"u\"&&(Xse.exports=_M)});var vNe=be(WT=>{p();var Go=$3(),pNe=oNe(),mNe=sNe(),gNe=cNe(),yNe=uNe(),CM=Gse(),XV=W3(),Zyt=dNe();function fNe(t){return unescape(encodeURIComponent(t)).length}function AM(t,e,n){let r=[],o;for(;(o=t.exec(n))!==null;)r.push({data:o[0],index:o.index,mode:e,length:o[0].length});return r}function bNe(t){let e=AM(CM.NUMERIC,Go.NUMERIC,t),n=AM(CM.ALPHANUMERIC,Go.ALPHANUMERIC,t),r,o;return XV.isKanjiModeEnabled()?(r=AM(CM.BYTE,Go.BYTE,t),o=AM(CM.KANJI,Go.KANJI,t)):(r=AM(CM.BYTE_KANJI,Go.BYTE,t),o=[]),e.concat(n,r,o).sort(function(a,c){return a.index-c.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function eae(t,e){switch(e){case Go.NUMERIC:return pNe.getBitsLength(t);case Go.ALPHANUMERIC:return mNe.getBitsLength(t);case Go.KANJI:return yNe.getBitsLength(t);case Go.BYTE:return gNe.getBitsLength(t)}}function Yyt(t){return t.reduce(function(e,n){let r=e.length-1>=0?e[e.length-1]:null;return r&&r.mode===n.mode?(e[e.length-1].data+=n.data,e):(e.push(n),e)},[])}function Qyt(t){let e=[];for(let n=0;n<t.length;n++){let r=t[n];switch(r.mode){case Go.NUMERIC:e.push([r,{data:r.data,mode:Go.ALPHANUMERIC,length:r.length},{data:r.data,mode:Go.BYTE,length:r.length}]);break;case Go.ALPHANUMERIC:e.push([r,{data:r.data,mode:Go.BYTE,length:r.length}]);break;case Go.KANJI:e.push([r,{data:r.data,mode:Go.BYTE,length:fNe(r.data)}]);break;case Go.BYTE:e.push([{data:r.data,mode:Go.BYTE,length:fNe(r.data)}])}}return e}function Jyt(t,e){let n={},r={start:{}},o=[\"start\"];for(let i=0;i<t.length;i++){let a=t[i],c=[];for(let u=0;u<a.length;u++){let d=a[u],h=\"\"+i+u;c.push(h),n[h]={node:d,lastCount:0},r[h]={};for(let m=0;m<o.length;m++){let g=o[m];n[g]&&n[g].node.mode===d.mode?(r[g][h]=eae(n[g].lastCount+d.length,d.mode)-eae(n[g].lastCount,d.mode),n[g].lastCount+=d.length):(n[g]&&(n[g].lastCount=d.length),r[g][h]=eae(d.length,d.mode)+4+Go.getCharCountIndicator(d.mode,e))}}o=c}for(let i=0;i<o.length;i++)r[o[i]].end=0;return{map:r,table:n}}function hNe(t,e){let n,r=Go.getBestModeForData(t);if(n=Go.from(e,r),n!==Go.BYTE&&n.bit<r.bit)throw new Error(\\'\"\\'+t+\\'\" cannot be encoded with mode \\'+Go.toString(n)+`.\\n Suggested mode is: `+Go.toString(r));switch(n===Go.KANJI&&!XV.isKanjiModeEnabled()&&(n=Go.BYTE),n){case Go.NUMERIC:return new pNe(t);case Go.ALPHANUMERIC:return new mNe(t);case Go.KANJI:return new yNe(t);case Go.BYTE:return new gNe(t)}}WT.fromArray=function(e){return e.reduce(function(n,r){return typeof r==\"string\"?n.push(hNe(r,null)):r.data&&n.push(hNe(r.data,r.mode)),n},[])};WT.fromString=function(e,n){let r=bNe(e,XV.isKanjiModeEnabled()),o=Qyt(r),i=Jyt(o,n),a=Zyt.find_path(i.map,\"start\",\"end\"),c=[];for(let u=1;u<a.length-1;u++)c.push(i.table[a[u]].node);return WT.fromArray(Yyt(c))};WT.rawSplit=function(e){return WT.fromArray(bNe(e,XV.isKanjiModeEnabled()))}});var xNe=be(wNe=>{p();var t$=W3(),tae=$V(),Xyt=MMe(),e1t=LMe(),t1t=BMe(),n1t=UMe(),oae=jMe(),iae=Wse(),r1t=VMe(),e$=JMe(),o1t=nNe(),i1t=$3(),nae=vNe();function s1t(t,e){let n=t.size,r=n1t.getPositions(e);for(let o=0;o<r.length;o++){let i=r[o][0],a=r[o][1];for(let c=-1;c<=7;c++)if(!(i+c<=-1||n<=i+c))for(let u=-1;u<=7;u++)a+u<=-1||n<=a+u||(c>=0&&c<=6&&(u===0||u===6)||u>=0&&u<=6&&(c===0||c===6)||c>=2&&c<=4&&u>=2&&u<=4?t.set(i+c,a+u,!0,!0):t.set(i+c,a+u,!1,!0))}}function a1t(t){let e=t.size;for(let n=8;n<e-8;n++){let r=n%2===0;t.set(n,6,r,!0),t.set(6,n,r,!0)}}function c1t(t,e){let n=t1t.getPositions(e);for(let r=0;r<n.length;r++){let o=n[r][0],i=n[r][1];for(let a=-2;a<=2;a++)for(let c=-2;c<=2;c++)a===-2||a===2||c===-2||c===2||a===0&&c===0?t.set(o+a,i+c,!0,!0):t.set(o+a,i+c,!1,!0)}}function l1t(t,e){let n=t.size,r=e$.getEncodedBits(e),o,i,a;for(let c=0;c<18;c++)o=Math.floor(c/3),i=c%3+n-8-3,a=(r>>c&1)===1,t.set(o,i,a,!0),t.set(i,o,a,!0)}function rae(t,e,n){let r=t.size,o=o1t.getEncodedBits(e,n),i,a;for(i=0;i<15;i++)a=(o>>i&1)===1,i<6?t.set(i,8,a,!0):i<8?t.set(i+1,8,a,!0):t.set(r-15+i,8,a,!0),i<8?t.set(8,r-i-1,a,!0):i<9?t.set(8,15-i-1+1,a,!0):t.set(8,15-i-1,a,!0);t.set(r-8,8,1,!0)}function u1t(t,e){let n=t.size,r=-1,o=n-1,i=7,a=0;for(let c=n-1;c>0;c-=2)for(c===6&&c--;;){for(let u=0;u<2;u++)if(!t.isReserved(o,c-u)){let d=!1;a<e.length&&(d=(e[a]>>>i&1)===1),t.set(o,c-u,d),i--,i===-1&&(a++,i=7)}if(o+=r,o<0||n<=o){o-=r,r=-r;break}}}function d1t(t,e,n){let r=new Xyt;n.forEach(function(u){r.put(u.mode.bit,4),r.put(u.getLength(),i1t.getCharCountIndicator(u.mode,t)),u.write(r)});let o=t$.getSymbolTotalCodewords(t),i=iae.getTotalCodewordsCount(t,e),a=(o-i)*8;for(r.getLengthInBits()+4<=a&&r.put(0,4);r.getLengthInBits()%8!==0;)r.putBit(0);let c=(a-r.getLengthInBits())/8;for(let u=0;u<c;u++)r.put(u%2?17:236,8);return f1t(r,t,e)}function f1t(t,e,n){let r=t$.getSymbolTotalCodewords(e),o=iae.getTotalCodewordsCount(e,n),i=r-o,a=iae.getBlocksCount(e,n),c=r%a,u=a-c,d=Math.floor(r/a),h=Math.floor(i/a),m=h+1,g=d-h,b=new r1t(g),E=0,C=new Array(a),T=new Array(a),R=0,L=new Uint8Array(t.buffer);for(let ne=0;ne<a;ne++){let ie=ne<u?h:m;C[ne]=L.slice(E,E+ie),T[ne]=b.encode(C[ne]),E+=ie,R=Math.max(R,ie)}let D=new Uint8Array(r),G=0,W,J;for(W=0;W<R;W++)for(J=0;J<a;J++)W<C[J].length&&(D[G++]=C[J][W]);for(W=0;W<g;W++)for(J=0;J<a;J++)D[G++]=T[J][W];return D}function h1t(t,e,n,r){let o;if(Array.isArray(t))o=nae.fromArray(t);else if(typeof t==\"string\"){let d=e;if(!d){let h=nae.rawSplit(t);d=e$.getBestVersionForData(h,n)}o=nae.fromString(t,d||40)}else throw new Error(\"Invalid data\");let i=e$.getBestVersionForData(o,n);if(!i)throw new Error(\"The amount of data is too big to be stored in a QR Code\");if(!e)e=i;else if(e<i)throw new Error(`\\nThe chosen QR Code version cannot contain this amount of data.\\nMinimum version required to store current data is: `+i+`.\\n`);let a=d1t(e,n,o),c=t$.getSymbolSize(e),u=new e1t(c);return s1t(u,e),a1t(u),c1t(u,e),rae(u,n,0),e>=7&&l1t(u,e),u1t(u,a),isNaN(r)&&(r=oae.getBestMask(u,rae.bind(null,u,n))),oae.applyMask(r,u),rae(u,n,r),{modules:u,version:e,errorCorrectionLevel:n,maskPattern:r,segments:o}}wNe.create=function(e,n){if(typeof e>\"u\"||e===\"\")throw new Error(\"No input text\");let r=tae.M,o,i;return typeof n<\"u\"&&(r=tae.from(n.errorCorrectionLevel,tae.M),o=e$.from(n.version),i=oae.from(n.maskPattern),n.toSJISFunc&&t$.setToSJISFunction(n.toSJISFunc)),h1t(e,o,r,i)}});var sae=be(Tk=>{p();function ENe(t){if(typeof t==\"number\"&&(t=t.toString()),typeof t!=\"string\")throw new Error(\"Color should be defined as hex string\");let e=t.slice().replace(\"#\",\"\").split(\"\");if(e.length<3||e.length===5||e.length>8)throw new Error(\"Invalid hex color: \"+t);(e.length===3||e.length===4)&&(e=Array.prototype.concat.apply([],e.map(function(r){return[r,r]}))),e.length===6&&e.push(\"F\",\"F\");let n=parseInt(e.join(\"\"),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:\"#\"+e.slice(0,6).join(\"\")}}Tk.getOptions=function(e){e||(e={}),e.color||(e.color={});let n=typeof e.margin>\"u\"||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:r,scale:r?4:o,margin:n,color:{dark:ENe(e.color.dark||\"#000000ff\"),light:ENe(e.color.light||\"#ffffffff\")},type:e.type,rendererOpts:e.rendererOpts||{}}};Tk.getScale=function(e,n){return n.width&&n.width>=e+n.margin*2?n.width/(e+n.margin*2):n.scale};Tk.getImageWidth=function(e,n){let r=Tk.getScale(e,n);return Math.floor((e+n.margin*2)*r)};Tk.qrToImageData=function(e,n,r){let o=n.modules.size,i=n.modules.data,a=Tk.getScale(o,r),c=Math.floor((o+r.margin*2)*a),u=r.margin*a,d=[r.color.light,r.color.dark];for(let h=0;h<c;h++)for(let m=0;m<c;m++){let g=(h*c+m)*4,b=r.color.light;if(h>=u&&m>=u&&h<c-u&&m<c-u){let E=Math.floor((h-u)/a),C=Math.floor((m-u)/a);b=d[i[E*o+C]?1:0]}e[g++]=b.r,e[g++]=b.g,e[g++]=b.b,e[g]=b.a}}});var SNe=be(n$=>{p();var aae=sae();function p1t(t,e,n){t.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=n,e.width=n,e.style.height=n+\"px\",e.style.width=n+\"px\"}function m1t(){try{return document.createElement(\"canvas\")}catch{throw new Error(\"You need to specify a canvas element\")}}n$.render=function(e,n,r){let o=r,i=n;typeof o>\"u\"&&(!n||!n.getContext)&&(o=n,n=void 0),n||(i=m1t()),o=aae.getOptions(o);let a=aae.getImageWidth(e.modules.size,o),c=i.getContext(\"2d\"),u=c.createImageData(a,a);return aae.qrToImageData(u.data,e,o),p1t(c,i,a),c.putImageData(u,0,0),i};n$.renderToDataURL=function(e,n,r){let o=r;typeof o>\"u\"&&(!n||!n.getContext)&&(o=n,n=void 0),o||(o={});let i=n$.render(e,n,o),a=o.type||\"image/png\",c=o.rendererOpts||{};return i.toDataURL(a,c.quality)}});var CNe=be(_Ne=>{p();var g1t=sae();function kNe(t,e){let n=t.a/255,r=e+\\'=\"\\'+t.hex+\\'\"\\';return n<1?r+\" \"+e+\\'-opacity=\"\\'+n.toFixed(2).slice(1)+\\'\"\\':r}function cae(t,e,n){let r=t+e;return typeof n<\"u\"&&(r+=\" \"+n),r}function y1t(t,e,n){let r=\"\",o=0,i=!1,a=0;for(let c=0;c<t.length;c++){let u=Math.floor(c%e),d=Math.floor(c/e);!u&&!i&&(i=!0),t[c]?(a++,c>0&&u>0&&t[c-1]||(r+=i?cae(\"M\",u+n,.5+d+n):cae(\"m\",o,0),o=0,i=!1),u+1<e&&t[c+1]||(r+=cae(\"h\",a),a=0)):o++}return r}_Ne.render=function(e,n,r){let o=g1t.getOptions(n),i=e.modules.size,a=e.modules.data,c=i+o.margin*2,u=o.color.light.a?\"<path \"+kNe(o.color.light,\"fill\")+\\' d=\"M0 0h\\'+c+\"v\"+c+\\'H0z\"/>\\':\"\",d=\"<path \"+kNe(o.color.dark,\"stroke\")+\\' d=\"\\'+y1t(a,i,o.margin)+\\'\"/>\\',h=\\'viewBox=\"0 0 \\'+c+\" \"+c+\\'\"\\',g=\\'<svg xmlns=\"http://www.w3.org/2000/svg\" \\'+(o.width?\\'width=\"\\'+o.width+\\'\" height=\"\\'+o.width+\\'\" \\':\"\")+h+\\' shape-rendering=\"crispEdges\">\\'+u+d+`</svg>\\n`;return typeof r==\"function\"&&r(null,g),g}});var TNe=be(TM=>{p();var b1t=IMe(),lae=xNe(),ANe=SNe(),v1t=CNe();function uae(t,e,n,r,o){let i=[].slice.call(arguments,1),a=i.length,c=typeof i[a-1]==\"function\";if(!c&&!b1t())throw new Error(\"Callback required as last argument\");if(c){if(a<2)throw new Error(\"Too few arguments provided\");a===2?(o=n,n=e,e=r=void 0):a===3&&(e.getContext&&typeof o>\"u\"?(o=r,r=void 0):(o=r,r=n,n=e,e=void 0))}else{if(a<1)throw new Error(\"Too few arguments provided\");return a===1?(n=e,e=r=void 0):a===2&&!e.getContext&&(r=n,n=e,e=void 0),new Promise(function(u,d){try{let h=lae.create(n,r);u(t(h,e,r))}catch(h){d(h)}})}try{let u=lae.create(n,r);o(null,t(u,e,r))}catch(u){o(u)}}TM.create=lae.create;TM.toCanvas=uae.bind(null,ANe.render);TM.toDataURL=uae.bind(null,ANe.renderToDataURL);TM.toString=uae.bind(null,function(t,e,n){return v1t.render(t,n)})});p();var GBe=he(ide());p();p();p();Si();function e6({chainId:t,isMainnetOnly:e=!1}){return!!(e&&t===Yn.id||!e&&(t===xs.id||t===Yn.id))}p();Si();function t6({chainId:t,isMainnetOnly:e=!1}){return!!(e&&t===li.id||!e&&(t===ZR.id||t===li.id))}p();Si();var bh={address:null,apiKey:null,chain:xs,config:{analytics:!0,analyticsUrl:null,appearance:{name:null,logo:null,mode:null,theme:null},paymaster:null,wallet:{display:null,termsUrl:null,privacyUrl:null,supportedWallets:{rabby:!1,trust:!1,frame:!1}}},rpcUrl:null,schemaId:null,projectId:null,sessionId:null},Jw=t=>bh[t],hZ=t=>(Object.assign(bh,t),Jw);p();var CW=he(De(),1);var wg=he(et(),1);p();var GO=he(De(),1);p();p();p();p();p();var Kp=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};p();var yf=typeof window>\"u\"||\"Deno\"in globalThis;function zs(){}function bhe(t,e){return typeof t==\"function\"?t(e):t}function YR(t){return typeof t==\"number\"&&t>=0&&t!==1/0}function pB(t,e){return Math.max(t+(e||0)-Date.now(),0)}function V0(t,e){return typeof t==\"function\"?t(e):t}function vh(t,e){return typeof t==\"function\"?t(e):t}function mB(t,e){let{type:n=\"all\",exact:r,fetchStatus:o,predicate:i,queryKey:a,stale:c}=t;if(a){if(r){if(e.queryHash!==QR(a,e.options))return!1}else if(!r6(e.queryKey,a))return!1}if(n!==\"all\"){let u=e.isActive();if(n===\"active\"&&!u||n===\"inactive\"&&u)return!1}return!(typeof c==\"boolean\"&&e.isStale()!==c||o&&o!==e.state.fetchStatus||i&&!i(e))}function gB(t,e){let{exact:n,status:r,predicate:o,mutationKey:i}=t;if(i){if(!e.options.mutationKey)return!1;if(n){if(Ny(e.options.mutationKey)!==Ny(i))return!1}else if(!r6(e.options.mutationKey,i))return!1}return!(r&&e.state.status!==r||o&&!o(e))}function QR(t,e){return(e?.queryKeyHashFn||Ny)(t)}function Ny(t){return JSON.stringify(t,(e,n)=>pZ(n)?Object.keys(n).sort().reduce((r,o)=>(r[o]=n[o],r),{}):n)}function r6(t,e){return t===e?!0:typeof t!=typeof e?!1:t&&e&&typeof t==\"object\"&&typeof e==\"object\"?Object.keys(e).every(n=>r6(t[n],e[n])):!1}function L4(t,e){if(t===e)return t;let n=ghe(t)&&ghe(e);if(n||pZ(t)&&pZ(e)){let r=n?t:Object.keys(t),o=r.length,i=n?e:Object.keys(e),a=i.length,c=n?[]:{},u=new Set(r),d=0;for(let h=0;h<a;h++){let m=n?h:i[h];(!n&&u.has(m)||n)&&t[m]===void 0&&e[m]===void 0?(c[m]=void 0,d++):(c[m]=L4(t[m],e[m]),c[m]===t[m]&&t[m]!==void 0&&d++)}return o===a&&d===o?t:c}return e}function B4(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(let n in t)if(t[n]!==e[n])return!1;return!0}function ghe(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function pZ(t){if(!yhe(t))return!1;let e=t.constructor;if(e===void 0)return!0;let n=e.prototype;return!(!yhe(n)||!n.hasOwnProperty(\"isPrototypeOf\")||Object.getPrototypeOf(t)!==Object.prototype)}function yhe(t){return Object.prototype.toString.call(t)===\"[object Object]\"}function vhe(t){return new Promise(e=>{setTimeout(e,t)})}function JR(t,e,n){if(typeof n.structuralSharing==\"function\")return n.structuralSharing(t,e);if(n.structuralSharing!==!1){try{return L4(t,e)}catch(r){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${n.queryHash}]: ${r}`),r}return L4(t,e)}return e}function whe(t,e,n=0){let r=[...t,e];return n&&r.length>n?r.slice(1):r}function xhe(t,e,n=0){let r=[e,...t];return n&&r.length>n?r.slice(0,-1):r}var n6=Symbol();function yB(t,e){return t.queryFn===n6&&console.error(`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: \\'${t.queryHash}\\'`),!t.queryFn&&e?.initialPromise?()=>e.initialPromise:!t.queryFn||t.queryFn===n6?()=>Promise.reject(new Error(`Missing queryFn: \\'${t.queryHash}\\'`)):t.queryFn}function XR(t,e){return typeof t==\"function\"?t(...e):!!t}var o6,Xw,D4,Ehe,rze=(Ehe=class extends Kp{constructor(){super();an(this,o6);an(this,Xw);an(this,D4);Nt(this,D4,e=>{if(!yf&&window.addEventListener){let n=()=>e();return window.addEventListener(\"visibilitychange\",n,!1),()=>{window.removeEventListener(\"visibilitychange\",n)}}})}onSubscribe(){Ce(this,Xw)||this.setEventListener(Ce(this,D4))}onUnsubscribe(){var e;this.hasListeners()||((e=Ce(this,Xw))==null||e.call(this),Nt(this,Xw,void 0))}setEventListener(e){var n;Nt(this,D4,e),(n=Ce(this,Xw))==null||n.call(this),Nt(this,Xw,e(r=>{typeof r==\"boolean\"?this.setFocused(r):this.onFocus()}))}setFocused(e){Ce(this,o6)!==e&&(Nt(this,o6,e),this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(n=>{n(e)})}isFocused(){return typeof Ce(this,o6)==\"boolean\"?Ce(this,o6):globalThis.document?.visibilityState!==\"hidden\"}},o6=new WeakMap,Xw=new WeakMap,D4=new WeakMap,Ehe),F4=new rze;p();var U4,ex,j4,She,oze=(She=class extends Kp{constructor(){super();an(this,U4,!0);an(this,ex);an(this,j4);Nt(this,j4,e=>{if(!yf&&window.addEventListener){let n=()=>e(!0),r=()=>e(!1);return window.addEventListener(\"online\",n,!1),window.addEventListener(\"offline\",r,!1),()=>{window.removeEventListener(\"online\",n),window.removeEventListener(\"offline\",r)}}})}onSubscribe(){Ce(this,ex)||this.setEventListener(Ce(this,j4))}onUnsubscribe(){var e;this.hasListeners()||((e=Ce(this,ex))==null||e.call(this),Nt(this,ex,void 0))}setEventListener(e){var n;Nt(this,j4,e),(n=Ce(this,ex))==null||n.call(this),Nt(this,ex,e(this.setOnline.bind(this)))}setOnline(e){Ce(this,U4)!==e&&(Nt(this,U4,e),this.listeners.forEach(r=>{r(e)}))}isOnline(){return Ce(this,U4)}},U4=new WeakMap,ex=new WeakMap,j4=new WeakMap,She),z4=new oze;p();function e9(){let t,e,n=new Promise((o,i)=>{t=o,e=i});n.status=\"pending\",n.catch(()=>{});function r(o){Object.assign(n,o),delete n.resolve,delete n.reject}return n.resolve=o=>{r({status:\"fulfilled\",value:o}),t(o)},n.reject=o=>{r({status:\"rejected\",reason:o}),e(o)},n}function ize(t){return Math.min(1e3*2**t,3e4)}function mZ(t){return(t??\"online\")===\"online\"?z4.isOnline():!0}var khe=class extends Error{constructor(t){super(\"CancelledError\"),this.revert=t?.revert,this.silent=t?.silent}};function bB(t){return t instanceof khe}function vB(t){let e=!1,n=0,r=!1,o,i=e9(),a=C=>{r||(g(new khe(C)),t.abort?.())},c=()=>{e=!0},u=()=>{e=!1},d=()=>F4.isFocused()&&(t.networkMode===\"always\"||z4.isOnline())&&t.canRun(),h=()=>mZ(t.networkMode)&&t.canRun(),m=C=>{r||(r=!0,t.onSuccess?.(C),o?.(),i.resolve(C))},g=C=>{r||(r=!0,t.onError?.(C),o?.(),i.reject(C))},b=()=>new Promise(C=>{o=T=>{(r||d())&&C(T)},t.onPause?.()}).then(()=>{o=void 0,r||t.onContinue?.()}),E=()=>{if(r)return;let C,T=n===0?t.initialPromise:void 0;try{C=T??t.fn()}catch(R){C=Promise.reject(R)}Promise.resolve(C).then(m).catch(R=>{if(r)return;let L=t.retry??(yf?0:3),D=t.retryDelay??ize,G=typeof D==\"function\"?D(n,R):D,W=L===!0||typeof L==\"number\"&&n<L||typeof L==\"function\"&&L(n,R);if(e||!W){g(R);return}n++,t.onFail?.(n,R),vhe(G).then(()=>d()?void 0:b()).then(()=>{e?g(R):E()})})};return{promise:i,cancel:a,continue:()=>(o?.(),i),cancelRetry:c,continueRetry:u,canStart:h,start:()=>(h()?E():b().then(E),i)}}p();p();p();var _he=t=>setTimeout(t,0);function sze(){let t=[],e=0,n=c=>{c()},r=c=>{c()},o=_he,i=c=>{e?t.push(c):o(()=>{n(c)})},a=()=>{let c=t;t=[],c.length&&o(()=>{r(()=>{c.forEach(u=>{n(u)})})})};return{batch:c=>{let u;e++;try{u=c()}finally{e--,e||a()}return u},batchCalls:c=>(...u)=>{i(()=>{c(...u)})},schedule:i,setNotifyFunction:c=>{n=c},setBatchNotifyFunction:c=>{r=c},setScheduler:c=>{o=c}}}var ti=sze();p();var i6,Che,wB=(Che=class{constructor(){an(this,i6)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),YR(this.gcTime)&&Nt(this,i6,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(yf?1/0:5*60*1e3))}clearGcTimeout(){Ce(this,i6)&&(clearTimeout(Ce(this,i6)),Nt(this,i6,void 0))}},i6=new WeakMap,Che);var H4,s6,Gp,a6,lu,t9,c6,$0,cv,Ahe,The=(Ahe=class extends wB{constructor(e){super();an(this,$0);an(this,H4);an(this,s6);an(this,Gp);an(this,a6);an(this,lu);an(this,t9);an(this,c6);Nt(this,c6,!1),Nt(this,t9,e.defaultOptions),this.setOptions(e.options),this.observers=[],Nt(this,a6,e.client),Nt(this,Gp,Ce(this,a6).getQueryCache()),this.queryKey=e.queryKey,this.queryHash=e.queryHash,Nt(this,H4,aze(this.options)),this.state=e.state??Ce(this,H4),this.scheduleGc()}get meta(){return this.options.meta}get promise(){return Ce(this,lu)?.promise}setOptions(e){this.options={...Ce(this,t9),...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus===\"idle\"&&Ce(this,Gp).remove(this)}setData(e,n){let r=JR(this.state.data,e,this.options);return Zn(this,$0,cv).call(this,{data:r,type:\"success\",dataUpdatedAt:n?.updatedAt,manual:n?.manual}),r}setState(e,n){Zn(this,$0,cv).call(this,{type:\"setState\",state:e,setStateOptions:n})}cancel(e){let n=Ce(this,lu)?.promise;return Ce(this,lu)?.cancel(e),n?n.then(zs).catch(zs):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(Ce(this,H4))}isActive(){return this.observers.some(e=>vh(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===n6||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>V0(e.options.staleTime,this)===\"static\"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===\"static\"?!1:this.state.isInvalidated?!0:!pB(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(n=>n.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),Ce(this,lu)?.continue()}onOnline(){this.observers.find(n=>n.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),Ce(this,lu)?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),Ce(this,Gp).notify({type:\"observerAdded\",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(n=>n!==e),this.observers.length||(Ce(this,lu)&&(Ce(this,c6)?Ce(this,lu).cancel({revert:!0}):Ce(this,lu).cancelRetry()),this.scheduleGc()),Ce(this,Gp).notify({type:\"observerRemoved\",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Zn(this,$0,cv).call(this,{type:\"invalidate\"})}fetch(e,n){if(this.state.fetchStatus!==\"idle\"){if(this.state.data!==void 0&&n?.cancelRefetch)this.cancel({silent:!0});else if(Ce(this,lu))return Ce(this,lu).continueRetry(),Ce(this,lu).promise}if(e&&this.setOptions(e),!this.options.queryFn){let d=this.observers.find(h=>h.options.queryFn);d&&this.setOptions(d.options)}Array.isArray(this.options.queryKey)||console.error(\"As of v4, queryKey needs to be an Array. If you are using a string like \\'repoData\\', please change it to an Array, e.g. [\\'repoData\\']\");let r=new AbortController,o=d=>{Object.defineProperty(d,\"signal\",{enumerable:!0,get:()=>(Nt(this,c6,!0),r.signal)})},i=()=>{let d=yB(this.options,n),m=(()=>{let g={client:Ce(this,a6),queryKey:this.queryKey,meta:this.meta};return o(g),g})();return Nt(this,c6,!1),this.options.persister?this.options.persister(d,m,this):d(m)},c=(()=>{let d={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:Ce(this,a6),state:this.state,fetchFn:i};return o(d),d})();this.options.behavior?.onFetch(c,this),Nt(this,s6,this.state),(this.state.fetchStatus===\"idle\"||this.state.fetchMeta!==c.fetchOptions?.meta)&&Zn(this,$0,cv).call(this,{type:\"fetch\",meta:c.fetchOptions?.meta});let u=d=>{bB(d)&&d.silent||Zn(this,$0,cv).call(this,{type:\"error\",error:d}),bB(d)||(Ce(this,Gp).config.onError?.(d,this),Ce(this,Gp).config.onSettled?.(this.state.data,d,this)),this.scheduleGc()};return Nt(this,lu,vB({initialPromise:n?.initialPromise,fn:c.fetchFn,abort:r.abort.bind(r),onSuccess:d=>{if(d===void 0){console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`),u(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(d)}catch(h){u(h);return}Ce(this,Gp).config.onSuccess?.(d,this),Ce(this,Gp).config.onSettled?.(d,this.state.error,this),this.scheduleGc()},onError:u,onFail:(d,h)=>{Zn(this,$0,cv).call(this,{type:\"failed\",failureCount:d,error:h})},onPause:()=>{Zn(this,$0,cv).call(this,{type:\"pause\"})},onContinue:()=>{Zn(this,$0,cv).call(this,{type:\"continue\"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode,canRun:()=>!0})),Ce(this,lu).start()}},H4=new WeakMap,s6=new WeakMap,Gp=new WeakMap,a6=new WeakMap,lu=new WeakMap,t9=new WeakMap,c6=new WeakMap,$0=new WeakSet,cv=function(e){let n=r=>{switch(e.type){case\"failed\":return{...r,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case\"pause\":return{...r,fetchStatus:\"paused\"};case\"continue\":return{...r,fetchStatus:\"fetching\"};case\"fetch\":return{...r,...gZ(r.data,this.options),fetchMeta:e.meta??null};case\"success\":return Nt(this,s6,void 0),{...r,data:e.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:\"success\",...!e.manual&&{fetchStatus:\"idle\",fetchFailureCount:0,fetchFailureReason:null}};case\"error\":let o=e.error;return bB(o)&&o.revert&&Ce(this,s6)?{...Ce(this,s6),fetchStatus:\"idle\"}:{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:\"idle\",status:\"error\"};case\"invalidate\":return{...r,isInvalidated:!0};case\"setState\":return{...r,...e.state}}};this.state=n(this.state),ti.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),Ce(this,Gp).notify({query:this,type:\"updated\",action:e})})},Ahe);function gZ(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:mZ(e.networkMode)?\"fetching\":\"paused\",...t===void 0&&{error:null,status:\"pending\"}}}function aze(t){let e=typeof t.initialData==\"function\"?t.initialData():t.initialData,n=e!==void 0,r=n?typeof t.initialDataUpdatedAt==\"function\"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?\"success\":\"pending\",fetchStatus:\"idle\"}}var Ly,Rhe,Ihe=(Rhe=class extends Kp{constructor(e={}){super();an(this,Ly);this.config=e,Nt(this,Ly,new Map)}build(e,n,r){let o=n.queryKey,i=n.queryHash??QR(o,n),a=this.get(i);return a||(a=new The({client:e,queryKey:o,queryHash:i,options:e.defaultQueryOptions(n),state:r,defaultOptions:e.getQueryDefaults(o)}),this.add(a)),a}add(e){Ce(this,Ly).has(e.queryHash)||(Ce(this,Ly).set(e.queryHash,e),this.notify({type:\"added\",query:e}))}remove(e){let n=Ce(this,Ly).get(e.queryHash);n&&(e.destroy(),n===e&&Ce(this,Ly).delete(e.queryHash),this.notify({type:\"removed\",query:e}))}clear(){ti.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return Ce(this,Ly).get(e)}getAll(){return[...Ce(this,Ly).values()]}find(e){let n={exact:!0,...e};return this.getAll().find(r=>mB(n,r))}findAll(e={}){let n=this.getAll();return Object.keys(e).length>0?n.filter(r=>mB(e,r)):n}notify(e){ti.batch(()=>{this.listeners.forEach(n=>{n(e)})})}onFocus(){ti.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){ti.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Ly=new WeakMap,Rhe);p();p();p();var By,fd,l6,Dy,tx,Ohe,Phe=(Ohe=class extends wB{constructor(e){super();an(this,Dy);an(this,By);an(this,fd);an(this,l6);this.mutationId=e.mutationId,Nt(this,fd,e.mutationCache),Nt(this,By,[]),this.state=e.state||yZ(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){Ce(this,By).includes(e)||(Ce(this,By).push(e),this.clearGcTimeout(),Ce(this,fd).notify({type:\"observerAdded\",mutation:this,observer:e}))}removeObserver(e){Nt(this,By,Ce(this,By).filter(n=>n!==e)),this.scheduleGc(),Ce(this,fd).notify({type:\"observerRemoved\",mutation:this,observer:e})}optionalRemove(){Ce(this,By).length||(this.state.status===\"pending\"?this.scheduleGc():Ce(this,fd).remove(this))}continue(){return Ce(this,l6)?.continue()??this.execute(this.state.variables)}async execute(e){let n=()=>{Zn(this,Dy,tx).call(this,{type:\"continue\"})};Nt(this,l6,vB({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error(\"No mutationFn found\")),onFail:(i,a)=>{Zn(this,Dy,tx).call(this,{type:\"failed\",failureCount:i,error:a})},onPause:()=>{Zn(this,Dy,tx).call(this,{type:\"pause\"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>Ce(this,fd).canRun(this)}));let r=this.state.status===\"pending\",o=!Ce(this,l6).canStart();try{if(r)n();else{Zn(this,Dy,tx).call(this,{type:\"pending\",variables:e,isPaused:o}),await Ce(this,fd).config.onMutate?.(e,this);let a=await this.options.onMutate?.(e);a!==this.state.context&&Zn(this,Dy,tx).call(this,{type:\"pending\",context:a,variables:e,isPaused:o})}let i=await Ce(this,l6).start();return await Ce(this,fd).config.onSuccess?.(i,e,this.state.context,this),await this.options.onSuccess?.(i,e,this.state.context),await Ce(this,fd).config.onSettled?.(i,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(i,null,e,this.state.context),Zn(this,Dy,tx).call(this,{type:\"success\",data:i}),i}catch(i){try{throw await Ce(this,fd).config.onError?.(i,e,this.state.context,this),await this.options.onError?.(i,e,this.state.context),await Ce(this,fd).config.onSettled?.(void 0,i,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,i,e,this.state.context),i}finally{Zn(this,Dy,tx).call(this,{type:\"error\",error:i})}}finally{Ce(this,fd).runNext(this)}}},By=new WeakMap,fd=new WeakMap,l6=new WeakMap,Dy=new WeakSet,tx=function(e){let n=r=>{switch(e.type){case\"failed\":return{...r,failureCount:e.failureCount,failureReason:e.error};case\"pause\":return{...r,isPaused:!0};case\"continue\":return{...r,isPaused:!1};case\"pending\":return{...r,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:\"pending\",variables:e.variables,submittedAt:Date.now()};case\"success\":return{...r,data:e.data,failureCount:0,failureReason:null,error:null,status:\"success\",isPaused:!1};case\"error\":return{...r,data:void 0,error:e.error,failureCount:r.failureCount+1,failureReason:e.error,isPaused:!1,status:\"error\"}}};this.state=n(this.state),ti.batch(()=>{Ce(this,By).forEach(r=>{r.onMutationUpdate(e)}),Ce(this,fd).notify({mutation:this,type:\"updated\",action:e})})},Ohe);function yZ(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:\"idle\",variables:void 0,submittedAt:0}}var lv,K0,n9,Mhe,Nhe=(Mhe=class extends Kp{constructor(e={}){super();an(this,lv);an(this,K0);an(this,n9);this.config=e,Nt(this,lv,new Set),Nt(this,K0,new Map),Nt(this,n9,0)}build(e,n,r){let o=new Phe({mutationCache:this,mutationId:++K7(this,n9)._,options:e.defaultMutationOptions(n),state:r});return this.add(o),o}add(e){Ce(this,lv).add(e);let n=xB(e);if(typeof n==\"string\"){let r=Ce(this,K0).get(n);r?r.push(e):Ce(this,K0).set(n,[e])}this.notify({type:\"added\",mutation:e})}remove(e){if(Ce(this,lv).delete(e)){let n=xB(e);if(typeof n==\"string\"){let r=Ce(this,K0).get(n);if(r)if(r.length>1){let o=r.indexOf(e);o!==-1&&r.splice(o,1)}else r[0]===e&&Ce(this,K0).delete(n)}}this.notify({type:\"removed\",mutation:e})}canRun(e){let n=xB(e);if(typeof n==\"string\"){let o=Ce(this,K0).get(n)?.find(i=>i.state.status===\"pending\");return!o||o===e}else return!0}runNext(e){let n=xB(e);return typeof n==\"string\"?Ce(this,K0).get(n)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){ti.batch(()=>{Ce(this,lv).forEach(e=>{this.notify({type:\"removed\",mutation:e})}),Ce(this,lv).clear(),Ce(this,K0).clear()})}getAll(){return Array.from(Ce(this,lv))}find(e){let n={exact:!0,...e};return this.getAll().find(r=>gB(n,r))}findAll(e={}){return this.getAll().filter(n=>gB(e,n))}notify(e){ti.batch(()=>{this.listeners.forEach(n=>{n(e)})})}resumePausedMutations(){let e=this.getAll().filter(n=>n.state.isPaused);return ti.batch(()=>Promise.all(e.map(n=>n.continue().catch(zs))))}},lv=new WeakMap,K0=new WeakMap,n9=new WeakMap,Mhe);function xB(t){return t.options.scope?.id}p();function bZ(t){return{onFetch:(e,n)=>{let r=e.options,o=e.fetchOptions?.meta?.fetchMore?.direction,i=e.state.data?.pages||[],a=e.state.data?.pageParams||[],c={pages:[],pageParams:[]},u=0,d=async()=>{let h=!1,m=E=>{Object.defineProperty(E,\"signal\",{enumerable:!0,get:()=>(e.signal.aborted?h=!0:e.signal.addEventListener(\"abort\",()=>{h=!0}),e.signal)})},g=yB(e.options,e.fetchOptions),b=async(E,C,T)=>{if(h)return Promise.reject();if(C==null&&E.pages.length)return Promise.resolve(E);let L=(()=>{let J={client:e.client,queryKey:e.queryKey,pageParam:C,direction:T?\"backward\":\"forward\",meta:e.options.meta};return m(J),J})(),D=await g(L),{maxPages:G}=e.options,W=T?xhe:whe;return{pages:W(E.pages,D,G),pageParams:W(E.pageParams,C,G)}};if(o&&i.length){let E=o===\"backward\",C=E?cze:Lhe,T={pages:i,pageParams:a},R=C(r,T);c=await b(T,R,E)}else{let E=t??i.length;do{let C=u===0?a[0]??r.initialPageParam:Lhe(r,c);if(u>0&&C==null)break;c=await b(c,C),u++}while(u<E)}return c};e.options.persister?e.fetchFn=()=>e.options.persister?.(d,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},n):e.fetchFn=d}}}function Lhe(t,{pages:e,pageParams:n}){let r=e.length-1;return e.length>0?t.getNextPageParam(e[r],e,n[r],n):void 0}function cze(t,{pages:e,pageParams:n}){return e.length>0?t.getPreviousPageParam?.(e[0],e,n[0],n):void 0}var Hs,nx,rx,q4,W4,ox,V4,$4,Bhe,vZ=(Bhe=class{constructor(t={}){an(this,Hs);an(this,nx);an(this,rx);an(this,q4);an(this,W4);an(this,ox);an(this,V4);an(this,$4);Nt(this,Hs,t.queryCache||new Ihe),Nt(this,nx,t.mutationCache||new Nhe),Nt(this,rx,t.defaultOptions||{}),Nt(this,q4,new Map),Nt(this,W4,new Map),Nt(this,ox,0)}mount(){K7(this,ox)._++,Ce(this,ox)===1&&(Nt(this,V4,F4.subscribe(async t=>{t&&(await this.resumePausedMutations(),Ce(this,Hs).onFocus())})),Nt(this,$4,z4.subscribe(async t=>{t&&(await this.resumePausedMutations(),Ce(this,Hs).onOnline())})))}unmount(){var t,e;K7(this,ox)._--,Ce(this,ox)===0&&((t=Ce(this,V4))==null||t.call(this),Nt(this,V4,void 0),(e=Ce(this,$4))==null||e.call(this),Nt(this,$4,void 0))}isFetching(t){return Ce(this,Hs).findAll({...t,fetchStatus:\"fetching\"}).length}isMutating(t){return Ce(this,nx).findAll({...t,status:\"pending\"}).length}getQueryData(t){let e=this.defaultQueryOptions({queryKey:t});return Ce(this,Hs).get(e.queryHash)?.state.data}ensureQueryData(t){let e=this.defaultQueryOptions(t),n=Ce(this,Hs).build(this,e),r=n.state.data;return r===void 0?this.fetchQuery(t):(t.revalidateIfStale&&n.isStaleByTime(V0(e.staleTime,n))&&this.prefetchQuery(e),Promise.resolve(r))}getQueriesData(t){return Ce(this,Hs).findAll(t).map(({queryKey:e,state:n})=>{let r=n.data;return[e,r]})}setQueryData(t,e,n){let r=this.defaultQueryOptions({queryKey:t}),i=Ce(this,Hs).get(r.queryHash)?.state.data,a=bhe(e,i);if(a!==void 0)return Ce(this,Hs).build(this,r).setData(a,{...n,manual:!0})}setQueriesData(t,e,n){return ti.batch(()=>Ce(this,Hs).findAll(t).map(({queryKey:r})=>[r,this.setQueryData(r,e,n)]))}getQueryState(t){let e=this.defaultQueryOptions({queryKey:t});return Ce(this,Hs).get(e.queryHash)?.state}removeQueries(t){let e=Ce(this,Hs);ti.batch(()=>{e.findAll(t).forEach(n=>{e.remove(n)})})}resetQueries(t,e){let n=Ce(this,Hs);return ti.batch(()=>(n.findAll(t).forEach(r=>{r.reset()}),this.refetchQueries({type:\"active\",...t},e)))}cancelQueries(t,e={}){let n={revert:!0,...e},r=ti.batch(()=>Ce(this,Hs).findAll(t).map(o=>o.cancel(n)));return Promise.all(r).then(zs).catch(zs)}invalidateQueries(t,e={}){return ti.batch(()=>(Ce(this,Hs).findAll(t).forEach(n=>{n.invalidate()}),t?.refetchType===\"none\"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??\"active\"},e)))}refetchQueries(t,e={}){let n={...e,cancelRefetch:e.cancelRefetch??!0},r=ti.batch(()=>Ce(this,Hs).findAll(t).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let i=o.fetch(void 0,n);return n.throwOnError||(i=i.catch(zs)),o.state.fetchStatus===\"paused\"?Promise.resolve():i}));return Promise.all(r).then(zs)}fetchQuery(t){let e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);let n=Ce(this,Hs).build(this,e);return n.isStaleByTime(V0(e.staleTime,n))?n.fetch(e):Promise.resolve(n.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(zs).catch(zs)}fetchInfiniteQuery(t){return t.behavior=bZ(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(zs).catch(zs)}ensureInfiniteQueryData(t){return t.behavior=bZ(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return z4.isOnline()?Ce(this,nx).resumePausedMutations():Promise.resolve()}getQueryCache(){return Ce(this,Hs)}getMutationCache(){return Ce(this,nx)}getDefaultOptions(){return Ce(this,rx)}setDefaultOptions(t){Nt(this,rx,t)}setQueryDefaults(t,e){Ce(this,q4).set(Ny(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){let e=[...Ce(this,q4).values()],n={};return e.forEach(r=>{r6(t,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(t,e){Ce(this,W4).set(Ny(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){let e=[...Ce(this,W4).values()],n={};return e.forEach(r=>{r6(t,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(t){if(t._defaulted)return t;let e={...Ce(this,rx).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=QR(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!==\"always\"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode=\"offlineFirst\"),e.queryFn===n6&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...Ce(this,rx).mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){Ce(this,Hs).clear(),Ce(this,nx).clear()}},Hs=new WeakMap,nx=new WeakMap,rx=new WeakMap,q4=new WeakMap,W4=new WeakMap,ox=new WeakMap,V4=new WeakMap,$4=new WeakMap,Bhe);p();var bf,Gr,o9,hd,u6,K4,ix,sx,i9,G4,Z4,d6,f6,ax,Y4,zo,r9,wZ,xZ,EZ,SZ,kZ,_Z,CZ,jhe,Uhe,TZ=(Uhe=class extends Kp{constructor(e,n){super();an(this,zo);an(this,bf);an(this,Gr);an(this,o9);an(this,hd);an(this,u6);an(this,K4);an(this,ix);an(this,sx);an(this,i9);an(this,G4);an(this,Z4);an(this,d6);an(this,f6);an(this,ax);an(this,Y4,new Set);this.options=n,Nt(this,bf,e),Nt(this,sx,null),Nt(this,ix,e9()),this.options.experimental_prefetchInRender||Ce(this,ix).reject(new Error(\"experimental_prefetchInRender feature flag is not enabled\")),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(Ce(this,Gr).addObserver(this),Dhe(Ce(this,Gr),this.options)?Zn(this,zo,r9).call(this):this.updateResult(),Zn(this,zo,SZ).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return AZ(Ce(this,Gr),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return AZ(Ce(this,Gr),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Zn(this,zo,kZ).call(this),Zn(this,zo,_Z).call(this),Ce(this,Gr).removeObserver(this)}setOptions(e){let n=this.options,r=Ce(this,Gr);if(this.options=Ce(this,bf).defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=\"boolean\"&&typeof this.options.enabled!=\"function\"&&typeof vh(this.options.enabled,Ce(this,Gr))!=\"boolean\")throw new Error(\"Expected enabled to be a boolean or a callback that returns a boolean\");Zn(this,zo,CZ).call(this),Ce(this,Gr).setOptions(this.options),n._defaulted&&!B4(this.options,n)&&Ce(this,bf).getQueryCache().notify({type:\"observerOptionsUpdated\",query:Ce(this,Gr),observer:this});let o=this.hasListeners();o&&Fhe(Ce(this,Gr),r,this.options,n)&&Zn(this,zo,r9).call(this),this.updateResult(),o&&(Ce(this,Gr)!==r||vh(this.options.enabled,Ce(this,Gr))!==vh(n.enabled,Ce(this,Gr))||V0(this.options.staleTime,Ce(this,Gr))!==V0(n.staleTime,Ce(this,Gr)))&&Zn(this,zo,wZ).call(this);let i=Zn(this,zo,xZ).call(this);o&&(Ce(this,Gr)!==r||vh(this.options.enabled,Ce(this,Gr))!==vh(n.enabled,Ce(this,Gr))||i!==Ce(this,ax))&&Zn(this,zo,EZ).call(this,i)}getOptimisticResult(e){let n=Ce(this,bf).getQueryCache().build(Ce(this,bf),e),r=this.createResult(n,e);return uze(this,r)&&(Nt(this,hd,r),Nt(this,K4,this.options),Nt(this,u6,Ce(this,Gr).state)),r}getCurrentResult(){return Ce(this,hd)}trackResult(e,n){return new Proxy(e,{get:(r,o)=>(this.trackProp(o),n?.(o),Reflect.get(r,o))})}trackProp(e){Ce(this,Y4).add(e)}getCurrentQuery(){return Ce(this,Gr)}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let n=Ce(this,bf).defaultQueryOptions(e),r=Ce(this,bf).getQueryCache().build(Ce(this,bf),n);return r.fetch().then(()=>this.createResult(r,n))}fetch(e){return Zn(this,zo,r9).call(this,{...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),Ce(this,hd)))}createResult(e,n){let r=Ce(this,Gr),o=this.options,i=Ce(this,hd),a=Ce(this,u6),c=Ce(this,K4),d=e!==r?e.state:Ce(this,o9),{state:h}=e,m={...h},g=!1,b;if(n._optimisticResults){let Z=this.hasListeners(),ae=!Z&&Dhe(e,n),V=Z&&Fhe(e,r,n,o);(ae||V)&&(m={...m,...gZ(h.data,e.options)}),n._optimisticResults===\"isRestoring\"&&(m.fetchStatus=\"idle\")}let{error:E,errorUpdatedAt:C,status:T}=m;b=m.data;let R=!1;if(n.placeholderData!==void 0&&b===void 0&&T===\"pending\"){let Z;i?.isPlaceholderData&&n.placeholderData===c?.placeholderData?(Z=i.data,R=!0):Z=typeof n.placeholderData==\"function\"?n.placeholderData(Ce(this,Z4)?.state.data,Ce(this,Z4)):n.placeholderData,Z!==void 0&&(T=\"success\",b=JR(i?.data,Z,n),g=!0)}if(n.select&&b!==void 0&&!R)if(i&&b===a?.data&&n.select===Ce(this,i9))b=Ce(this,G4);else try{Nt(this,i9,n.select),b=n.select(b),b=JR(i?.data,b,n),Nt(this,G4,b),Nt(this,sx,null)}catch(Z){Nt(this,sx,Z)}Ce(this,sx)&&(E=Ce(this,sx),b=Ce(this,G4),C=Date.now(),T=\"error\");let L=m.fetchStatus===\"fetching\",D=T===\"pending\",G=T===\"error\",W=D&&L,J=b!==void 0,ie={status:T,fetchStatus:m.fetchStatus,isPending:D,isSuccess:T===\"success\",isError:G,isInitialLoading:W,isLoading:W,data:b,dataUpdatedAt:m.dataUpdatedAt,error:E,errorUpdatedAt:C,failureCount:m.fetchFailureCount,failureReason:m.fetchFailureReason,errorUpdateCount:m.errorUpdateCount,isFetched:m.dataUpdateCount>0||m.errorUpdateCount>0,isFetchedAfterMount:m.dataUpdateCount>d.dataUpdateCount||m.errorUpdateCount>d.errorUpdateCount,isFetching:L,isRefetching:L&&!D,isLoadingError:G&&!J,isPaused:m.fetchStatus===\"paused\",isPlaceholderData:g,isRefetchError:G&&J,isStale:RZ(e,n),refetch:this.refetch,promise:Ce(this,ix)};if(this.options.experimental_prefetchInRender){let Z=$=>{ie.status===\"error\"?$.reject(ie.error):ie.data!==void 0&&$.resolve(ie.data)},ae=()=>{let $=Nt(this,ix,ie.promise=e9());Z($)},V=Ce(this,ix);switch(V.status){case\"pending\":e.queryHash===r.queryHash&&Z(V);break;case\"fulfilled\":(ie.status===\"error\"||ie.data!==V.value)&&ae();break;case\"rejected\":(ie.status!==\"error\"||ie.error!==V.reason)&&ae();break}}return ie}updateResult(){let e=Ce(this,hd),n=this.createResult(Ce(this,Gr),this.options);if(Nt(this,u6,Ce(this,Gr).state),Nt(this,K4,this.options),Ce(this,u6).data!==void 0&&Nt(this,Z4,Ce(this,Gr)),B4(n,e))return;Nt(this,hd,n);let r=()=>{if(!e)return!0;let{notifyOnChangeProps:o}=this.options,i=typeof o==\"function\"?o():o;if(i===\"all\"||!i&&!Ce(this,Y4).size)return!0;let a=new Set(i??Ce(this,Y4));return this.options.throwOnError&&a.add(\"error\"),Object.keys(Ce(this,hd)).some(c=>{let u=c;return Ce(this,hd)[u]!==e[u]&&a.has(u)})};Zn(this,zo,jhe).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Zn(this,zo,SZ).call(this)}},bf=new WeakMap,Gr=new WeakMap,o9=new WeakMap,hd=new WeakMap,u6=new WeakMap,K4=new WeakMap,ix=new WeakMap,sx=new WeakMap,i9=new WeakMap,G4=new WeakMap,Z4=new WeakMap,d6=new WeakMap,f6=new WeakMap,ax=new WeakMap,Y4=new WeakMap,zo=new WeakSet,r9=function(e){Zn(this,zo,CZ).call(this);let n=Ce(this,Gr).fetch(this.options,e);return e?.throwOnError||(n=n.catch(zs)),n},wZ=function(){Zn(this,zo,kZ).call(this);let e=V0(this.options.staleTime,Ce(this,Gr));if(yf||Ce(this,hd).isStale||!YR(e))return;let r=pB(Ce(this,hd).dataUpdatedAt,e)+1;Nt(this,d6,setTimeout(()=>{Ce(this,hd).isStale||this.updateResult()},r))},xZ=function(){return(typeof this.options.refetchInterval==\"function\"?this.options.refetchInterval(Ce(this,Gr)):this.options.refetchInterval)??!1},EZ=function(e){Zn(this,zo,_Z).call(this),Nt(this,ax,e),!(yf||vh(this.options.enabled,Ce(this,Gr))===!1||!YR(Ce(this,ax))||Ce(this,ax)===0)&&Nt(this,f6,setInterval(()=>{(this.options.refetchIntervalInBackground||F4.isFocused())&&Zn(this,zo,r9).call(this)},Ce(this,ax)))},SZ=function(){Zn(this,zo,wZ).call(this),Zn(this,zo,EZ).call(this,Zn(this,zo,xZ).call(this))},kZ=function(){Ce(this,d6)&&(clearTimeout(Ce(this,d6)),Nt(this,d6,void 0))},_Z=function(){Ce(this,f6)&&(clearInterval(Ce(this,f6)),Nt(this,f6,void 0))},CZ=function(){let e=Ce(this,bf).getQueryCache().build(Ce(this,bf),this.options);if(e===Ce(this,Gr))return;let n=Ce(this,Gr);Nt(this,Gr,e),Nt(this,o9,e.state),this.hasListeners()&&(n?.removeObserver(this),e.addObserver(this))},jhe=function(e){ti.batch(()=>{e.listeners&&this.listeners.forEach(n=>{n(Ce(this,hd))}),Ce(this,bf).getQueryCache().notify({query:Ce(this,Gr),type:\"observerResultsUpdated\"})})},Uhe);function lze(t,e){return vh(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status===\"error\"&&e.retryOnMount===!1)}function Dhe(t,e){return lze(t,e)||t.state.data!==void 0&&AZ(t,e,e.refetchOnMount)}function AZ(t,e,n){if(vh(e.enabled,t)!==!1&&V0(e.staleTime,t)!==\"static\"){let r=typeof n==\"function\"?n(t):n;return r===\"always\"||r!==!1&&RZ(t,e)}return!1}function Fhe(t,e,n,r){return(t!==e||vh(r.enabled,t)===!1)&&(!n.suspense||t.state.status!==\"error\")&&RZ(t,n)}function RZ(t,e){return vh(e.enabled,t)!==!1&&t.isStaleByTime(V0(e.staleTime,t))}function uze(t,e){return!B4(t.getCurrentResult(),e)}p();var cx,lx,vf,uv,dv,EB,IZ,zhe,OZ=(zhe=class extends Kp{constructor(e,n){super();an(this,dv);an(this,cx);an(this,lx);an(this,vf);an(this,uv);Nt(this,cx,e),this.setOptions(n),this.bindMethods(),Zn(this,dv,EB).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let n=this.options;this.options=Ce(this,cx).defaultMutationOptions(e),B4(this.options,n)||Ce(this,cx).getMutationCache().notify({type:\"observerOptionsUpdated\",mutation:Ce(this,vf),observer:this}),n?.mutationKey&&this.options.mutationKey&&Ny(n.mutationKey)!==Ny(this.options.mutationKey)?this.reset():Ce(this,vf)?.state.status===\"pending\"&&Ce(this,vf).setOptions(this.options)}onUnsubscribe(){this.hasListeners()||Ce(this,vf)?.removeObserver(this)}onMutationUpdate(e){Zn(this,dv,EB).call(this),Zn(this,dv,IZ).call(this,e)}getCurrentResult(){return Ce(this,lx)}reset(){Ce(this,vf)?.removeObserver(this),Nt(this,vf,void 0),Zn(this,dv,EB).call(this),Zn(this,dv,IZ).call(this)}mutate(e,n){return Nt(this,uv,n),Ce(this,vf)?.removeObserver(this),Nt(this,vf,Ce(this,cx).getMutationCache().build(Ce(this,cx),this.options)),Ce(this,vf).addObserver(this),Ce(this,vf).execute(e)}},cx=new WeakMap,lx=new WeakMap,vf=new WeakMap,uv=new WeakMap,dv=new WeakSet,EB=function(){let e=Ce(this,vf)?.state??yZ();Nt(this,lx,{...e,isPending:e.status===\"pending\",isSuccess:e.status===\"success\",isError:e.status===\"error\",isIdle:e.status===\"idle\",mutate:this.mutate,reset:this.reset})},IZ=function(e){ti.batch(()=>{if(Ce(this,uv)&&this.hasListeners()){let n=Ce(this,lx).variables,r=Ce(this,lx).context;e?.type===\"success\"?(Ce(this,uv).onSuccess?.(e.data,n,r),Ce(this,uv).onSettled?.(e.data,null,n,r)):e?.type===\"error\"&&(Ce(this,uv).onError?.(e.error,n,r),Ce(this,uv).onSettled?.(void 0,e.error,n,r))}this.listeners.forEach(n=>{n(Ce(this,lx))})})},zhe);p();var Q4=he(et(),1),Hhe=he(De(),1),PZ=Q4.createContext(void 0),fv=t=>{let e=Q4.useContext(PZ);if(t)return t;if(!e)throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");return e},MZ=({client:t,children:e})=>(Q4.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),(0,Hhe.jsx)(PZ.Provider,{value:t,children:e}));p();var SB=he(et(),1),qhe=SB.createContext(!1),Whe=()=>SB.useContext(qhe),ZCt=qhe.Provider;p();var s9=he(et(),1),dze=he(De(),1);function fze(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var hze=s9.createContext(fze()),Vhe=()=>s9.useContext(hze);p();var $he=he(et(),1);var Khe=(t,e)=>{(t.suspense||t.throwOnError||t.experimental_prefetchInRender)&&(e.isReset()||(t.retryOnMount=!1))},Ghe=t=>{$he.useEffect(()=>{t.clearReset()},[t])},Zhe=({result:t,errorResetBoundary:e,throwOnError:n,query:r,suspense:o})=>t.isError&&!e.isReset()&&!t.isFetching&&r&&(o&&t.data===void 0||XR(n,[t.error,r]));p();var Yhe=t=>{if(t.suspense){let e=r=>r===\"static\"?r:Math.max(r??1e3,1e3),n=t.staleTime;t.staleTime=typeof n==\"function\"?(...r)=>e(n(...r)):e(n),typeof t.gcTime==\"number\"&&(t.gcTime=Math.max(t.gcTime,1e3))}},Qhe=(t,e)=>t.isLoading&&t.isFetching&&!e,Jhe=(t,e)=>t?.suspense&&e.isPending,NZ=(t,e,n)=>e.fetchOptimistic(t).catch(()=>{n.clearReset()});p();p();var ux=he(et(),1);function Xhe(t,e,n){if(typeof t!=\"object\"||Array.isArray(t))throw new Error(\\'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object\\');let r=Whe(),o=Vhe(),i=fv(n),a=i.defaultQueryOptions(t);i.getDefaultOptions().queries?._experimental_beforeQuery?.(a),a.queryFn||console.error(`[${a.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`),a._optimisticResults=r?\"isRestoring\":\"optimistic\",Yhe(a),Khe(a,o),Ghe(o);let c=!i.getQueryCache().get(a.queryHash),[u]=ux.useState(()=>new e(i,a)),d=u.getOptimisticResult(a),h=!r&&t.subscribed!==!1;if(ux.useSyncExternalStore(ux.useCallback(m=>{let g=h?u.subscribe(ti.batchCalls(m)):zs;return u.updateResult(),g},[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),ux.useEffect(()=>{u.setOptions(a)},[a,u]),Jhe(a,d))throw NZ(a,u,o);if(Zhe({result:d,errorResetBoundary:o,throwOnError:a.throwOnError,query:i.getQueryCache().get(a.queryHash),suspense:a.suspense}))throw d.error;return i.getDefaultOptions().queries?._experimental_afterQuery?.(a,d),a.experimental_prefetchInRender&&!yf&&Qhe(d,r)&&(c?NZ(a,u,o):i.getQueryCache().get(a.queryHash)?.promise)?.catch(zs).finally(()=>{u.updateResult()}),a.notifyOnChangeProps?d:u.trackResult(d)}function pd(t,e){return Xhe(t,TZ,e)}p();var hv=he(et(),1);function wf(t,e){let n=fv(e),[r]=hv.useState(()=>new OZ(n,t));hv.useEffect(()=>{r.setOptions(t)},[r,t]);let o=hv.useSyncExternalStore(hv.useCallback(a=>r.subscribe(ti.batchCalls(a)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),i=hv.useCallback((a,c)=>{r.mutate(a,c).catch(zs)},[r]);if(o.error&&XR(r.options.throwOnError,[o.error]))throw o.error;return{...o,mutate:i,mutateAsync:o.mutate}}var _1=he(et(),1);p();p();var B9=he(et(),1);p();p();p();A6();VB();v9();BY();qy();aQ();sF();aF();uQ();fQ();uC();p();function Qp(t,e,n){let r=t[e.name];if(typeof r==\"function\")return r;let o=t[n];return typeof o==\"function\"?o:i=>e(t,i)}p();p();p();p();p();var RC=\"2.17.3\";var wye=()=>`@wagmi/core@${RC}`;var xye=function(t,e,n,r){if(n===\"a\"&&!r)throw new TypeError(\"Private accessor was defined without a getter\");if(typeof e==\"function\"?t!==e||!r:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return n===\"m\"?r:n===\"a\"?r.call(t):r?r.value:e.get(t)},uF,Eye,yd=class t extends Error{get docsBaseUrl(){return\"https://wagmi.sh/core\"}get version(){return wye()}constructor(e,n={}){super(),uF.add(this),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docsPath\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"metaMessages\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"shortMessage\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"WagmiCoreError\"});let r=n.cause instanceof t?n.cause.details:n.cause?.message?n.cause.message:n.details,o=n.cause instanceof t&&n.cause.docsPath||n.docsPath;this.message=[e||\"An error occurred.\",\"\",...n.metaMessages?[...n.metaMessages,\"\"]:[],...o?[`Docs: ${this.docsBaseUrl}${o}.html${n.docsSlug?`#${n.docsSlug}`:\"\"}`]:[],...r?[`Details: ${r}`]:[],`Version: ${this.version}`].join(`\\n`),n.cause&&(this.cause=n.cause),this.details=r,this.docsPath=o,this.metaMessages=n.metaMessages,this.shortMessage=e}walk(e){return xye(this,uF,\"m\",Eye).call(this,this,e)}};uF=new WeakSet,Eye=function t(e,n){return n?.(e)?e:e.cause?xye(this,uF,\"m\",t).call(this,e.cause,n):e};var Lc=class extends yd{constructor(){super(\"Chain not configured.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ChainNotConfiguredError\"})}},IC=class extends yd{constructor(){super(\"Connector already connected.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ConnectorAlreadyConnectedError\"})}},Sv=class extends yd{constructor(){super(\"Connector not connected.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ConnectorNotConnectedError\"})}};var OC=class extends yd{constructor({address:e,connector:n}){super(`Account \"${e}\" not found for connector \"${n.name}\".`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ConnectorAccountNotFoundError\"})}},PC=class extends yd{constructor({connectionChainId:e,connectorChainId:n}){super(`The current chain of the connector (id: ${n}) does not match the connection\\'s chain (id: ${e}).`,{metaMessages:[`Current Chain ID:  ${n}`,`Expected Chain ID: ${e}`]}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ConnectorChainMismatchError\"})}},MC=class extends yd{constructor({connector:e}){super(`Connector \"${e.name}\" unavailable while reconnecting.`,{details:[\"During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uid`.\",\"All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.\",\"This error commonly occurs for connectors that asynchronously inject after reconnection has already started.\"].join(\" \")}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ConnectorUnavailableReconnectingError\"})}};async function Sye(t,e){let n;if(typeof e.connector==\"function\"?n=t._internal.connectors.setup(e.connector):n=e.connector,n.uid===t.state.current)throw new IC;try{t.setState(c=>({...c,status:\"connecting\"})),n.emitter.emit(\"message\",{type:\"connecting\"});let{connector:r,...o}=e,i=await n.connect(o),a=i.accounts;return n.emitter.off(\"connect\",t._internal.events.connect),n.emitter.on(\"change\",t._internal.events.change),n.emitter.on(\"disconnect\",t._internal.events.disconnect),await t.storage?.setItem(\"recentConnectorId\",n.id),t.setState(c=>({...c,connections:new Map(c.connections).set(n.uid,{accounts:a,chainId:i.chainId,connector:n}),current:n.uid,status:\"connected\"})),{accounts:a,chainId:i.chainId}}catch(r){throw t.setState(o=>({...o,status:o.current?\"connected\":\"disconnected\"})),r}}p();bo();C9();async function Jp(t,e={}){let n;if(e.connector){let{connector:d}=e;if(t.state.status===\"reconnecting\"&&!d.getAccounts&&!d.getChainId)throw new MC({connector:d});let[h,m]=await Promise.all([d.getAccounts().catch(g=>{if(e.account===null)return[];throw g}),d.getChainId()]);n={accounts:h,chainId:m,connector:d}}else n=t.state.connections.get(t.state.current);if(!n)throw new Sv;let r=e.chainId??n.chainId,o=await n.connector.getChainId();if(o!==n.chainId)throw new PC({connectionChainId:n.chainId,connectorChainId:o});let i=n.connector;if(i.getClient)return i.getClient({chainId:r});let a=Wn(e.account??n.accounts[0]);if(a&&(a.address=Fr(a.address)),e.account&&!n.accounts.some(d=>d.toLowerCase()===a.address.toLowerCase()))throw new OC({address:a.address,connector:i});let c=t.chains.find(d=>d.id===r),u=await n.connector.getProvider({chainId:r});return M6({account:a,chain:c,name:\"Connector Client\",transport:d=>P9(u)({...d,retryCount:0})})}p();async function Lye(t,e={}){let n;if(e.connector)n=e.connector;else{let{connections:o,current:i}=t.state;n=o.get(i)?.connector}let r=t.state.connections;n&&(await n.disconnect(),n.emitter.off(\"change\",t._internal.events.change),n.emitter.off(\"disconnect\",t._internal.events.disconnect),n.emitter.on(\"connect\",t._internal.events.connect),r.delete(n.uid)),t.setState(o=>{if(r.size===0)return{...o,connections:new Map,current:null,status:\"disconnected\"};let i=r.values().next().value;return{...o,connections:new Map(r),current:i.connector.uid}});{let o=t.state.current;if(!o)return;let i=t.state.connections.get(o)?.connector;if(!i)return;await t.storage?.setItem(\"recentConnectorId\",i.id)}}p();bo();function vQ(t){return typeof t==\"number\"?t:t===\"wei\"?0:Math.abs(IG[t])}p();function N9(t){let e=t.state.current,n=t.state.connections.get(e),r=n?.accounts,o=r?.[0],i=t.chains.find(c=>c.id===n?.chainId),a=t.state.status;switch(a){case\"connected\":return{address:o,addresses:r,chain:i,chainId:n?.chainId,connector:n?.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:a};case\"reconnecting\":return{address:o,addresses:r,chain:i,chainId:n?.chainId,connector:n?.connector,isConnected:!!o,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:a};case\"connecting\":return{address:o,addresses:r,chain:i,chainId:n?.chainId,connector:n?.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:a};case\"disconnected\":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:a}}}p();bo();p();bo();p();async function Bye(t,e){let{allowFailure:n=!0,chainId:r,contracts:o,...i}=e,a=t.getClient({chainId:r});return Qp(a,x9,\"multicall\")({allowFailure:n,contracts:o,...i})}p();function gF(t,e){let{chainId:n,...r}=e,o=t.getClient({chainId:n});return Qp(o,ja,\"readContract\")(r)}async function Dye(t,e){let{allowFailure:n=!0,blockNumber:r,blockTag:o,...i}=e,a=e.contracts;try{let c={};for(let[m,g]of a.entries()){let b=g.chainId??t.state.chainId;c[b]||(c[b]=[]),c[b]?.push({contract:g,index:m})}let u=()=>Object.entries(c).map(([m,g])=>Bye(t,{...i,allowFailure:n,blockNumber:r,blockTag:o,chainId:Number.parseInt(m),contracts:g.map(({contract:b})=>b)})),d=(await Promise.all(u())).flat(),h=Object.values(c).flatMap(m=>m.map(({index:g})=>g));return d.reduce((m,g,b)=>(m&&(m[h[b]]=g),m),[])}catch(c){if(c instanceof L5)throw c;let u=()=>a.map(d=>gF(t,{...d,blockNumber:r,blockTag:o}));return n?(await Promise.allSettled(u())).map(d=>d.status===\"fulfilled\"?{result:d.value,status:\"success\"}:{error:d.reason,result:void 0,status:\"failure\"}):await Promise.all(u())}}async function Uye(t,e){let{address:n,blockNumber:r,blockTag:o,chainId:i,token:a,unit:c=\"ether\"}=e;if(a)try{return await Fye(t,{balanceAddress:n,chainId:i,symbolType:\"string\",tokenAddress:a})}catch(g){if(g.name===\"ContractFunctionExecutionError\"){let b=await Fye(t,{balanceAddress:n,chainId:i,symbolType:\"bytes32\",tokenAddress:a}),E=g5(Fs(b.symbol,{dir:\"right\"}));return{...b,symbol:E}}throw g}let u=t.getClient({chainId:i}),h=await Qp(u,k6,\"getBalance\")(r?{address:n,blockNumber:r}:{address:n,blockTag:o}),m=t.chains.find(g=>g.id===i)??u.chain;return{decimals:m.nativeCurrency.decimals,formatted:vs(h,vQ(c)),symbol:m.nativeCurrency.symbol,value:h}}async function Fye(t,e){let{balanceAddress:n,chainId:r,symbolType:o,tokenAddress:i,unit:a}=e,c={abi:[{type:\"function\",name:\"balanceOf\",stateMutability:\"view\",inputs:[{type:\"address\"}],outputs:[{type:\"uint256\"}]},{type:\"function\",name:\"decimals\",stateMutability:\"view\",inputs:[],outputs:[{type:\"uint8\"}]},{type:\"function\",name:\"symbol\",stateMutability:\"view\",inputs:[],outputs:[{type:o}]}],address:i},[u,d,h]=await Dye(t,{allowFailure:!1,contracts:[{...c,functionName:\"balanceOf\",args:[n],chainId:r},{...c,functionName:\"decimals\",chainId:r},{...c,functionName:\"symbol\",chainId:r}]}),m=vs(u??\"0\",vQ(a??d));return{decimals:d,formatted:m,symbol:h,value:u}}p();async function jye(t,e){let{connector:n,id:r}=e,o=await Jp(t,{connector:n});return P6(o,{id:r})}p();async function zye(t,e={}){let{account:n,chainId:r,connector:o}=e,i=await Jp(t,{account:n,connector:o});return T9(i,{account:n,chainId:r})}p();function yF(t){return t.state.chainId}p();p();function fu(t,e){if(t===e)return!0;if(t&&e&&typeof t==\"object\"&&typeof e==\"object\"){if(t.constructor!==e.constructor)return!1;let n,r;if(Array.isArray(t)&&Array.isArray(e)){if(n=t.length,n!==e.length)return!1;for(r=n;r--!==0;)if(!fu(t[r],e[r]))return!1;return!0}if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();let o=Object.keys(t);if(n=o.length,n!==Object.keys(e).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(e,o[r]))return!1;for(r=n;r--!==0;){let i=o[r];if(i&&!fu(t[i],e[i]))return!1}return!0}return t!==t&&e!==e}var wQ=[];function bF(t){let e=t.chains;return fu(wQ,e)?wQ:(wQ=e,e)}p();var vF=[];function LC(t){let e=[...t.state.connections.values()];return t.state.status===\"reconnecting\"||fu(vF,e)?vF:(vF=e,e)}p();var xQ=[];function wF(t){let e=t.connectors;return fu(xQ,e)?xQ:(xQ=e,e)}p();bo();async function Hye(t,e={}){return(await Jp(t,e)).extend(bQ)}p();var EQ=!1;async function qye(t,e={}){if(EQ)return[];EQ=!0,t.setState(d=>({...d,status:d.current?\"reconnecting\":\"connecting\"}));let n=[];if(e.connectors?.length)for(let d of e.connectors){let h;typeof d==\"function\"?h=t._internal.connectors.setup(d):h=d,n.push(h)}else n.push(...t.connectors);let r;try{r=await t.storage?.getItem(\"recentConnectorId\")}catch{}let o={};for(let[,d]of t.state.connections)o[d.connector.id]=1;r&&(o[r]=0);let i=Object.keys(o).length>0?[...n].sort((d,h)=>(o[d.id]??10)-(o[h.id]??10)):n,a=!1,c=[],u=[];for(let d of i){let h=await d.getProvider().catch(()=>{});if(!h||u.some(b=>b===h)||!await d.isAuthorized())continue;let g=await d.connect({isReconnecting:!0}).catch(()=>null);g&&(d.emitter.off(\"connect\",t._internal.events.connect),d.emitter.on(\"change\",t._internal.events.change),d.emitter.on(\"disconnect\",t._internal.events.disconnect),t.setState(b=>{let E=new Map(a?b.connections:new Map).set(d.uid,{accounts:g.accounts,chainId:g.chainId,connector:d});return{...b,current:a?b.current:d.uid,connections:E}}),c.push({accounts:g.accounts,chainId:g.chainId,connector:d}),u.push(h),a=!0)}return(t.state.status===\"reconnecting\"||t.state.status===\"connecting\")&&(a?t.setState(d=>({...d,status:\"connected\"})):t.setState(d=>({...d,connections:new Map,current:null,status:\"disconnected\"}))),EQ=!1,c}p();async function Wye(t,e){let{account:n,chainId:r,connector:o,calls:i,...a}=e,c=await Jp(t,{account:n,chainId:r,connector:o});return R9(c,{...a,...typeof n<\"u\"?{account:n}:{},calls:i,chain:r?{id:r}:void 0})}p();async function Vye(t,e){let{account:n,chainId:r,connector:o,...i}=e,a;return typeof n==\"object\"&&n?.type===\"local\"?a=t.getClient({chainId:r}):a=await Jp(t,{account:n??void 0,chainId:r,connector:o}),await Qp(a,Q0,\"sendTransaction\")({...i,...n?{account:n}:{},chain:r?{id:r}:null,gas:i.gas??void 0})}p();async function $ye(t,e){let{connector:n,id:r}=e,o=await Jp(t,{connector:n});return I9(o,{id:r})}p();p();var Sh=class extends yd{constructor(){super(\"Provider not found.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ProviderNotFoundError\"})}},BC=class extends yd{constructor({connector:e}){super(`\"${e.name}\" does not support programmatic chain switching.`),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"SwitchChainNotSupportedError\"})}};async function Kye(t,e){let{addEthereumChainParameter:n,chainId:r}=e,o=t.state.connections.get(e.connector?.uid??t.state.current);if(o){let a=o.connector;if(!a.switchChain)throw new BC({connector:a});return await a.switchChain({addEthereumChainParameter:n,chainId:r})}let i=t.chains.find(a=>a.id===r);if(!i)throw new Lc;return t.setState(a=>({...a,chainId:r})),i}p();function SQ(t,e){let{onChange:n}=e;return t.subscribe(()=>N9(t),n,{equalityFn(r,o){let{connector:i,...a}=r,{connector:c,...u}=o;return fu(a,u)&&i?.id===c?.id&&i?.uid===c?.uid}})}p();function kQ(t,e){let{onChange:n}=e;return t.subscribe(r=>r.chainId,n)}p();function _Q(t,e){let{onChange:n}=e;return t.subscribe(()=>LC(t),n,{equalityFn:fu})}p();function CQ(t,e){let{onChange:n}=e;return t._internal.connectors.subscribe((r,o)=>{n(Object.values(r),o)})}p();bo();async function Xp(t,e){let{chainId:n,timeout:r=0,...o}=e,i=t.getClient({chainId:n}),c=await Qp(i,O9,\"waitForTransactionReceipt\")({...o,timeout:r});if(c.status===\"reverted\"){let d=await Qp(i,Ev,\"getTransaction\")({hash:c.transactionHash}),m=await Qp(i,xh,\"call\")({...d,data:d.input,gasPrice:d.type!==\"eip1559\"?d.gasPrice:void 0,maxFeePerGas:d.type===\"eip1559\"?d.maxFeePerGas:void 0,maxPriorityFeePerGas:d.type===\"eip1559\"?d.maxPriorityFeePerGas:void 0}),g=m?.data?g5(`0x${m.data.substring(138)}`):\"unknown reason\";throw new Error(g)}return{...c,chainId:i.chain.id}}p();bo();em.type=\"injected\";function em(t={}){let{shimDisconnect:e=!0,unstable_shimAsyncInject:n}=t;function r(){let u=t.target;if(typeof u==\"function\"){let d=u();if(d)return d}return typeof u==\"object\"?u:typeof u==\"string\"?{...YHe[u]??{id:u,name:`${u[0].toUpperCase()}${u.slice(1)}`,provider:`is${u[0].toUpperCase()}${u.slice(1)}`}}:{id:\"injected\",name:\"Injected\",provider(d){return d?.ethereum}}}let o,i,a,c;return u=>({get icon(){return r().icon},get id(){return r().id},get name(){return r().name},get supportsSimulation(){return!0},type:em.type,async setup(){let d=await this.getProvider();d?.on&&t.target&&(a||(a=this.onConnect.bind(this),d.on(\"connect\",a)),o||(o=this.onAccountsChanged.bind(this),d.on(\"accountsChanged\",o)))},async connect({chainId:d,isReconnecting:h}={}){let m=await this.getProvider();if(!m)throw new Sh;let g=[];if(h)g=await this.getAccounts().catch(()=>[]);else if(e)try{g=(await m.request({method:\"wallet_requestPermissions\",params:[{eth_accounts:{}}]}))[0]?.caveats?.[0]?.value?.map(E=>Fr(E)),g.length>0&&(g=await this.getAccounts())}catch(b){let E=b;if(E.code===oo.code)throw new oo(E);if(E.code===mf.code)throw E}try{!g?.length&&!h&&(g=(await m.request({method:\"eth_requestAccounts\"})).map(C=>Fr(C))),a&&(m.removeListener(\"connect\",a),a=void 0),o||(o=this.onAccountsChanged.bind(this),m.on(\"accountsChanged\",o)),i||(i=this.onChainChanged.bind(this),m.on(\"chainChanged\",i)),c||(c=this.onDisconnect.bind(this),m.on(\"disconnect\",c));let b=await this.getChainId();return d&&b!==d&&(b=(await this.switchChain({chainId:d}).catch(C=>{if(C.code===oo.code)throw C;return{id:b}}))?.id??b),e&&await u.storage?.removeItem(`${this.id}.disconnected`),t.target||await u.storage?.setItem(\"injected.connected\",!0),{accounts:g,chainId:b}}catch(b){let E=b;throw E.code===oo.code?new oo(E):E.code===mf.code?new mf(E):E}},async disconnect(){let d=await this.getProvider();if(!d)throw new Sh;i&&(d.removeListener(\"chainChanged\",i),i=void 0),c&&(d.removeListener(\"disconnect\",c),c=void 0),a||(a=this.onConnect.bind(this),d.on(\"connect\",a));try{await I6(()=>d.request({method:\"wallet_revokePermissions\",params:[{eth_accounts:{}}]}),{timeout:100})}catch{}e&&await u.storage?.setItem(`${this.id}.disconnected`,!0),t.target||await u.storage?.removeItem(\"injected.connected\")},async getAccounts(){let d=await this.getProvider();if(!d)throw new Sh;return(await d.request({method:\"eth_accounts\"})).map(m=>Fr(m))},async getChainId(){let d=await this.getProvider();if(!d)throw new Sh;let h=await d.request({method:\"eth_chainId\"});return Number(h)},async getProvider(){if(typeof window>\"u\")return;let d,h=r();return typeof h.provider==\"function\"?d=h.provider(window):typeof h.provider==\"string\"?d=xF(window,h.provider):d=h.provider,d&&!d.removeListener&&(\"off\"in d&&typeof d.off==\"function\"?d.removeListener=d.off:d.removeListener=()=>{}),d},async isAuthorized(){try{if(e&&await u.storage?.getItem(`${this.id}.disconnected`)||!t.target&&!await u.storage?.getItem(\"injected.connected\"))return!1;if(!await this.getProvider()){if(n!==void 0&&n!==!1){let g=async()=>(typeof window<\"u\"&&window.removeEventListener(\"ethereum#initialized\",g),!!await this.getProvider()),b=typeof n==\"number\"?n:1e3;if(await Promise.race([...typeof window<\"u\"?[new Promise(C=>window.addEventListener(\"ethereum#initialized\",()=>C(g()),{once:!0}))]:[],new Promise(C=>setTimeout(()=>C(g()),b))]))return!0}throw new Sh}return!!(await eg(()=>this.getAccounts())).length}catch{return!1}},async switchChain({addEthereumChainParameter:d,chainId:h}){let m=await this.getProvider();if(!m)throw new Sh;let g=u.chains.find(E=>E.id===h);if(!g)throw new ha(new Lc);let b=new Promise(E=>{let C=T=>{\"chainId\"in T&&T.chainId===h&&(u.emitter.off(\"change\",C),E())};u.emitter.on(\"change\",C)});try{return await Promise.all([m.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(h)}]}).then(async()=>{await this.getChainId()===h&&u.emitter.emit(\"change\",{chainId:h})}),b]),g}catch(E){let C=E;if(C.code===4902||C?.data?.originalError?.code===4902)try{let{default:T,...R}=g.blockExplorers??{},L;d?.blockExplorerUrls?L=d.blockExplorerUrls:T&&(L=[T.url,...Object.values(R).map(W=>W.url)]);let D;d?.rpcUrls?.length?D=d.rpcUrls:D=[g.rpcUrls.default?.http[0]??\"\"];let G={blockExplorerUrls:L,chainId:Ye(h),chainName:d?.chainName??g.name,iconUrls:d?.iconUrls,nativeCurrency:d?.nativeCurrency??g.nativeCurrency,rpcUrls:D};return await Promise.all([m.request({method:\"wallet_addEthereumChain\",params:[G]}).then(async()=>{if(await this.getChainId()===h)u.emitter.emit(\"change\",{chainId:h});else throw new oo(new Error(\"User rejected switch after adding network.\"))}),b]),g}catch(T){throw new oo(T)}throw C.code===oo.code?new oo(C):new ha(C)}},async onAccountsChanged(d){if(d.length===0)this.onDisconnect();else if(u.emitter.listenerCount(\"connect\")){let h=(await this.getChainId()).toString();this.onConnect({chainId:h}),e&&await u.storage?.removeItem(`${this.id}.disconnected`)}else u.emitter.emit(\"change\",{accounts:d.map(h=>Fr(h))})},onChainChanged(d){let h=Number(d);u.emitter.emit(\"change\",{chainId:h})},async onConnect(d){let h=await this.getAccounts();if(h.length===0)return;let m=Number(d.chainId);u.emitter.emit(\"connect\",{accounts:h,chainId:m});let g=await this.getProvider();g&&(a&&(g.removeListener(\"connect\",a),a=void 0),o||(o=this.onAccountsChanged.bind(this),g.on(\"accountsChanged\",o)),i||(i=this.onChainChanged.bind(this),g.on(\"chainChanged\",i)),c||(c=this.onDisconnect.bind(this),g.on(\"disconnect\",c)))},async onDisconnect(d){let h=await this.getProvider();d&&d.code===1013&&h&&(await this.getAccounts()).length||(u.emitter.emit(\"disconnect\"),h&&(i&&(h.removeListener(\"chainChanged\",i),i=void 0),c&&(h.removeListener(\"disconnect\",c),c=void 0),a||(a=this.onConnect.bind(this),h.on(\"connect\",a))))}})}var YHe={coinbaseWallet:{id:\"coinbaseWallet\",name:\"Coinbase Wallet\",provider(t){return t?.coinbaseWalletExtension?t.coinbaseWalletExtension:xF(t,\"isCoinbaseWallet\")}},metaMask:{id:\"metaMask\",name:\"MetaMask\",provider(t){return xF(t,e=>{if(!e.isMetaMask||e.isBraveWallet&&!e._events&&!e._state)return!1;let n=[\"isApexWallet\",\"isAvalanche\",\"isBitKeep\",\"isBlockWallet\",\"isKuCoinWallet\",\"isMathWallet\",\"isOkxWallet\",\"isOKExWallet\",\"isOneInchIOSWallet\",\"isOneInchAndroidWallet\",\"isOpera\",\"isPhantom\",\"isPortal\",\"isRabby\",\"isTokenPocket\",\"isTokenary\",\"isUniswapWallet\",\"isZerion\"];for(let r of n)if(e[r])return!1;return!0})}},phantom:{id:\"phantom\",name:\"Phantom\",provider(t){return t?.phantom?.ethereum?t.phantom?.ethereum:xF(t,\"isPhantom\")}}};function xF(t,e){function n(o){return typeof e==\"function\"?e(o):typeof e==\"string\"?o[e]:!0}let r=t.ethereum;if(r?.providers)return r.providers.find(o=>n(o));if(r&&n(r))return r}p();p();p();p();function Gye(t){if(typeof window>\"u\")return;let e=n=>t(n.detail);return window.addEventListener(\"eip6963:announceProvider\",e),window.dispatchEvent(new CustomEvent(\"eip6963:requestProvider\")),()=>window.removeEventListener(\"eip6963:announceProvider\",e)}function AQ(){let t=new Set,e=[],n=()=>Gye(o=>{e.some(({info:i})=>i.uuid===o.info.uuid)||(e=[...e,o],t.forEach(i=>i(e,{added:[o]})))}),r=n();return{_listeners(){return t},clear(){t.forEach(o=>o([],{removed:[...e]})),e=[]},destroy(){this.clear(),t.clear(),r?.()},findProvider({rdns:o}){return e.find(i=>i.info.rdns===o)},getProviders(){return e},reset(){this.clear(),r?.(),r=n()},subscribe(o,{emitImmediately:i}={}){return t.add(o),i&&o(e,{added:e}),()=>t.delete(o)}}}bo();p();var QHe=t=>(e,n,r)=>{let o=r.subscribe;return r.subscribe=(a,c,u)=>{let d=a;if(c){let h=u?.equalityFn||Object.is,m=a(r.getState());d=g=>{let b=a(g);if(!h(m,b)){let E=m;c(m=b,E)}},u?.fireImmediately&&c(m,m)}return o(d)},t(e,n,r)},Zye=QHe;function JHe(t,e){let n;try{n=t()}catch{return}return{getItem:o=>{var i;let a=u=>u===null?null:JSON.parse(u,e?.reviver),c=(i=n.getItem(o))!=null?i:null;return c instanceof Promise?c.then(a):a(c)},setItem:(o,i)=>n.setItem(o,JSON.stringify(i,e?.replacer)),removeItem:o=>n.removeItem(o)}}var TQ=t=>e=>{try{let n=t(e);return n instanceof Promise?n:{then(r){return TQ(r)(n)},catch(r){return this}}}catch(n){return{then(r){return this},catch(r){return TQ(r)(n)}}}},XHe=(t,e)=>(n,r,o)=>{let i={storage:JHe(()=>localStorage),partialize:C=>C,version:0,merge:(C,T)=>({...T,...C}),...e},a=!1,c=new Set,u=new Set,d=i.storage;if(!d)return t((...C)=>{console.warn(`[zustand persist middleware] Unable to update item \\'${i.name}\\', the given storage is currently unavailable.`),n(...C)},r,o);let h=()=>{let C=i.partialize({...r()});return d.setItem(i.name,{state:C,version:i.version})},m=o.setState;o.setState=(C,T)=>{m(C,T),h()};let g=t((...C)=>{n(...C),h()},r,o);o.getInitialState=()=>g;let b,E=()=>{var C,T;if(!d)return;a=!1,c.forEach(L=>{var D;return L((D=r())!=null?D:g)});let R=((T=i.onRehydrateStorage)==null?void 0:T.call(i,(C=r())!=null?C:g))||void 0;return TQ(d.getItem.bind(d))(i.name).then(L=>{if(L)if(typeof L.version==\"number\"&&L.version!==i.version){if(i.migrate)return[!0,i.migrate(L.state,L.version)];console.error(\"State loaded from storage couldn\\'t be migrated since no migrate function was provided\")}else return[!1,L.state];return[!1,void 0]}).then(L=>{var D;let[G,W]=L;if(b=i.merge(W,(D=r())!=null?D:g),n(b,!0),G)return h()}).then(()=>{R?.(b,void 0),b=r(),a=!0,u.forEach(L=>L(b))}).catch(L=>{R?.(void 0,L)})};return o.persist={setOptions:C=>{i={...i,...C},C.storage&&(d=C.storage)},clearStorage:()=>{d?.removeItem(i.name)},getOptions:()=>i,rehydrate:()=>E(),hasHydrated:()=>a,onHydrate:C=>(c.add(C),()=>{c.delete(C)}),onFinishHydration:C=>(u.add(C),()=>{u.delete(C)})},i.skipHydration||E(),b||g},Yye=XHe;p();var Qye=t=>{let e,n=new Set,r=(d,h)=>{let m=typeof d==\"function\"?d(e):d;if(!Object.is(m,e)){let g=e;e=h??(typeof m!=\"object\"||m===null)?m:Object.assign({},e,m),n.forEach(b=>b(e,g))}},o=()=>e,c={setState:r,getState:o,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d))},u=e=t(r,o,c);return c},EF=t=>t?Qye(t):Qye;p();DC();var OQ=class{constructor(e){Object.defineProperty(this,\"uid\",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,\"_emitter\",{enumerable:!0,configurable:!0,writable:!0,value:new kv.default})}on(e,n){this._emitter.on(e,n)}once(e,n){this._emitter.once(e,n)}off(e,n){this._emitter.off(e,n)}emit(e,...n){let r=n[0];this._emitter.emit(e,{uid:this.uid,...r})}listenerCount(e){return this._emitter.listenerCount(e)}};function e1e(t){return new OQ(t)}p();p();function PQ(t,e){return JSON.parse(t,(n,r)=>{let o=r;return o?.__type===\"bigint\"&&(o=BigInt(o.value)),o?.__type===\"Map\"&&(o=new Map(o.value)),e?.(n,o)??o})}p();function t1e(t,e){return t.slice(0,e).join(\".\")||\".\"}function n1e(t,e){let{length:n}=t;for(let r=0;r<n;++r)if(t[r]===e)return r+1;return 0}function nqe(t,e){let n=typeof t==\"function\",r=typeof e==\"function\",o=[],i=[];return function(c,u){if(typeof u==\"object\")if(o.length){let d=n1e(o,this);d===0?o[o.length]=this:(o.splice(d),i.splice(d)),i[i.length]=c;let h=n1e(o,u);if(h!==0)return r?e.call(this,c,u,t1e(i,h)):`[ref=${t1e(i,h)}]`}else o[0]=u,i[0]=c;return n?t.call(this,c,u):u}}function MQ(t,e,n,r){return JSON.stringify(t,nqe((o,i)=>{let a=i;return typeof a==\"bigint\"&&(a={__type:\"bigint\",value:i.toString()}),a instanceof Map&&(a={__type:\"Map\",value:Array.from(i.entries())}),e?.(o,a)??a},r),n??void 0)}function FC(t){let{deserialize:e=PQ,key:n=\"wagmi\",serialize:r=MQ,storage:o=kF}=t;function i(a){return a instanceof Promise?a.then(c=>c).catch(()=>null):a}return{...o,key:n,async getItem(a,c){let u=o.getItem(`${n}.${a}`),d=await i(u);return d?e(d)??null:c??null},async setItem(a,c){let u=`${n}.${a}`;c===null?await i(o.removeItem(u)):await i(o.setItem(u,r(c)))},async removeItem(a){await i(o.removeItem(`${n}.${a}`))}}}var kF={getItem:()=>null,setItem:()=>{},removeItem:()=>{}};function r1e(){let t=typeof window<\"u\"&&window.localStorage?window.localStorage:kF;return{getItem(e){return t.getItem(e)},removeItem(e){t.removeItem(e)},setItem(e,n){try{t.setItem(e,n)}catch{}}}}p();var _F=256,CF;function o1e(t=11){if(!CF||_F+t>256*2){CF=\"\",_F=0;for(let e=0;e<256;e++)CF+=(256+Math.random()*256|0).toString(16).substring(1)}return CF.substring(_F,_F+++t)}function AF(t){let{multiInjectedProviderDiscovery:e=!0,storage:n=FC({storage:r1e()}),syncConnectedChain:r=!0,ssr:o=!1,...i}=t,a=typeof window<\"u\"&&e?AQ():void 0,c=EF(()=>i.chains),u=EF(()=>{let W=[],J=new Set;for(let ne of i.connectors??[]){let ie=d(ne);if(W.push(ie),!o&&ie.rdns){let Z=typeof ie.rdns==\"string\"?[ie.rdns]:ie.rdns;for(let ae of Z)J.add(ae)}}if(!o&&a){let ne=a.getProviders();for(let ie of ne)J.has(ie.info.rdns)||W.push(d(h(ie)))}return W});function d(W){let J=e1e(o1e()),ne={...W({emitter:J,chains:c.getState(),storage:n,transports:i.transports}),emitter:J,uid:J.uid};return J.on(\"connect\",D),ne.setup?.(),ne}function h(W){let{info:J}=W,ne=W.provider;return em({target:{...J,id:J.rdns,provider:ne}})}let m=new Map;function g(W={}){let J=W.chainId??T.getState().chainId,ne=c.getState().find(Z=>Z.id===J);if(W.chainId&&!ne)throw new Lc;{let Z=m.get(T.getState().chainId);if(Z&&!ne)return Z;if(!ne)throw new Lc}{let Z=m.get(J);if(Z)return Z}let ie;if(i.client)ie=i.client({chain:ne});else{let Z=ne.id,ae=c.getState().map(F=>F.id),V={},$=Object.entries(i);for(let[F,_]of $)if(!(F===\"chains\"||F===\"client\"||F===\"connectors\"||F===\"transports\"))if(typeof _==\"object\")if(Z in _)V[F]=_[Z];else{if(ae.some(z=>z in _))continue;V[F]=_}else V[F]=_;ie=M6({...V,chain:ne,batch:V.batch??{multicall:!0},transport:F=>i.transports[Z]({...F,connectors:u})})}return m.set(J,ie),ie}function b(){return{chainId:c.getState()[0].id,connections:new Map,current:null,status:\"disconnected\"}}let E,C=\"0.0.0-canary-\";RC.startsWith(C)?E=Number.parseInt(RC.replace(C,\"\")):E=Number.parseInt(RC.split(\".\")[0]??\"0\");let T=EF(Zye(n?Yye(b,{migrate(W,J){if(J===E)return W;let ne=b(),ie=R(W,ne.chainId);return{...ne,chainId:ie}},name:\"store\",partialize(W){return{connections:{__type:\"Map\",value:Array.from(W.connections.entries()).map(([J,ne])=>{let{id:ie,name:Z,type:ae,uid:V}=ne.connector;return[J,{...ne,connector:{id:ie,name:Z,type:ae,uid:V}}]})},chainId:W.chainId,current:W.current}},merge(W,J){typeof W==\"object\"&&W&&\"status\"in W&&delete W.status;let ne=R(W,J.chainId);return{...J,...W,chainId:ne}},skipHydration:o,storage:n,version:E}):b));T.setState(b());function R(W,J){return W&&typeof W==\"object\"&&\"chainId\"in W&&typeof W.chainId==\"number\"&&c.getState().some(ne=>ne.id===W.chainId)?W.chainId:J}r&&T.subscribe(({connections:W,current:J})=>J?W.get(J)?.chainId:void 0,W=>{if(c.getState().some(ne=>ne.id===W))return T.setState(ne=>({...ne,chainId:W??ne.chainId}))}),a?.subscribe(W=>{let J=new Set,ne=new Set;for(let Z of u.getState())if(J.add(Z.id),Z.rdns){let ae=typeof Z.rdns==\"string\"?[Z.rdns]:Z.rdns;for(let V of ae)ne.add(V)}let ie=[];for(let Z of W){if(ne.has(Z.info.rdns))continue;let ae=d(h(Z));J.has(ae.id)||ie.push(ae)}n&&!T.persist.hasHydrated()||u.setState(Z=>[...Z,...ie],!0)});function L(W){T.setState(J=>{let ne=J.connections.get(W.uid);return ne?{...J,connections:new Map(J.connections).set(W.uid,{accounts:W.accounts??ne.accounts,chainId:W.chainId??ne.chainId,connector:ne.connector})}:J})}function D(W){T.getState().status===\"connecting\"||T.getState().status===\"reconnecting\"||T.setState(J=>{let ne=u.getState().find(ie=>ie.uid===W.uid);return ne?(ne.emitter.listenerCount(\"connect\")&&ne.emitter.off(\"connect\",L),ne.emitter.listenerCount(\"change\")||ne.emitter.on(\"change\",L),ne.emitter.listenerCount(\"disconnect\")||ne.emitter.on(\"disconnect\",G),{...J,connections:new Map(J.connections).set(W.uid,{accounts:W.accounts,chainId:W.chainId,connector:ne}),current:W.uid,status:\"connected\"}):J})}function G(W){T.setState(J=>{let ne=J.connections.get(W.uid);if(ne){let Z=ne.connector;Z.emitter.listenerCount(\"change\")&&ne.connector.emitter.off(\"change\",L),Z.emitter.listenerCount(\"disconnect\")&&ne.connector.emitter.off(\"disconnect\",G),Z.emitter.listenerCount(\"connect\")||ne.connector.emitter.on(\"connect\",D)}if(J.connections.delete(W.uid),J.connections.size===0)return{...J,connections:new Map,current:null,status:\"disconnected\"};let ie=J.connections.values().next().value;return{...J,connections:new Map(J.connections),current:ie.connector.uid}})}return{get chains(){return c.getState()},get connectors(){return u.getState()},storage:n,getClient:g,get state(){return T.getState()},setState(W){let J;typeof W==\"function\"?J=W(T.getState()):J=W;let ne=b();typeof J!=\"object\"&&(J=ne),Object.keys(ne).some(Z=>!(Z in J))&&(J=ne),T.setState(J,!0)},subscribe(W,J,ne){return T.subscribe(W,J,ne?{...ne,fireImmediately:ne.emitImmediately}:void 0)},_internal:{mipd:a,store:T,ssr:!!o,syncConnectedChain:r,transports:i.transports,chains:{setState(W){let J=typeof W==\"function\"?W(c.getState()):W;if(J.length!==0)return c.setState(J,!0)},subscribe(W){return c.subscribe(W)}},connectors:{providerDetailToConnector:h,setup:d,setState(W){return u.setState(typeof W==\"function\"?W(u.getState()):W,!0)},subscribe(W){return u.subscribe(W)}},events:{change:L,connect:D,disconnect:G}}}}p();function NQ(t,e){let{initialState:n,reconnectOnMount:r}=e;return n&&!t._internal.store.persist.hasHydrated()&&t.setState({...n,chainId:t.chains.some(o=>o.id===n.chainId)?n.chainId:t.chains[0].id,connections:r?n.connections:new Map,status:r?\"reconnecting\":\"disconnected\"}),{async onMount(){t._internal.ssr&&(await t._internal.store.persist.rehydrate(),t._internal.mipd&&t._internal.connectors.setState(o=>{let i=new Set;for(let u of o??[])if(u.rdns){let d=Array.isArray(u.rdns)?u.rdns:[u.rdns];for(let h of d)i.add(h)}let a=[],c=t._internal.mipd?.getProviders()??[];for(let u of c){if(i.has(u.info.rdns))continue;let d=t._internal.connectors.providerDetailToConnector(u),h=t._internal.connectors.setup(d);a.push(h)}return[...o,...a]})),r?qye(t):t.storage&&t.setState(o=>({...o,connections:new Map}))}}}bo();p();var TF={getItem(t){return typeof window>\"u\"?null:LQ(document.cookie,t)??null},setItem(t,e){typeof window>\"u\"||(document.cookie=`${t}=${e};path=/;samesite=Lax`)},removeItem(t){typeof window>\"u\"||(document.cookie=`${t}=;max-age=-1;path=/`)}};function LQ(t,e){let n=t.split(\"; \").find(r=>r.startsWith(`${e}=`));if(n)return n.substring(e.length+1)}p();function BQ(t){let{chain:e}=t,n=e.rpcUrls.default.http[0];if(!t.transports)return[n];let r=t.transports?.[e.id]?.({chain:e});return(r?.value?.transports||[r]).map(({value:i})=>i?.url||n)}var RF=he(et(),1);function i1e(t){let{children:e,config:n,initialState:r,reconnectOnMount:o=!0}=t,{onMount:i}=NQ(n,{initialState:r,reconnectOnMount:o});n._internal.ssr||i();let a=(0,RF.useRef)(!0);return(0,RF.useEffect)(()=>{if(a.current&&n._internal.ssr)return i(),()=>{a.current=!1}},[]),e}var D9=(0,B9.createContext)(void 0);function IF(t){let{children:e,config:n}=t,r={value:n};return(0,B9.createElement)(i1e,t,(0,B9.createElement)(D9.Provider,r,e))}p();p();p();var s1e=\"2.15.6\";var a1e=()=>`wagmi@${s1e}`;var OF=class extends yd{constructor(){super(...arguments),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"WagmiError\"})}get docsBaseUrl(){return\"https://wagmi.sh/react\"}get version(){return a1e()}};p();var N6=class extends OF{constructor(){super(\"`useConfig` must be used within `WagmiProvider`.\",{docsPath:\"/api/WagmiProvider\"}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"WagmiProviderNotFoundError\"})}};p();p();var c1e=he(et(),1);function Qn(t={}){let e=t.config??(0,c1e.useContext)(D9);if(!e)throw new N6;return e}p();p();p();function DQ(t,e){let{onChange:n}=e;return t._internal.chains.subscribe((r,o)=>{n(r,o)})}var PF=he(et(),1),y1e=he(g1e(),1),FQ=t=>typeof t==\"object\"&&!Array.isArray(t);function b1e(t,e,n=e,r=fu){let o=(0,PF.useRef)([]),i=(0,y1e.useSyncExternalStoreWithSelector)(t,e,n,a=>a,(a,c)=>{if(FQ(a)&&FQ(c)&&o.current.length){for(let u of o.current)if(!r(a[u],c[u]))return!1;return!0}return r(a,c)});return(0,PF.useMemo)(()=>{if(FQ(i)){let a={...i},c={};for(let[u,d]of Object.entries(a))c={...c,[u]:{configurable:!1,enumerable:!0,get:()=>(o.current.includes(u)||o.current.push(u),d)}};return Object.defineProperties(a,c),a}return i},[i])}function Jn(t={}){let e=Qn(t);return b1e(n=>SQ(e,{onChange:n}),()=>N9(e))}p();p();p();function UQ(t,e){return L4(t,e)}function jQ(t){return JSON.stringify(t,(e,n)=>sqe(n)?Object.keys(n).sort().reduce((r,o)=>(r[o]=n[o],r),{}):typeof n==\"bigint\"?n.toString():n)}function sqe(t){if(!v1e(t))return!1;let e=t.constructor;if(typeof e>\"u\")return!0;let n=e.prototype;return!(!v1e(n)||!n.hasOwnProperty(\"isPrototypeOf\"))}function v1e(t){return Object.prototype.toString.call(t)===\"[object Object]\"}function tm(t){let{_defaulted:e,behavior:n,gcTime:r,initialData:o,initialDataUpdatedAt:i,maxPages:a,meta:c,networkMode:u,queryFn:d,queryHash:h,queryKey:m,queryKeyHashFn:g,retry:b,retryDelay:E,structuralSharing:C,getPreviousPageParam:T,getNextPageParam:R,initialPageParam:L,_optimisticResults:D,enabled:G,notifyOnChangeProps:W,placeholderData:J,refetchInterval:ne,refetchIntervalInBackground:ie,refetchOnMount:Z,refetchOnReconnect:ae,refetchOnWindowFocus:V,retryOnMount:$,select:F,staleTime:_,suspense:O,throwOnError:z,config:N,connector:B,query:j,...q}=t;return q}p();function zQ(t){return{mutationFn(e){return Sye(t,e)},mutationKey:[\"connect\"]}}p();function HQ(t){return{mutationFn(e){return Lye(t,e)},mutationKey:[\"disconnect\"]}}p();function qQ(t,e={}){return{async queryFn({queryKey:n}){let{address:r,scopeKey:o,...i}=n[1];if(!r)throw new Error(\"address is required\");return await Uye(t,{...i,address:r})??null},queryKey:w1e(e)}}function w1e(t={}){return[\"balance\",tm(t)]}p();function WQ(t,e){return{async queryFn({queryKey:n}){let{scopeKey:r,...o}=n[1];return await jye(t,o)},queryKey:x1e(e),retry(n,r){return r instanceof Sv?!1:n<3}}}function x1e(t){return[\"callsStatus\",tm(t)]}p();function VQ(t,e={}){return{async queryFn({queryKey:n}){let{scopeKey:r,...o}=n[1];return await zye(t,o)},queryKey:E1e(e),retry(n,r){return r instanceof Sv?!1:n<3}}}function E1e(t={}){return[\"capabilities\",tm(t)]}p();function $Q(t,e={}){return{gcTime:0,async queryFn({queryKey:n}){let{connector:r}=e,{connectorUid:o,scopeKey:i,...a}=n[1];return Hye(t,{...a,connector:r})},queryKey:S1e(e)}}function S1e(t={}){let{connector:e,...n}=t;return[\"walletClient\",{...tm(n),connectorUid:e?.uid}]}p();function KQ(t,e={}){return{async queryFn({queryKey:n}){let r=e.abi;if(!r)throw new Error(\"abi is required\");let{functionName:o,scopeKey:i,...a}=n[1],c=(()=>{let u=n[1];if(u.address)return{address:u.address};if(u.code)return{code:u.code};throw new Error(\"address or code is required\")})();if(!o)throw new Error(\"functionName is required\");return gF(t,{abi:r,functionName:o,args:a.args,...c,...a})},queryKey:k1e(e)}}function k1e(t={}){let{abi:e,...n}=t;return[\"readContract\",tm(n)]}p();function GQ(t){return{mutationFn(e){return Wye(t,e)},mutationKey:[\"sendCalls\"]}}p();function ZQ(t){return{mutationFn(e){return $ye(t,e)},mutationKey:[\"showCallsStatus\"]}}p();function YQ(t){return{mutationFn(e){return Vye(t,e)},mutationKey:[\"sendTransaction\"]}}p();function QQ(t){return{mutationFn(e){return Kye(t,e)},mutationKey:[\"switchChain\"]}}p();function JQ(t,e={}){return{async queryFn({queryKey:n}){let{hash:r,...o}=n[1];if(!r)throw new Error(\"hash is required\");return Xp(t,{...o,onReplaced:e.onReplaced,hash:r})},queryKey:_1e(e)}}function _1e(t={}){let{onReplaced:e,...n}=t;return[\"waitForTransactionReceipt\",tm(n)]}p();function nm(t){let e=pd({...t,queryKeyHashFn:jQ});return e.queryKey=t.queryKey,e}p();var C1e=he(et(),1);function xl(t={}){let e=Qn(t);return(0,C1e.useSyncExternalStore)(n=>kQ(e,{onChange:n}),()=>yF(e),()=>yF(e))}function XQ(t={}){let{address:e,query:n={}}=t,r=Qn(t),o=xl({config:r}),i=qQ(r,{...t,chainId:t.chainId??o}),a=!!(e&&(n.enabled??!0));return nm({...n,...i,enabled:a})}p();function F9(t){let{query:e={}}=t,n=Qn(t),r=WQ(n,t);return nm({...e,...r})}p();function eJ(t={}){let{account:e,query:n={}}=t,{address:r}=Jn(),o=Qn(t),i=VQ(o,{...t,account:e??r});return nm({...n,...i})}p();var A1e=he(et(),1);function T1e(t={}){let e=Qn(t);return(0,A1e.useSyncExternalStore)(n=>DQ(e,{onChange:n}),()=>bF(e),()=>bF(e))}p();var O1e=he(et(),1);p();var R1e=he(et(),1);function I1e(t={}){let e=Qn(t);return(0,R1e.useSyncExternalStore)(n=>CQ(e,{onChange:n}),()=>wF(e),()=>wF(e))}function U9(t={}){let{mutation:e}=t,n=Qn(t),r=zQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return(0,O1e.useEffect)(()=>n.subscribe(({status:c})=>c,(c,u)=>{u===\"connected\"&&c===\"disconnected\"&&a.reset()}),[n,a.reset]),{...a,connect:o,connectAsync:i,connectors:I1e({config:n})}}p();var P1e=he(et(),1);function M1e(t={}){let e=Qn(t);return(0,P1e.useSyncExternalStore)(n=>_Q(e,{onChange:n}),()=>LC(e),()=>LC(e))}p();function j9(t={}){let{mutation:e}=t,n=Qn(t),r=HQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return{...a,connectors:M1e({config:n}).map(c=>c.connector),disconnect:o,disconnectAsync:i}}p();function MF(t={}){let{abi:e,address:n,functionName:r,query:o={}}=t,i=t.code,a=Qn(t),c=xl({config:a}),u=KQ(a,{...t,chainId:t.chainId??c}),d=!!((n||i)&&e&&r&&(o.enabled??!0));return nm({...o,...u,enabled:d,structuralSharing:o.structuralSharing??UQ})}p();function z9(t={}){let{mutation:e}=t,n=Qn(t),r=GQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return{...a,sendCalls:o,sendCallsAsync:i}}p();function H9(t={}){let{mutation:e}=t,n=Qn(t),r=YQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return{...a,sendTransaction:o,sendTransactionAsync:i}}p();function q9(t={}){let{mutation:e}=t,n=Qn(t),r=ZQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return{...a,showCallsStatus:o,showCallsStatusAsync:i}}p();function L6(t={}){let{mutation:e}=t,n=Qn(t),r=QQ(n),{mutate:o,mutateAsync:i,...a}=wf({...e,...r});return{...a,chains:T1e({config:n}),switchChain:o,switchChainAsync:i}}p();var NF=he(et(),1);function tJ(t={}){let{query:e={},...n}=t,r=Qn(n),o=fv(),{address:i,connector:a,status:c}=Jn({config:r}),u=xl({config:r}),d=t.connector??a,{queryKey:h,...m}=$Q(r,{...t,chainId:t.chainId??u,connector:t.connector??a}),g=!!((c===\"connected\"||c===\"reconnecting\"&&d?.getProvider)&&(e.enabled??!0)),b=(0,NF.useRef)(i);return(0,NF.useEffect)(()=>{let E=b.current;!i&&E?(o.removeQueries({queryKey:h}),b.current=void 0):i!==E&&(o.invalidateQueries({queryKey:h}),b.current=i)},[i,o]),nm({...e,...m,queryKey:h,enabled:g,staleTime:Number.POSITIVE_INFINITY})}p();function nJ(t={}){let{hash:e,query:n={}}=t,r=Qn(t),o=xl({config:r}),i=JQ(r,{...t,chainId:t.chainId??o}),a=!!(e&&(n.enabled??!0));return nm({...n,...i,enabled:a})}p();p();bo();f1.type=\"coinbaseWallet\";function f1(t={}){return t.version===\"3\"||t.headlessMode?srt(t):irt(t)}function irt(t){let e,n,r,o;return i=>({id:\"coinbaseWalletSDK\",name:\"Coinbase Wallet\",rdns:\"com.coinbase.wallet\",type:f1.type,async connect({chainId:a,...c}={}){try{let u=await this.getProvider(),d=(await u.request({method:\"eth_requestAccounts\",params:\"instantOnboarding\"in c&&c.instantOnboarding?[{onboarding:\"instant\"}]:[]})).map(m=>Fr(m));n||(n=this.onAccountsChanged.bind(this),u.on(\"accountsChanged\",n)),r||(r=this.onChainChanged.bind(this),u.on(\"chainChanged\",r)),o||(o=this.onDisconnect.bind(this),u.on(\"disconnect\",o));let h=await this.getChainId();return a&&h!==a&&(h=(await this.switchChain({chainId:a}).catch(g=>{if(g.code===oo.code)throw g;return{id:h}}))?.id??h),{accounts:d,chainId:h}}catch(u){throw/(user closed modal|accounts received is empty|user denied account|request rejected)/i.test(u.message)?new oo(u):u}},async disconnect(){let a=await this.getProvider();n&&(a.removeListener(\"accountsChanged\",n),n=void 0),r&&(a.removeListener(\"chainChanged\",r),r=void 0),o&&(a.removeListener(\"disconnect\",o),o=void 0),a.disconnect(),a.close?.()},async getAccounts(){return(await(await this.getProvider()).request({method:\"eth_accounts\"})).map(c=>Fr(c))},async getChainId(){let c=await(await this.getProvider()).request({method:\"eth_chainId\"});return Number(c)},async getProvider(){if(!e){let a=typeof t.preference==\"string\"?{options:t.preference}:{...t.preference,options:t.preference?.options??\"all\"},{createCoinbaseWalletSDK:c}=await Promise.resolve().then(()=>(L2e(),N2e));e=c({...t,appChainIds:i.chains.map(d=>d.id),preference:a}).getProvider()}return e},async isAuthorized(){try{return!!(await this.getAccounts()).length}catch{return!1}},async switchChain({addEthereumChainParameter:a,chainId:c}){let u=i.chains.find(h=>h.id===c);if(!u)throw new ha(new Lc);let d=await this.getProvider();try{return await d.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(u.id)}]}),u}catch(h){if(h.code===4902)try{let m;a?.blockExplorerUrls?m=a.blockExplorerUrls:m=u.blockExplorers?.default.url?[u.blockExplorers?.default.url]:[];let g;a?.rpcUrls?.length?g=a.rpcUrls:g=[u.rpcUrls.default?.http[0]??\"\"];let b={blockExplorerUrls:m,chainId:Ye(c),chainName:a?.chainName??u.name,iconUrls:a?.iconUrls,nativeCurrency:a?.nativeCurrency??u.nativeCurrency,rpcUrls:g};return await d.request({method:\"wallet_addEthereumChain\",params:[b]}),u}catch(m){throw new oo(m)}throw new ha(h)}},onAccountsChanged(a){a.length===0?this.onDisconnect():i.emitter.emit(\"change\",{accounts:a.map(c=>Fr(c))})},onChainChanged(a){let c=Number(a);i.emitter.emit(\"change\",{chainId:c})},async onDisconnect(a){i.emitter.emit(\"disconnect\");let c=await this.getProvider();n&&(c.removeListener(\"accountsChanged\",n),n=void 0),r&&(c.removeListener(\"chainChanged\",r),r=void 0),o&&(c.removeListener(\"disconnect\",o),o=void 0)}})}function srt(t){let n,r,o,i,a;return c=>({id:\"coinbaseWalletSDK\",name:\"Coinbase Wallet\",rdns:\"com.coinbase.wallet\",type:f1.type,async connect({chainId:u}={}){try{let d=await this.getProvider(),h=(await d.request({method:\"eth_requestAccounts\"})).map(g=>Fr(g));o||(o=this.onAccountsChanged.bind(this),d.on(\"accountsChanged\",o)),i||(i=this.onChainChanged.bind(this),d.on(\"chainChanged\",i)),a||(a=this.onDisconnect.bind(this),d.on(\"disconnect\",a));let m=await this.getChainId();return u&&m!==u&&(m=(await this.switchChain({chainId:u}).catch(b=>{if(b.code===oo.code)throw b;return{id:m}}))?.id??m),{accounts:h,chainId:m}}catch(d){throw/(user closed modal|accounts received is empty|user denied account)/i.test(d.message)?new oo(d):d}},async disconnect(){let u=await this.getProvider();o&&(u.removeListener(\"accountsChanged\",o),o=void 0),i&&(u.removeListener(\"chainChanged\",i),i=void 0),a&&(u.removeListener(\"disconnect\",a),a=void 0),u.disconnect(),u.close()},async getAccounts(){return(await(await this.getProvider()).request({method:\"eth_accounts\"})).map(d=>Fr(d))},async getChainId(){let d=await(await this.getProvider()).request({method:\"eth_chainId\"});return Number(d)},async getProvider(){if(!r){let u=await(async()=>{let{default:b}=await Promise.resolve().then(()=>he(o_e(),1));return typeof b!=\"function\"&&typeof b.default==\"function\"?b.default:b})();n=new u({...t,reloadOnDisconnect:!1});let d=n.walletExtension?.getChainId(),h=c.chains.find(b=>t.chainId?b.id===t.chainId:b.id===d)||c.chains[0],m=t.chainId||h?.id,g=t.jsonRpcUrl||h?.rpcUrls.default.http[0];r=n.makeWeb3Provider(g,m)}return r},async isAuthorized(){try{return!!(await this.getAccounts()).length}catch{return!1}},async switchChain({addEthereumChainParameter:u,chainId:d}){let h=c.chains.find(g=>g.id===d);if(!h)throw new ha(new Lc);let m=await this.getProvider();try{return await m.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(h.id)}]}),h}catch(g){if(g.code===4902)try{let b;u?.blockExplorerUrls?b=u.blockExplorerUrls:b=h.blockExplorers?.default.url?[h.blockExplorers?.default.url]:[];let E;u?.rpcUrls?.length?E=u.rpcUrls:E=[h.rpcUrls.default?.http[0]??\"\"];let C={blockExplorerUrls:b,chainId:Ye(d),chainName:u?.chainName??h.name,iconUrls:u?.iconUrls,nativeCurrency:u?.nativeCurrency??h.nativeCurrency,rpcUrls:E};return await m.request({method:\"wallet_addEthereumChain\",params:[C]}),h}catch(b){throw new oo(b)}throw new ha(g)}},onAccountsChanged(u){u.length===0?this.onDisconnect():c.emitter.emit(\"change\",{accounts:u.map(d=>Fr(d))})},onChainChanged(u){let d=Number(u);c.emitter.emit(\"change\",{chainId:d})},async onDisconnect(u){c.emitter.emit(\"disconnect\");let d=await this.getProvider();o&&(d.removeListener(\"accountsChanged\",o),o=void 0),i&&(d.removeListener(\"chainChanged\",i),i=void 0),a&&(d.removeListener(\"disconnect\",a),a=void 0)}})}p();bo();KO.type=\"metaMask\";function KO(t={}){let e,n,r,o,i,a,c,u;return d=>({id:\"metaMaskSDK\",name:\"MetaMask\",rdns:[\"io.metamask\",\"io.metamask.mobile\"],type:KO.type,async setup(){let h=await this.getProvider();h?.on&&(a||(a=this.onConnect.bind(this),h.on(\"connect\",a)),o||(o=this.onAccountsChanged.bind(this),h.on(\"accountsChanged\",o)))},async connect({chainId:h,isReconnecting:m}={}){let g=await this.getProvider();c||(c=this.onDisplayUri,g.on(\"display_uri\",c));let b=[];m&&(b=await this.getAccounts().catch(()=>[]));try{let E,C;b?.length||(t.connectAndSign||t.connectWith?(t.connectAndSign?E=await e.connectAndSign({msg:t.connectAndSign}):t.connectWith&&(C=await e.connectWith({method:t.connectWith.method,params:t.connectWith.params})),b=await this.getAccounts()):b=(await e.connect()).map(L=>Fr(L)));let T=await this.getChainId();return h&&T!==h&&(T=(await this.switchChain({chainId:h}).catch(L=>{if(L.code===oo.code)throw L;return{id:T}}))?.id??T),c&&(g.removeListener(\"display_uri\",c),c=void 0),E?g.emit(\"connectAndSign\",{accounts:b,chainId:T,signResponse:E}):C&&g.emit(\"connectWith\",{accounts:b,chainId:T,connectWithResponse:C}),a&&(g.removeListener(\"connect\",a),a=void 0),o||(o=this.onAccountsChanged.bind(this),g.on(\"accountsChanged\",o)),i||(i=this.onChainChanged.bind(this),g.on(\"chainChanged\",i)),u||(u=this.onDisconnect.bind(this),g.on(\"disconnect\",u)),{accounts:b,chainId:T}}catch(E){let C=E;throw C.code===oo.code?new oo(C):C.code===mf.code?new mf(C):C}},async disconnect(){let h=await this.getProvider();i&&(h.removeListener(\"chainChanged\",i),i=void 0),u&&(h.removeListener(\"disconnect\",u),u=void 0),a||(a=this.onConnect.bind(this),h.on(\"connect\",a)),await e.terminate()},async getAccounts(){return(await(await this.getProvider()).request({method:\"eth_accounts\"})).map(g=>Fr(g))},async getChainId(){let h=await this.getProvider(),m=h.getChainId()||await h?.request({method:\"eth_chainId\"});return Number(m)},async getProvider(){async function h(){let m=await(async()=>{let{default:C}=await Promise.resolve().then(()=>(v7e(),b7e));return typeof C!=\"function\"&&typeof C.default==\"function\"?C.default:C})(),g={};for(let C of d.chains)g[Ye(C.id)]=BQ({chain:C,transports:d.transports})?.[0];e=new m({_source:\"wagmi\",forceDeleteProvider:!1,forceInjectProvider:!1,injectProvider:!1,...t,readonlyRPCMap:g,dappMetadata:{...t.dappMetadata,name:t.dappMetadata?.name?t.dappMetadata?.name:\"wagmi\",url:t.dappMetadata?.url?t.dappMetadata?.url:typeof window<\"u\"?window.location.origin:\"https://wagmi.sh\"},useDeeplink:t.useDeeplink??!0});let b=await e.init(),E=b?.activeProvider?b.activeProvider:e.getProvider();if(!E)throw new Sh;return E}return n||(r||(r=h()),n=await r),n},async isAuthorized(){try{return!!(await eg(()=>I6(()=>this.getAccounts(),{timeout:200}),{delay:201,retryCount:3})).length}catch{return!1}},async switchChain({addEthereumChainParameter:h,chainId:m}){let g=await this.getProvider(),b=d.chains.find(T=>T.id===m);if(!b)throw new ha(new Lc);try{return await g.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(m)}]}),await E(),await C(m),b}catch(T){let R=T;if(R.code===oo.code)throw new oo(R);if(R.code===4902||R?.data?.originalError?.code===4902)try{return await g.request({method:\"wallet_addEthereumChain\",params:[{blockExplorerUrls:(()=>{let{default:L,...D}=b.blockExplorers??{};if(h?.blockExplorerUrls)return h.blockExplorerUrls;if(L)return[L.url,...Object.values(D).map(G=>G.url)]})(),chainId:Ye(m),chainName:h?.chainName??b.name,iconUrls:h?.iconUrls,nativeCurrency:h?.nativeCurrency??b.nativeCurrency,rpcUrls:h?.rpcUrls?.length?h.rpcUrls:[b.rpcUrls.default?.http[0]??\"\"]}]}),await E(),await C(m),b}catch(L){let D=L;throw D.code===oo.code?new oo(D):new ha(D)}throw new ha(R)}async function E(){await eg(async()=>{let T=Ei(await g.request({method:\"eth_chainId\"}));if(T!==m)throw new Error(\"User rejected switch after adding network.\");return T},{delay:50,retryCount:20})}async function C(T){await new Promise(R=>{let L=D=>{\"chainId\"in D&&D.chainId===T&&(d.emitter.off(\"change\",L),R())};d.emitter.on(\"change\",L),d.emitter.emit(\"change\",{chainId:T})})}},async onAccountsChanged(h){if(h.length===0)if(e.isExtensionActive())this.onDisconnect();else return;else if(d.emitter.listenerCount(\"connect\")){let m=(await this.getChainId()).toString();this.onConnect({chainId:m})}else d.emitter.emit(\"change\",{accounts:h.map(m=>Fr(m))})},onChainChanged(h){let m=Number(h);d.emitter.emit(\"change\",{chainId:m})},async onConnect(h){let m=await this.getAccounts();if(m.length===0)return;let g=Number(h.chainId);d.emitter.emit(\"connect\",{accounts:m,chainId:g});let b=await this.getProvider();a&&(b.removeListener(\"connect\",a),a=void 0),o||(o=this.onAccountsChanged.bind(this),b.on(\"accountsChanged\",o)),i||(i=this.onChainChanged.bind(this),b.on(\"chainChanged\",i)),u||(u=this.onDisconnect.bind(this),b.on(\"disconnect\",u))},async onDisconnect(h){let m=await this.getProvider();h&&h.code===1013&&m&&(await this.getAccounts()).length||(d.emitter.emit(\"disconnect\"),i&&(m.removeListener(\"chainChanged\",i),i=void 0),u&&(m.removeListener(\"disconnect\",u),u=void 0),a||(a=this.onConnect.bind(this),m.on(\"connect\",a)))},onDisplayUri(h){d.emitter.emit(\"message\",{type:\"display_uri\",data:h})}})}p();var w7e=({apiKey:t,appName:e,appLogoUrl:n,connectors:r=[f1({appName:e,appLogoUrl:n,preference:\"all\"})]})=>AF({chains:[Yn,xs],connectors:r,storage:FC({storage:TF}),ssr:!0,transports:{[Yn.id]:t?Eh(`https://api.developer.coinbase.com/rpc/v1/base/${t}`):Eh(),[xs.id]:t?Eh(`https://api.developer.coinbase.com/rpc/v1/base-sepolia/${t}`):Eh()}});p();var x7e=he(et(),1);function E7e(){let t=null,e=null;try{t=Qn()}catch(n){n instanceof N6||console.error(\"Error fetching WagmiProvider, using default:\",n)}try{e=fv()}catch(n){n.message!==\"No QueryClient set, use QueryClientProvider to set one\"&&console.error(\"Error fetching QueryClient, using default:\",n)}return(0,x7e.useMemo)(()=>({providedWagmiConfig:t,providedQueryClient:e}),[t,e])}p();var bq=he(et(),1);var hoe=(0,bq.createContext)(bh);function lo(){return(0,bq.useContext)(hoe)}function S7e({children:t,connectors:e}){let{providedWagmiConfig:n,providedQueryClient:r}=E7e();return(0,GO.jsx)(Fat,{providedWagmiConfig:n,connectors:e,children:(0,GO.jsx)(Uat,{providedQueryClient:r,children:t})})}function Fat({children:t,providedWagmiConfig:e,connectors:n}){let r=lo(),o=(0,_1.useRef)(n),i=(0,_1.useCallback)(()=>{var u,d,h,m,g,b;if(e)return e;let E=((d=(u=r.config)==null?void 0:u.appearance)==null?void 0:d.name)??void 0,C=((m=(h=r.config)==null?void 0:h.appearance)==null?void 0:m.logo)??void 0;return w7e({apiKey:r.apiKey??void 0,appName:E,appLogoUrl:C,connectors:n??[f1({appName:E,appLogoUrl:C,preference:(b=(g=r.config)==null?void 0:g.wallet)==null?void 0:b.preference})]})},[r.apiKey,r.config,n,e]),[a,c]=(0,_1.useState)(()=>i());return(0,_1.useEffect)(()=>{o.current!==n&&(c(i()),o.current=n)},[n,i]),e?t:(0,GO.jsx)(IF,{config:a,children:t})}function Uat({children:t,providedQueryClient:e}){let n=(0,_1.useMemo)(()=>e||new vZ,[e]);return e?t:(0,GO.jsx)(MZ,{client:n,children:t})}p();var kie=he(De(),1),T9e=he(et(),1);p();p();var k7e=\"https://api.developer.coinbase.com/analytics\";p();p();p();p();p();var ZO={};ld(ZO,{InvalidDomainManifest:()=>moe,RejectedByUser:()=>goe});p();p();var LS=class extends Error{constructor(n,r={}){super(n,r.cause?{cause:r.cause}:void 0);Op(this,\"name\",\"BaseError\");Op(this,\"cause\");this.cause=r.cause}};var moe=class extends LS{constructor(){super(\"Invalid domain manifest\");Op(this,\"name\",\"AddMiniApp.InvalidDomainManifest\")}},goe=class extends LS{constructor(){super(\"Add frame rejected by user\");Op(this,\"name\",\"AddMiniApp.RejectedByUser\")}};p();p();p();var YO={};ld(YO,{RejectedByUser:()=>yoe});p();var yoe=class extends LS{constructor(){super(\"Sign in rejected by user\");Op(this,\"name\",\"SignIn.RejectedByUser\")}};p();p();p();p();p();p();p();p();p();p();p();var boe=[\"wallet.getEthereumProvider\",\"wallet.getSolanaProvider\",\"actions.ready\",\"actions.openUrl\",\"actions.close\",\"actions.setPrimaryButton\",\"actions.addMiniApp\",\"actions.signIn\",\"actions.viewCast\",\"actions.viewProfile\",\"actions.composeCast\",\"actions.viewToken\",\"actions.sendToken\",\"actions.swapToken\",\"haptics.impactOccurred\",\"haptics.notificationOccurred\",\"haptics.selectionChanged\",\"back\"];p();p();p();p();var st={};ld(st,{BRAND:()=>hct,DIRTY:()=>BS,EMPTY_PATH:()=>Vat,INVALID:()=>An,NEVER:()=>Qct,OK:()=>Au,ParseStatus:()=>Tl,Schema:()=>yr,ZodAny:()=>v3,ZodArray:()=>t2,ZodBigInt:()=>FS,ZodBoolean:()=>US,ZodBranded:()=>JO,ZodCatch:()=>YS,ZodDate:()=>jS,ZodDefault:()=>ZS,ZodDiscriminatedUnion:()=>xq,ZodEffects:()=>Tm,ZodEnum:()=>KS,ZodError:()=>Pf,ZodFirstPartyTypeKind:()=>Pn,ZodFunction:()=>Sq,ZodIntersection:()=>WS,ZodIssueCode:()=>Tt,ZodLazy:()=>VS,ZodLiteral:()=>$S,ZodMap:()=>IA,ZodNaN:()=>PA,ZodNativeEnum:()=>GS,ZodNever:()=>gg,ZodNull:()=>HS,ZodNullable:()=>T1,ZodNumber:()=>DS,ZodObject:()=>Mf,ZodOptional:()=>Cm,ZodParsedType:()=>$t,ZodPipeline:()=>XO,ZodPromise:()=>w3,ZodReadonly:()=>QS,ZodRecord:()=>Eq,ZodSchema:()=>yr,ZodSet:()=>OA,ZodString:()=>b3,ZodSymbol:()=>TA,ZodTransformer:()=>Tm,ZodTuple:()=>A1,ZodType:()=>yr,ZodUndefined:()=>zS,ZodUnion:()=>qS,ZodUnknown:()=>e2,ZodVoid:()=>RA,addIssueToContext:()=>Ut,any:()=>Ect,array:()=>Cct,bigint:()=>yct,boolean:()=>L7e,coerce:()=>Yct,custom:()=>P7e,date:()=>bct,datetimeRegex:()=>I7e,defaultErrorMap:()=>Jv,discriminatedUnion:()=>Ict,effect:()=>Hct,enum:()=>Uct,function:()=>Bct,getErrorMap:()=>_A,getParsedType:()=>C1,instanceof:()=>mct,intersection:()=>Oct,isAborted:()=>vq,isAsync:()=>CA,isDirty:()=>wq,isValid:()=>y3,late:()=>pct,lazy:()=>Dct,literal:()=>Fct,makeIssue:()=>QO,map:()=>Nct,nan:()=>gct,nativeEnum:()=>jct,never:()=>kct,null:()=>xct,nullable:()=>Wct,number:()=>N7e,object:()=>Act,objectUtil:()=>voe,oboolean:()=>Zct,onumber:()=>Gct,optional:()=>qct,ostring:()=>Kct,pipeline:()=>$ct,preprocess:()=>Vct,promise:()=>zct,quotelessJson:()=>Hat,record:()=>Mct,set:()=>Lct,setErrorMap:()=>Wat,strictObject:()=>Tct,string:()=>M7e,symbol:()=>vct,transformer:()=>Hct,tuple:()=>Pct,undefined:()=>wct,union:()=>Rct,unknown:()=>Sct,util:()=>Ur,void:()=>_ct});p();p();p();p();p();var Ur;(function(t){t.assertEqual=o=>{};function e(o){}t.assertIs=e;function n(o){throw new Error}t.assertNever=n,t.arrayToEnum=o=>{let i={};for(let a of o)i[a]=a;return i},t.getValidEnumValues=o=>{let i=t.objectKeys(o).filter(c=>typeof o[o[c]]!=\"number\"),a={};for(let c of i)a[c]=o[c];return t.objectValues(a)},t.objectValues=o=>t.objectKeys(o).map(function(i){return o[i]}),t.objectKeys=typeof Object.keys==\"function\"?o=>Object.keys(o):o=>{let i=[];for(let a in o)Object.prototype.hasOwnProperty.call(o,a)&&i.push(a);return i},t.find=(o,i)=>{for(let a of o)if(i(a))return a},t.isInteger=typeof Number.isInteger==\"function\"?o=>Number.isInteger(o):o=>typeof o==\"number\"&&Number.isFinite(o)&&Math.floor(o)===o;function r(o,i=\" | \"){return o.map(a=>typeof a==\"string\"?`\\'${a}\\'`:a).join(i)}t.joinValues=r,t.jsonStringifyReplacer=(o,i)=>typeof i==\"bigint\"?i.toString():i})(Ur||(Ur={}));var voe;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(voe||(voe={}));var $t=Ur.arrayToEnum([\"string\",\"nan\",\"number\",\"integer\",\"float\",\"boolean\",\"date\",\"bigint\",\"symbol\",\"function\",\"undefined\",\"null\",\"array\",\"object\",\"unknown\",\"promise\",\"void\",\"never\",\"map\",\"set\"]),C1=t=>{switch(typeof t){case\"undefined\":return $t.undefined;case\"string\":return $t.string;case\"number\":return Number.isNaN(t)?$t.nan:$t.number;case\"boolean\":return $t.boolean;case\"function\":return $t.function;case\"bigint\":return $t.bigint;case\"symbol\":return $t.symbol;case\"object\":return Array.isArray(t)?$t.array:t===null?$t.null:t.then&&typeof t.then==\"function\"&&t.catch&&typeof t.catch==\"function\"?$t.promise:typeof Map<\"u\"&&t instanceof Map?$t.map:typeof Set<\"u\"&&t instanceof Set?$t.set:typeof Date<\"u\"&&t instanceof Date?$t.date:$t.object;default:return $t.unknown}};var Tt=Ur.arrayToEnum([\"invalid_type\",\"invalid_literal\",\"custom\",\"invalid_union\",\"invalid_union_discriminator\",\"invalid_enum_value\",\"unrecognized_keys\",\"invalid_arguments\",\"invalid_return_type\",\"invalid_date\",\"invalid_string\",\"too_small\",\"too_big\",\"invalid_intersection_types\",\"not_multiple_of\",\"not_finite\"]),Hat=t=>JSON.stringify(t,null,2).replace(/\"([^\"]+)\":/g,\"$1:\"),Pf=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name=\"ZodError\",this.issues=e}format(e){let n=e||function(i){return i.message},r={_errors:[]},o=i=>{for(let a of i.issues)if(a.code===\"invalid_union\")a.unionErrors.map(o);else if(a.code===\"invalid_return_type\")o(a.returnTypeError);else if(a.code===\"invalid_arguments\")o(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let c=r,u=0;for(;u<a.path.length;){let d=a.path[u];u===a.path.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(n(a))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}};return o(this),r}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ur.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=n=>n.message){let n={},r=[];for(let o of this.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(e(o))):r.push(e(o));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};Pf.create=t=>new Pf(t);var qat=(t,e)=>{let n;switch(t.code){case Tt.invalid_type:t.received===$t.undefined?n=\"Required\":n=`Expected ${t.expected}, received ${t.received}`;break;case Tt.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,Ur.jsonStringifyReplacer)}`;break;case Tt.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ur.joinValues(t.keys,\", \")}`;break;case Tt.invalid_union:n=\"Invalid input\";break;case Tt.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ur.joinValues(t.options)}`;break;case Tt.invalid_enum_value:n=`Invalid enum value. Expected ${Ur.joinValues(t.options)}, received \\'${t.received}\\'`;break;case Tt.invalid_arguments:n=\"Invalid function arguments\";break;case Tt.invalid_return_type:n=\"Invalid function return type\";break;case Tt.invalid_date:n=\"Invalid date\";break;case Tt.invalid_string:typeof t.validation==\"object\"?\"includes\"in t.validation?(n=`Invalid input: must include \"${t.validation.includes}\"`,typeof t.validation.position==\"number\"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):\"startsWith\"in t.validation?n=`Invalid input: must start with \"${t.validation.startsWith}\"`:\"endsWith\"in t.validation?n=`Invalid input: must end with \"${t.validation.endsWith}\"`:Ur.assertNever(t.validation):t.validation!==\"regex\"?n=`Invalid ${t.validation}`:n=\"Invalid\";break;case Tt.too_small:t.type===\"array\"?n=`Array must contain ${t.exact?\"exactly\":t.inclusive?\"at least\":\"more than\"} ${t.minimum} element(s)`:t.type===\"string\"?n=`String must contain ${t.exact?\"exactly\":t.inclusive?\"at least\":\"over\"} ${t.minimum} character(s)`:t.type===\"number\"?n=`Number must be ${t.exact?\"exactly equal to \":t.inclusive?\"greater than or equal to \":\"greater than \"}${t.minimum}`:t.type===\"date\"?n=`Date must be ${t.exact?\"exactly equal to \":t.inclusive?\"greater than or equal to \":\"greater than \"}${new Date(Number(t.minimum))}`:n=\"Invalid input\";break;case Tt.too_big:t.type===\"array\"?n=`Array must contain ${t.exact?\"exactly\":t.inclusive?\"at most\":\"less than\"} ${t.maximum} element(s)`:t.type===\"string\"?n=`String must contain ${t.exact?\"exactly\":t.inclusive?\"at most\":\"under\"} ${t.maximum} character(s)`:t.type===\"number\"?n=`Number must be ${t.exact?\"exactly\":t.inclusive?\"less than or equal to\":\"less than\"} ${t.maximum}`:t.type===\"bigint\"?n=`BigInt must be ${t.exact?\"exactly\":t.inclusive?\"less than or equal to\":\"less than\"} ${t.maximum}`:t.type===\"date\"?n=`Date must be ${t.exact?\"exactly\":t.inclusive?\"smaller than or equal to\":\"smaller than\"} ${new Date(Number(t.maximum))}`:n=\"Invalid input\";break;case Tt.custom:n=\"Invalid input\";break;case Tt.invalid_intersection_types:n=\"Intersection results could not be merged\";break;case Tt.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Tt.not_finite:n=\"Number must be finite\";break;default:n=e.defaultError,Ur.assertNever(t)}return{message:n}},Jv=qat;var _7e=Jv;function Wat(t){_7e=t}function _A(){return _7e}p();var QO=t=>{let{data:e,path:n,errorMaps:r,issueData:o}=t,i=[...n,...o.path||[]],a={...o,path:i};if(o.message!==void 0)return{...o,path:i,message:o.message};let c=\"\",u=r.filter(d=>!!d).slice().reverse();for(let d of u)c=d(a,{data:e,defaultError:c}).message;return{...o,path:i,message:c}},Vat=[];function Ut(t,e){let n=_A(),r=QO({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===Jv?void 0:Jv].filter(o=>!!o)});t.common.issues.push(r)}var Tl=class t{constructor(){this.value=\"valid\"}dirty(){this.value===\"valid\"&&(this.value=\"dirty\")}abort(){this.value!==\"aborted\"&&(this.value=\"aborted\")}static mergeArray(e,n){let r=[];for(let o of n){if(o.status===\"aborted\")return An;o.status===\"dirty\"&&e.dirty(),r.push(o.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){let r=[];for(let o of n){let i=await o.key,a=await o.value;r.push({key:i,value:a})}return t.mergeObjectSync(e,r)}static mergeObjectSync(e,n){let r={};for(let o of n){let{key:i,value:a}=o;if(i.status===\"aborted\"||a.status===\"aborted\")return An;i.status===\"dirty\"&&e.dirty(),a.status===\"dirty\"&&e.dirty(),i.value!==\"__proto__\"&&(typeof a.value<\"u\"||o.alwaysSet)&&(r[i.value]=a.value)}return{status:e.value,value:r}}},An=Object.freeze({status:\"aborted\"}),BS=t=>({status:\"dirty\",value:t}),Au=t=>({status:\"valid\",value:t}),vq=t=>t.status===\"aborted\",wq=t=>t.status===\"dirty\",y3=t=>t.status===\"valid\",CA=t=>typeof Promise<\"u\"&&t instanceof Promise;p();p();p();var ln;(function(t){t.errToObj=e=>typeof e==\"string\"?{message:e}:e||{},t.toString=e=>typeof e==\"string\"?e:e?.message})(ln||(ln={}));var Am=class{constructor(e,n,r,o){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},C7e=(t,e)=>{if(y3(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error(\"Validation failed but no issues detected.\");return{success:!1,get error(){if(this._error)return this._error;let n=new Pf(t.common.issues);return this._error=n,this._error}}};function rr(t){if(!t)return{};let{errorMap:e,invalid_type_error:n,required_error:r,description:o}=t;if(e&&(n||r))throw new Error(`Can\\'t use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);return e?{errorMap:e,description:o}:{errorMap:(a,c)=>{let{message:u}=t;return a.code===\"invalid_enum_value\"?{message:u??c.defaultError}:typeof c.data>\"u\"?{message:u??r??c.defaultError}:a.code!==\"invalid_type\"?{message:c.defaultError}:{message:u??n??c.defaultError}},description:o}}var yr=class{get description(){return this._def.description}_getType(e){return C1(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:C1(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Tl,ctx:{common:e.parent.common,data:e.data,parsedType:C1(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let n=this._parse(e);if(CA(n))throw new Error(\"Synchronous parse encountered promise.\");return n}_parseAsync(e){let n=this._parse(e);return Promise.resolve(n)}parse(e,n){let r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C1(e)},o=this._parseSync({data:e,path:r.path,parent:r});return C7e(r,o)}\"~validate\"(e){let n={common:{issues:[],async:!!this[\"~standard\"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C1(e)};if(!this[\"~standard\"].async)try{let r=this._parseSync({data:e,path:[],parent:n});return y3(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes(\"encountered\")&&(this[\"~standard\"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>y3(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(e,n){let r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:C1(e)},o=this._parse({data:e,path:r.path,parent:r}),i=await(CA(o)?o:Promise.resolve(o));return C7e(r,i)}refine(e,n){let r=o=>typeof n==\"string\"||typeof n>\"u\"?{message:n}:typeof n==\"function\"?n(o):n;return this._refinement((o,i)=>{let a=e(o),c=()=>i.addIssue({code:Tt.custom,...r(o)});return typeof Promise<\"u\"&&a instanceof Promise?a.then(u=>u?!0:(c(),!1)):a?!0:(c(),!1)})}refinement(e,n){return this._refinement((r,o)=>e(r)?!0:(o.addIssue(typeof n==\"function\"?n(r,o):n),!1))}_refinement(e){return new Tm({schema:this,typeName:Pn.ZodEffects,effect:{type:\"refinement\",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[\"~standard\"]={version:1,vendor:\"zod\",validate:n=>this[\"~validate\"](n)}}optional(){return Cm.create(this,this._def)}nullable(){return T1.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return t2.create(this)}promise(){return w3.create(this,this._def)}or(e){return qS.create([this,e],this._def)}and(e){return WS.create(this,e,this._def)}transform(e){return new Tm({...rr(this._def),schema:this,typeName:Pn.ZodEffects,effect:{type:\"transform\",transform:e}})}default(e){let n=typeof e==\"function\"?e:()=>e;return new ZS({...rr(this._def),innerType:this,defaultValue:n,typeName:Pn.ZodDefault})}brand(){return new JO({typeName:Pn.ZodBranded,type:this,...rr(this._def)})}catch(e){let n=typeof e==\"function\"?e:()=>e;return new YS({...rr(this._def),innerType:this,catchValue:n,typeName:Pn.ZodCatch})}describe(e){let n=this.constructor;return new n({...this._def,description:e})}pipe(e){return XO.create(this,e)}readonly(){return QS.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},$at=/^c[^\\\\s-]{8,}$/i,Kat=/^[0-9a-z]+$/,Gat=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Zat=/^[0-9a-fA-F]{8}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{12}$/i,Yat=/^[a-z0-9_-]{21}$/i,Qat=/^[A-Za-z0-9-_]+\\\\.[A-Za-z0-9-_]+\\\\.[A-Za-z0-9-_]*$/,Jat=/^[-+]?P(?!$)(?:(?:[-+]?\\\\d+Y)|(?:[-+]?\\\\d+[.,]\\\\d+Y$))?(?:(?:[-+]?\\\\d+M)|(?:[-+]?\\\\d+[.,]\\\\d+M$))?(?:(?:[-+]?\\\\d+W)|(?:[-+]?\\\\d+[.,]\\\\d+W$))?(?:(?:[-+]?\\\\d+D)|(?:[-+]?\\\\d+[.,]\\\\d+D$))?(?:T(?=[\\\\d+-])(?:(?:[-+]?\\\\d+H)|(?:[-+]?\\\\d+[.,]\\\\d+H$))?(?:(?:[-+]?\\\\d+M)|(?:[-+]?\\\\d+[.,]\\\\d+M$))?(?:[-+]?\\\\d+(?:[.,]\\\\d+)?S)?)??$/,Xat=/^(?!\\\\.)(?!.*\\\\.\\\\.)([A-Z0-9_\\'+\\\\-\\\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\\\-]*\\\\.)+[A-Z]{2,}$/i,ect=\"^(\\\\\\\\p{Extended_Pictographic}|\\\\\\\\p{Emoji_Component})+$\",woe,tct=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,nct=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\\\/(3[0-2]|[12]?[0-9])$/,rct=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,oct=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,ict=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,sct=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,T7e=\"((\\\\\\\\d\\\\\\\\d[2468][048]|\\\\\\\\d\\\\\\\\d[13579][26]|\\\\\\\\d\\\\\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\\\\\d|30)|(02)-(0[1-9]|1\\\\\\\\d|2[0-8])))\",act=new RegExp(`^${T7e}$`);function R7e(t){let e=\"[0-5]\\\\\\\\d\";t.precision?e=`${e}\\\\\\\\.\\\\\\\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\\\\\\\.\\\\\\\\d+)?`);let n=t.precision?\"+\":\"?\";return`([01]\\\\\\\\d|2[0-3]):[0-5]\\\\\\\\d(:${e})${n}`}function cct(t){return new RegExp(`^${R7e(t)}$`)}function I7e(t){let e=`${T7e}T${R7e(t)}`,n=[];return n.push(t.local?\"Z?\":\"Z\"),t.offset&&n.push(\"([+-]\\\\\\\\d{2}:?\\\\\\\\d{2})\"),e=`${e}(${n.join(\"|\")})`,new RegExp(`^${e}$`)}function lct(t,e){return!!((e===\"v4\"||!e)&&tct.test(t)||(e===\"v6\"||!e)&&rct.test(t))}function uct(t,e){if(!Qat.test(t))return!1;try{let[n]=t.split(\".\"),r=n.replace(/-/g,\"+\").replace(/_/g,\"/\").padEnd(n.length+(4-n.length%4)%4,\"=\"),o=JSON.parse(atob(r));return!(typeof o!=\"object\"||o===null||\"typ\"in o&&o?.typ!==\"JWT\"||!o.alg||e&&o.alg!==e)}catch{return!1}}function dct(t,e){return!!((e===\"v4\"||!e)&&nct.test(t)||(e===\"v6\"||!e)&&oct.test(t))}var b3=class t extends yr{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==$t.string){let i=this._getOrReturnCtx(e);return Ut(i,{code:Tt.invalid_type,expected:$t.string,received:i.parsedType}),An}let r=new Tl,o;for(let i of this._def.checks)if(i.kind===\"min\")e.data.length<i.value&&(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.too_small,minimum:i.value,type:\"string\",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind===\"max\")e.data.length>i.value&&(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.too_big,maximum:i.value,type:\"string\",inclusive:!0,exact:!1,message:i.message}),r.dirty());else if(i.kind===\"length\"){let a=e.data.length>i.value,c=e.data.length<i.value;(a||c)&&(o=this._getOrReturnCtx(e,o),a?Ut(o,{code:Tt.too_big,maximum:i.value,type:\"string\",inclusive:!0,exact:!0,message:i.message}):c&&Ut(o,{code:Tt.too_small,minimum:i.value,type:\"string\",inclusive:!0,exact:!0,message:i.message}),r.dirty())}else if(i.kind===\"email\")Xat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"email\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"emoji\")woe||(woe=new RegExp(ect,\"u\")),woe.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"emoji\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"uuid\")Zat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"uuid\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"nanoid\")Yat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"nanoid\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"cuid\")$at.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"cuid\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"cuid2\")Kat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"cuid2\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"ulid\")Gat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"ulid\",code:Tt.invalid_string,message:i.message}),r.dirty());else if(i.kind===\"url\")try{new URL(e.data)}catch{o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"url\",code:Tt.invalid_string,message:i.message}),r.dirty()}else i.kind===\"regex\"?(i.regex.lastIndex=0,i.regex.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"regex\",code:Tt.invalid_string,message:i.message}),r.dirty())):i.kind===\"trim\"?e.data=e.data.trim():i.kind===\"includes\"?e.data.includes(i.value,i.position)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:{includes:i.value,position:i.position},message:i.message}),r.dirty()):i.kind===\"toLowerCase\"?e.data=e.data.toLowerCase():i.kind===\"toUpperCase\"?e.data=e.data.toUpperCase():i.kind===\"startsWith\"?e.data.startsWith(i.value)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:{startsWith:i.value},message:i.message}),r.dirty()):i.kind===\"endsWith\"?e.data.endsWith(i.value)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:{endsWith:i.value},message:i.message}),r.dirty()):i.kind===\"datetime\"?I7e(i).test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:\"datetime\",message:i.message}),r.dirty()):i.kind===\"date\"?act.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:\"date\",message:i.message}),r.dirty()):i.kind===\"time\"?cct(i).test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.invalid_string,validation:\"time\",message:i.message}),r.dirty()):i.kind===\"duration\"?Jat.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"duration\",code:Tt.invalid_string,message:i.message}),r.dirty()):i.kind===\"ip\"?lct(e.data,i.version)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"ip\",code:Tt.invalid_string,message:i.message}),r.dirty()):i.kind===\"jwt\"?uct(e.data,i.alg)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"jwt\",code:Tt.invalid_string,message:i.message}),r.dirty()):i.kind===\"cidr\"?dct(e.data,i.version)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"cidr\",code:Tt.invalid_string,message:i.message}),r.dirty()):i.kind===\"base64\"?ict.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"base64\",code:Tt.invalid_string,message:i.message}),r.dirty()):i.kind===\"base64url\"?sct.test(e.data)||(o=this._getOrReturnCtx(e,o),Ut(o,{validation:\"base64url\",code:Tt.invalid_string,message:i.message}),r.dirty()):Ur.assertNever(i);return{status:r.value,value:e.data}}_regex(e,n,r){return this.refinement(o=>e.test(o),{validation:n,code:Tt.invalid_string,...ln.errToObj(r)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:\"email\",...ln.errToObj(e)})}url(e){return this._addCheck({kind:\"url\",...ln.errToObj(e)})}emoji(e){return this._addCheck({kind:\"emoji\",...ln.errToObj(e)})}uuid(e){return this._addCheck({kind:\"uuid\",...ln.errToObj(e)})}nanoid(e){return this._addCheck({kind:\"nanoid\",...ln.errToObj(e)})}cuid(e){return this._addCheck({kind:\"cuid\",...ln.errToObj(e)})}cuid2(e){return this._addCheck({kind:\"cuid2\",...ln.errToObj(e)})}ulid(e){return this._addCheck({kind:\"ulid\",...ln.errToObj(e)})}base64(e){return this._addCheck({kind:\"base64\",...ln.errToObj(e)})}base64url(e){return this._addCheck({kind:\"base64url\",...ln.errToObj(e)})}jwt(e){return this._addCheck({kind:\"jwt\",...ln.errToObj(e)})}ip(e){return this._addCheck({kind:\"ip\",...ln.errToObj(e)})}cidr(e){return this._addCheck({kind:\"cidr\",...ln.errToObj(e)})}datetime(e){return typeof e==\"string\"?this._addCheck({kind:\"datetime\",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:\"datetime\",precision:typeof e?.precision>\"u\"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...ln.errToObj(e?.message)})}date(e){return this._addCheck({kind:\"date\",message:e})}time(e){return typeof e==\"string\"?this._addCheck({kind:\"time\",precision:null,message:e}):this._addCheck({kind:\"time\",precision:typeof e?.precision>\"u\"?null:e?.precision,...ln.errToObj(e?.message)})}duration(e){return this._addCheck({kind:\"duration\",...ln.errToObj(e)})}regex(e,n){return this._addCheck({kind:\"regex\",regex:e,...ln.errToObj(n)})}includes(e,n){return this._addCheck({kind:\"includes\",value:e,position:n?.position,...ln.errToObj(n?.message)})}startsWith(e,n){return this._addCheck({kind:\"startsWith\",value:e,...ln.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:\"endsWith\",value:e,...ln.errToObj(n)})}min(e,n){return this._addCheck({kind:\"min\",value:e,...ln.errToObj(n)})}max(e,n){return this._addCheck({kind:\"max\",value:e,...ln.errToObj(n)})}length(e,n){return this._addCheck({kind:\"length\",value:e,...ln.errToObj(n)})}nonempty(e){return this.min(1,ln.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:\"trim\"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:\"toLowerCase\"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:\"toUpperCase\"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===\"datetime\")}get isDate(){return!!this._def.checks.find(e=>e.kind===\"date\")}get isTime(){return!!this._def.checks.find(e=>e.kind===\"time\")}get isDuration(){return!!this._def.checks.find(e=>e.kind===\"duration\")}get isEmail(){return!!this._def.checks.find(e=>e.kind===\"email\")}get isURL(){return!!this._def.checks.find(e=>e.kind===\"url\")}get isEmoji(){return!!this._def.checks.find(e=>e.kind===\"emoji\")}get isUUID(){return!!this._def.checks.find(e=>e.kind===\"uuid\")}get isNANOID(){return!!this._def.checks.find(e=>e.kind===\"nanoid\")}get isCUID(){return!!this._def.checks.find(e=>e.kind===\"cuid\")}get isCUID2(){return!!this._def.checks.find(e=>e.kind===\"cuid2\")}get isULID(){return!!this._def.checks.find(e=>e.kind===\"ulid\")}get isIP(){return!!this._def.checks.find(e=>e.kind===\"ip\")}get isCIDR(){return!!this._def.checks.find(e=>e.kind===\"cidr\")}get isBase64(){return!!this._def.checks.find(e=>e.kind===\"base64\")}get isBase64url(){return!!this._def.checks.find(e=>e.kind===\"base64url\")}get minLength(){let e=null;for(let n of this._def.checks)n.kind===\"min\"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(let n of this._def.checks)n.kind===\"max\"&&(e===null||n.value<e)&&(e=n.value);return e}};b3.create=t=>new b3({checks:[],typeName:Pn.ZodString,coerce:t?.coerce??!1,...rr(t)});function fct(t,e){let n=(t.toString().split(\".\")[1]||\"\").length,r=(e.toString().split(\".\")[1]||\"\").length,o=n>r?n:r,i=Number.parseInt(t.toFixed(o).replace(\".\",\"\")),a=Number.parseInt(e.toFixed(o).replace(\".\",\"\"));return i%a/10**o}var DS=class t extends yr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==$t.number){let i=this._getOrReturnCtx(e);return Ut(i,{code:Tt.invalid_type,expected:$t.number,received:i.parsedType}),An}let r,o=new Tl;for(let i of this._def.checks)i.kind===\"int\"?Ur.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.invalid_type,expected:\"integer\",received:\"float\",message:i.message}),o.dirty()):i.kind===\"min\"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.too_small,minimum:i.value,type:\"number\",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind===\"max\"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.too_big,maximum:i.value,type:\"number\",inclusive:i.inclusive,exact:!1,message:i.message}),o.dirty()):i.kind===\"multipleOf\"?fct(e.data,i.value)!==0&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):i.kind===\"finite\"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.not_finite,message:i.message}),o.dirty()):Ur.assertNever(i);return{status:o.value,value:e.data}}gte(e,n){return this.setLimit(\"min\",e,!0,ln.toString(n))}gt(e,n){return this.setLimit(\"min\",e,!1,ln.toString(n))}lte(e,n){return this.setLimit(\"max\",e,!0,ln.toString(n))}lt(e,n){return this.setLimit(\"max\",e,!1,ln.toString(n))}setLimit(e,n,r,o){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:ln.toString(o)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:\"int\",message:ln.toString(e)})}positive(e){return this._addCheck({kind:\"min\",value:0,inclusive:!1,message:ln.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:0,inclusive:!1,message:ln.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:0,inclusive:!0,message:ln.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:0,inclusive:!0,message:ln.toString(e)})}multipleOf(e,n){return this._addCheck({kind:\"multipleOf\",value:e,message:ln.toString(n)})}finite(e){return this._addCheck({kind:\"finite\",message:ln.toString(e)})}safe(e){return this._addCheck({kind:\"min\",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ln.toString(e)})._addCheck({kind:\"max\",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ln.toString(e)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind===\"min\"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind===\"max\"&&(e===null||n.value<e)&&(e=n.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===\"int\"||e.kind===\"multipleOf\"&&Ur.isInteger(e.value))}get isFinite(){let e=null,n=null;for(let r of this._def.checks){if(r.kind===\"finite\"||r.kind===\"int\"||r.kind===\"multipleOf\")return!0;r.kind===\"min\"?(n===null||r.value>n)&&(n=r.value):r.kind===\"max\"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(n)&&Number.isFinite(e)}};DS.create=t=>new DS({checks:[],typeName:Pn.ZodNumber,coerce:t?.coerce||!1,...rr(t)});var FS=class t extends yr{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==$t.bigint)return this._getInvalidInput(e);let r,o=new Tl;for(let i of this._def.checks)i.kind===\"min\"?(i.inclusive?e.data<i.value:e.data<=i.value)&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.too_small,type:\"bigint\",minimum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind===\"max\"?(i.inclusive?e.data>i.value:e.data>=i.value)&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.too_big,type:\"bigint\",maximum:i.value,inclusive:i.inclusive,message:i.message}),o.dirty()):i.kind===\"multipleOf\"?e.data%i.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Ut(r,{code:Tt.not_multiple_of,multipleOf:i.value,message:i.message}),o.dirty()):Ur.assertNever(i);return{status:o.value,value:e.data}}_getInvalidInput(e){let n=this._getOrReturnCtx(e);return Ut(n,{code:Tt.invalid_type,expected:$t.bigint,received:n.parsedType}),An}gte(e,n){return this.setLimit(\"min\",e,!0,ln.toString(n))}gt(e,n){return this.setLimit(\"min\",e,!1,ln.toString(n))}lte(e,n){return this.setLimit(\"max\",e,!0,ln.toString(n))}lt(e,n){return this.setLimit(\"max\",e,!1,ln.toString(n))}setLimit(e,n,r,o){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:ln.toString(o)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!1,message:ln.toString(e)})}negative(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!1,message:ln.toString(e)})}nonpositive(e){return this._addCheck({kind:\"max\",value:BigInt(0),inclusive:!0,message:ln.toString(e)})}nonnegative(e){return this._addCheck({kind:\"min\",value:BigInt(0),inclusive:!0,message:ln.toString(e)})}multipleOf(e,n){return this._addCheck({kind:\"multipleOf\",value:e,message:ln.toString(n)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind===\"min\"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind===\"max\"&&(e===null||n.value<e)&&(e=n.value);return e}};FS.create=t=>new FS({checks:[],typeName:Pn.ZodBigInt,coerce:t?.coerce??!1,...rr(t)});var US=class extends yr{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==$t.boolean){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.boolean,received:r.parsedType}),An}return Au(e.data)}};US.create=t=>new US({typeName:Pn.ZodBoolean,coerce:t?.coerce||!1,...rr(t)});var jS=class t extends yr{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==$t.date){let i=this._getOrReturnCtx(e);return Ut(i,{code:Tt.invalid_type,expected:$t.date,received:i.parsedType}),An}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return Ut(i,{code:Tt.invalid_date}),An}let r=new Tl,o;for(let i of this._def.checks)i.kind===\"min\"?e.data.getTime()<i.value&&(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:\"date\"}),r.dirty()):i.kind===\"max\"?e.data.getTime()>i.value&&(o=this._getOrReturnCtx(e,o),Ut(o,{code:Tt.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:\"date\"}),r.dirty()):Ur.assertNever(i);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:\"min\",value:e.getTime(),message:ln.toString(n)})}max(e,n){return this._addCheck({kind:\"max\",value:e.getTime(),message:ln.toString(n)})}get minDate(){let e=null;for(let n of this._def.checks)n.kind===\"min\"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let n of this._def.checks)n.kind===\"max\"&&(e===null||n.value<e)&&(e=n.value);return e!=null?new Date(e):null}};jS.create=t=>new jS({checks:[],coerce:t?.coerce||!1,typeName:Pn.ZodDate,...rr(t)});var TA=class extends yr{_parse(e){if(this._getType(e)!==$t.symbol){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.symbol,received:r.parsedType}),An}return Au(e.data)}};TA.create=t=>new TA({typeName:Pn.ZodSymbol,...rr(t)});var zS=class extends yr{_parse(e){if(this._getType(e)!==$t.undefined){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.undefined,received:r.parsedType}),An}return Au(e.data)}};zS.create=t=>new zS({typeName:Pn.ZodUndefined,...rr(t)});var HS=class extends yr{_parse(e){if(this._getType(e)!==$t.null){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.null,received:r.parsedType}),An}return Au(e.data)}};HS.create=t=>new HS({typeName:Pn.ZodNull,...rr(t)});var v3=class extends yr{constructor(){super(...arguments),this._any=!0}_parse(e){return Au(e.data)}};v3.create=t=>new v3({typeName:Pn.ZodAny,...rr(t)});var e2=class extends yr{constructor(){super(...arguments),this._unknown=!0}_parse(e){return Au(e.data)}};e2.create=t=>new e2({typeName:Pn.ZodUnknown,...rr(t)});var gg=class extends yr{_parse(e){let n=this._getOrReturnCtx(e);return Ut(n,{code:Tt.invalid_type,expected:$t.never,received:n.parsedType}),An}};gg.create=t=>new gg({typeName:Pn.ZodNever,...rr(t)});var RA=class extends yr{_parse(e){if(this._getType(e)!==$t.undefined){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.void,received:r.parsedType}),An}return Au(e.data)}};RA.create=t=>new RA({typeName:Pn.ZodVoid,...rr(t)});var t2=class t extends yr{_parse(e){let{ctx:n,status:r}=this._processInputParams(e),o=this._def;if(n.parsedType!==$t.array)return Ut(n,{code:Tt.invalid_type,expected:$t.array,received:n.parsedType}),An;if(o.exactLength!==null){let a=n.data.length>o.exactLength.value,c=n.data.length<o.exactLength.value;(a||c)&&(Ut(n,{code:a?Tt.too_big:Tt.too_small,minimum:c?o.exactLength.value:void 0,maximum:a?o.exactLength.value:void 0,type:\"array\",inclusive:!0,exact:!0,message:o.exactLength.message}),r.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(Ut(n,{code:Tt.too_small,minimum:o.minLength.value,type:\"array\",inclusive:!0,exact:!1,message:o.minLength.message}),r.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(Ut(n,{code:Tt.too_big,maximum:o.maxLength.value,type:\"array\",inclusive:!0,exact:!1,message:o.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,c)=>o.type._parseAsync(new Am(n,a,n.path,c)))).then(a=>Tl.mergeArray(r,a));let i=[...n.data].map((a,c)=>o.type._parseSync(new Am(n,a,n.path,c)));return Tl.mergeArray(r,i)}get element(){return this._def.type}min(e,n){return new t({...this._def,minLength:{value:e,message:ln.toString(n)}})}max(e,n){return new t({...this._def,maxLength:{value:e,message:ln.toString(n)}})}length(e,n){return new t({...this._def,exactLength:{value:e,message:ln.toString(n)}})}nonempty(e){return this.min(1,e)}};t2.create=(t,e)=>new t2({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Pn.ZodArray,...rr(e)});function AA(t){if(t instanceof Mf){let e={};for(let n in t.shape){let r=t.shape[n];e[n]=Cm.create(AA(r))}return new Mf({...t._def,shape:()=>e})}else return t instanceof t2?new t2({...t._def,type:AA(t.element)}):t instanceof Cm?Cm.create(AA(t.unwrap())):t instanceof T1?T1.create(AA(t.unwrap())):t instanceof A1?A1.create(t.items.map(e=>AA(e))):t}var Mf=class t extends yr{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),n=Ur.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==$t.object){let d=this._getOrReturnCtx(e);return Ut(d,{code:Tt.invalid_type,expected:$t.object,received:d.parsedType}),An}let{status:r,ctx:o}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),c=[];if(!(this._def.catchall instanceof gg&&this._def.unknownKeys===\"strip\"))for(let d in o.data)a.includes(d)||c.push(d);let u=[];for(let d of a){let h=i[d],m=o.data[d];u.push({key:{status:\"valid\",value:d},value:h._parse(new Am(o,m,o.path,d)),alwaysSet:d in o.data})}if(this._def.catchall instanceof gg){let d=this._def.unknownKeys;if(d===\"passthrough\")for(let h of c)u.push({key:{status:\"valid\",value:h},value:{status:\"valid\",value:o.data[h]}});else if(d===\"strict\")c.length>0&&(Ut(o,{code:Tt.unrecognized_keys,keys:c}),r.dirty());else if(d!==\"strip\")throw new Error(\"Internal ZodObject error: invalid unknownKeys value.\")}else{let d=this._def.catchall;for(let h of c){let m=o.data[h];u.push({key:{status:\"valid\",value:h},value:d._parse(new Am(o,m,o.path,h)),alwaysSet:h in o.data})}}return o.common.async?Promise.resolve().then(async()=>{let d=[];for(let h of u){let m=await h.key,g=await h.value;d.push({key:m,value:g,alwaysSet:h.alwaysSet})}return d}).then(d=>Tl.mergeObjectSync(r,d)):Tl.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(e){return ln.errToObj,new t({...this._def,unknownKeys:\"strict\",...e!==void 0?{errorMap:(n,r)=>{let o=this._def.errorMap?.(n,r).message??r.defaultError;return n.code===\"unrecognized_keys\"?{message:ln.errToObj(e).message??o}:{message:o}}}:{}})}strip(){return new t({...this._def,unknownKeys:\"strip\"})}passthrough(){return new t({...this._def,unknownKeys:\"passthrough\"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Pn.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let n={};for(let r of Ur.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}omit(e){let n={};for(let r of Ur.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}deepPartial(){return AA(this)}partial(e){let n={};for(let r of Ur.objectKeys(this.shape)){let o=this.shape[r];e&&!e[r]?n[r]=o:n[r]=o.optional()}return new t({...this._def,shape:()=>n})}required(e){let n={};for(let r of Ur.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let i=this.shape[r];for(;i instanceof Cm;)i=i._def.innerType;n[r]=i}return new t({...this._def,shape:()=>n})}keyof(){return O7e(Ur.objectKeys(this.shape))}};Mf.create=(t,e)=>new Mf({shape:()=>t,unknownKeys:\"strip\",catchall:gg.create(),typeName:Pn.ZodObject,...rr(e)});Mf.strictCreate=(t,e)=>new Mf({shape:()=>t,unknownKeys:\"strict\",catchall:gg.create(),typeName:Pn.ZodObject,...rr(e)});Mf.lazycreate=(t,e)=>new Mf({shape:t,unknownKeys:\"strip\",catchall:gg.create(),typeName:Pn.ZodObject,...rr(e)});var qS=class extends yr{_parse(e){let{ctx:n}=this._processInputParams(e),r=this._def.options;function o(i){for(let c of i)if(c.result.status===\"valid\")return c.result;for(let c of i)if(c.result.status===\"dirty\")return n.common.issues.push(...c.ctx.common.issues),c.result;let a=i.map(c=>new Pf(c.ctx.common.issues));return Ut(n,{code:Tt.invalid_union,unionErrors:a}),An}if(n.common.async)return Promise.all(r.map(async i=>{let a={...n,common:{...n.common,issues:[]},parent:null};return{result:await i._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(o);{let i,a=[];for(let u of r){let d={...n,common:{...n.common,issues:[]},parent:null},h=u._parseSync({data:n.data,path:n.path,parent:d});if(h.status===\"valid\")return h;h.status===\"dirty\"&&!i&&(i={result:h,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(i)return n.common.issues.push(...i.ctx.common.issues),i.result;let c=a.map(u=>new Pf(u));return Ut(n,{code:Tt.invalid_union,unionErrors:c}),An}}get options(){return this._def.options}};qS.create=(t,e)=>new qS({options:t,typeName:Pn.ZodUnion,...rr(e)});var Xv=t=>t instanceof VS?Xv(t.schema):t instanceof Tm?Xv(t.innerType()):t instanceof $S?[t.value]:t instanceof KS?t.options:t instanceof GS?Ur.objectValues(t.enum):t instanceof ZS?Xv(t._def.innerType):t instanceof zS?[void 0]:t instanceof HS?[null]:t instanceof Cm?[void 0,...Xv(t.unwrap())]:t instanceof T1?[null,...Xv(t.unwrap())]:t instanceof JO||t instanceof QS?Xv(t.unwrap()):t instanceof YS?Xv(t._def.innerType):[],xq=class t extends yr{_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==$t.object)return Ut(n,{code:Tt.invalid_type,expected:$t.object,received:n.parsedType}),An;let r=this.discriminator,o=n.data[r],i=this.optionsMap.get(o);return i?n.common.async?i._parseAsync({data:n.data,path:n.path,parent:n}):i._parseSync({data:n.data,path:n.path,parent:n}):(Ut(n,{code:Tt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),An)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){let o=new Map;for(let i of n){let a=Xv(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \\\\`${e}\\\\` could not be extracted from all schema options`);for(let c of a){if(o.has(c))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(c)}`);o.set(c,i)}}return new t({typeName:Pn.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:o,...rr(r)})}};function xoe(t,e){let n=C1(t),r=C1(e);if(t===e)return{valid:!0,data:t};if(n===$t.object&&r===$t.object){let o=Ur.objectKeys(e),i=Ur.objectKeys(t).filter(c=>o.indexOf(c)!==-1),a={...t,...e};for(let c of i){let u=xoe(t[c],e[c]);if(!u.valid)return{valid:!1};a[c]=u.data}return{valid:!0,data:a}}else if(n===$t.array&&r===$t.array){if(t.length!==e.length)return{valid:!1};let o=[];for(let i=0;i<t.length;i++){let a=t[i],c=e[i],u=xoe(a,c);if(!u.valid)return{valid:!1};o.push(u.data)}return{valid:!0,data:o}}else return n===$t.date&&r===$t.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var WS=class extends yr{_parse(e){let{status:n,ctx:r}=this._processInputParams(e),o=(i,a)=>{if(vq(i)||vq(a))return An;let c=xoe(i.value,a.value);return c.valid?((wq(i)||wq(a))&&n.dirty(),{status:n.value,value:c.data}):(Ut(r,{code:Tt.invalid_intersection_types}),An)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([i,a])=>o(i,a)):o(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};WS.create=(t,e,n)=>new WS({left:t,right:e,typeName:Pn.ZodIntersection,...rr(n)});var A1=class t extends yr{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==$t.array)return Ut(r,{code:Tt.invalid_type,expected:$t.array,received:r.parsedType}),An;if(r.data.length<this._def.items.length)return Ut(r,{code:Tt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),An;!this._def.rest&&r.data.length>this._def.items.length&&(Ut(r,{code:Tt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:\"array\"}),n.dirty());let i=[...r.data].map((a,c)=>{let u=this._def.items[c]||this._def.rest;return u?u._parse(new Am(r,a,r.path,c)):null}).filter(a=>!!a);return r.common.async?Promise.all(i).then(a=>Tl.mergeArray(n,a)):Tl.mergeArray(n,i)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};A1.create=(t,e)=>{if(!Array.isArray(t))throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");return new A1({items:t,typeName:Pn.ZodTuple,rest:null,...rr(e)})};var Eq=class t extends yr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==$t.object)return Ut(r,{code:Tt.invalid_type,expected:$t.object,received:r.parsedType}),An;let o=[],i=this._def.keyType,a=this._def.valueType;for(let c in r.data)o.push({key:i._parse(new Am(r,c,r.path,c)),value:a._parse(new Am(r,r.data[c],r.path,c)),alwaysSet:c in r.data});return r.common.async?Tl.mergeObjectAsync(n,o):Tl.mergeObjectSync(n,o)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof yr?new t({keyType:e,valueType:n,typeName:Pn.ZodRecord,...rr(r)}):new t({keyType:b3.create(),valueType:e,typeName:Pn.ZodRecord,...rr(n)})}},IA=class extends yr{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==$t.map)return Ut(r,{code:Tt.invalid_type,expected:$t.map,received:r.parsedType}),An;let o=this._def.keyType,i=this._def.valueType,a=[...r.data.entries()].map(([c,u],d)=>({key:o._parse(new Am(r,c,r.path,[d,\"key\"])),value:i._parse(new Am(r,u,r.path,[d,\"value\"]))}));if(r.common.async){let c=new Map;return Promise.resolve().then(async()=>{for(let u of a){let d=await u.key,h=await u.value;if(d.status===\"aborted\"||h.status===\"aborted\")return An;(d.status===\"dirty\"||h.status===\"dirty\")&&n.dirty(),c.set(d.value,h.value)}return{status:n.value,value:c}})}else{let c=new Map;for(let u of a){let d=u.key,h=u.value;if(d.status===\"aborted\"||h.status===\"aborted\")return An;(d.status===\"dirty\"||h.status===\"dirty\")&&n.dirty(),c.set(d.value,h.value)}return{status:n.value,value:c}}}};IA.create=(t,e,n)=>new IA({valueType:e,keyType:t,typeName:Pn.ZodMap,...rr(n)});var OA=class t extends yr{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==$t.set)return Ut(r,{code:Tt.invalid_type,expected:$t.set,received:r.parsedType}),An;let o=this._def;o.minSize!==null&&r.data.size<o.minSize.value&&(Ut(r,{code:Tt.too_small,minimum:o.minSize.value,type:\"set\",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&r.data.size>o.maxSize.value&&(Ut(r,{code:Tt.too_big,maximum:o.maxSize.value,type:\"set\",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());let i=this._def.valueType;function a(u){let d=new Set;for(let h of u){if(h.status===\"aborted\")return An;h.status===\"dirty\"&&n.dirty(),d.add(h.value)}return{status:n.value,value:d}}let c=[...r.data.values()].map((u,d)=>i._parse(new Am(r,u,r.path,d)));return r.common.async?Promise.all(c).then(u=>a(u)):a(c)}min(e,n){return new t({...this._def,minSize:{value:e,message:ln.toString(n)}})}max(e,n){return new t({...this._def,maxSize:{value:e,message:ln.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}};OA.create=(t,e)=>new OA({valueType:t,minSize:null,maxSize:null,typeName:Pn.ZodSet,...rr(e)});var Sq=class t extends yr{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==$t.function)return Ut(n,{code:Tt.invalid_type,expected:$t.function,received:n.parsedType}),An;function r(c,u){return QO({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,_A(),Jv].filter(d=>!!d),issueData:{code:Tt.invalid_arguments,argumentsError:u}})}function o(c,u){return QO({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,_A(),Jv].filter(d=>!!d),issueData:{code:Tt.invalid_return_type,returnTypeError:u}})}let i={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof w3){let c=this;return Au(async function(...u){let d=new Pf([]),h=await c._def.args.parseAsync(u,i).catch(b=>{throw d.addIssue(r(u,b)),d}),m=await Reflect.apply(a,this,h);return await c._def.returns._def.type.parseAsync(m,i).catch(b=>{throw d.addIssue(o(m,b)),d})})}else{let c=this;return Au(function(...u){let d=c._def.args.safeParse(u,i);if(!d.success)throw new Pf([r(u,d.error)]);let h=Reflect.apply(a,this,d.data),m=c._def.returns.safeParse(h,i);if(!m.success)throw new Pf([o(h,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:A1.create(e).rest(e2.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new t({args:e||A1.create([]).rest(e2.create()),returns:n||e2.create(),typeName:Pn.ZodFunction,...rr(r)})}},VS=class extends yr{get schema(){return this._def.getter()}_parse(e){let{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};VS.create=(t,e)=>new VS({getter:t,typeName:Pn.ZodLazy,...rr(e)});var $S=class extends yr{_parse(e){if(e.data!==this._def.value){let n=this._getOrReturnCtx(e);return Ut(n,{received:n.data,code:Tt.invalid_literal,expected:this._def.value}),An}return{status:\"valid\",value:e.data}}get value(){return this._def.value}};$S.create=(t,e)=>new $S({value:t,typeName:Pn.ZodLiteral,...rr(e)});function O7e(t,e){return new KS({values:t,typeName:Pn.ZodEnum,...rr(e)})}var KS=class t extends yr{_parse(e){if(typeof e.data!=\"string\"){let n=this._getOrReturnCtx(e),r=this._def.values;return Ut(n,{expected:Ur.joinValues(r),received:n.parsedType,code:Tt.invalid_type}),An}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let n=this._getOrReturnCtx(e),r=this._def.values;return Ut(n,{received:n.data,code:Tt.invalid_enum_value,options:r}),An}return Au(e.data)}get options(){return this._def.values}get enum(){let e={};for(let n of this._def.values)e[n]=n;return e}get Values(){let e={};for(let n of this._def.values)e[n]=n;return e}get Enum(){let e={};for(let n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return t.create(e,{...this._def,...n})}exclude(e,n=this._def){return t.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}};KS.create=O7e;var GS=class extends yr{_parse(e){let n=Ur.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==$t.string&&r.parsedType!==$t.number){let o=Ur.objectValues(n);return Ut(r,{expected:Ur.joinValues(o),received:r.parsedType,code:Tt.invalid_type}),An}if(this._cache||(this._cache=new Set(Ur.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let o=Ur.objectValues(n);return Ut(r,{received:r.data,code:Tt.invalid_enum_value,options:o}),An}return Au(e.data)}get enum(){return this._def.values}};GS.create=(t,e)=>new GS({values:t,typeName:Pn.ZodNativeEnum,...rr(e)});var w3=class extends yr{unwrap(){return this._def.type}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==$t.promise&&n.common.async===!1)return Ut(n,{code:Tt.invalid_type,expected:$t.promise,received:n.parsedType}),An;let r=n.parsedType===$t.promise?n.data:Promise.resolve(n.data);return Au(r.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}};w3.create=(t,e)=>new w3({type:t,typeName:Pn.ZodPromise,...rr(e)});var Tm=class extends yr{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Pn.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:n,ctx:r}=this._processInputParams(e),o=this._def.effect||null,i={addIssue:a=>{Ut(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(i.addIssue=i.addIssue.bind(i),o.type===\"preprocess\"){let a=o.transform(r.data,i);if(r.common.async)return Promise.resolve(a).then(async c=>{if(n.value===\"aborted\")return An;let u=await this._def.schema._parseAsync({data:c,path:r.path,parent:r});return u.status===\"aborted\"?An:u.status===\"dirty\"?BS(u.value):n.value===\"dirty\"?BS(u.value):u});{if(n.value===\"aborted\")return An;let c=this._def.schema._parseSync({data:a,path:r.path,parent:r});return c.status===\"aborted\"?An:c.status===\"dirty\"?BS(c.value):n.value===\"dirty\"?BS(c.value):c}}if(o.type===\"refinement\"){let a=c=>{let u=o.refinement(c,i);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");return c};if(r.common.async===!1){let c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status===\"aborted\"?An:(c.status===\"dirty\"&&n.dirty(),a(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status===\"aborted\"?An:(c.status===\"dirty\"&&n.dirty(),a(c.value).then(()=>({status:n.value,value:c.value}))))}if(o.type===\"transform\")if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!y3(a))return An;let c=o.transform(a.value,i);if(c instanceof Promise)throw new Error(\"Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.\");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>y3(a)?Promise.resolve(o.transform(a.value,i)).then(c=>({status:n.value,value:c})):An);Ur.assertNever(o)}};Tm.create=(t,e,n)=>new Tm({schema:t,typeName:Pn.ZodEffects,effect:e,...rr(n)});Tm.createWithPreprocess=(t,e,n)=>new Tm({schema:e,effect:{type:\"preprocess\",transform:t},typeName:Pn.ZodEffects,...rr(n)});var Cm=class extends yr{_parse(e){return this._getType(e)===$t.undefined?Au(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Cm.create=(t,e)=>new Cm({innerType:t,typeName:Pn.ZodOptional,...rr(e)});var T1=class extends yr{_parse(e){return this._getType(e)===$t.null?Au(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};T1.create=(t,e)=>new T1({innerType:t,typeName:Pn.ZodNullable,...rr(e)});var ZS=class extends yr{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return n.parsedType===$t.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};ZS.create=(t,e)=>new ZS({innerType:t,typeName:Pn.ZodDefault,defaultValue:typeof e.default==\"function\"?e.default:()=>e.default,...rr(e)});var YS=class extends yr{_parse(e){let{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return CA(o)?o.then(i=>({status:\"valid\",value:i.status===\"valid\"?i.value:this._def.catchValue({get error(){return new Pf(r.common.issues)},input:r.data})})):{status:\"valid\",value:o.status===\"valid\"?o.value:this._def.catchValue({get error(){return new Pf(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};YS.create=(t,e)=>new YS({innerType:t,typeName:Pn.ZodCatch,catchValue:typeof e.catch==\"function\"?e.catch:()=>e.catch,...rr(e)});var PA=class extends yr{_parse(e){if(this._getType(e)!==$t.nan){let r=this._getOrReturnCtx(e);return Ut(r,{code:Tt.invalid_type,expected:$t.nan,received:r.parsedType}),An}return{status:\"valid\",value:e.data}}};PA.create=t=>new PA({typeName:Pn.ZodNaN,...rr(t)});var hct=Symbol(\"zod_brand\"),JO=class extends yr{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},XO=class t extends yr{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let i=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return i.status===\"aborted\"?An:i.status===\"dirty\"?(n.dirty(),BS(i.value)):this._def.out._parseAsync({data:i.value,path:r.path,parent:r})})();{let o=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return o.status===\"aborted\"?An:o.status===\"dirty\"?(n.dirty(),{status:\"dirty\",value:o.value}):this._def.out._parseSync({data:o.value,path:r.path,parent:r})}}static create(e,n){return new t({in:e,out:n,typeName:Pn.ZodPipeline})}},QS=class extends yr{_parse(e){let n=this._def.innerType._parse(e),r=o=>(y3(o)&&(o.value=Object.freeze(o.value)),o);return CA(n)?n.then(o=>r(o)):r(n)}unwrap(){return this._def.innerType}};QS.create=(t,e)=>new QS({innerType:t,typeName:Pn.ZodReadonly,...rr(e)});function A7e(t,e){let n=typeof t==\"function\"?t(e):typeof t==\"string\"?{message:t}:t;return typeof n==\"string\"?{message:n}:n}function P7e(t,e={},n){return t?v3.create().superRefine((r,o)=>{let i=t(r);if(i instanceof Promise)return i.then(a=>{if(!a){let c=A7e(e,r),u=c.fatal??n??!0;o.addIssue({code:\"custom\",...c,fatal:u})}});if(!i){let a=A7e(e,r),c=a.fatal??n??!0;o.addIssue({code:\"custom\",...a,fatal:c})}}):v3.create()}var pct={object:Mf.lazycreate},Pn;(function(t){t.ZodString=\"ZodString\",t.ZodNumber=\"ZodNumber\",t.ZodNaN=\"ZodNaN\",t.ZodBigInt=\"ZodBigInt\",t.ZodBoolean=\"ZodBoolean\",t.ZodDate=\"ZodDate\",t.ZodSymbol=\"ZodSymbol\",t.ZodUndefined=\"ZodUndefined\",t.ZodNull=\"ZodNull\",t.ZodAny=\"ZodAny\",t.ZodUnknown=\"ZodUnknown\",t.ZodNever=\"ZodNever\",t.ZodVoid=\"ZodVoid\",t.ZodArray=\"ZodArray\",t.ZodObject=\"ZodObject\",t.ZodUnion=\"ZodUnion\",t.ZodDiscriminatedUnion=\"ZodDiscriminatedUnion\",t.ZodIntersection=\"ZodIntersection\",t.ZodTuple=\"ZodTuple\",t.ZodRecord=\"ZodRecord\",t.ZodMap=\"ZodMap\",t.ZodSet=\"ZodSet\",t.ZodFunction=\"ZodFunction\",t.ZodLazy=\"ZodLazy\",t.ZodLiteral=\"ZodLiteral\",t.ZodEnum=\"ZodEnum\",t.ZodEffects=\"ZodEffects\",t.ZodNativeEnum=\"ZodNativeEnum\",t.ZodOptional=\"ZodOptional\",t.ZodNullable=\"ZodNullable\",t.ZodDefault=\"ZodDefault\",t.ZodCatch=\"ZodCatch\",t.ZodPromise=\"ZodPromise\",t.ZodBranded=\"ZodBranded\",t.ZodPipeline=\"ZodPipeline\",t.ZodReadonly=\"ZodReadonly\"})(Pn||(Pn={}));var mct=(t,e={message:`Input not instance of ${t.name}`})=>P7e(n=>n instanceof t,e),M7e=b3.create,N7e=DS.create,gct=PA.create,yct=FS.create,L7e=US.create,bct=jS.create,vct=TA.create,wct=zS.create,xct=HS.create,Ect=v3.create,Sct=e2.create,kct=gg.create,_ct=RA.create,Cct=t2.create,Act=Mf.create,Tct=Mf.strictCreate,Rct=qS.create,Ict=xq.create,Oct=WS.create,Pct=A1.create,Mct=Eq.create,Nct=IA.create,Lct=OA.create,Bct=Sq.create,Dct=VS.create,Fct=$S.create,Uct=KS.create,jct=GS.create,zct=w3.create,Hct=Tm.create,qct=Cm.create,Wct=T1.create,Vct=Tm.createWithPreprocess,$ct=XO.create,Kct=()=>M7e().optional(),Gct=()=>N7e().optional(),Zct=()=>L7e().optional(),Yct={string:t=>b3.create({...t,coerce:!0}),number:t=>DS.create({...t,coerce:!0}),boolean:t=>US.create({...t,coerce:!0}),bigint:t=>FS.create({...t,coerce:!0}),date:t=>jS.create({...t,coerce:!0})};var Qct=An;p();var Jct=/[@#$%^&*+=\\\\/\\\\\\\\|~«»]/,Xct=/(!{2,}|\\\\?{2,}|-{2,})/,elt=/[\\\\u{1F300}-\\\\u{1F9FF}]|[\\\\u{2702}-\\\\u{27B0}]|[\\\\u{2600}-\\\\u{26FF}]|[\\\\u{2B00}-\\\\u{2BFF}]/u,JS=({max:t,noSpaces:e}={})=>(e?st.string().max(t??Number.POSITIVE_INFINITY).regex(/^\\\\S*$/,\"Spaces are not allowed\"):st.string().max(t??Number.POSITIVE_INFINITY)).refine(r=>!elt.test(r),{message:\"Emojis and symbols are not allowed\"}).refine(r=>!Jct.test(r),{message:\"Special characters (@, #, $, %, ^, &, *, +, =, /, \\\\\\\\, |, ~, \\\\xAB, \\\\xBB) are not allowed\"}).refine(r=>!Xct.test(r),{message:\"Repeated punctuations (!!, ??, --) are not allowed\"}),Tu=st.string().url().startsWith(\"https://\",{message:\"Must be an https url\"}).max(1024),kq=st.string().max(32),_q=st.string().max(32),tlt=/^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}\\\\/(?:[-a-z0-9]{3,8}:[-.%a-zA-Z0-9]{1,128}(?:\\\\/[-.%a-zA-Z0-9]{1,78})?|native)$/,B7e=st.string().regex(tlt,{message:\"Invalid CAIP-19 asset ID\"}),Cq=st.string().regex(/^#([0-9A-F]{3}|[0-9A-F]{6})$/i,{message:\"Invalid hex color code. It should be in the format #RRGGBB or #RGB.\"}),D7e=st.union([st.literal(\"1:1\"),st.literal(\"3:2\")]),F7e=st.object({header:st.string(),payload:st.string(),signature:st.string()}),_0n=st.object({fid:st.number(),type:st.literal(\"app_key\"),key:st.string().startsWith(\"0x\")});var nlt=st.object({type:st.literal(\"launch_frame\"),name:kq,url:Tu.optional(),splashImageUrl:Tu.optional(),splashBackgroundColor:Cq.optional()}),rlt=st.object({type:st.literal(\"view_token\"),token:B7e}),olt=st.discriminatedUnion(\"type\",[nlt,rlt]),ilt=st.object({title:_q,action:olt}),I0n=st.object({version:st.literal(\"next\"),imageUrl:Tu,aspectRatio:D7e.optional(),button:ilt});p();p();var Eoe=st.object({url:st.string(),token:st.string()}),L0n=st.object({notificationId:st.string().max(128),title:st.string().max(32),body:st.string().max(128),targetUrl:Tu,tokens:st.string().array().max(100)}),B0n=st.object({result:st.object({successfulTokens:st.array(st.string()),invalidTokens:st.array(st.string()),rateLimitedTokens:st.array(st.string())})});var slt=st.object({event:st.literal(\"frame_added\"),notificationDetails:Eoe.optional()}),alt=st.object({event:st.literal(\"frame_removed\")}),clt=st.object({event:st.literal(\"notifications_enabled\"),notificationDetails:Eoe.required()}),llt=st.object({event:st.literal(\"notifications_disabled\")}),z0n=st.discriminatedUnion(\"event\",[slt,alt,clt,llt]);p();var ult=st.enum([\"games\",\"social\",\"finance\",\"utility\",\"productivity\",\"health-fitness\",\"news-media\",\"music\",\"shopping\",\"education\",\"developer-tools\",\"entertainment\",\"art-creativity\"]),U7e=[\"eip155:1\",\"eip155:8453\",\"eip155:42161\",\"eip155:421614\",\"eip155:84532\",\"eip155:666666666\",\"eip155:100\",\"eip155:10\",\"eip155:11155420\",\"eip155:137\",\"eip155:11155111\",\"eip155:7777777\",\"eip155:130\",\"eip155:10143\",\"eip155:42220\",\"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\"],dlt=st.object({version:st.union([st.literal(\"0.0.0\"),st.literal(\"0.0.1\"),st.literal(\"1\"),st.literal(\"next\")]),name:kq,iconUrl:Tu,homeUrl:Tu,imageUrl:Tu.optional(),buttonTitle:_q.optional(),splashImageUrl:Tu.optional(),splashBackgroundColor:Cq.optional(),webhookUrl:Tu.optional(),subtitle:JS({max:30}).optional(),description:JS({max:170}).optional(),screenshotUrls:st.array(Tu).max(3).optional(),primaryCategory:ult.optional(),tags:st.array(JS({max:20,noSpaces:!0})).max(5).optional(),heroImageUrl:Tu.optional(),tagline:JS({max:30}).optional(),ogTitle:JS({max:30}).optional(),ogDescription:JS({max:100}).optional(),ogImageUrl:Tu.optional(),noindex:st.boolean().optional(),requiredChains:st.array(st.enum(U7e)).max(U7e.length).optional(),requiredCapabilities:st.array(st.enum(boe)).max(boe.length).optional(),castShareUrl:Tu.optional()}).refine(t=>{if(t.castShareUrl===void 0)return!0;try{let e=new URL(t.homeUrl).hostname,n=new URL(t.castShareUrl).hostname;return e===n}catch{return!1}},{message:\"castShareUrl must have the same domain as homeUrl\",path:[\"castShareUrl\"]}),K0n=st.object({accountAssociation:F7e,frame:dlt.optional()});p();p();var Ln=he(Kb());p();kL();p();y6();WZ();v6();var R1=BigInt(0),Od=BigInt(1),Soe=BigInt(2),flt=BigInt(8),hlt={zip215:!0};function plt(t,e,n,r){let o=t.sqr(n),i=t.sqr(r),a=t.add(t.mul(e.a,o),i),c=t.add(t.ONE,t.mul(e.d,t.mul(o,i)));return t.eql(a,c)}function mlt(t,e={}){let{Fp:n,Fn:r}=IB(\"edwards\",t,e),{h:o,n:i}=t;Uy(e,{},{uvRatio:\"function\"});let a=Soe<<BigInt(r.BYTES*8)-Od,c=C=>n.create(C),u=e.uvRatio||((C,T)=>{try{return{isValid:!0,value:n.sqrt(n.div(C,T))}}catch{return{isValid:!1,value:R1}}});if(!plt(n,t,t.Gx,t.Gy))throw new Error(\"bad curve params: generator point\");function d(C,T,R=!1){let L=R?Od:R1;return Fy(\"coordinate \"+C,T,L,a),T}function h(C){if(!(C instanceof b))throw new Error(\"ExtendedPoint expected\")}let m=X4((C,T)=>{let{ex:R,ey:L,ez:D}=C,G=C.is0();T==null&&(T=G?flt:n.inv(D));let W=c(R*T),J=c(L*T),ne=c(D*T);if(G)return{x:R1,y:Od};if(ne!==Od)throw new Error(\"invZ was invalid\");return{x:W,y:J}}),g=X4(C=>{let{a:T,d:R}=t;if(C.is0())throw new Error(\"bad point: ZERO\");let{ex:L,ey:D,ez:G,et:W}=C,J=c(L*L),ne=c(D*D),ie=c(G*G),Z=c(ie*ie),ae=c(J*T),V=c(ie*c(ae+ne)),$=c(Z+c(R*c(J*ne)));if(V!==$)throw new Error(\"bad point: equation left != right (1)\");let F=c(L*D),_=c(G*W);if(F!==_)throw new Error(\"bad point: equation left != right (2)\");return!0});class b{constructor(T,R,L,D){this.ex=d(\"x\",T),this.ey=d(\"y\",R),this.ez=d(\"z\",L,!0),this.et=d(\"t\",D),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(T){if(T instanceof b)throw new Error(\"extended point not allowed\");let{x:R,y:L}=T||{};return d(\"x\",R),d(\"y\",L),new b(R,L,Od,c(R*L))}static normalizeZ(T){return AB(b,\"ez\",T)}static msm(T,R){return RB(b,r,T,R)}_setWindowSize(T){this.precompute(T)}precompute(T=8,R=!0){return E.setWindowSize(this,T),R||this.multiply(Soe),this}assertValidity(){g(this)}equals(T){h(T);let{ex:R,ey:L,ez:D}=this,{ex:G,ey:W,ez:J}=T,ne=c(R*J),ie=c(G*D),Z=c(L*J),ae=c(W*D);return ne===ie&&Z===ae}is0(){return this.equals(b.ZERO)}negate(){return new b(c(-this.ex),this.ey,this.ez,c(-this.et))}double(){let{a:T}=t,{ex:R,ey:L,ez:D}=this,G=c(R*R),W=c(L*L),J=c(Soe*c(D*D)),ne=c(T*G),ie=R+L,Z=c(c(ie*ie)-G-W),ae=ne+W,V=ae-J,$=ne-W,F=c(Z*V),_=c(ae*$),O=c(Z*$),z=c(V*ae);return new b(F,_,z,O)}add(T){h(T);let{a:R,d:L}=t,{ex:D,ey:G,ez:W,et:J}=this,{ex:ne,ey:ie,ez:Z,et:ae}=T,V=c(D*ne),$=c(G*ie),F=c(J*L*ae),_=c(W*Z),O=c((D+G)*(ne+ie)-V-$),z=_-F,N=_+F,B=c($-R*V),j=c(O*z),q=c(N*B),H=c(O*B),I=c(z*N);return new b(j,q,I,H)}subtract(T){return this.add(T.negate())}multiply(T){let R=T;Fy(\"scalar\",R,Od,i);let{p:L,f:D}=E.wNAFCached(this,R,b.normalizeZ);return b.normalizeZ([L,D])[0]}multiplyUnsafe(T,R=b.ZERO){let L=T;return Fy(\"scalar\",L,R1,i),L===R1?b.ZERO:this.is0()||L===Od?this:E.wNAFCachedUnsafe(this,L,b.normalizeZ,R)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}isTorsionFree(){return E.wNAFCachedUnsafe(this,i).is0()}toAffine(T){return m(this,T)}clearCofactor(){return o===Od?this:this.multiplyUnsafe(o)}static fromBytes(T,R=!1){return Zi(T),this.fromHex(T,R)}static fromHex(T,R=!1){let{d:L,a:D}=t,G=n.BYTES;T=Ho(\"pointHex\",T,G),pv(\"zip215\",R);let W=T.slice(),J=T[G-1];W[G-1]=J&-129;let ne=p6(W),ie=R?a:n.ORDER;Fy(\"pointHex.y\",ne,R1,ie);let Z=c(ne*ne),ae=c(Z-Od),V=c(L*Z-D),{isValid:$,value:F}=u(ae,V);if(!$)throw new Error(\"Point.fromHex: invalid y coordinate\");let _=(F&Od)===Od,O=(J&128)!==0;if(!R&&F===R1&&O)throw new Error(\"Point.fromHex: x=0 and x_0=1\");return O!==_&&(F=c(-F)),b.fromAffine({x:F,y:ne})}static fromPrivateScalar(T){return b.BASE.multiply(T)}toBytes(){let{x:T,y:R}=this.toAffine(),L=J4(R,n.BYTES);return L[L.length-1]|=T&Od?128:0,L}toRawBytes(){return this.toBytes()}toHex(){return Fp(this.toBytes())}toString(){return`<Point ${this.is0()?\"ZERO\":this.toHex()}>`}}b.BASE=new b(t.Gx,t.Gy,Od,c(t.Gx*t.Gy)),b.ZERO=new b(R1,Od,Od,R1),b.Fp=n,b.Fn=r;let E=TB(b,r.BYTES*8);return b}function glt(t,e){Uy(e,{hash:\"function\"},{adjustScalarBytes:\"function\",randomBytes:\"function\",domain:\"function\",prehash:\"function\",mapToCurve:\"function\"});let{prehash:n,hash:r}=e,{BASE:o,Fp:i,Fn:a}=t,c=a.ORDER,u=e.randomBytes||E5,d=e.adjustScalarBytes||(W=>W),h=e.domain||((W,J,ne)=>{if(pv(\"phflag\",ne),J.length||ne)throw new Error(\"Contexts/pre-hash are not supported\");return W});function m(W){return a.create(W)}function g(W){return m(p6(W))}function b(W){let J=i.BYTES;W=Ho(\"private key\",W,J);let ne=Ho(\"hashed private key\",r(W),2*J),ie=d(ne.slice(0,J)),Z=ne.slice(J,2*J),ae=g(ie);return{head:ie,prefix:Z,scalar:ae}}function E(W){let{head:J,prefix:ne,scalar:ie}=b(W),Z=o.multiply(ie),ae=Z.toBytes();return{head:J,prefix:ne,scalar:ie,point:Z,pointBytes:ae}}function C(W){return E(W).pointBytes}function T(W=Uint8Array.of(),...J){let ne=ws(...J);return g(r(h(ne,Ho(\"context\",W),!!n)))}function R(W,J,ne={}){W=Ho(\"message\",W),n&&(W=n(W));let{prefix:ie,scalar:Z,pointBytes:ae}=E(J),V=T(ne.context,ie,W),$=o.multiply(V).toBytes(),F=T(ne.context,$,ae,W),_=m(V+F*Z);Fy(\"signature.s\",_,R1,c);let O=i.BYTES,z=ws($,J4(_,O));return Ho(\"result\",z,O*2)}let L=hlt;function D(W,J,ne,ie=L){let{context:Z,zip215:ae}=ie,V=i.BYTES;W=Ho(\"signature\",W,2*V),J=Ho(\"message\",J),ne=Ho(\"publicKey\",ne,V),ae!==void 0&&pv(\"zip215\",ae),n&&(J=n(J));let $=p6(W.slice(V,2*V)),F,_,O;try{F=t.fromHex(ne,ae),_=t.fromHex(W.slice(0,V),ae),O=o.multiplyUnsafe($)}catch{return!1}if(!ae&&F.isSmallOrder())return!1;let z=T(Z,_.toBytes(),F.toBytes(),J);return _.add(F.multiplyUnsafe(z)).subtract(O).clearCofactor().is0()}return o.precompute(8),{getPublicKey:C,sign:R,verify:D,utils:{getExtendedPublicKey:E,randomPrivateKey:()=>u(i.BYTES),precompute(W=8,J=t.BASE){return J.precompute(W,!1)}},Point:t}}function ylt(t){let e={a:t.a,d:t.d,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp,r=Z0(e.n,t.nBitLength,!0),o={Fp:n,Fn:r,uvRatio:t.uvRatio},i={hash:t.hash,randomBytes:t.randomBytes,adjustScalarBytes:t.adjustScalarBytes,domain:t.domain,prehash:t.prehash,mapToCurve:t.mapToCurve};return{CURVE:e,curveOpts:o,eddsaOpts:i}}function blt(t,e){return Object.assign({},e,{ExtendedPoint:e.Point,CURVE:t})}function j7e(t){let{CURVE:e,curveOpts:n,eddsaOpts:r}=ylt(t),o=mlt(e,n),i=glt(o,r);return blt(t,i)}v6();var fgn=BigInt(0),vlt=BigInt(1),z7e=BigInt(2),hgn=BigInt(3),wlt=BigInt(5),xlt=BigInt(8),Aq={p:BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed\"),n:BigInt(\"0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed\"),h:xlt,a:BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec\"),d:BigInt(\"0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3\"),Gx:BigInt(\"0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\"),Gy:BigInt(\"0x6666666666666666666666666666666666666666666666666666666666666658\")};function Elt(t){let e=BigInt(10),n=BigInt(20),r=BigInt(40),o=BigInt(80),i=Aq.p,c=t*t%i*t%i,u=us(c,z7e,i)*c%i,d=us(u,vlt,i)*t%i,h=us(d,wlt,i)*d%i,m=us(h,e,i)*h%i,g=us(m,n,i)*m%i,b=us(g,r,i)*g%i,E=us(b,o,i)*b%i,C=us(E,o,i)*b%i,T=us(C,e,i)*h%i;return{pow_p_5_8:us(T,z7e,i)*t%i,b2:c}}function Slt(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var H7e=BigInt(\"19681161376707505956807079304988542015446066515923890162744021073123829784752\");function klt(t,e){let n=Aq.p,r=ui(e*e*e,n),o=ui(r*r*e,n),i=Elt(t*o).pow_p_5_8,a=ui(t*r*i,n),c=ui(e*a*a,n),u=a,d=ui(a*H7e,n),h=c===t,m=c===ui(-t,n),g=c===ui(-t*H7e,n);return h&&(a=u),(m||g)&&(a=d),mpe(a,n)&&(a=ui(-a,n)),{isValid:h||m,value:a}}var _lt=Z0(Aq.p,void 0,!0),Clt={...Aq,Fp:_lt,hash:Bde,adjustScalarBytes:Slt,uvRatio:klt},XS=j7e(Clt);var Goe=he(q6()),Ou=he(koe());_L();var qA=he(Q7e()),we=he(Moe()),ORe=he(Moe());p();p();var $lt=1,Klt=2,Glt=3,Zlt=4,Ylt=5,Qlt=6,Jlt=7,Xlt=8,eut=9,tut=10,nut=-32700,rut=-32603,out=-32602,iut=-32601,sut=-32600,aut=-32016,cut=-32015,lut=-32014,uut=-32013,dut=-32012,fut=-32011,hut=-32010,put=-32009,mut=-32008,gut=-32007,yut=-32006,but=-32005,vut=-32004,wut=-32003,xut=-32002,Eut=-32001,Sut=28e5,kut=2800001,_ut=2800002,Cut=2800003,Aut=2800004,Tut=2800005,Rut=2800006,Iut=2800007,Out=2800008,Put=2800009,Mut=2800010,Nut=323e4,Lut=32300001,But=3230002,Dut=3230003,Fut=3230004,Uut=361e4,jut=3610001,zut=3610002,Hut=3610003,qut=3610004,Wut=3610005,Vut=3610006,$ut=3610007,Kut=3611e3,Gut=3704e3,Zut=3704001,Yut=3704002,Qut=3704003,Jut=3704004,Xut=4128e3,edt=4128001,tdt=4128002,ndt=4615e3,rdt=4615001,odt=4615002,idt=4615003,sdt=4615004,adt=4615005,cdt=4615006,ldt=4615007,udt=4615008,ddt=4615009,fdt=4615010,hdt=4615011,pdt=4615012,mdt=4615013,gdt=4615014,ydt=4615015,bdt=4615016,vdt=4615017,wdt=4615018,xdt=4615019,Edt=4615020,Sdt=4615021,kdt=4615022,_dt=4615023,Cdt=4615024,Adt=4615025,Tdt=4615026,Rdt=4615027,Idt=4615028,Odt=4615029,Pdt=4615030,Mdt=4615031,Ndt=4615032,Ldt=4615033,Bdt=4615034,Ddt=4615035,Fdt=4615036,Udt=4615037,jdt=4615038,zdt=4615039,Hdt=4615040,qdt=4615041,Wdt=4615042,Vdt=4615043,$dt=4615044,Kdt=4615045,Gdt=4615046,Zdt=4615047,Ydt=4615048,Qdt=4615049,Jdt=4615050,Xdt=4615051,eft=4615052,tft=4615053,nft=4615054,rft=5508e3,oft=5508001,ift=5508002,sft=5508003,aft=5508004,cft=5508005,lft=5508006,uft=5508007,dft=5508008,fft=5508009,hft=5508010,pft=5508011,mft=5663e3,gft=5663001,yft=5663002,bft=5663003,vft=5663004,wft=5663005,xft=5663006,Eft=5663007,Sft=5663008,kft=5663009,_ft=5663010,Cft=5663011,Aft=5663012,Tft=5663013,Rft=5663014,Ift=5663015,Oft=5663016,Pft=5663017,Mft=5663018,Nft=5663019,Lft=705e4,Bft=7050001,Dft=7050002,Fft=7050003,Uft=7050004,jft=7050005,zft=7050006,Hft=7050007,qft=7050008,Wft=7050009,Vft=7050010,$ft=7050011,Kft=7050012,Gft=7050013,Zft=7050014,Yft=7050015,Qft=7050016,Jft=7050017,Xft=7050018,eht=7050019,tht=7050020,nht=7050021,rht=7050022,oht=7050023,iht=7050024,sht=7050025,aht=7050026,cht=7050027,lht=7050028,uht=7050029,dht=7050030,fht=7050031,hht=7050032,pht=7050033,mht=7050034,ght=7050035,yht=7050036,Noe=8078e3,Loe=8078001,J7e=8078002,X7e=8078003,Boe=8078004,Doe=8078005,Foe=8078006,bht=8078007,vht=8078008,wht=8078009,xht=8078010,Uoe=8078011,Eht=8078012,eRe=8078013,tRe=8078014,Sht=8078015,kht=8078016,_ht=8078017,Cht=8078018,Aht=8078019,nRe=8078020,rRe=8078021,Tht=8078022,Rht=81e5,Iht=8100001,Oht=8100002,Pht=8100003,Mht=819e4,Nht=8190001,Lht=8190002,Bht=8190003,Dht=8190004,Fht=99e5,Uht=9900001,jht=9900002,zht=9900003,Hht=9900004;var qht={[Nut]:\"Account not found at address: $address\",[Fut]:\"Not all accounts were decoded. Encoded accounts found at addresses: $addresses.\",[Dut]:\"Expected decoded account at address: $address\",[But]:\"Failed to decode account data at address: $address\",[Lut]:\"Accounts not found at addresses: $addresses\",[Put]:\"Unable to find a viable program address bump seed.\",[_ut]:\"$putativeAddress is not a base58-encoded address.\",[Sut]:\"Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.\",[Cut]:\"The `CryptoKey` must be an `Ed25519` public key.\",[Out]:\"Invalid seeds; point must fall off the Ed25519 curve.\",[Aut]:\"Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].\",[Rut]:\"A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.\",[Iut]:\"The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.\",[Tut]:\"Expected program derived address bump to be in the range [0, 255], got: $bump.\",[Mut]:\"Program address cannot end with PDA marker.\",[kut]:\"Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.\",[Zlt]:\"Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.\",[$lt]:\"The network has progressed past the last block for which this transaction could have been committed.\",[Noe]:\"Codec [$codecDescription] cannot decode empty byte arrays.\",[Tht]:\"Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.\",[nRe]:\"Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].\",[Doe]:\"Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].\",[Foe]:\"Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].\",[Boe]:\"Encoder and decoder must either both be fixed-size or variable-size.\",[vht]:\"Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.\",[J7e]:\"Expected a fixed-size codec, got a variable-size one.\",[eRe]:\"Codec [$codecDescription] expected a positive byte length, got $bytesLength.\",[X7e]:\"Expected a variable-size codec, got a fixed-size one.\",[Aht]:\"Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].\",[Loe]:\"Codec [$codecDescription] expected $expected bytes, got $bytesLength.\",[Cht]:\"Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].\",[wht]:\"Invalid discriminated union variant. Expected one of [$variants], got $value.\",[xht]:\"Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.\",[Sht]:\"Invalid literal union variant. Expected one of [$variants], got $value.\",[bht]:\"Expected [$codecDescription] to have $expected items, got $actual.\",[Eht]:\"Invalid value $value for base $base with alphabet $alphabet.\",[kht]:\"Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.\",[Uoe]:\"Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.\",[tRe]:\"Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.\",[rRe]:\"Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].\",[_ht]:\"Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.\",[Kut]:\"No random values implementation could be found.\",[ddt]:\"instruction requires an uninitialized account\",[_dt]:\"instruction tries to borrow reference for an account which is already borrowed\",[Cdt]:\"instruction left account with an outstanding borrowed reference\",[Sdt]:\"program other than the account\\'s owner changed the size of the account data\",[adt]:\"account data too small for instruction\",[kdt]:\"instruction expected an executable account\",[Gdt]:\"An account does not have enough lamports to be rent-exempt\",[Ydt]:\"Program arithmetic overflowed\",[Kdt]:\"Failed to serialize or deserialize account data: $encodedData\",[nft]:\"Builtin programs must consume compute units\",[Ndt]:\"Cross-program invocation call depth too deep\",[jdt]:\"Computational budget exceeded\",[Tdt]:\"custom program error: #$code\",[vdt]:\"instruction contains duplicate accounts\",[Adt]:\"instruction modifications of multiply-passed account differ\",[Pdt]:\"executable accounts must be rent exempt\",[Idt]:\"instruction changed executable accounts data\",[Odt]:\"instruction changed the balance of an executable account\",[wdt]:\"instruction changed executable bit of an account\",[gdt]:\"instruction modified data of an account it does not own\",[mdt]:\"instruction spent from the balance of an account it does not own\",[rdt]:\"generic instruction error\",[Jdt]:\"Provided owner is not allowed\",[Vdt]:\"Account is immutable\",[$dt]:\"Incorrect authority provided\",[ldt]:\"incorrect program id for instruction\",[cdt]:\"insufficient funds for instruction\",[sdt]:\"invalid account data for instruction\",[Zdt]:\"Invalid account owner\",[odt]:\"invalid program argument\",[Rdt]:\"program returned invalid error code\",[idt]:\"invalid instruction data\",[Udt]:\"Failed to reallocate account data\",[Fdt]:\"Provided seeds do not result in a valid address\",[Xdt]:\"Accounts data allocations exceeded the maximum allowed per transaction\",[eft]:\"Max accounts exceeded\",[tft]:\"Max instruction trace length exceeded\",[Ddt]:\"Length of the seed is too long for address generation\",[Ldt]:\"An account required by the instruction is missing\",[udt]:\"missing required signature for instruction\",[pdt]:\"instruction illegally modified the program id of an account\",[Edt]:\"insufficient account keys for instruction\",[zdt]:\"Cross-program invocation with unauthorized signer or writable account\",[Hdt]:\"Failed to create program execution environment\",[Wdt]:\"Program failed to compile\",[qdt]:\"Program failed to complete\",[bdt]:\"instruction modified data of a read-only account\",[ydt]:\"instruction changed the balance of a read-only account\",[Bdt]:\"Cross-program invocation reentrancy not allowed for this instruction\",[xdt]:\"instruction modified rent epoch of an account\",[hdt]:\"sum of account balances before and after instruction do not match\",[fdt]:\"instruction requires an initialized account\",[ndt]:\"\",[Mdt]:\"Unsupported program id\",[Qdt]:\"Unsupported sysvar\",[Xut]:\"The instruction does not have any accounts.\",[edt]:\"The instruction does not have any data.\",[tdt]:\"Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.\",[Ylt]:\"Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.\",[Klt]:\"The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`\",[jht]:\"Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",[Hht]:\"Invariant violation: This data publisher does not publish to the channel named `$channelName`. Supported channels include $supportedChannelNames.\",[Uht]:\"Invariant violation: WebSocket message iterator state is corrupt; iterated without first resolving existing message promise. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",[Fht]:\"Invariant violation: WebSocket message iterator is missing state storage. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",[zht]:\"Invariant violation: Switch statement non-exhaustive. Received unexpected value `$unexpectedValue`. It should be impossible to hit this error; please file an issue at https://sola.na/web3invariant\",[rut]:\"JSON-RPC error: Internal JSON-RPC error ($__serverMessage)\",[out]:\"JSON-RPC error: Invalid method parameter(s) ($__serverMessage)\",[sut]:\"JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)\",[iut]:\"JSON-RPC error: The method does not exist / is not available ($__serverMessage)\",[nut]:\"JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)\",[dut]:\"$__serverMessage\",[Eut]:\"$__serverMessage\",[vut]:\"$__serverMessage\",[lut]:\"$__serverMessage\",[hut]:\"$__serverMessage\",[put]:\"$__serverMessage\",[aut]:\"Minimum context slot has not been reached\",[but]:\"Node is unhealthy; behind by $numSlotsBehind slots\",[mut]:\"No snapshot\",[xut]:\"Transaction simulation failed\",[gut]:\"$__serverMessage\",[fut]:\"Transaction history is not available from this node\",[yut]:\"$__serverMessage\",[uut]:\"Transaction signature length mismatch\",[wut]:\"Transaction signature verification failure\",[cut]:\"$__serverMessage\",[Gut]:\"Key pair bytes must be of length 64, got $byteLength.\",[Zut]:\"Expected private key bytes with length 32. Actual length: $actualLength.\",[Yut]:\"Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.\",[Jut]:\"The provided private key does not match the provided public key.\",[Qut]:\"Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.\",[Qlt]:\"Lamports value must be in the range [0, 2e64-1]\",[Jlt]:\"`$value` cannot be parsed as a `BigInt`\",[tut]:\"$message\",[Xlt]:\"`$value` cannot be parsed as a `Number`\",[Glt]:\"No nonce account could be found at address `$nonceAccountAddress`\",[Mht]:\"The notification name must end in \\'Notifications\\' and the API must supply a subscription plan creator function for the notification \\'$notificationName\\'.\",[Lht]:\"WebSocket was closed before payload could be added to the send buffer\",[Bht]:\"WebSocket connection closed\",[Dht]:\"WebSocket failed to connect\",[Nht]:\"Failed to obtain a subscription id from the server\",[Pht]:\"Could not find an API plan for RPC method: `$method`\",[Rht]:\"The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was `$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds `Number.MAX_SAFE_INTEGER`.\",[Oht]:\"HTTP error ($statusCode): $message\",[Iht]:\"HTTP header(s) forbidden: $headers. Learn more at https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.\",[rft]:\"Multiple distinct signers were identified for address `$address`. Please ensure that you are using the same signer instance for each address.\",[oft]:\"The provided value does not implement the `KeyPairSigner` interface\",[sft]:\"The provided value does not implement the `MessageModifyingSigner` interface\",[aft]:\"The provided value does not implement the `MessagePartialSigner` interface\",[ift]:\"The provided value does not implement any of the `MessageSigner` interfaces\",[lft]:\"The provided value does not implement the `TransactionModifyingSigner` interface\",[uft]:\"The provided value does not implement the `TransactionPartialSigner` interface\",[dft]:\"The provided value does not implement the `TransactionSendingSigner` interface\",[cft]:\"The provided value does not implement any of the `TransactionSigner` interfaces\",[fft]:\"More than one `TransactionSendingSigner` was identified.\",[hft]:\"No `TransactionSendingSigner` was identified. Please provide a valid `ITransactionWithSingleSendingSigner` transaction.\",[pft]:\"Wallet account signers do not support signing multiple messages/transactions in a single operation\",[$ut]:\"Cannot export a non-extractable key.\",[jut]:\"No digest implementation could be found.\",[Uut]:\"Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.\",[zut]:`This runtime does not support the generation of Ed25519 key pairs.\\n\\nInstall @solana/webcrypto-ed25519-polyfill and call its \\\\`install\\\\` function before generating keys in environments that do not support Ed25519.\\n\\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.`,[Hut]:\"No signature verification implementation could be found.\",[qut]:\"No key generation implementation could be found.\",[Wut]:\"No signing implementation could be found.\",[Vut]:\"No key export implementation could be found.\",[eut]:\"Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given\",[Qft]:\"Transaction processing left an account with an outstanding borrowed reference\",[Bft]:\"Account in use\",[Dft]:\"Account loaded twice\",[Fft]:\"Attempt to debit an account but found no record of a prior credit.\",[oht]:\"Transaction loads an address table account that doesn\\'t exist\",[Hft]:\"This transaction has already been processed\",[qft]:\"Blockhash not found\",[Wft]:\"Loader call chain is too deep\",[Yft]:\"Transactions are currently disabled due to cluster maintenance\",[dht]:\"Transaction contains a duplicate instruction ($index) that is not allowed\",[jft]:\"Insufficient funds for fee\",[fht]:\"Transaction results in an account ($accountIndex) with insufficient funds for rent\",[zft]:\"This account may not be used to pay transaction fees\",[$ft]:\"Transaction contains an invalid account reference\",[sht]:\"Transaction loads an address table account with invalid data\",[aht]:\"Transaction address table lookup uses an invalid index\",[iht]:\"Transaction loads an address table account with an invalid owner\",[pht]:\"LoadedAccountsDataSizeLimit set for transaction must be greater than 0.\",[Gft]:\"This program may not be used for executing instructions\",[cht]:\"Transaction leaves an account with a lower balance than rent-exempt minimum\",[eht]:\"Transaction loads a writable account that cannot be written\",[hht]:\"Transaction exceeded max loaded accounts data size cap\",[Vft]:\"Transaction requires a fee but has no signature present\",[Uft]:\"Attempt to load a program that does not exist\",[ght]:\"Execution of the program referenced by account at index $accountIndex is temporarily restricted.\",[mht]:\"ResanitizationNeeded\",[Zft]:\"Transaction failed to sanitize accounts offsets correctly\",[Kft]:\"Transaction did not pass signature verification\",[rht]:\"Transaction locked too many accounts\",[yht]:\"Sum of account balances before and after transaction do not match\",[Lft]:\"The transaction failed with the error `$errorName`\",[Xft]:\"Transaction version is unsupported\",[nht]:\"Transaction would exceed account data limit within the block\",[uht]:\"Transaction would exceed total account data limit\",[tht]:\"Transaction would exceed max account limit within the block\",[Jft]:\"Transaction would exceed max Block Cost Limit\",[lht]:\"Transaction would exceed max Vote Cost Limit\",[Ift]:\"Attempted to sign a transaction with an address that is not a signer for it\",[_ft]:\"Transaction is missing an address at index: $index.\",[Oft]:\"Transaction has no expected signers therefore it cannot be encoded\",[yft]:\"Transaction does not have a blockhash lifetime\",[bft]:\"Transaction is not a durable nonce transaction\",[wft]:\"Contents of these address lookup tables unknown: $lookupTableAddresses\",[xft]:\"Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved\",[Sft]:\"No fee payer set in CompiledTransaction\",[Eft]:\"Could not find program address at index $index\",[Mft]:\"Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more\",[Nft]:\"Transaction failed when it was simulated in order to estimate the compute unit consumption. The compute unit estimate provided is for a transaction that failed when simulated and may not be representative of the compute units this transaction would consume if successful. Inspect the `cause` property of this error to learn more\",[Cft]:\"Transaction is missing a fee payer.\",[Aft]:\"Could not determine this transaction\\'s signature. Make sure that the transaction has been signed by its fee payer.\",[Rft]:\"Transaction first instruction is not advance nonce account instruction.\",[Tft]:\"Transaction with no instructions cannot be durable nonce transaction.\",[mft]:\"This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees\",[gft]:\"This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable\",[Pft]:\"The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.\",[kft]:\"Transaction is missing signatures for addresses: $addresses.\",[vft]:\"Transaction version must be in the range [0, 127]. `$actualVersion` given\"},o2=\"i\",P1=\"t\";function Wht(t,e={}){let n=qht[t];if(n.length===0)return\"\";let r;function o(a){if(r[P1]===2){let c=n.slice(r[o2]+1,a);i.push(c in e?`${e[c]}`:`$${c}`)}else r[P1]===1&&i.push(n.slice(r[o2],a))}let i=[];return n.split(\"\").forEach((a,c)=>{if(c===0){r={[o2]:0,[P1]:n[0]===\"\\\\\\\\\"?0:n[0]===\"$\"?2:1};return}let u;switch(r[P1]){case 0:u={[o2]:c,[P1]:1};break;case 1:a===\"\\\\\\\\\"?u={[o2]:c,[P1]:0}:a===\"$\"&&(u={[o2]:c,[P1]:2});break;case 2:a===\"\\\\\\\\\"?u={[o2]:c,[P1]:0}:a===\"$\"?u={[o2]:c,[P1]:2}:a.match(/\\\\w/)||(u={[o2]:c,[P1]:1});break}u&&(r!==u&&o(c),r=u)}),o(),i.join(\"\")}function Vht(t,e={}){return Wht(t,e)}var S3=class extends Error{constructor(...[e,n]){let r,o;if(n){let{cause:a,...c}=n;a&&(o={cause:a}),Object.keys(c).length>0&&(r=c)}let i=Vht(e,r);super(i,o);Op(this,\"cause\",this.cause);Op(this,\"context\");this.context={__code:e,...r},this.name=\"SolanaError\"}};p();function $ht(t,e){return\"fixedSize\"in e?e.fixedSize:e.getSizeFromValue(t)}function oRe(t){return Object.freeze({...t,encode:e=>{let n=new Uint8Array($ht(e,t));return t.write(e,n,0),n}})}function iRe(t){return Object.freeze({...t,decode:(e,n=0)=>t.read(e,n)[0]})}function DA(t){return\"fixedSize\"in t&&typeof t.fixedSize==\"number\"}function sRe(t,e){if(DA(t)!==DA(e))throw new S3(Boe);if(DA(t)&&DA(e)&&t.fixedSize!==e.fixedSize)throw new S3(Doe,{decoderFixedSize:e.fixedSize,encoderFixedSize:t.fixedSize});if(!DA(t)&&!DA(e)&&t.maxSize!==e.maxSize)throw new S3(Foe,{decoderMaxSize:e.maxSize,encoderMaxSize:t.maxSize});return{...e,...t,decode:e.decode,encode:t.encode,read:e.read,write:t.write}}function aRe(t,e,n=0){if(e.length-n<=0)throw new S3(Noe,{codecDescription:t})}function cRe(t,e,n,r=0){let o=n.length-r;if(o<e)throw new S3(Loe,{bytesLength:o,codecDescription:t,expected:e})}function Kht(t,e,n,r){if(r<e||r>n)throw new S3(Uoe,{codecDescription:t,max:n,min:e,value:r})}function lRe(t){return t?.endian!==1}function Ght(t){return oRe({fixedSize:t.size,write(e,n,r){t.range&&Kht(t.name,t.range[0],t.range[1],e);let o=new ArrayBuffer(t.size);return t.set(new DataView(o),e,lRe(t.config)),n.set(new Uint8Array(o),r),r+t.size}})}function Zht(t){return iRe({fixedSize:t.size,read(e,n=0){aRe(t.name,e,n),cRe(t.name,t.size,e,n);let r=new DataView(Yht(e,n,t.size));return[t.get(r,lRe(t.config)),n+t.size]}})}function Yht(t,e,n){let r=t.byteOffset+(e??0),o=n??t.byteLength;return t.buffer.slice(r,r+o)}var joe=(t={})=>Ght({config:t,name:\"u64\",range:[0n,BigInt(\"0xffffffffffffffff\")],set:(e,n,r)=>e.setBigUint64(0,BigInt(n),r),size:8}),Qht=(t={})=>Zht({config:t,get:(e,n)=>e.getBigUint64(0,n),name:\"u64\",size:8}),uRe=(t={})=>sRe(joe(t),Qht(t));p();var zoe=class extends TypeError{constructor(e,n){let r,{message:o,explanation:i,...a}=e,{path:c}=e,u=c.length===0?o:`At path: ${c.join(\".\")} -- ${o}`;super(i??u),i!=null&&(this.cause=u),Object.assign(this,a),this.name=this.constructor.name,this.failures=()=>r??(r=[e,...n()])}};function Jht(t){return iP(t)&&typeof t[Symbol.iterator]==\"function\"}function iP(t){return typeof t==\"object\"&&t!=null}function eW(t){return iP(t)&&!Array.isArray(t)}function yg(t){return typeof t==\"symbol\"?t.toString():typeof t==\"string\"?JSON.stringify(t):`${t}`}function Xht(t){let{done:e,value:n}=t.next();return e?void 0:n}function ept(t,e,n,r){if(t===!0)return;t===!1?t={}:typeof t==\"string\"&&(t={message:t});let{path:o,branch:i}=e,{type:a}=n,{refinement:c,message:u=`Expected a value of type \\\\`${a}\\\\`${c?` with refinement \\\\`${c}\\\\``:\"\"}, but received: \\\\`${yg(r)}\\\\``}=t;return{value:r,type:a,refinement:c,key:o[o.length-1],path:o,branch:i,...t,message:u}}function*dRe(t,e,n,r){Jht(t)||(t=[t]);for(let o of t){let i=ept(o,e,n,r);i&&(yield i)}}function*Hoe(t,e,n={}){let{path:r=[],branch:o=[t],coerce:i=!1,mask:a=!1}=n,c={path:r,branch:o,mask:a};i&&(t=e.coercer(t,c));let u=\"valid\";for(let d of e.validator(t,c))d.explanation=n.message,u=\"not_valid\",yield[d,void 0];for(let[d,h,m]of e.entries(t,c)){let g=Hoe(h,m,{path:d===void 0?r:[...r,d],branch:d===void 0?o:[...o,h],coerce:i,mask:a,message:n.message});for(let b of g)b[0]?(u=b[0].refinement!=null?\"not_refined\":\"not_valid\",yield[b[0],void 0]):i&&(h=b[1],d===void 0?t=h:t instanceof Map?t.set(d,h):t instanceof Set?t.add(h):iP(t)&&(h!==void 0||d in t)&&(t[d]=h))}if(u!==\"not_valid\")for(let d of e.refiner(t,c))d.explanation=n.message,u=\"not_refined\",yield[d,void 0];u===\"valid\"&&(yield[void 0,t])}var Rm=class{constructor(e){let{type:n,schema:r,validator:o,refiner:i,coercer:a=u=>u,entries:c=function*(){}}=e;this.type=n,this.schema=r,this.entries=c,this.coercer=a,o?this.validator=(u,d)=>{let h=o(u,d);return dRe(h,d,this,u)}:this.validator=()=>[],i?this.refiner=(u,d)=>{let h=i(u,d);return dRe(h,d,this,u)}:this.refiner=()=>[]}assert(e,n){return fRe(e,this,n)}create(e,n){return FA(e,this,n)}is(e){return hRe(e,this)}mask(e,n){return tpt(e,this,n)}validate(e,n={}){return sP(e,this,n)}};function fRe(t,e,n){let r=sP(t,e,{message:n});if(r[0])throw r[0]}function FA(t,e,n){let r=sP(t,e,{coerce:!0,message:n});if(r[0])throw r[0];return r[1]}function tpt(t,e,n){let r=sP(t,e,{coerce:!0,mask:!0,message:n});if(r[0])throw r[0];return r[1]}function hRe(t,e){return!sP(t,e)[0]}function sP(t,e,n={}){let r=Hoe(t,e,n),o=Xht(r);return o[0]?[new zoe(o[0],function*(){for(let a of r)a[0]&&(yield a[0])}),void 0]:[void 0,o[1]]}function nk(t,e){return new Rm({type:t,schema:null,validator:e})}function pRe(){return nk(\"any\",()=>!0)}function Zt(t){return new Rm({type:\"array\",schema:t,*entries(e){if(t&&Array.isArray(e))for(let[n,r]of e.entries())yield[n,r,t]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${yg(e)}`}})}function bg(){return nk(\"boolean\",t=>typeof t==\"boolean\")}function tW(t){return nk(\"instance\",e=>e instanceof t||`Expected a \\\\`${t.name}\\\\` instance, but received: ${yg(e)}`)}function ps(t){let e=yg(t),n=typeof t;return new Rm({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?t:null,validator(r){return r===t||`Expected the literal \\\\`${e}\\\\`, but received: ${yg(r)}`}})}function npt(){return nk(\"never\",()=>!1)}function Yt(t){return new Rm({...t,validator:(e,n)=>e===null||t.validator(e,n),refiner:(e,n)=>e===null||t.refiner(e,n)})}function je(){return nk(\"number\",t=>typeof t==\"number\"&&!isNaN(t)||`Expected a number, but received: ${yg(t)}`)}function wn(t){return new Rm({...t,validator:(e,n)=>e===void 0||t.validator(e,n),refiner:(e,n)=>e===void 0||t.refiner(e,n)})}function qoe(t,e){return new Rm({type:\"record\",schema:null,*entries(n){if(iP(n))for(let r in n){let o=n[r];yield[r,r,t],yield[r,o,e]}},validator(n){return eW(n)||`Expected an object, but received: ${yg(n)}`},coercer(n){return eW(n)?{...n}:n}})}function Ot(){return nk(\"string\",t=>typeof t==\"string\"||`Expected a string, but received: ${yg(t)}`)}function nW(t){let e=npt();return new Rm({type:\"tuple\",schema:null,*entries(n){if(Array.isArray(n)){let r=Math.max(t.length,n.length);for(let o=0;o<r;o++)yield[o,n[o],t[o]||e]}},validator(n){return Array.isArray(n)||`Expected an array, but received: ${yg(n)}`},coercer(n){return Array.isArray(n)?n.slice():n}})}function St(t){let e=Object.keys(t);return new Rm({type:\"type\",schema:t,*entries(n){if(iP(n))for(let r of e)yield[r,n[r],t[r]]},validator(n){return eW(n)||`Expected an object, but received: ${yg(n)}`},coercer(n){return eW(n)?{...n}:n}})}function Iu(t){let e=t.map(n=>n.type).join(\" | \");return new Rm({type:\"union\",schema:null,coercer(n,r){for(let o of t){let[i,a]=o.validate(n,{coerce:!0,mask:r.mask});if(!i)return a}return n},validator(n,r){let o=[];for(let i of t){let[...a]=Hoe(n,i,r),[c]=a;if(c[0])for(let[u]of a)u&&o.push(u);else return[]}return[`Expected the value to satisfy a union of \\\\`${e}\\\\`, but received: ${yg(n)}`,...o]}})}function rk(){return nk(\"unknown\",()=>!0)}function UA(t,e,n){return new Rm({...t,coercer:(r,o)=>hRe(r,e)?t.coercer(n(r,o),o):t.coercer(r,o)})}var cpt=he(bRe());p();var apt=he(Kb(),1);DC();ML();NB();var nyn=XS.utils.randomPrivateKey,vRe=()=>{let t=XS.utils.randomPrivateKey(),e=Zoe(t),n=new Uint8Array(64);return n.set(t),n.set(e,32),{publicKey:e,secretKey:n}},Zoe=XS.getPublicKey;function wRe(t){try{return XS.ExtendedPoint.fromHex(t),!0}catch{return!1}}var lie=(t,e)=>XS.sign(t,e.slice(0,32)),lpt=XS.verify,xo=t=>Ln.Buffer.isBuffer(t)?t:t instanceof Uint8Array?Ln.Buffer.from(t.buffer,t.byteOffset,t.byteLength):Ln.Buffer.from(t),Yoe=class{constructor(e){Object.assign(this,e)}encode(){return Ln.Buffer.from((0,qA.serialize)(oW,this))}static decode(e){return(0,qA.deserialize)(oW,this,e)}static decodeUnchecked(e){return(0,qA.deserializeUnchecked)(oW,this,e)}};var oW=new Map,PRe,upt=32,_3=32;function dpt(t){return t._bn!==void 0}var xRe=1,ar=class t extends Yoe{constructor(e){if(super({}),this._bn=void 0,dpt(e))this._bn=e._bn;else{if(typeof e==\"string\"){let n=Ou.default.decode(e);if(n.length!=_3)throw new Error(\"Invalid public key input\");this._bn=new Goe.default(n)}else this._bn=new Goe.default(e);if(this._bn.byteLength()>_3)throw new Error(\"Invalid public key input\")}}static unique(){let e=new t(xRe);return xRe+=1,new t(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return Ou.default.encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){let e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){let e=this._bn.toArrayLike(Ln.Buffer);if(e.length===_3)return e;let n=Ln.Buffer.alloc(32);return e.copy(n,32-e.length),n}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,n,r){let o=Ln.Buffer.concat([e.toBuffer(),Ln.Buffer.from(n),r.toBuffer()]),i=C5(o);return new t(i)}static createProgramAddressSync(e,n){let r=Ln.Buffer.alloc(0);e.forEach(function(i){if(i.length>upt)throw new TypeError(\"Max seed length exceeded\");r=Ln.Buffer.concat([r,xo(i)])}),r=Ln.Buffer.concat([r,n.toBuffer(),Ln.Buffer.from(\"ProgramDerivedAddress\")]);let o=C5(r);if(wRe(o))throw new Error(\"Invalid seeds, address must fall off the curve\");return new t(o)}static async createProgramAddress(e,n){return this.createProgramAddressSync(e,n)}static findProgramAddressSync(e,n){let r=255,o;for(;r!=0;){try{let i=e.concat(Ln.Buffer.from([r]));o=this.createProgramAddressSync(i,n)}catch(i){if(i instanceof TypeError)throw i;r--;continue}return[o,r]}throw new Error(\"Unable to find a viable program address nonce\")}static async findProgramAddress(e,n){return this.findProgramAddressSync(e,n)}static isOnCurve(e){let n=new t(e);return wRe(n.toBytes())}};PRe=ar;ar.default=new PRe(\"11111111111111111111111111111111\");oW.set(ar,{kind:\"struct\",fields:[[\"_bn\",\"u256\"]]});var ryn=new ar(\"BPFLoader1111111111111111111111111111111111\"),ok=1232,uie=127,iW=64,Qoe=class extends Error{constructor(e){super(`Signature ${e} has expired: block height exceeded.`),this.signature=void 0,this.signature=e}};Object.defineProperty(Qoe.prototype,\"name\",{value:\"TransactionExpiredBlockheightExceededError\"});var Joe=class extends Error{constructor(e,n){super(`Transaction was not confirmed in ${n.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${e} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=e}};Object.defineProperty(Joe.prototype,\"name\",{value:\"TransactionExpiredTimeoutError\"});var Xoe=class extends Error{constructor(e){super(`Signature ${e} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=e}};Object.defineProperty(Xoe.prototype,\"name\",{value:\"TransactionExpiredNonceInvalidError\"});var zA=class{constructor(e,n){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=e,this.accountKeysFromLookups=n}keySegments(){let e=[this.staticAccountKeys];return this.accountKeysFromLookups&&(e.push(this.accountKeysFromLookups.writable),e.push(this.accountKeysFromLookups.readonly)),e}get(e){for(let n of this.keySegments()){if(e<n.length)return n[e];e-=n.length}}get length(){return this.keySegments().flat().length}compileInstructions(e){if(this.length>256)throw new Error(\"Account index overflow encountered during compilation\");let r=new Map;this.keySegments().flat().forEach((i,a)=>{r.set(i.toBase58(),a)});let o=i=>{let a=r.get(i.toBase58());if(a===void 0)throw new Error(\"Encountered an unknown instruction account key during compilation\");return a};return e.map(i=>({programIdIndex:o(i.programId),accountKeyIndexes:i.keys.map(a=>o(a.pubkey)),data:i.data}))}},Vr=(t=\"publicKey\")=>we.blob(32,t),fpt=(t=\"signature\")=>we.blob(64,t),jA=(t=\"string\")=>{let e=we.struct([we.u32(\"length\"),we.u32(\"lengthPadding\"),we.blob(we.offset(we.u32(),-8),\"chars\")],t),n=e.decode.bind(e),r=e.encode.bind(e),o=e;return o.decode=(i,a)=>n(i,a).chars.toString(),o.encode=(i,a,c)=>{let u={chars:Ln.Buffer.from(i,\"utf8\")};return r(u,a,c)},o.alloc=i=>we.u32().span+we.u32().span+Ln.Buffer.from(i,\"utf8\").length,o},hpt=(t=\"authorized\")=>we.struct([Vr(\"staker\"),Vr(\"withdrawer\")],t),ppt=(t=\"lockup\")=>we.struct([we.ns64(\"unixTimestamp\"),we.ns64(\"epoch\"),Vr(\"custodian\")],t),mpt=(t=\"voteInit\")=>we.struct([Vr(\"nodePubkey\"),Vr(\"authorizedVoter\"),Vr(\"authorizedWithdrawer\"),we.u8(\"commission\")],t),gpt=(t=\"voteAuthorizeWithSeedArgs\")=>we.struct([we.u32(\"voteAuthorizationType\"),Vr(\"currentAuthorityDerivedKeyOwnerPubkey\"),jA(\"currentAuthorityDerivedKeySeed\"),Vr(\"newAuthorized\")],t);function MRe(t,e){let n=o=>{if(o.span>=0)return o.span;if(typeof o.alloc==\"function\")return o.alloc(e[o.property]);if(\"count\"in o&&\"elementLayout\"in o){let i=e[o.property];if(Array.isArray(i))return i.length*n(o.elementLayout)}else if(\"fields\"in o)return MRe({layout:o},e[o.property]);return 0},r=0;return t.layout.fields.forEach(o=>{r+=n(o)}),r}function Dh(t){let e=0,n=0;for(;;){let r=t.shift();if(e|=(r&127)<<n*7,n+=1,(r&128)===0)break}return e}function Fh(t,e){let n=e;for(;;){let r=n&127;if(n>>=7,n==0){t.push(r);break}else r|=128,t.push(r)}}function Xi(t,e){if(!t)throw new Error(e||\"Assertion failed\")}var sW=class t{constructor(e,n){this.payer=void 0,this.keyMetaMap=void 0,this.payer=e,this.keyMetaMap=n}static compile(e,n){let r=new Map,o=a=>{let c=a.toBase58(),u=r.get(c);return u===void 0&&(u={isSigner:!1,isWritable:!1,isInvoked:!1},r.set(c,u)),u},i=o(n);i.isSigner=!0,i.isWritable=!0;for(let a of e){o(a.programId).isInvoked=!0;for(let c of a.keys){let u=o(c.pubkey);u.isSigner||(u.isSigner=c.isSigner),u.isWritable||(u.isWritable=c.isWritable)}}return new t(n,r)}getMessageComponents(){let e=[...this.keyMetaMap.entries()];Xi(e.length<=256,\"Max static account keys length exceeded\");let n=e.filter(([,u])=>u.isSigner&&u.isWritable),r=e.filter(([,u])=>u.isSigner&&!u.isWritable),o=e.filter(([,u])=>!u.isSigner&&u.isWritable),i=e.filter(([,u])=>!u.isSigner&&!u.isWritable),a={numRequiredSignatures:n.length+r.length,numReadonlySignedAccounts:r.length,numReadonlyUnsignedAccounts:i.length};{Xi(n.length>0,\"Expected at least one writable signer key\");let[u]=n[0];Xi(u===this.payer.toBase58(),\"Expected first writable signer key to be the fee payer\")}let c=[...n.map(([u])=>new ar(u)),...r.map(([u])=>new ar(u)),...o.map(([u])=>new ar(u)),...i.map(([u])=>new ar(u))];return[a,c]}extractTableLookup(e){let[n,r]=this.drainKeysFoundInLookupTable(e.state.addresses,a=>!a.isSigner&&!a.isInvoked&&a.isWritable),[o,i]=this.drainKeysFoundInLookupTable(e.state.addresses,a=>!a.isSigner&&!a.isInvoked&&!a.isWritable);if(!(n.length===0&&o.length===0))return[{accountKey:e.key,writableIndexes:n,readonlyIndexes:o},{writable:r,readonly:i}]}drainKeysFoundInLookupTable(e,n){let r=new Array,o=new Array;for(let[i,a]of this.keyMetaMap.entries())if(n(a)){let c=new ar(i),u=e.findIndex(d=>d.equals(c));u>=0&&(Xi(u<256,\"Max lookup table index exceeded\"),r.push(u),o.push(c),this.keyMetaMap.delete(i))}return[r,o]}},NRe=\"Reached end of buffer unexpectedly\";function s2(t){if(t.length===0)throw new Error(NRe);return t.shift()}function Uh(t,...e){let[n]=e;if(e.length===2?n+(e[1]??0)>t.length:n>=t.length)throw new Error(NRe);return t.splice(...e)}var uP=class t{constructor(e){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=e.header,this.accountKeys=e.accountKeys.map(n=>new ar(n)),this.recentBlockhash=e.recentBlockhash,this.instructions=e.instructions,this.instructions.forEach(n=>this.indexToProgramIds.set(n.programIdIndex,this.accountKeys[n.programIdIndex]))}get version(){return\"legacy\"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map(e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:Ou.default.decode(e.data)}))}get addressTableLookups(){return[]}getAccountKeys(){return new zA(this.staticAccountKeys)}static compile(e){let n=sW.compile(e.instructions,e.payerKey),[r,o]=n.getMessageComponents(),a=new zA(o).compileInstructions(e.instructions).map(c=>({programIdIndex:c.programIdIndex,accounts:c.accountKeyIndexes,data:Ou.default.encode(c.data)}));return new t({header:r,accountKeys:o,recentBlockhash:e.recentBlockhash,instructions:a})}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let n=this.header.numRequiredSignatures;if(e>=this.header.numRequiredSignatures){let r=e-n,i=this.accountKeys.length-n-this.header.numReadonlyUnsignedAccounts;return r<i}else{let r=n-this.header.numReadonlySignedAccounts;return e<r}}isProgramId(e){return this.indexToProgramIds.has(e)}programIds(){return[...this.indexToProgramIds.values()]}nonProgramIds(){return this.accountKeys.filter((e,n)=>!this.isProgramId(n))}serialize(){let e=this.accountKeys.length,n=[];Fh(n,e);let r=this.instructions.map(m=>{let{accounts:g,programIdIndex:b}=m,E=Array.from(Ou.default.decode(m.data)),C=[];Fh(C,g.length);let T=[];return Fh(T,E.length),{programIdIndex:b,keyIndicesCount:Ln.Buffer.from(C),keyIndices:g,dataLength:Ln.Buffer.from(T),data:E}}),o=[];Fh(o,r.length);let i=Ln.Buffer.alloc(ok);Ln.Buffer.from(o).copy(i);let a=o.length;r.forEach(m=>{let b=we.struct([we.u8(\"programIdIndex\"),we.blob(m.keyIndicesCount.length,\"keyIndicesCount\"),we.seq(we.u8(\"keyIndex\"),m.keyIndices.length,\"keyIndices\"),we.blob(m.dataLength.length,\"dataLength\"),we.seq(we.u8(\"userdatum\"),m.data.length,\"data\")]).encode(m,i,a);a+=b}),i=i.slice(0,a);let c=we.struct([we.blob(1,\"numRequiredSignatures\"),we.blob(1,\"numReadonlySignedAccounts\"),we.blob(1,\"numReadonlyUnsignedAccounts\"),we.blob(n.length,\"keyCount\"),we.seq(Vr(\"key\"),e,\"keys\"),Vr(\"recentBlockhash\")]),u={numRequiredSignatures:Ln.Buffer.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:Ln.Buffer.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:Ln.Buffer.from([this.header.numReadonlyUnsignedAccounts]),keyCount:Ln.Buffer.from(n),keys:this.accountKeys.map(m=>xo(m.toBytes())),recentBlockhash:Ou.default.decode(this.recentBlockhash)},d=Ln.Buffer.alloc(2048),h=c.encode(u,d);return i.copy(d,h),d.slice(0,h+i.length)}static from(e){let n=[...e],r=s2(n);if(r!==(r&uie))throw new Error(\"Versioned messages must be deserialized with VersionedMessage.deserialize()\");let o=s2(n),i=s2(n),a=Dh(n),c=[];for(let g=0;g<a;g++){let b=Uh(n,0,_3);c.push(new ar(Ln.Buffer.from(b)))}let u=Uh(n,0,_3),d=Dh(n),h=[];for(let g=0;g<d;g++){let b=s2(n),E=Dh(n),C=Uh(n,0,E),T=Dh(n),R=Uh(n,0,T),L=Ou.default.encode(Ln.Buffer.from(R));h.push({programIdIndex:b,accounts:C,data:L})}let m={header:{numRequiredSignatures:r,numReadonlySignedAccounts:o,numReadonlyUnsignedAccounts:i},recentBlockhash:Ou.default.encode(Ln.Buffer.from(u)),accountKeys:c,instructions:h};return new t(m)}},eie=class t{constructor(e){this.header=void 0,this.staticAccountKeys=void 0,this.recentBlockhash=void 0,this.compiledInstructions=void 0,this.addressTableLookups=void 0,this.header=e.header,this.staticAccountKeys=e.staticAccountKeys,this.recentBlockhash=e.recentBlockhash,this.compiledInstructions=e.compiledInstructions,this.addressTableLookups=e.addressTableLookups}get version(){return 0}get numAccountKeysFromLookups(){let e=0;for(let n of this.addressTableLookups)e+=n.readonlyIndexes.length+n.writableIndexes.length;return e}getAccountKeys(e){let n;if(e&&\"accountKeysFromLookups\"in e&&e.accountKeysFromLookups){if(this.numAccountKeysFromLookups!=e.accountKeysFromLookups.writable.length+e.accountKeysFromLookups.readonly.length)throw new Error(\"Failed to get account keys because of a mismatch in the number of account keys from lookups\");n=e.accountKeysFromLookups}else if(e&&\"addressLookupTableAccounts\"in e&&e.addressLookupTableAccounts)n=this.resolveAddressTableLookups(e.addressLookupTableAccounts);else if(this.addressTableLookups.length>0)throw new Error(\"Failed to get account keys because address table lookups were not resolved\");return new zA(this.staticAccountKeys,n)}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){let n=this.header.numRequiredSignatures,r=this.staticAccountKeys.length;if(e>=r){let o=e-r,i=this.addressTableLookups.reduce((a,c)=>a+c.writableIndexes.length,0);return o<i}else if(e>=this.header.numRequiredSignatures){let o=e-n,a=r-n-this.header.numReadonlyUnsignedAccounts;return o<a}else{let o=n-this.header.numReadonlySignedAccounts;return e<o}}resolveAddressTableLookups(e){let n={writable:[],readonly:[]};for(let r of this.addressTableLookups){let o=e.find(i=>i.key.equals(r.accountKey));if(!o)throw new Error(`Failed to find address lookup table account for table key ${r.accountKey.toBase58()}`);for(let i of r.writableIndexes)if(i<o.state.addresses.length)n.writable.push(o.state.addresses[i]);else throw new Error(`Failed to find address for index ${i} in address lookup table ${r.accountKey.toBase58()}`);for(let i of r.readonlyIndexes)if(i<o.state.addresses.length)n.readonly.push(o.state.addresses[i]);else throw new Error(`Failed to find address for index ${i} in address lookup table ${r.accountKey.toBase58()}`)}return n}static compile(e){let n=sW.compile(e.instructions,e.payerKey),r=new Array,o={writable:new Array,readonly:new Array},i=e.addressLookupTableAccounts||[];for(let h of i){let m=n.extractTableLookup(h);if(m!==void 0){let[g,{writable:b,readonly:E}]=m;r.push(g),o.writable.push(...b),o.readonly.push(...E)}}let[a,c]=n.getMessageComponents(),d=new zA(c,o).compileInstructions(e.instructions);return new t({header:a,staticAccountKeys:c,recentBlockhash:e.recentBlockhash,compiledInstructions:d,addressTableLookups:r})}serialize(){let e=Array();Fh(e,this.staticAccountKeys.length);let n=this.serializeInstructions(),r=Array();Fh(r,this.compiledInstructions.length);let o=this.serializeAddressTableLookups(),i=Array();Fh(i,this.addressTableLookups.length);let a=we.struct([we.u8(\"prefix\"),we.struct([we.u8(\"numRequiredSignatures\"),we.u8(\"numReadonlySignedAccounts\"),we.u8(\"numReadonlyUnsignedAccounts\")],\"header\"),we.blob(e.length,\"staticAccountKeysLength\"),we.seq(Vr(),this.staticAccountKeys.length,\"staticAccountKeys\"),Vr(\"recentBlockhash\"),we.blob(r.length,\"instructionsLength\"),we.blob(n.length,\"serializedInstructions\"),we.blob(i.length,\"addressTableLookupsLength\"),we.blob(o.length,\"serializedAddressTableLookups\")]),c=new Uint8Array(ok),d=a.encode({prefix:128,header:this.header,staticAccountKeysLength:new Uint8Array(e),staticAccountKeys:this.staticAccountKeys.map(h=>h.toBytes()),recentBlockhash:Ou.default.decode(this.recentBlockhash),instructionsLength:new Uint8Array(r),serializedInstructions:n,addressTableLookupsLength:new Uint8Array(i),serializedAddressTableLookups:o},c);return c.slice(0,d)}serializeInstructions(){let e=0,n=new Uint8Array(ok);for(let r of this.compiledInstructions){let o=Array();Fh(o,r.accountKeyIndexes.length);let i=Array();Fh(i,r.data.length);let a=we.struct([we.u8(\"programIdIndex\"),we.blob(o.length,\"encodedAccountKeyIndexesLength\"),we.seq(we.u8(),r.accountKeyIndexes.length,\"accountKeyIndexes\"),we.blob(i.length,\"encodedDataLength\"),we.blob(r.data.length,\"data\")]);e+=a.encode({programIdIndex:r.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(o),accountKeyIndexes:r.accountKeyIndexes,encodedDataLength:new Uint8Array(i),data:r.data},n,e)}return n.slice(0,e)}serializeAddressTableLookups(){let e=0,n=new Uint8Array(ok);for(let r of this.addressTableLookups){let o=Array();Fh(o,r.writableIndexes.length);let i=Array();Fh(i,r.readonlyIndexes.length);let a=we.struct([Vr(\"accountKey\"),we.blob(o.length,\"encodedWritableIndexesLength\"),we.seq(we.u8(),r.writableIndexes.length,\"writableIndexes\"),we.blob(i.length,\"encodedReadonlyIndexesLength\"),we.seq(we.u8(),r.readonlyIndexes.length,\"readonlyIndexes\")]);e+=a.encode({accountKey:r.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(o),writableIndexes:r.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(i),readonlyIndexes:r.readonlyIndexes},n,e)}return n.slice(0,e)}static deserialize(e){let n=[...e],r=s2(n),o=r&uie;Xi(r!==o,\"Expected versioned message but received legacy message\");let i=o;Xi(i===0,`Expected versioned message with version 0 but found version ${i}`);let a={numRequiredSignatures:s2(n),numReadonlySignedAccounts:s2(n),numReadonlyUnsignedAccounts:s2(n)},c=[],u=Dh(n);for(let E=0;E<u;E++)c.push(new ar(Uh(n,0,_3)));let d=Ou.default.encode(Uh(n,0,_3)),h=Dh(n),m=[];for(let E=0;E<h;E++){let C=s2(n),T=Dh(n),R=Uh(n,0,T),L=Dh(n),D=new Uint8Array(Uh(n,0,L));m.push({programIdIndex:C,accountKeyIndexes:R,data:D})}let g=Dh(n),b=[];for(let E=0;E<g;E++){let C=new ar(Uh(n,0,_3)),T=Dh(n),R=Uh(n,0,T),L=Dh(n),D=Uh(n,0,L);b.push({accountKey:C,writableIndexes:R,readonlyIndexes:D})}return new t({header:a,staticAccountKeys:c,recentBlockhash:d,compiledInstructions:m,addressTableLookups:b})}},dW={deserializeMessageVersion(t){let e=t[0],n=e&uie;return n===e?\"legacy\":n},deserialize:t=>{let e=dW.deserializeMessageVersion(t);if(e===\"legacy\")return uP.from(t);if(e===0)return eie.deserialize(t);throw new Error(`Transaction message version ${e} deserialization is not supported`)}};var ypt=Ln.Buffer.alloc(iW).fill(0),Ai=class{constructor(e){this.keys=void 0,this.programId=void 0,this.data=Ln.Buffer.alloc(0),this.programId=e.programId,this.keys=e.keys,e.data&&(this.data=e.data)}toJSON(){return{keys:this.keys.map(({pubkey:e,isSigner:n,isWritable:r})=>({pubkey:e.toJSON(),isSigner:n,isWritable:r})),programId:this.programId.toJSON(),data:[...this.data]}}},Fi=class t{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(e){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,!!e)if(e.feePayer&&(this.feePayer=e.feePayer),e.signatures&&(this.signatures=e.signatures),Object.prototype.hasOwnProperty.call(e,\"nonceInfo\")){let{minContextSlot:n,nonceInfo:r}=e;this.minNonceContextSlot=n,this.nonceInfo=r}else if(Object.prototype.hasOwnProperty.call(e,\"lastValidBlockHeight\")){let{blockhash:n,lastValidBlockHeight:r}=e;this.recentBlockhash=n,this.lastValidBlockHeight=r}else{let{recentBlockhash:n,nonceInfo:r}=e;r&&(this.nonceInfo=r),this.recentBlockhash=n}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map(e=>e.toJSON()),signers:this.signatures.map(({publicKey:e})=>e.toJSON())}}add(...e){if(e.length===0)throw new Error(\"No instructions\");return e.forEach(n=>{\"instructions\"in n?this.instructions=this.instructions.concat(n.instructions):\"data\"in n&&\"programId\"in n&&\"keys\"in n?this.instructions.push(n):this.instructions.push(new Ai(n))}),this}compileMessage(){if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;let e,n;if(this.nonceInfo?(e=this.nonceInfo.nonce,this.instructions[0]!=this.nonceInfo.nonceInstruction?n=[this.nonceInfo.nonceInstruction,...this.instructions]:n=this.instructions):(e=this.recentBlockhash,n=this.instructions),!e)throw new Error(\"Transaction recentBlockhash required\");n.length<1&&console.warn(\"No instructions provided\");let r;if(this.feePayer)r=this.feePayer;else if(this.signatures.length>0&&this.signatures[0].publicKey)r=this.signatures[0].publicKey;else throw new Error(\"Transaction fee payer required\");for(let C=0;C<n.length;C++)if(n[C].programId===void 0)throw new Error(`Transaction instruction index ${C} has undefined program id`);let o=[],i=[];n.forEach(C=>{C.keys.forEach(R=>{i.push({...R})});let T=C.programId.toString();o.includes(T)||o.push(T)}),o.forEach(C=>{i.push({pubkey:new ar(C),isSigner:!1,isWritable:!1})});let a=[];i.forEach(C=>{let T=C.pubkey.toString(),R=a.findIndex(L=>L.pubkey.toString()===T);R>-1?(a[R].isWritable=a[R].isWritable||C.isWritable,a[R].isSigner=a[R].isSigner||C.isSigner):a.push(C)}),a.sort(function(C,T){if(C.isSigner!==T.isSigner)return C.isSigner?-1:1;if(C.isWritable!==T.isWritable)return C.isWritable?-1:1;let R={localeMatcher:\"best fit\",usage:\"sort\",sensitivity:\"variant\",ignorePunctuation:!1,numeric:!1,caseFirst:\"lower\"};return C.pubkey.toBase58().localeCompare(T.pubkey.toBase58(),\"en\",R)});let c=a.findIndex(C=>C.pubkey.equals(r));if(c>-1){let[C]=a.splice(c,1);C.isSigner=!0,C.isWritable=!0,a.unshift(C)}else a.unshift({pubkey:r,isSigner:!0,isWritable:!0});for(let C of this.signatures){let T=a.findIndex(R=>R.pubkey.equals(C.publicKey));if(T>-1)a[T].isSigner||(a[T].isSigner=!0,console.warn(\"Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release.\"));else throw new Error(`unknown signer: ${C.publicKey.toString()}`)}let u=0,d=0,h=0,m=[],g=[];a.forEach(({pubkey:C,isSigner:T,isWritable:R})=>{T?(m.push(C.toString()),u+=1,R||(d+=1)):(g.push(C.toString()),R||(h+=1))});let b=m.concat(g),E=n.map(C=>{let{data:T,programId:R}=C;return{programIdIndex:b.indexOf(R.toString()),accounts:C.keys.map(L=>b.indexOf(L.pubkey.toString())),data:Ou.default.encode(T)}});return E.forEach(C=>{Xi(C.programIdIndex>=0),C.accounts.forEach(T=>Xi(T>=0))}),new uP({header:{numRequiredSignatures:u,numReadonlySignedAccounts:d,numReadonlyUnsignedAccounts:h},accountKeys:b,recentBlockhash:e,instructions:E})}_compile(){let e=this.compileMessage(),n=e.accountKeys.slice(0,e.header.numRequiredSignatures);return this.signatures.length===n.length&&this.signatures.every((o,i)=>n[i].equals(o.publicKey))||(this.signatures=n.map(r=>({signature:null,publicKey:r}))),e}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(e){return(await e.getFeeForMessage(this.compileMessage())).value}setSigners(...e){if(e.length===0)throw new Error(\"No signers\");let n=new Set;this.signatures=e.filter(r=>{let o=r.toString();return n.has(o)?!1:(n.add(o),!0)}).map(r=>({signature:null,publicKey:r}))}sign(...e){if(e.length===0)throw new Error(\"No signers\");let n=new Set,r=[];for(let i of e){let a=i.publicKey.toString();n.has(a)||(n.add(a),r.push(i))}this.signatures=r.map(i=>({signature:null,publicKey:i.publicKey}));let o=this._compile();this._partialSign(o,...r)}partialSign(...e){if(e.length===0)throw new Error(\"No signers\");let n=new Set,r=[];for(let i of e){let a=i.publicKey.toString();n.has(a)||(n.add(a),r.push(i))}let o=this._compile();this._partialSign(o,...r)}_partialSign(e,...n){let r=e.serialize();n.forEach(o=>{let i=lie(r,o.secretKey);this._addSignature(o.publicKey,xo(i))})}addSignature(e,n){this._compile(),this._addSignature(e,n)}_addSignature(e,n){Xi(n.length===64);let r=this.signatures.findIndex(o=>e.equals(o.publicKey));if(r<0)throw new Error(`unknown signer: ${e.toString()}`);this.signatures[r].signature=Ln.Buffer.from(n)}verifySignatures(e=!0){return!this._getMessageSignednessErrors(this.serializeMessage(),e)}_getMessageSignednessErrors(e,n){let r={};for(let{signature:o,publicKey:i}of this.signatures)o===null?n&&(r.missing||(r.missing=[])).push(i):lpt(o,e,i.toBytes())||(r.invalid||(r.invalid=[])).push(i);return r.invalid||r.missing?r:void 0}serialize(e){let{requireAllSignatures:n,verifySignatures:r}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},e),o=this.serializeMessage();if(r){let i=this._getMessageSignednessErrors(o,n);if(i){let a=\"Signature verification failed.\";throw i.invalid&&(a+=`\\nInvalid signature for public key${i.invalid.length===1?\"\":\"(s)\"} [\\\\`${i.invalid.map(c=>c.toBase58()).join(\"`, `\")}\\\\`].`),i.missing&&(a+=`\\nMissing signature for public key${i.missing.length===1?\"\":\"(s)\"} [\\\\`${i.missing.map(c=>c.toBase58()).join(\"`, `\")}\\\\`].`),new Error(a)}}return this._serialize(o)}_serialize(e){let{signatures:n}=this,r=[];Fh(r,n.length);let o=r.length+n.length*64+e.length,i=Ln.Buffer.alloc(o);return Xi(n.length<256),Ln.Buffer.from(r).copy(i,0),n.forEach(({signature:a},c)=>{a!==null&&(Xi(a.length===64,\"signature has invalid length\"),Ln.Buffer.from(a).copy(i,r.length+c*64))}),e.copy(i,r.length+n.length*64),Xi(i.length<=ok,`Transaction too large: ${i.length} > ${ok}`),i}get keys(){return Xi(this.instructions.length===1),this.instructions[0].keys.map(e=>e.pubkey)}get programId(){return Xi(this.instructions.length===1),this.instructions[0].programId}get data(){return Xi(this.instructions.length===1),this.instructions[0].data}static from(e){let n=[...e],r=Dh(n),o=[];for(let i=0;i<r;i++){let a=Uh(n,0,iW);o.push(Ou.default.encode(Ln.Buffer.from(a)))}return t.populate(uP.from(n),o)}static populate(e,n=[]){let r=new t;return r.recentBlockhash=e.recentBlockhash,e.header.numRequiredSignatures>0&&(r.feePayer=e.accountKeys[0]),n.forEach((o,i)=>{let a={signature:o==Ou.default.encode(ypt)?null:Ou.default.decode(o),publicKey:e.accountKeys[i]};r.signatures.push(a)}),e.instructions.forEach(o=>{let i=o.accounts.map(a=>{let c=e.accountKeys[a];return{pubkey:c,isSigner:r.signatures.some(u=>u.publicKey.toString()===c.toString())||e.isAccountSigner(a),isWritable:e.isAccountWritable(a)}});r.instructions.push(new Ai({keys:i,programId:e.accountKeys[o.programIdIndex],data:Ou.default.decode(o.data)}))}),r._message=e,r._json=r.toJSON(),r}};var aW=class t{get version(){return this.message.version}constructor(e,n){if(this.signatures=void 0,this.message=void 0,n!==void 0)Xi(n.length===e.header.numRequiredSignatures,\"Expected signatures length to be equal to the number of required signatures\"),this.signatures=n;else{let r=[];for(let o=0;o<e.header.numRequiredSignatures;o++)r.push(new Uint8Array(iW));this.signatures=r}this.message=e}serialize(){let e=this.message.serialize(),n=Array();Fh(n,this.signatures.length);let r=we.struct([we.blob(n.length,\"encodedSignaturesLength\"),we.seq(fpt(),this.signatures.length,\"signatures\"),we.blob(e.length,\"serializedMessage\")]),o=new Uint8Array(2048),i=r.encode({encodedSignaturesLength:new Uint8Array(n),signatures:this.signatures,serializedMessage:e},o);return o.slice(0,i)}static deserialize(e){let n=[...e],r=[],o=Dh(n);for(let a=0;a<o;a++)r.push(new Uint8Array(Uh(n,0,iW)));let i=dW.deserialize(new Uint8Array(n));return new t(i,r)}sign(e){let n=this.message.serialize(),r=this.message.staticAccountKeys.slice(0,this.message.header.numRequiredSignatures);for(let o of e){let i=r.findIndex(a=>a.equals(o.publicKey));Xi(i>=0,`Cannot sign with non signer key ${o.publicKey.toBase58()}`),this.signatures[i]=lie(n,o.secretKey)}}addSignature(e,n){Xi(n.byteLength===64,\"Signature must be 64 bytes long\");let o=this.message.staticAccountKeys.slice(0,this.message.header.numRequiredSignatures).findIndex(i=>i.equals(e));Xi(o>=0,`Can not add signature; \\\\`${e.toBase58()}\\\\` is not required to sign this transaction`),this.signatures[o]=n}},bpt=160,vpt=64,wpt=bpt/vpt,xpt=1e3/wpt,i2=new ar(\"SysvarC1ock11111111111111111111111111111111\"),oyn=new ar(\"SysvarEpochSchedu1e111111111111111111111111\"),iyn=new ar(\"Sysvar1nstructions1111111111111111111111111\"),Woe=new ar(\"SysvarRecentB1ockHashes11111111111111111111\"),dP=new ar(\"SysvarRent111111111111111111111111111111111\"),syn=new ar(\"SysvarRewards111111111111111111111111111111\"),ayn=new ar(\"SysvarS1otHashes111111111111111111111111111\"),cyn=new ar(\"SysvarS1otHistory11111111111111111111111111\"),Voe=new ar(\"SysvarStakeHistory1111111111111111111111111\"),tie=class extends Error{constructor({action:e,signature:n,transactionMessage:r,logs:o}){let i=o?`Logs: \\n${JSON.stringify(o.slice(-10),null,2)}. `:\"\",a=\"\\\\nCatch the `SendTransactionError` and call `getLogs()` on it for full details.\",c;switch(e){case\"send\":c=`Transaction ${n} resulted in an error. \\n${r}. `+i+a;break;case\"simulate\":c=`Simulation failed. \\nMessage: ${r}. \\n`+i+a;break;default:c=`Unknown action \\'${(u=>u)(e)}\\'`}super(c),this.signature=void 0,this.transactionMessage=void 0,this.transactionLogs=void 0,this.signature=n,this.transactionMessage=r,this.transactionLogs=o||void 0}get transactionError(){return{message:this.transactionMessage,logs:Array.isArray(this.transactionLogs)?this.transactionLogs:void 0}}get logs(){let e=this.transactionLogs;if(!(e!=null&&typeof e==\"object\"&&\"then\"in e))return e}async getLogs(e){return Array.isArray(this.transactionLogs)||(this.transactionLogs=new Promise((n,r)=>{e.getTransaction(this.signature).then(o=>{if(o&&o.meta&&o.meta.logMessages){let i=o.meta.logMessages;this.transactionLogs=i,n(i)}else r(new Error(\"Log messages not found\"))}).catch(r)})),await this.transactionLogs}};async function ERe(t,e,n,r){let o=r&&{skipPreflight:r.skipPreflight,preflightCommitment:r.preflightCommitment||r.commitment,maxRetries:r.maxRetries,minContextSlot:r.minContextSlot},i=await t.sendTransaction(e,n,o),a;if(e.recentBlockhash!=null&&e.lastValidBlockHeight!=null)a=(await t.confirmTransaction({abortSignal:r?.abortSignal,signature:i,blockhash:e.recentBlockhash,lastValidBlockHeight:e.lastValidBlockHeight},r&&r.commitment)).value;else if(e.minNonceContextSlot!=null&&e.nonceInfo!=null){let{nonceInstruction:c}=e.nonceInfo,u=c.keys[0].pubkey;a=(await t.confirmTransaction({abortSignal:r?.abortSignal,minContextSlot:e.minNonceContextSlot,nonceAccountPubkey:u,nonceValue:e.nonceInfo.nonce,signature:i},r&&r.commitment)).value}else r?.abortSignal!=null&&console.warn(\"sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable.\"),a=(await t.confirmTransaction(i,r&&r.commitment)).value;if(a.err)throw i!=null?new tie({action:\"send\",signature:i,transactionMessage:`Status: (${JSON.stringify(a)})`}):new Error(`Transaction ${i} failed (${JSON.stringify(a)})`);return i}function Ept(t){return new Promise(e=>setTimeout(e,t))}function to(t,e){let n=t.layout.span>=0?t.layout.span:MRe(t,e),r=Ln.Buffer.alloc(n),o=Object.assign({instruction:t.index},e);return t.layout.encode(o,r),r}var Spt=we.nu64(\"lamportsPerSignature\"),kpt=we.struct([we.u32(\"version\"),we.u32(\"state\"),Vr(\"authorizedPubkey\"),Vr(\"nonce\"),we.struct([Spt],\"feeCalculator\")]),SRe=kpt.span;function HA(t){let e=(0,ORe.blob)(8,t),n=e.decode.bind(e),r=e.encode.bind(e),o=e,i=uRe();return o.decode=(a,c)=>{let u=n(a,c);return i.decode(u)},o.encode=(a,c,u)=>{let d=i.encode(a);return r(d,c,u)},o}var Im=Object.freeze({Create:{index:0,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"lamports\"),we.ns64(\"space\"),Vr(\"programId\")])},Assign:{index:1,layout:we.struct([we.u32(\"instruction\"),Vr(\"programId\")])},Transfer:{index:2,layout:we.struct([we.u32(\"instruction\"),HA(\"lamports\")])},CreateWithSeed:{index:3,layout:we.struct([we.u32(\"instruction\"),Vr(\"base\"),jA(\"seed\"),we.ns64(\"lamports\"),we.ns64(\"space\"),Vr(\"programId\")])},AdvanceNonceAccount:{index:4,layout:we.struct([we.u32(\"instruction\")])},WithdrawNonceAccount:{index:5,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"lamports\")])},InitializeNonceAccount:{index:6,layout:we.struct([we.u32(\"instruction\"),Vr(\"authorized\")])},AuthorizeNonceAccount:{index:7,layout:we.struct([we.u32(\"instruction\"),Vr(\"authorized\")])},Allocate:{index:8,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"space\")])},AllocateWithSeed:{index:9,layout:we.struct([we.u32(\"instruction\"),Vr(\"base\"),jA(\"seed\"),we.ns64(\"space\"),Vr(\"programId\")])},AssignWithSeed:{index:10,layout:we.struct([we.u32(\"instruction\"),Vr(\"base\"),jA(\"seed\"),Vr(\"programId\")])},TransferWithSeed:{index:11,layout:we.struct([we.u32(\"instruction\"),HA(\"lamports\"),jA(\"seed\"),Vr(\"programId\")])},UpgradeNonceAccount:{index:12,layout:we.struct([we.u32(\"instruction\")])}}),Md=class t{constructor(){}static createAccount(e){let n=Im.Create,r=to(n,{lamports:e.lamports,space:e.space,programId:xo(e.programId.toBuffer())});return new Ai({keys:[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!0,isWritable:!0}],programId:this.programId,data:r})}static transfer(e){let n,r;if(\"basePubkey\"in e){let o=Im.TransferWithSeed;n=to(o,{lamports:BigInt(e.lamports),seed:e.seed,programId:xo(e.programId.toBuffer())}),r=[{pubkey:e.fromPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}else{let o=Im.Transfer;n=to(o,{lamports:BigInt(e.lamports)}),r=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}return new Ai({keys:r,programId:this.programId,data:n})}static assign(e){let n,r;if(\"basePubkey\"in e){let o=Im.AssignWithSeed;n=to(o,{base:xo(e.basePubkey.toBuffer()),seed:e.seed,programId:xo(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{let o=Im.Assign;n=to(o,{programId:xo(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Ai({keys:r,programId:this.programId,data:n})}static createAccountWithSeed(e){let n=Im.CreateWithSeed,r=to(n,{base:xo(e.basePubkey.toBuffer()),seed:e.seed,lamports:e.lamports,space:e.space,programId:xo(e.programId.toBuffer())}),o=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!1,isWritable:!0}];return e.basePubkey.equals(e.fromPubkey)||o.push({pubkey:e.basePubkey,isSigner:!0,isWritable:!1}),new Ai({keys:o,programId:this.programId,data:r})}static createNonceAccount(e){let n=new Fi;\"basePubkey\"in e&&\"seed\"in e?n.add(t.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:SRe,programId:this.programId})):n.add(t.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,lamports:e.lamports,space:SRe,programId:this.programId}));let r={noncePubkey:e.noncePubkey,authorizedPubkey:e.authorizedPubkey};return n.add(this.nonceInitialize(r)),n}static nonceInitialize(e){let n=Im.InitializeNonceAccount,r=to(n,{authorized:xo(e.authorizedPubkey.toBuffer())}),o={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:Woe,isSigner:!1,isWritable:!1},{pubkey:dP,isSigner:!1,isWritable:!1}],programId:this.programId,data:r};return new Ai(o)}static nonceAdvance(e){let n=Im.AdvanceNonceAccount,r=to(n),o={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:Woe,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r};return new Ai(o)}static nonceWithdraw(e){let n=Im.WithdrawNonceAccount,r=to(n,{lamports:e.lamports});return new Ai({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0},{pubkey:Woe,isSigner:!1,isWritable:!1},{pubkey:dP,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static nonceAuthorize(e){let n=Im.AuthorizeNonceAccount,r=to(n,{authorized:xo(e.newAuthorizedPubkey.toBuffer())});return new Ai({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static allocate(e){let n,r;if(\"basePubkey\"in e){let o=Im.AllocateWithSeed;n=to(o,{base:xo(e.basePubkey.toBuffer()),seed:e.seed,space:e.space,programId:xo(e.programId.toBuffer())}),r=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{let o=Im.Allocate;n=to(o,{space:e.space}),r=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Ai({keys:r,programId:this.programId,data:n})}};Md.programId=new ar(\"11111111111111111111111111111111\");var _pt=ok-300,nie=class t{constructor(){}static getMinNumSignatures(e){return 2*(Math.ceil(e/t.chunkSize)+1+1)}static async load(e,n,r,o,i){{let m=await e.getMinimumBalanceForRentExemption(i.length),g=await e.getAccountInfo(r.publicKey,\"confirmed\"),b=null;if(g!==null){if(g.executable)return console.error(\"Program load failed, account is already executable\"),!1;g.data.length!==i.length&&(b=b||new Fi,b.add(Md.allocate({accountPubkey:r.publicKey,space:i.length}))),g.owner.equals(o)||(b=b||new Fi,b.add(Md.assign({accountPubkey:r.publicKey,programId:o}))),g.lamports<m&&(b=b||new Fi,b.add(Md.transfer({fromPubkey:n.publicKey,toPubkey:r.publicKey,lamports:m-g.lamports})))}else b=new Fi().add(Md.createAccount({fromPubkey:n.publicKey,newAccountPubkey:r.publicKey,lamports:m>0?m:1,space:i.length,programId:o}));b!==null&&await ERe(e,b,[n,r],{commitment:\"confirmed\"})}let a=we.struct([we.u32(\"instruction\"),we.u32(\"offset\"),we.u32(\"bytesLength\"),we.u32(\"bytesLengthPadding\"),we.seq(we.u8(\"byte\"),we.offset(we.u32(),-8),\"bytes\")]),c=t.chunkSize,u=0,d=i,h=[];for(;d.length>0;){let m=d.slice(0,c),g=Ln.Buffer.alloc(c+16);a.encode({instruction:0,offset:u,bytes:m,bytesLength:0,bytesLengthPadding:0},g);let b=new Fi().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0}],programId:o,data:g});h.push(ERe(e,b,[n,r],{commitment:\"confirmed\"})),e._rpcEndpoint.includes(\"solana.com\")&&await Ept(1e3/4),u+=c,d=d.slice(c)}await Promise.all(h);{let m=we.struct([we.u32(\"instruction\")]),g=Ln.Buffer.alloc(m.span);m.encode({instruction:1},g);let b=new Fi().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0},{pubkey:dP,isSigner:!1,isWritable:!1}],programId:o,data:g}),E=\"processed\",C=await e.sendTransaction(b,[n,r],{preflightCommitment:E}),{context:T,value:R}=await e.confirmTransaction({signature:C,lastValidBlockHeight:b.lastValidBlockHeight,blockhash:b.recentBlockhash},E);if(R.err)throw new Error(`Transaction ${C} failed (${JSON.stringify(R)})`);for(;;){try{if(await e.getSlot({commitment:E})>T.slot)break}catch{}await new Promise(L=>setTimeout(L,Math.round(xpt/2)))}}return!0}};nie.chunkSize=_pt;var lyn=new ar(\"BPFLoader2111111111111111111111111111111111\");var uyn=globalThis.fetch;var dyn={index:1,layout:we.struct([we.u32(\"typeIndex\"),HA(\"deactivationSlot\"),we.nu64(\"lastExtendedSlot\"),we.u8(\"lastExtendedStartIndex\"),we.u8(),we.seq(Vr(),we.offset(we.u8(),-1),\"authority\")])};var $s=UA(tW(ar),Ot(),t=>new ar(t)),LRe=nW([Ot(),ps(\"base64\")]),die=UA(tW(Ln.Buffer),LRe,t=>Ln.Buffer.from(t[0],\"base64\")),fyn=30*1e3;function BRe(t){return Iu([St({jsonrpc:ps(\"2.0\"),id:Ot(),result:t}),St({jsonrpc:ps(\"2.0\"),id:Ot(),error:St({code:rk(),message:Ot(),data:wn(pRe())})})])}var Cpt=BRe(rk());function Ui(t){return UA(BRe(t),Cpt,e=>\"error\"in e?e:{...e,result:FA(e.result,t)})}function vg(t){return Ui(St({context:St({slot:je()}),value:t}))}function fW(t){return St({context:St({slot:je()}),value:t})}var Apt=St({foundation:je(),foundationTerm:je(),initial:je(),taper:je(),terminal:je()}),hyn=Ui(Zt(Yt(St({epoch:je(),effectiveSlot:je(),amount:je(),postBalance:je(),commission:wn(Yt(je()))})))),Tpt=Zt(St({slot:je(),prioritizationFee:je()})),Rpt=St({total:je(),validator:je(),foundation:je(),epoch:je()}),Ipt=St({epoch:je(),slotIndex:je(),slotsInEpoch:je(),absoluteSlot:je(),blockHeight:wn(je()),transactionCount:wn(je())}),Opt=St({slotsPerEpoch:je(),leaderScheduleSlotOffset:je(),warmup:bg(),firstNormalEpoch:je(),firstNormalSlot:je()}),Ppt=qoe(Ot(),Zt(je())),ik=Yt(Iu([St({}),Ot()])),Mpt=St({err:ik}),Npt=ps(\"receivedSignature\"),pyn=St({\"solana-core\":Ot(),\"feature-set\":wn(je())}),Lpt=St({program:Ot(),programId:$s,parsed:rk()}),Bpt=St({programId:$s,accounts:Zt($s),data:Ot()}),myn=vg(St({err:Yt(Iu([St({}),Ot()])),logs:Yt(Zt(Ot())),accounts:wn(Yt(Zt(Yt(St({executable:bg(),owner:Ot(),lamports:je(),data:Zt(Ot()),rentEpoch:wn(je())}))))),unitsConsumed:wn(je()),returnData:wn(Yt(St({programId:Ot(),data:nW([Ot(),ps(\"base64\")])}))),innerInstructions:wn(Yt(Zt(St({index:je(),instructions:Zt(Iu([Lpt,Bpt]))}))))})),gyn=vg(St({byIdentity:qoe(Ot(),Zt(je())),range:St({firstSlot:je(),lastSlot:je()})}));var yyn=Ui(Apt),byn=Ui(Rpt),vyn=Ui(Tpt),wyn=Ui(Ipt),xyn=Ui(Opt),Eyn=Ui(Ppt),Syn=Ui(je()),kyn=vg(St({total:je(),circulating:je(),nonCirculating:je(),nonCirculatingAccounts:Zt($s)})),Dpt=St({amount:Ot(),uiAmount:Yt(je()),decimals:je(),uiAmountString:wn(Ot())}),_yn=vg(Zt(St({address:$s,amount:Ot(),uiAmount:Yt(je()),decimals:je(),uiAmountString:wn(Ot())}))),Cyn=vg(Zt(St({pubkey:$s,account:St({executable:bg(),owner:$s,lamports:je(),data:die,rentEpoch:je()})}))),rie=St({program:Ot(),parsed:rk(),space:je()}),Ayn=vg(Zt(St({pubkey:$s,account:St({executable:bg(),owner:$s,lamports:je(),data:rie,rentEpoch:je()})}))),Tyn=vg(Zt(St({lamports:je(),address:$s}))),fie=St({executable:bg(),owner:$s,lamports:je(),data:die,rentEpoch:je()}),Ryn=St({pubkey:$s,account:fie}),Fpt=UA(Iu([tW(Ln.Buffer),rie]),Iu([LRe,rie]),t=>Array.isArray(t)?FA(t,die):t),Upt=St({executable:bg(),owner:$s,lamports:je(),data:Fpt,rentEpoch:je()}),Iyn=St({pubkey:$s,account:Upt}),Oyn=St({state:Iu([ps(\"active\"),ps(\"inactive\"),ps(\"activating\"),ps(\"deactivating\")]),active:je(),inactive:je()}),Pyn=Ui(Zt(St({signature:Ot(),slot:je(),err:ik,memo:Yt(Ot()),blockTime:wn(Yt(je()))}))),Myn=Ui(Zt(St({signature:Ot(),slot:je(),err:ik,memo:Yt(Ot()),blockTime:wn(Yt(je()))}))),Nyn=St({subscription:je(),result:fW(fie)}),jpt=St({pubkey:$s,account:fie}),Lyn=St({subscription:je(),result:fW(jpt)}),zpt=St({parent:je(),slot:je(),root:je()}),Byn=St({subscription:je(),result:zpt}),Hpt=Iu([St({type:Iu([ps(\"firstShredReceived\"),ps(\"completed\"),ps(\"optimisticConfirmation\"),ps(\"root\")]),slot:je(),timestamp:je()}),St({type:ps(\"createdBank\"),parent:je(),slot:je(),timestamp:je()}),St({type:ps(\"frozen\"),slot:je(),timestamp:je(),stats:St({numTransactionEntries:je(),numSuccessfulTransactions:je(),numFailedTransactions:je(),maxTransactionsPerEntry:je()})}),St({type:ps(\"dead\"),slot:je(),timestamp:je(),err:Ot()})]),Dyn=St({subscription:je(),result:Hpt}),Fyn=St({subscription:je(),result:fW(Iu([Mpt,Npt]))}),Uyn=St({subscription:je(),result:je()}),jyn=St({pubkey:Ot(),gossip:Yt(Ot()),tpu:Yt(Ot()),rpc:Yt(Ot()),version:Yt(Ot())}),kRe=St({votePubkey:Ot(),nodePubkey:Ot(),activatedStake:je(),epochVoteAccount:bg(),epochCredits:Zt(nW([je(),je(),je()])),commission:je(),lastVote:je(),rootSlot:Yt(je())}),zyn=Ui(St({current:Zt(kRe),delinquent:Zt(kRe)})),qpt=Iu([ps(\"processed\"),ps(\"confirmed\"),ps(\"finalized\")]),Wpt=St({slot:je(),confirmations:Yt(je()),err:ik,confirmationStatus:wn(qpt)}),Hyn=vg(Zt(Yt(Wpt))),qyn=Ui(je()),DRe=St({accountKey:$s,writableIndexes:Zt(je()),readonlyIndexes:Zt(je())}),hie=St({signatures:Zt(Ot()),message:St({accountKeys:Zt(Ot()),header:St({numRequiredSignatures:je(),numReadonlySignedAccounts:je(),numReadonlyUnsignedAccounts:je()}),instructions:Zt(St({accounts:Zt(je()),data:Ot(),programIdIndex:je()})),recentBlockhash:Ot(),addressTableLookups:wn(Zt(DRe))})}),FRe=St({pubkey:$s,signer:bg(),writable:bg(),source:wn(Iu([ps(\"transaction\"),ps(\"lookupTable\")]))}),URe=St({accountKeys:Zt(FRe),signatures:Zt(Ot())}),jRe=St({parsed:rk(),program:Ot(),programId:$s}),zRe=St({accounts:Zt($s),data:Ot(),programId:$s}),Vpt=Iu([zRe,jRe]),$pt=Iu([St({parsed:rk(),program:Ot(),programId:Ot()}),St({accounts:Zt(Ot()),data:Ot(),programId:Ot()})]),HRe=UA(Vpt,$pt,t=>\"accounts\"in t?FA(t,zRe):FA(t,jRe)),qRe=St({signatures:Zt(Ot()),message:St({accountKeys:Zt(FRe),instructions:Zt(HRe),recentBlockhash:Ot(),addressTableLookups:wn(Yt(Zt(DRe)))})}),cW=St({accountIndex:je(),mint:Ot(),owner:wn(Ot()),programId:wn(Ot()),uiTokenAmount:Dpt}),WRe=St({writable:Zt($s),readonly:Zt($s)}),hW=St({err:ik,fee:je(),innerInstructions:wn(Yt(Zt(St({index:je(),instructions:Zt(St({accounts:Zt(je()),data:Ot(),programIdIndex:je()}))})))),preBalances:Zt(je()),postBalances:Zt(je()),logMessages:wn(Yt(Zt(Ot()))),preTokenBalances:wn(Yt(Zt(cW))),postTokenBalances:wn(Yt(Zt(cW))),loadedAddresses:wn(WRe),computeUnitsConsumed:wn(je())}),pie=St({err:ik,fee:je(),innerInstructions:wn(Yt(Zt(St({index:je(),instructions:Zt(HRe)})))),preBalances:Zt(je()),postBalances:Zt(je()),logMessages:wn(Yt(Zt(Ot()))),preTokenBalances:wn(Yt(Zt(cW))),postTokenBalances:wn(Yt(Zt(cW))),loadedAddresses:wn(WRe),computeUnitsConsumed:wn(je())}),WA=Iu([ps(0),ps(\"legacy\")]),sk=St({pubkey:Ot(),lamports:je(),postBalance:Yt(je()),rewardType:Yt(Ot()),commission:wn(Yt(je()))}),Wyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),transactions:Zt(St({transaction:hie,meta:Yt(hW),version:wn(WA)})),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),Vyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),$yn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),transactions:Zt(St({transaction:URe,meta:Yt(hW),version:wn(WA)})),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),Kyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),transactions:Zt(St({transaction:qRe,meta:Yt(pie),version:wn(WA)})),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),Gyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),transactions:Zt(St({transaction:URe,meta:Yt(pie),version:wn(WA)})),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),Zyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),rewards:wn(Zt(sk)),blockTime:Yt(je()),blockHeight:Yt(je())}))),Yyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),transactions:Zt(St({transaction:hie,meta:Yt(hW)})),rewards:wn(Zt(sk)),blockTime:Yt(je())}))),Qyn=Ui(Yt(St({blockhash:Ot(),previousBlockhash:Ot(),parentSlot:je(),signatures:Zt(Ot()),blockTime:Yt(je())}))),Jyn=Ui(Yt(St({slot:je(),meta:Yt(hW),blockTime:wn(Yt(je())),transaction:hie,version:wn(WA)}))),Xyn=Ui(Yt(St({slot:je(),transaction:qRe,meta:Yt(pie),blockTime:wn(Yt(je())),version:wn(WA)}))),e1n=vg(St({blockhash:Ot(),lastValidBlockHeight:je()})),t1n=vg(bg()),Kpt=St({slot:je(),numTransactions:je(),numSlots:je(),samplePeriodSecs:je()}),n1n=Ui(Zt(Kpt)),r1n=vg(Yt(St({feeCalculator:St({lamportsPerSignature:je()})}))),o1n=Ui(Ot()),i1n=Ui(Ot()),Gpt=St({err:ik,logs:Zt(Ot()),signature:Ot()}),s1n=St({result:fW(Gpt),subscription:je()});var oie=class t{constructor(e){this._keypair=void 0,this._keypair=e??vRe()}static generate(){return new t(vRe())}static fromSecretKey(e,n){if(e.byteLength!==64)throw new Error(\"bad secret key size\");let r=e.slice(32,64);if(!n||!n.skipValidation){let o=e.slice(0,32),i=Zoe(o);for(let a=0;a<32;a++)if(r[a]!==i[a])throw new Error(\"provided secretKey is invalid\")}return new t({publicKey:r,secretKey:e})}static fromSeed(e){let n=Zoe(e),r=new Uint8Array(64);return r.set(e),r.set(n,32),new t({publicKey:n,secretKey:r})}get publicKey(){return new ar(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}},cP=Object.freeze({CreateLookupTable:{index:0,layout:we.struct([we.u32(\"instruction\"),HA(\"recentSlot\"),we.u8(\"bumpSeed\")])},FreezeLookupTable:{index:1,layout:we.struct([we.u32(\"instruction\")])},ExtendLookupTable:{index:2,layout:we.struct([we.u32(\"instruction\"),HA(),we.seq(Vr(),we.offset(we.u32(),-8),\"addresses\")])},DeactivateLookupTable:{index:3,layout:we.struct([we.u32(\"instruction\")])},CloseLookupTable:{index:4,layout:we.struct([we.u32(\"instruction\")])}});var iie=class{constructor(){}static createLookupTable(e){let[n,r]=ar.findProgramAddressSync([e.authority.toBuffer(),joe().encode(e.recentSlot)],this.programId),o=cP.CreateLookupTable,i=to(o,{recentSlot:BigInt(e.recentSlot),bumpSeed:r}),a=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Md.programId,isSigner:!1,isWritable:!1}];return[new Ai({programId:this.programId,keys:a,data:i}),n]}static freezeLookupTable(e){let n=cP.FreezeLookupTable,r=to(n),o=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Ai({programId:this.programId,keys:o,data:r})}static extendLookupTable(e){let n=cP.ExtendLookupTable,r=to(n,{addresses:e.addresses.map(i=>i.toBytes())}),o=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&o.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Md.programId,isSigner:!1,isWritable:!1}),new Ai({programId:this.programId,keys:o,data:r})}static deactivateLookupTable(e){let n=cP.DeactivateLookupTable,r=to(n),o=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Ai({programId:this.programId,keys:o,data:r})}static closeLookupTable(e){let n=cP.CloseLookupTable,r=to(n),o=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new Ai({programId:this.programId,keys:o,data:r})}};iie.programId=new ar(\"AddressLookupTab1e1111111111111111111111111\");var rW=Object.freeze({RequestUnits:{index:0,layout:we.struct([we.u8(\"instruction\"),we.u32(\"units\"),we.u32(\"additionalFee\")])},RequestHeapFrame:{index:1,layout:we.struct([we.u8(\"instruction\"),we.u32(\"bytes\")])},SetComputeUnitLimit:{index:2,layout:we.struct([we.u8(\"instruction\"),we.u32(\"units\")])},SetComputeUnitPrice:{index:3,layout:we.struct([we.u8(\"instruction\"),HA(\"microLamports\")])}}),sie=class{constructor(){}static requestUnits(e){let n=rW.RequestUnits,r=to(n,e);return new Ai({keys:[],programId:this.programId,data:r})}static requestHeapFrame(e){let n=rW.RequestHeapFrame,r=to(n,e);return new Ai({keys:[],programId:this.programId,data:r})}static setComputeUnitLimit(e){let n=rW.SetComputeUnitLimit,r=to(n,e);return new Ai({keys:[],programId:this.programId,data:r})}static setComputeUnitPrice(e){let n=rW.SetComputeUnitPrice,r=to(n,{microLamports:BigInt(e.microLamports)});return new Ai({keys:[],programId:this.programId,data:r})}};sie.programId=new ar(\"ComputeBudget111111111111111111111111111111\");var _Re=64,CRe=32,ARe=64,TRe=we.struct([we.u8(\"numSignatures\"),we.u8(\"padding\"),we.u16(\"signatureOffset\"),we.u16(\"signatureInstructionIndex\"),we.u16(\"publicKeyOffset\"),we.u16(\"publicKeyInstructionIndex\"),we.u16(\"messageDataOffset\"),we.u16(\"messageDataSize\"),we.u16(\"messageInstructionIndex\")]),aie=class t{constructor(){}static createInstructionWithPublicKey(e){let{publicKey:n,message:r,signature:o,instructionIndex:i}=e;Xi(n.length===CRe,`Public Key must be ${CRe} bytes but received ${n.length} bytes`),Xi(o.length===ARe,`Signature must be ${ARe} bytes but received ${o.length} bytes`);let a=TRe.span,c=a+n.length,u=c+o.length,d=1,h=Ln.Buffer.alloc(u+r.length),m=i??65535;return TRe.encode({numSignatures:d,padding:0,signatureOffset:c,signatureInstructionIndex:m,publicKeyOffset:a,publicKeyInstructionIndex:m,messageDataOffset:u,messageDataSize:r.length,messageInstructionIndex:m},h),h.fill(n,a),h.fill(o,c),h.fill(r,u),new Ai({keys:[],programId:t.programId,data:h})}static createInstructionWithPrivateKey(e){let{privateKey:n,message:r,instructionIndex:o}=e;Xi(n.length===_Re,`Private key must be ${_Re} bytes but received ${n.length} bytes`);try{let i=oie.fromSecretKey(n),a=i.publicKey.toBytes(),c=lie(r,i.secretKey);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:c,instructionIndex:o})}catch(i){throw new Error(`Error creating instruction; ${i}`)}}};aie.programId=new ar(\"Ed25519SigVerify111111111111111111111111111\");var Zpt=(t,e)=>{let n=Y0.sign(t,e);return[n.toCompactRawBytes(),n.recovery]};Y0.utils.isValidPrivateKey;var Ypt=Y0.getPublicKey,RRe=32,$oe=20,IRe=64,Qpt=11,Koe=we.struct([we.u8(\"numSignatures\"),we.u16(\"signatureOffset\"),we.u8(\"signatureInstructionIndex\"),we.u16(\"ethAddressOffset\"),we.u8(\"ethAddressInstructionIndex\"),we.u16(\"messageDataOffset\"),we.u16(\"messageDataSize\"),we.u8(\"messageInstructionIndex\"),we.blob(20,\"ethAddress\"),we.blob(64,\"signature\"),we.u8(\"recoveryId\")]),cie=class t{constructor(){}static publicKeyToEthAddress(e){Xi(e.length===IRe,`Public key must be ${IRe} bytes but received ${e.length} bytes`);try{return Ln.Buffer.from(R5(xo(e))).slice(-$oe)}catch(n){throw new Error(`Error constructing Ethereum address: ${n}`)}}static createInstructionWithPublicKey(e){let{publicKey:n,message:r,signature:o,recoveryId:i,instructionIndex:a}=e;return t.createInstructionWithEthAddress({ethAddress:t.publicKeyToEthAddress(n),message:r,signature:o,recoveryId:i,instructionIndex:a})}static createInstructionWithEthAddress(e){let{ethAddress:n,message:r,signature:o,recoveryId:i,instructionIndex:a=0}=e,c;typeof n==\"string\"?n.startsWith(\"0x\")?c=Ln.Buffer.from(n.substr(2),\"hex\"):c=Ln.Buffer.from(n,\"hex\"):c=n,Xi(c.length===$oe,`Address must be ${$oe} bytes but received ${c.length} bytes`);let u=1+Qpt,d=u,h=u+c.length,m=h+o.length+1,g=1,b=Ln.Buffer.alloc(Koe.span+r.length);return Koe.encode({numSignatures:g,signatureOffset:h,signatureInstructionIndex:a,ethAddressOffset:d,ethAddressInstructionIndex:a,messageDataOffset:m,messageDataSize:r.length,messageInstructionIndex:a,signature:xo(o),ethAddress:xo(c),recoveryId:i},b),b.fill(xo(r),Koe.span),new Ai({keys:[],programId:t.programId,data:b})}static createInstructionWithPrivateKey(e){let{privateKey:n,message:r,instructionIndex:o}=e;Xi(n.length===RRe,`Private key must be ${RRe} bytes but received ${n.length} bytes`);try{let i=xo(n),a=Ypt(i,!1).slice(1),c=Ln.Buffer.from(R5(xo(r))),[u,d]=Zpt(c,i);return this.createInstructionWithPublicKey({publicKey:a,message:r,signature:u,recoveryId:d,instructionIndex:o})}catch(i){throw new Error(`Error creating instruction; ${i}`)}}};cie.programId=new ar(\"KeccakSecp256k11111111111111111111111111111\");var VRe,Jpt=new ar(\"StakeConfig11111111111111111111111111111111\");var fP=class{constructor(e,n,r){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=n,this.custodian=r}};VRe=fP;fP.default=new VRe(0,0,ar.default);var k3=Object.freeze({Initialize:{index:0,layout:we.struct([we.u32(\"instruction\"),hpt(),ppt()])},Authorize:{index:1,layout:we.struct([we.u32(\"instruction\"),Vr(\"newAuthorized\"),we.u32(\"stakeAuthorizationType\")])},Delegate:{index:2,layout:we.struct([we.u32(\"instruction\")])},Split:{index:3,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"lamports\")])},Withdraw:{index:4,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"lamports\")])},Deactivate:{index:5,layout:we.struct([we.u32(\"instruction\")])},Merge:{index:7,layout:we.struct([we.u32(\"instruction\")])},AuthorizeWithSeed:{index:8,layout:we.struct([we.u32(\"instruction\"),Vr(\"newAuthorized\"),we.u32(\"stakeAuthorizationType\"),jA(\"authoritySeed\"),Vr(\"authorityOwner\")])}}),a1n=Object.freeze({Staker:{index:0},Withdrawer:{index:1}}),lW=class{constructor(){}static initialize(e){let{stakePubkey:n,authorized:r,lockup:o}=e,i=o||fP.default,a=k3.Initialize,c=to(a,{authorized:{staker:xo(r.staker.toBuffer()),withdrawer:xo(r.withdrawer.toBuffer())},lockup:{unixTimestamp:i.unixTimestamp,epoch:i.epoch,custodian:xo(i.custodian.toBuffer())}}),u={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:dP,isSigner:!1,isWritable:!1}],programId:this.programId,data:c};return new Ai(u)}static createAccountWithSeed(e){let n=new Fi;n.add(Md.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));let{stakePubkey:r,authorized:o,lockup:i}=e;return n.add(this.initialize({stakePubkey:r,authorized:o,lockup:i}))}static createAccount(e){let n=new Fi;n.add(Md.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));let{stakePubkey:r,authorized:o,lockup:i}=e;return n.add(this.initialize({stakePubkey:r,authorized:o,lockup:i}))}static delegate(e){let{stakePubkey:n,authorizedPubkey:r,votePubkey:o}=e,i=k3.Delegate,a=to(i);return new Fi().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:Voe,isSigner:!1,isWritable:!1},{pubkey:Jpt,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static authorize(e){let{stakePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:o,stakeAuthorizationType:i,custodianPubkey:a}=e,c=k3.Authorize,u=to(c,{newAuthorized:xo(o.toBuffer()),stakeAuthorizationType:i.index}),d=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&d.push({pubkey:a,isSigner:!0,isWritable:!1}),new Fi().add({keys:d,programId:this.programId,data:u})}static authorizeWithSeed(e){let{stakePubkey:n,authorityBase:r,authoritySeed:o,authorityOwner:i,newAuthorizedPubkey:a,stakeAuthorizationType:c,custodianPubkey:u}=e,d=k3.AuthorizeWithSeed,h=to(d,{newAuthorized:xo(a.toBuffer()),stakeAuthorizationType:c.index,authoritySeed:o,authorityOwner:xo(i.toBuffer())}),m=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:i2,isSigner:!1,isWritable:!1}];return u&&m.push({pubkey:u,isSigner:!0,isWritable:!1}),new Fi().add({keys:m,programId:this.programId,data:h})}static splitInstruction(e){let{stakePubkey:n,authorizedPubkey:r,splitStakePubkey:o,lamports:i}=e,a=k3.Split,c=to(a,{lamports:i});return new Ai({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:c})}static split(e,n){let r=new Fi;return r.add(Md.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:n,space:this.space,programId:this.programId})),r.add(this.splitInstruction(e))}static splitWithSeed(e,n){let{stakePubkey:r,authorizedPubkey:o,splitStakePubkey:i,basePubkey:a,seed:c,lamports:u}=e,d=new Fi;return d.add(Md.allocate({accountPubkey:i,basePubkey:a,seed:c,space:this.space,programId:this.programId})),n&&n>0&&d.add(Md.transfer({fromPubkey:e.authorizedPubkey,toPubkey:i,lamports:n})),d.add(this.splitInstruction({stakePubkey:r,authorizedPubkey:o,splitStakePubkey:i,lamports:u}))}static merge(e){let{stakePubkey:n,sourceStakePubKey:r,authorizedPubkey:o}=e,i=k3.Merge,a=to(i);return new Fi().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:Voe,isSigner:!1,isWritable:!1},{pubkey:o,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static withdraw(e){let{stakePubkey:n,authorizedPubkey:r,toPubkey:o,lamports:i,custodianPubkey:a}=e,c=k3.Withdraw,u=to(c,{lamports:i}),d=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:Voe,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return a&&d.push({pubkey:a,isSigner:!0,isWritable:!1}),new Fi().add({keys:d,programId:this.programId,data:u})}static deactivate(e){let{stakePubkey:n,authorizedPubkey:r}=e,o=k3.Deactivate,i=to(o);return new Fi().add({keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:i})}};lW.programId=new ar(\"Stake11111111111111111111111111111111111111\");lW.space=200;var lP=Object.freeze({InitializeAccount:{index:0,layout:we.struct([we.u32(\"instruction\"),mpt()])},Authorize:{index:1,layout:we.struct([we.u32(\"instruction\"),Vr(\"newAuthorized\"),we.u32(\"voteAuthorizationType\")])},Withdraw:{index:3,layout:we.struct([we.u32(\"instruction\"),we.ns64(\"lamports\")])},UpdateValidatorIdentity:{index:4,layout:we.struct([we.u32(\"instruction\")])},AuthorizeWithSeed:{index:10,layout:we.struct([we.u32(\"instruction\"),gpt()])}}),c1n=Object.freeze({Voter:{index:0},Withdrawer:{index:1}}),uW=class t{constructor(){}static initializeAccount(e){let{votePubkey:n,nodePubkey:r,voteInit:o}=e,i=lP.InitializeAccount,a=to(i,{voteInit:{nodePubkey:xo(o.nodePubkey.toBuffer()),authorizedVoter:xo(o.authorizedVoter.toBuffer()),authorizedWithdrawer:xo(o.authorizedWithdrawer.toBuffer()),commission:o.commission}}),c={keys:[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:dP,isSigner:!1,isWritable:!1},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:a};return new Ai(c)}static createAccount(e){let n=new Fi;return n.add(Md.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),n.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){let{votePubkey:n,authorizedPubkey:r,newAuthorizedPubkey:o,voteAuthorizationType:i}=e,a=lP.Authorize,c=to(a,{newAuthorized:xo(o.toBuffer()),voteAuthorizationType:i.index}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new Fi().add({keys:u,programId:this.programId,data:c})}static authorizeWithSeed(e){let{currentAuthorityDerivedKeyBasePubkey:n,currentAuthorityDerivedKeyOwnerPubkey:r,currentAuthorityDerivedKeySeed:o,newAuthorizedPubkey:i,voteAuthorizationType:a,votePubkey:c}=e,u=lP.AuthorizeWithSeed,d=to(u,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:xo(r.toBuffer()),currentAuthorityDerivedKeySeed:o,newAuthorized:xo(i.toBuffer()),voteAuthorizationType:a.index}}),h=[{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:i2,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new Fi().add({keys:h,programId:this.programId,data:d})}static withdraw(e){let{votePubkey:n,authorizedWithdrawerPubkey:r,lamports:o,toPubkey:i}=e,a=lP.Withdraw,c=to(a,{lamports:o}),u=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return new Fi().add({keys:u,programId:this.programId,data:c})}static safeWithdraw(e,n,r){if(e.lamports>n-r)throw new Error(\"Withdraw will leave vote account with insufficient funds.\");return t.withdraw(e)}static updateValidatorIdentity(e){let{votePubkey:n,authorizedWithdrawerPubkey:r,nodePubkey:o}=e,i=lP.UpdateValidatorIdentity,a=to(i),c=[{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new Fi().add({keys:c,programId:this.programId,data:a})}};uW.programId=new ar(\"Vote111111111111111111111111111111111111111\");uW.space=3762;var l1n=new ar(\"Va1idator1nfo111111111111111111111111111111\"),u1n=St({name:Ot(),website:wn(Ot()),details:wn(Ot()),iconUrl:wn(Ot()),keybaseUsername:wn(Ot())});var d1n=new ar(\"Vote111111111111111111111111111111111111111\"),f1n=we.struct([Vr(\"nodePubkey\"),Vr(\"authorizedWithdrawer\"),we.u8(\"commission\"),we.nu64(),we.seq(we.struct([we.nu64(\"slot\"),we.u32(\"confirmationCount\")]),we.offset(we.u32(),-8),\"votes\"),we.u8(\"rootSlotValid\"),we.nu64(\"rootSlot\"),we.nu64(),we.seq(we.struct([we.nu64(\"epoch\"),Vr(\"authorizedVoter\")]),we.offset(we.u32(),-8),\"authorizedVoters\"),we.struct([we.seq(we.struct([Vr(\"authorizedPubkey\"),we.nu64(\"epochOfLastAuthorizedSwitch\"),we.nu64(\"targetEpoch\")]),32,\"buf\"),we.nu64(\"idx\"),we.u8(\"isEmpty\")],\"priorVoters\"),we.nu64(),we.seq(we.struct([we.nu64(\"epoch\"),we.nu64(\"credits\"),we.nu64(\"prevCredits\")]),we.offset(we.u32(),-8),\"epochCredits\"),we.struct([we.nu64(\"slot\"),we.nu64(\"timestamp\")],\"lastTimestamp\")]);var $Re=t=>({request:t,signMessage:e=>t({method:\"signMessage\",params:{message:e}}),signTransaction:e=>t({method:\"signTransaction\",params:{transaction:e}}),signAndSendTransaction:e=>t({method:\"signAndSendTransaction\",params:e})});p();function KRe(t){return globalThis.Buffer.from(t.serialize({verifySignatures:!1})).toString(\"base64\")}function Xpt(t){let e=globalThis.Buffer.from(t,\"base64\");return dW.deserializeMessageVersion(e)===\"legacy\"?aW.deserialize(e):Fi.from(e)}function GRe(t){return async n=>{if(n.method===\"connect\")return await t(n);if(n.method===\"signMessage\")return await t(n);if(n.method===\"signAndSendTransaction\"){let{transaction:r,options:o}=n.params,i={transaction:KRe(r)};return await t({method:\"signAndSendTransaction\",params:i})}if(n.method===\"signTransaction\"){let{transaction:r}=n.params,o={transaction:KRe(r)},{signedTransaction:i}=await t({method:\"signTransaction\",params:o});return{signedTransaction:Xpt(i)}}}}p();p();p();var pW=class t extends Error{constructor(e,n={}){let r=(()=>{if(n.cause instanceof t){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&\"details\"in n.cause&&typeof n.cause.details==\"string\"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),o=[e||\"An error occurred.\",...n.metaMessages?[\"\",...n.metaMessages]:[],...r?[\"\",r?`Details: ${r}`:void 0]:[]].filter(i=>typeof i==\"string\").join(`\\n`);super(o,n.cause?{cause:n.cause}:void 0),this.name=\"BaseError\",this.cause=n.cause,this.details=r,this.shortMessage=e}},VA=class extends pW{constructor({status:e}){super(`Request failed with status ${e}`),this.name=\"RequestFailedError\"}},mW=class extends pW{constructor(e){super(e),this.name=\"InvalidToken\"}};async function ZRe({origin:t}){let e=await fetch(`${t}/nonce`,{method:\"POST\"});if(!e.ok)throw new VA({status:e.status});return await e.json()}p();async function YRe({origin:t},e){let n=await fetch(`${t}/verify-siwf`,{method:\"POST\",headers:new Headers({\"Content-Type\":\"application/json\"}),body:JSON.stringify(e)});if(!n.ok)throw new VA({status:n.status});let r=await n.json();if(r.valid===!1)throw new mW(r.message??\"unknown\");return{token:r.token}}p();function QRe(t={}){return{origin:t.origin??\"https://auth.farcaster.xyz\"}}function JRe(t={}){let e=QRe(t);return{generateNonce:()=>ZRe(e),verifySiwf:n=>YRe(e,n)}}p();p();p();p();var XRe=\"0.1.1\";function e9e(){return XRe}var gW=class t extends Error{constructor(e,n={}){let r=(()=>{if(n.cause instanceof t){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause?.message?n.cause.message:n.details})(),o=n.cause instanceof t&&n.cause.docsPath||n.docsPath,a=`https://oxlib.sh${o??\"\"}`,c=[e||\"An error occurred.\",...n.metaMessages?[\"\",...n.metaMessages]:[],...r||o?[\"\",r?`Details: ${r}`:void 0,o?`See: ${a}`:void 0]:[]].filter(u=>typeof u==\"string\").join(`\\n`);super(c,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docs\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"docsPath\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"shortMessage\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"cause\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"BaseError\"}),Object.defineProperty(this,\"version\",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${e9e()}`}),this.cause=n.cause,this.details=r,this.docs=a,this.docsPath=o,this.shortMessage=e}walk(e){return t9e(this,e)}};function t9e(t,e){return e?.(t)?t:t&&typeof t==\"object\"&&\"cause\"in t&&t.cause?t9e(t.cause,e):e?null:t}var tmt=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\\\\/\\\\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\\\\n)(?<address>0x[a-fA-F0-9]{40})\\\\n\\\\n(?:(?<statement>.*)\\\\n\\\\n)?/,nmt=/(?:URI: (?<uri>.+))\\\\n(?:Version: (?<version>.+))\\\\n(?:Chain ID: (?<chainId>\\\\d+))\\\\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\\\\n(?:Issued At: (?<issuedAt>.+))(?:\\\\nExpiration Time: (?<expirationTime>.+))?(?:\\\\nNot Before: (?<notBefore>.+))?(?:\\\\nRequest ID: (?<requestId>.+))?/;function n9e(t){let{scheme:e,statement:n,...r}=t.match(tmt)?.groups??{},{chainId:o,expirationTime:i,issuedAt:a,notBefore:c,requestId:u,...d}=t.match(nmt)?.groups??{},h=t.split(\"Resources:\")[1]?.split(`\\n- `).slice(1);return{...r,...d,...o?{chainId:Number(o)}:{},...i?{expirationTime:new Date(i)}:{},...a?{issuedAt:new Date(a)}:{},...c?{notBefore:new Date(c)}:{},...u?{requestId:u}:{},...h?{resources:h}:{},...e?{scheme:e}:{},...n?{statement:n}:{}}}p();var r9e=({frameHost:t,emitter:e})=>{let n,r=null;return{visible:!1,get onback(){return r},set onback(o){r&&e.removeListener(\"backNavigationTriggered\",r),r=o,o&&e.addListener(\"backNavigationTriggered\",o)},async show(){await t.updateBackState({visible:!0}),this.visible=!0},async hide(){await t.updateBackState({visible:!1}),this.visible=!1},async enableWebNavigation(){n=omt({back:this,emitter:e})},async disableWebNavigation(){n?.(),n=void 0}}};function omt({emitter:t,back:e}){let n=imt();if(n)return smt({emitter:t,back:e,navigation:n});if(typeof window<\"u\")return amt({emitter:t,back:e,window})}function imt(){if(typeof window<\"u\"&&window.navigation!==void 0)return window.navigation}function smt({emitter:t,back:e,navigation:n}){function r(){n.canGoBack?e.show():e.hide()}function o(){e.visible&&n.canGoBack&&n.back()}return n.addEventListener(\"navigatesuccess\",r),t.addListener(\"backNavigationTriggered\",o),()=>{n.removeEventListener(\"navigatesuccess\",r),t.removeListener(\"backNavigationTriggered\",o)}}function amt({emitter:t,back:e,window:n}){e.show();function r(){e.visible&&n.history.back()}return t.addListener(\"backNavigationTriggered\",r),()=>{t.removeListener(\"backNavigationTriggered\",r)}}p();p();DC();p();function yW(t,e={}){let{raw:n=!1}=e,r=t;if(n)return t;if(r.error){let{code:o}=r.error,i=o===ak.code?ak:o===hP.code?hP:o===EP.code?EP:o===wP.code?wP:o===bP.code?bP:o===xP.code?xP:o===yP.code?yP:o===SP.code?SP:o===pP.code?pP:o===mP.code?mP:o===gP.code?gP:o===vP.code?vP:Il;throw new i(r.error)}return r.result}var Il=class extends Error{constructor(e){let{code:n,message:r,data:o}=e;super(r),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.BaseError\"}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"data\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=n,this.data=o}},hP=class t extends Il{constructor(e={}){super({message:\"Missing or invalid parameters.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32e3}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.InvalidInputError\"})}};Object.defineProperty(hP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});var pP=class t extends Il{constructor(e={}){super({message:\"Requested resource not found.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.ResourceNotFoundError\"})}};Object.defineProperty(pP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32001});var mP=class t extends Il{constructor(e={}){super({message:\"Requested resource not available.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.ResourceUnavailableError\"})}};Object.defineProperty(mP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32002});var gP=class t extends Il{constructor(e={}){super({message:\"Transaction creation failed.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.TransactionRejectedError\"})}};Object.defineProperty(gP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32003});var yP=class t extends Il{constructor(e={}){super({message:\"Method is not implemented.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.MethodNotSupportedError\"})}};Object.defineProperty(yP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32004});var bP=class t extends Il{constructor(e={}){super({message:\"Rate limit exceeded.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.LimitExceededError\"})}};Object.defineProperty(bP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32005});var vP=class t extends Il{constructor(e={}){super({message:\"JSON-RPC version not supported.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.VersionNotSupportedError\"})}};Object.defineProperty(vP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32006});var wP=class t extends Il{constructor(e={}){super({message:\"Input is not a valid JSON-RPC request.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.InvalidRequestError\"})}};Object.defineProperty(wP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32600});var xP=class t extends Il{constructor(e={}){super({message:\"Method does not exist.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.MethodNotFoundError\"})}};Object.defineProperty(xP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32601});var EP=class t extends Il{constructor(e={}){super({message:\"Invalid method parameters.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.InvalidParamsError\"})}};Object.defineProperty(EP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32602});var ak=class t extends Il{constructor(e={}){super({message:\"Internal JSON-RPC error.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.InternalErrorError\"})}};Object.defineProperty(ak,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32603});var SP=class t extends Il{constructor(e={}){super({message:\"Failed to parse JSON-RPC response.\",...e,code:t.code}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"RpcResponse.ParseError\"})}};Object.defineProperty(SP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:-32700});var M1=class extends Error{constructor(e,n){super(n),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"ProviderRpcError\"}),Object.defineProperty(this,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,\"details\",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=e,this.details=n}},kP=class extends M1{constructor({message:e=\"The user rejected the request.\"}={}){super(4001,e),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.UserRejectedRequestError\"})}};Object.defineProperty(kP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4001});var _P=class extends M1{constructor({message:e=\"The requested method and/or account has not been authorized by the user.\"}={}){super(4100,e),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.UnauthorizedError\"})}};Object.defineProperty(_P,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4100});var CP=class extends M1{constructor({message:e=\"The provider does not support the requested method.\"}={}){super(4200,e),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.UnsupportedMethodError\"})}};Object.defineProperty(CP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4200});var AP=class extends M1{constructor({message:e=\"The provider is disconnected from all chains.\"}={}){super(4900,e),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.DisconnectedError\"})}};Object.defineProperty(AP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4900});var TP=class extends M1{constructor({message:e=\"The provider is not connected to the requested chain.\"}={}){super(4901,e),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.ChainDisconnectedError\"})}};Object.defineProperty(TP,\"code\",{enumerable:!0,configurable:!0,writable:!0,value:4901});function i9e(){let t=new kv.default;return{get eventNames(){return t.eventNames.bind(t)},get listenerCount(){return t.listenerCount.bind(t)},get listeners(){return t.listeners.bind(t)},addListener:t.addListener.bind(t),emit:t.emit.bind(t),off:t.off.bind(t),on:t.on.bind(t),once:t.once.bind(t),removeAllListeners:t.removeAllListeners.bind(t),removeListener:t.removeListener.bind(t)}}function s9e(t,e={}){let{includeEvents:n=!0}=e;if(!t)throw new mie;return{...n?{on:t.on?.bind(t),removeListener:t.removeListener?.bind(t)}:{},async request(r){let o=await t.request(r);return o&&typeof o==\"object\"&&\"jsonrpc\"in o?yW(o):o}}}var mie=class extends gW{constructor(){super(\"`provider` is undefined.\"),Object.defineProperty(this,\"name\",{enumerable:!0,configurable:!0,writable:!0,value:\"Provider.IsUndefinedError\"})}};p();function a9e(t={}){let e=t.id??0;return{prepare(n){return lmt({id:e++,...n})},get id(){return e}}}function lmt(t){return{...t,jsonrpc:\"2.0\"}}p();p();var l9e=Symbol(\"Comlink.proxy\"),dmt=Symbol(\"Comlink.endpoint\"),fmt=Symbol(\"Comlink.releaseProxy\"),gie=Symbol(\"Comlink.finalizer\"),vW=Symbol(\"Comlink.thrown\"),u9e=t=>typeof t==\"object\"&&t!==null||typeof t==\"function\",hmt={canHandle:t=>u9e(t)&&t[l9e],serialize(t){let{port1:e,port2:n}=new MessageChannel;return f9e(t,e),[n,[n]]},deserialize(t){return t.start(),bie(t)}},pmt={canHandle:t=>u9e(t)&&vW in t,serialize({value:t}){let e;return t instanceof Error?e={isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:e={isError:!1,value:t},[e,[]]},deserialize(t){throw t.isError?Object.assign(new Error(t.value.message),t.value):t.value}},d9e=new Map([[\"proxy\",hmt],[\"throw\",pmt]]);function mmt(t,e){for(let n of t)if(e===n||n===\"*\"||n instanceof RegExp&&n.test(e))return!0;return!1}function f9e(t,e=globalThis,n=[\"*\"]){e.addEventListener(\"message\",function r(o){if(!o||!o.data)return;if(!mmt(n,o.origin)){console.warn(`Invalid origin \\'${o.origin}\\' for comlink proxy`);return}let{id:i,type:a,path:c}=Object.assign({path:[]},o.data),u=(o.data.argumentList||[]).map(ck),d;try{let h=c.slice(0,-1).reduce((g,b)=>g[b],t),m=c.reduce((g,b)=>g[b],t);switch(a){case\"GET\":d=m;break;case\"SET\":h[c.slice(-1)[0]]=ck(o.data.value),d=!0;break;case\"APPLY\":d=m.apply(h,u);break;case\"CONSTRUCT\":{let g=new m(...u);d=xmt(g)}break;case\"ENDPOINT\":{let{port1:g,port2:b}=new MessageChannel;f9e(t,b),d=wmt(g,[g])}break;case\"RELEASE\":d=void 0;break;default:return}}catch(h){d={value:h,[vW]:0}}Promise.resolve(d).catch(h=>({value:h,[vW]:0})).then(h=>{let[m,g]=EW(h);e.postMessage(Object.assign(Object.assign({},m),{id:i}),g),a===\"RELEASE\"&&(e.removeEventListener(\"message\",r),h9e(e),gie in t&&typeof t[gie]==\"function\"&&t[gie]())}).catch(h=>{let[m,g]=EW({value:new TypeError(\"Unserializable return value\"),[vW]:0});e.postMessage(Object.assign(Object.assign({},m),{id:i}),g)})}),e.start&&e.start()}function gmt(t){return t.constructor.name===\"MessagePort\"}function h9e(t){gmt(t)&&t.close()}function bie(t,e){let n=new Map;return t.addEventListener(\"message\",function(o){let{data:i}=o;if(!i||!i.id)return;let a=n.get(i.id);if(a)try{a(i)}finally{n.delete(i.id)}}),yie(t,n,[],e)}function bW(t){if(t)throw new Error(\"Proxy has been released and is not useable\")}function p9e(t){return $A(t,new Map,{type:\"RELEASE\"}).then(()=>{h9e(t)})}var wW=new WeakMap,xW=\"FinalizationRegistry\"in globalThis&&new FinalizationRegistry(t=>{let e=(wW.get(t)||0)-1;wW.set(t,e),e===0&&p9e(t)});function ymt(t,e){let n=(wW.get(e)||0)+1;wW.set(e,n),xW&&xW.register(t,e,t)}function bmt(t){xW&&xW.unregister(t)}function yie(t,e,n=[],r=function(){}){let o=!1,i=new Proxy(r,{get(a,c){if(bW(o),c===fmt)return()=>{bmt(i),p9e(t),e.clear(),o=!0};if(c===\"then\"){if(n.length===0)return{then:()=>i};let u=$A(t,e,{type:\"GET\",path:n.map(d=>d.toString())}).then(ck);return u.then.bind(u)}return yie(t,e,[...n,c])},set(a,c,u){bW(o);let[d,h]=EW(u);return $A(t,e,{type:\"SET\",path:[...n,c].map(m=>m.toString()),value:d},h).then(ck)},apply(a,c,u){bW(o);let d=n[n.length-1];if(d===dmt)return $A(t,e,{type:\"ENDPOINT\"}).then(ck);if(d===\"bind\")return yie(t,e,n.slice(0,-1));let[h,m]=c9e(u);return $A(t,e,{type:\"APPLY\",path:n.map(g=>g.toString()),argumentList:h},m).then(ck)},construct(a,c){bW(o);let[u,d]=c9e(c);return $A(t,e,{type:\"CONSTRUCT\",path:n.map(h=>h.toString()),argumentList:u},d).then(ck)}});return ymt(i,t),i}function vmt(t){return Array.prototype.concat.apply([],t)}function c9e(t){let e=t.map(EW);return[e.map(n=>n[0]),vmt(e.map(n=>n[1]))]}var m9e=new WeakMap;function wmt(t,e){return m9e.set(t,e),t}function xmt(t){return Object.assign(t,{[l9e]:!0})}function g9e(t,e=globalThis,n=\"*\"){return{postMessage:(r,o)=>t.postMessage(r,n,o),addEventListener:e.addEventListener.bind(e),removeEventListener:e.removeEventListener.bind(e)}}function EW(t){for(let[e,n]of d9e)if(n.canHandle(t)){let[r,o]=n.serialize(t);return[{type:\"HANDLER\",name:e,value:r},o]}return[{type:\"RAW\",value:t},m9e.get(t)||[]]}function ck(t){switch(t.type){case\"HANDLER\":return d9e.get(t.name).deserialize(t.value);case\"RAW\":return t.value}}function $A(t,e,n,r){return new Promise(o=>{let i=Emt();e.set(i,o),t.start&&t.start(),t.postMessage(Object.assign({id:i},n),r)})}function Emt(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join(\"-\")}p();var Smt={postMessage(){},addEventListener:()=>{},removeEventListener:()=>{}},kmt={postMessage:t=>{console.debug(\"[webview:req]\",t),window.ReactNativeWebView.postMessage(JSON.stringify(t))},addEventListener:(t,e,...n)=>{document.addEventListener(\"FarcasterFrameCallback\",e,...n)},removeEventListener:(t,e)=>{document.removeEventListener(\"FarcasterFrameCallback\",e)}},y9e=typeof window>\"u\"?Smt:window?.ReactNativeWebView?kmt:g9e(window?.parent??window);var cr=bie(y9e);var vie=i9e(),_mt=a9e();function Cmt({code:t,details:e}){switch(t){case 4001:return new kP;case 4100:return new _P;case 4200:return new CP;case 4900:return new AP;case 4901:return new TP;default:return new M1(t,e??\"Unknown provider RPC error\")}}var KA=s9e({...vie,async request(t){let e=_mt.prepare(t);try{let n=await cr.ethProviderRequestV2(e).then(r=>yW(r,{request:e,raw:!0}));if(n.error)throw Cmt(n.error);return n.result}catch(n){if(n instanceof Error&&n.message.match(/cannot read property \\'apply\\'/i))return await cr.ethProviderRequest(e);throw n instanceof M1||n instanceof Il?n:new ak({message:n instanceof Error?n.message:void 0})}}});async function b9e(){try{let t=await cr.getCapabilities();return!t.includes(\"wallet.getEthereumProvider\")&&!t.includes(\"wallet.getEvmProvider\")?void 0:KA}catch{return KA}}function v9e(t){let e=new CustomEvent(\"eip6963:announceProvider\",{detail:Object.freeze(t)});window.dispatchEvent(e);let n=()=>window.dispatchEvent(e);return window.addEventListener(\"eip6963:requestProvider\",n),()=>window.removeEventListener(\"eip6963:requestProvider\",n)}typeof document<\"u\"&&(document.addEventListener(\"eip6963:requestProvider\",()=>{cr.eip6963RequestProvider()}),document.addEventListener(\"FarcasterFrameEthProviderEvent\",t=>{if(t instanceof MessageEvent){let e=t.data;vie.emit(e.event,...e.params)}}),document.addEventListener(\"FarcasterFrameEvent\",t=>{if(t instanceof MessageEvent){let e=t.data;e.event===\"eip6963:announceProvider\"&&v9e({info:e.info,provider:KA})}}));typeof window<\"u\"&&(window.addEventListener(\"eip6963:requestProvider\",()=>{cr.eip6963RequestProvider()}),window.addEventListener(\"message\",t=>{if(t instanceof MessageEvent&&t.data.type===\"frameEthProviderEvent\"){let e=t.data;vie.emit(e.event,...e.params)}}),window.addEventListener(\"message\",t=>{if(t instanceof MessageEvent&&t.data.type===\"frameEvent\"){let e=t.data.event;e.event===\"eip6963:announceProvider\"&&v9e({info:e.info,provider:KA})}}));p();DC();function Amt(){let t=new Xye;return{get eventNames(){return t.eventNames.bind(t)},get listenerCount(){return t.listenerCount.bind(t)},get listeners(){return t.listeners.bind(t)},addListener:t.addListener.bind(t),emit:t.emit.bind(t),off:t.off.bind(t),on:t.on.bind(t),once:t.once.bind(t),removeAllListeners:t.removeAllListeners.bind(t),removeListener:t.removeListener.bind(t)}}var Ol=Amt();p();var{solanaProviderRequest:w9e}=cr,x9e;w9e&&(x9e=$Re(GRe(w9e)));async function wie(){let t;try{t=await cr.getCapabilities()}catch{}if(t?.includes(\"wallet.getSolanaProvider\"))return x9e}var E9e=null;async function Tmt(t=50){if(E9e===!0)return!0;if(typeof window>\"u\"||!window.ReactNativeWebView&&window===window.parent)return!1;let e=await Promise.race([cr.context.then(n=>!!n),new Promise(n=>{setTimeout(()=>n(!1),t)})]).catch(()=>!1);return e&&(E9e=!0),e}var S9e=async(t={})=>{let e=JRe({origin:t.quickAuthServerOrigin}),{nonce:n}=await e.generateNonce(),r=await cr.signIn({nonce:n,acceptAuthAddress:!0});if(r.result){let o=n9e(r.result.message);if(!o.domain)throw new Error(\"Missing domain on SIWE message\");return await e.verifySiwf({domain:o.domain,message:r.result.message,signature:r.result.signature})}throw r.error.type===\"rejected_by_user\"?new YO.RejectedByUser:new Error(\"Unreachable\")},k9e=async()=>{let t=await cr.addFrame();if(t.result)return t.result;throw t.error.type===\"invalid_domain_manifest\"?new ZO.InvalidDomainManifest:t.error.type===\"rejected_by_user\"?new ZO.RejectedByUser:new Error(\"Unreachable\")},_9e={...Ol,getCapabilities:cr.getCapabilities,getChains:cr.getChains,isInMiniApp:Tmt,context:cr.context,back:r9e({frameHost:cr,emitter:Ol}),actions:{setPrimaryButton:cr.setPrimaryButton.bind(cr),ready:async(t={})=>await cr.ready(t),close:cr.close.bind(cr),viewCast:cr.viewCast.bind(cr),viewProfile:cr.viewProfile.bind(cr),signIn:async t=>{let e=await cr.signIn(t);if(e.result)return e.result;throw e.error.type===\"rejected_by_user\"?new YO.RejectedByUser:new Error(\"Unreachable\")},openUrl:t=>{let e=typeof t==\"string\"?t:t.url;return cr.openUrl(e.trim())},addFrame:k9e,addMiniApp:k9e,composeCast(t={}){return cr.composeCast(t)},viewToken:cr.viewToken.bind(cr),sendToken:cr.sendToken.bind(cr),swapToken:cr.swapToken.bind(cr),quickAuth:S9e},experimental:{getSolanaProvider:wie,quickAuth:S9e},wallet:{ethProvider:KA,getEthereumProvider:b9e,getSolanaProvider:wie},haptics:{impactOccurred:cr.impactOccurred.bind(cr),notificationOccurred:cr.notificationOccurred.bind(cr),selectionChanged:cr.selectionChanged.bind(cr)}};typeof document<\"u\"&&document.addEventListener(\"FarcasterFrameEvent\",t=>{if(t instanceof MessageEvent){let e=t.data;e.event===\"primary_button_clicked\"?Ol.emit(\"primaryButtonClicked\"):e.event===\"frame_added\"?Ol.emit(\"frameAdded\",{notificationDetails:e.notificationDetails}):e.event===\"frame_add_rejected\"?Ol.emit(\"frameAddRejected\",{reason:e.reason}):e.event===\"frame_removed\"?Ol.emit(\"frameRemoved\"):e.event===\"notifications_enabled\"?Ol.emit(\"notificationsEnabled\",{notificationDetails:e.notificationDetails}):e.event===\"notifications_disabled\"?Ol.emit(\"notificationsDisabled\"):e.event===\"back_navigation_triggered\"&&Ol.emit(\"backNavigationTriggered\")}});typeof window<\"u\"&&window.addEventListener(\"message\",t=>{if(t instanceof MessageEvent&&t.data.type===\"frameEvent\"){let e=t.data.event;e.event===\"primary_button_clicked\"?Ol.emit(\"primaryButtonClicked\"):e.event===\"frame_added\"?Ol.emit(\"frameAdded\",{notificationDetails:e.notificationDetails}):e.event===\"frame_add_rejected\"?Ol.emit(\"frameAddRejected\",{reason:e.reason}):e.event===\"frame_removed\"?Ol.emit(\"frameRemoved\"):e.event===\"notifications_enabled\"?Ol.emit(\"notificationsEnabled\",{notificationDetails:e.notificationDetails}):e.event===\"notifications_disabled\"?Ol.emit(\"notificationsDisabled\"):e.event===\"back_navigation_triggered\"&&Ol.emit(\"backNavigationTriggered\")}});var GA=_9e;var xie=class{constructor(){this.clientMeta=null,this.initPromise=null}async init({isMiniKit:e}){if(this.isInitialized()){console.warn(\"ClientMetaManager already initialized\");return}this.initPromise=this.handleInit({isMiniKit:e})}isInitialized(){return!!this.initPromise}async getClientMeta(){if(!this.initPromise)throw new Error(\"ClientMetaManager not initialized\");return this.clientMeta?this.clientMeta:await this.initPromise}async handleInit({isMiniKit:e}){var n;let r=null;try{let o=await GA.context;r=((n=o?.client)==null?void 0:n.clientFid)||null}catch(o){console.error(\"Error getting client FID\",o)}return this.clientMeta={mode:e?\"minikit\":\"onchainkit\",clientFid:r},this.clientMeta}},lk=new xie;p();p();function Rmt(){return\"0.38.15\"}var C3=Rmt();var C9e=\"POST\",SW={\"Content-Type\":\"application/json\",\"OnchainKit-Version\":C3},Eie=\"OnchainKit-Context\",A9e=\"2.0\",no=(t=>(t.API=\"api\",t.Buy=\"buy\",t.Checkout=\"checkout\",t.Hook=\"hook\",t.NFT=\"nft\",t.Swap=\"swap\",t.Wallet=\"wallet\",t))(no||{});function Imt(t,e){return{apiKey:Jw(\"apiKey\")??\"undefined\",sessionId:Jw(\"sessionId\")??\"undefined\",timestamp:Date.now(),eventType:t,data:e,origin:window.location.origin}}async function Omt(t,e){var n;let r=Jw(\"config\");if(r?.analytics)try{let o=await lk.getClientMeta();await fetch(r?.analyticsUrl??k7e,{method:\"POST\",headers:{...SW,\"OnchainKit-App-Name\":document.title,\"OnchainKit-Client-Fid\":((n=o.clientFid)==null?void 0:n.toString())??\"\",\"OnchainKit-Mode\":o.mode},body:JSON.stringify(Imt(t,e))})}catch(o){console.error(\"Error sending analytics:\",o)}}var kW=(t,e)=>Omt(t,e);p();var N1=(t=>(t.ConnectError=\"walletConnectError\",t.ConnectInitiated=\"walletConnectInitiated\",t.ConnectSuccess=\"walletConnectSuccess\",t.Disconnect=\"walletDisconnect\",t.OptionSelected=\"walletOptionSelected\",t.ConnectCanceled=\"walletConnectCanceled\",t))(N1||{}),a2=(t=>(t.Buy=\"buy\",t.Explorer=\"explorer\",t.QR=\"qr\",t.Refresh=\"refresh\",t.Send=\"send\",t.Swap=\"swap\",t))(a2||{}),c2=(t=>(t.SlippageChanged=\"swapSlippageChanged\",t.TokenSelected=\"swapTokenSelected\",t.SwapSuccess=\"swapSuccess\",t.SwapInitiated=\"swapInitiated\",t.SwapFailure=\"swapFailure\",t.SwapCanceled=\"swapCanceled\",t))(c2||{});var ZA=(t=>(t.TransactionFailure=\"transactionFailure\",t.TransactionInitiated=\"transactionInitiated\",t.TransactionSuccess=\"transactionSuccess\",t.TransactionCanceled=\"transactionCanceled\",t))(ZA||{}),Pu=(t=>(t.FundAmountChanged=\"fundAmountChanged\",t.FundFailure=\"fundFailure\",t.FundInitiated=\"fundInitiated\",t.FundOptionSelected=\"fundOptionSelected\",t.FundSuccess=\"fundSuccess\",t.FundCanceled=\"fundCanceled\",t))(Pu||{});var Sie=(t=>(t.ComponentError=\"componentError\",t))(Sie||{});var _W=class extends T9e.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,n){console.error(\"Uncaught error:\",e,n),kW(Sie.ComponentError,{component:\"OnchainKitProviderBoundary\",error:e.message,metadata:{message:e.message,stack:n.componentStack}})}render(){if(this.state.error){if(this.props.fallback){let e=this.props.fallback;return(0,kie.jsx)(e,{error:this.state.error})}return(0,kie.jsx)(\"h1\",{children:\"Sorry, we had an unhandled error\"})}return this.props.children}};p();var uk=(t=>(t.AtomicBatch=\"atomicBatch\",t.AuxiliaryFunds=\"auxiliaryFunds\",t.PaymasterService=\"paymasterService\",t))(uk||{}),R9e=\"https://base.org/privacy-policy\",I9e=\"https://base.org/terms-of-service\";p();Si();var YA={[xs.id]:\"0x6533C94869D28fAA8dF77cc63f9e2b2D6Cf77eBA\",[Yn.id]:\"0xC6d566A56A1aFf6508b41f6c90ff131615583BCD\"},Pmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72801)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M2596.93 1721.27C2605.58 1648.75 2610.21 1574.9 2610.21 1500C2610.21 1425.1 2605.58 1351.4 2596.93 1278.73C2770.3 1177.28 2815.96 914.534 2631.1 772.941C2553.96 713.858 2472.05 660.593 2385.96 614.042C2339.26 528.102 2286.14 446.041 2227.06 368.904C2085.47 184.192 1822.72 229.699 1721.27 403.071C1648.75 394.417 1574.9 389.792 1500 389.792C1425.1 389.792 1351.4 394.417 1278.73 403.071C1177.28 229.699 914.534 184.043 772.941 368.904C713.858 446.041 660.593 527.953 614.042 614.042C528.102 660.742 446.041 713.858 368.904 772.941C184.192 914.534 229.699 1177.28 403.071 1278.73C394.417 1351.25 389.792 1425.1 389.792 1500C389.792 1574.9 394.417 1648.6 403.071 1721.27C229.699 1822.72 184.043 2085.47 368.904 2227.06C446.041 2286.14 527.953 2339.41 614.042 2385.96C660.742 2471.9 713.858 2553.96 772.941 2631.1C914.534 2815.81 1177.28 2770.3 1278.73 2596.93C1351.25 2605.58 1425.1 2610.21 1500 2610.21C1574.9 2610.21 1648.6 2605.58 1721.27 2596.93C1822.72 2770.3 2085.47 2815.96 2227.06 2631.1C2286.14 2553.96 2339.41 2472.05 2385.96 2385.96C2471.9 2339.26 2553.96 2286.14 2631.1 2227.06C2815.81 2085.47 2770.3 1822.72 2596.93 1721.27Z\" fill=\"white\"/><path d=\"M1391.06 1500C1391.06 1647.89 1358.4 1781.62 1305.74 1878.28C1253.03 1975.05 1180.69 2034 1101.53 2034C1022.36 2034 950.031 1975.05 897.314 1878.28C844.66 1781.62 812 1647.89 812 1500C812 1352.11 844.66 1218.38 897.314 1121.72C950.031 1024.95 1022.36 966 1101.53 966C1180.69 966 1253.03 1024.95 1305.74 1121.72C1358.4 1218.38 1391.06 1352.11 1391.06 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1102.57\" cy=\"1194.93\" rx=\"126.414\" ry=\"231.934\" fill=\"white\"/><path d=\"M2187.16 1500C2187.16 1647.89 2154.5 1781.62 2101.84 1878.28C2049.13 1975.05 1976.79 2034 1897.63 2034C1818.46 2034 1746.13 1975.05 1693.41 1878.28C1640.76 1781.62 1608.1 1647.89 1608.1 1500C1608.1 1352.11 1640.76 1218.38 1693.41 1121.72C1746.13 1024.95 1818.46 966 1897.63 966C1976.79 966 2049.13 1024.95 2101.84 1121.72C2154.5 1218.38 2187.16 1352.11 2187.16 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1896.58\" cy=\"1194.93\" rx=\"126.414\" ry=\"231.934\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72801\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Mmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72809)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M2188.12 1131.95C2691.11 591.187 2356.8 256.94 1815.91 759.826C1767.57 804.826 1737.56 866.494 1733.32 932.403C1733.32 933.767 1733.17 934.979 1733.02 936.343C1722.56 1094.68 1853.35 1225.44 2011.72 1214.98C2013.08 1214.98 2014.29 1214.83 2015.66 1214.68C2081.58 1210.44 2143.26 1180.44 2188.27 1132.1L2188.12 1131.95Z\" fill=\"white\"/><path d=\"M759.879 1816.05C256.885 2356.81 591.204 2691.06 1132.08 2188.17C1180.43 2143.17 1210.44 2081.51 1214.68 2015.6C1214.68 2014.23 1214.83 2013.02 1214.98 2011.66C1225.44 1853.32 1094.65 1722.56 936.283 1733.02C934.919 1733.02 933.706 1733.17 932.342 1733.32C866.418 1737.56 804.738 1767.56 759.727 1815.9L759.879 1816.05Z\" fill=\"white\"/><path d=\"M1131.96 759.922C591.247 256.826 256.881 591.264 759.869 1132.09C804.865 1180.43 866.527 1210.44 932.431 1214.68C933.794 1214.68 935.006 1214.83 936.37 1214.98C1094.69 1225.44 1225.44 1094.66 1214.98 936.309C1214.98 934.946 1214.83 933.733 1214.68 932.369C1210.44 866.452 1180.44 804.777 1132.11 759.771L1131.96 759.922Z\" fill=\"white\"/><path d=\"M1816.05 2188.12C2356.81 2691.11 2691.06 2356.8 2188.17 1815.91C2143.17 1767.57 2081.51 1737.56 2015.6 1733.32C2014.23 1733.32 2013.02 1733.17 2011.66 1733.02C1853.32 1722.56 1722.56 1853.35 1733.02 2011.72C1733.02 2013.08 1733.17 2014.29 1733.32 2015.66C1737.56 2081.58 1767.56 2143.26 1815.9 2188.27L1816.05 2188.12Z\" fill=\"white\"/><path d=\"M1737.18 727.02C1710.36 -10.3398 1237.66 -10.3398 1210.84 727.02C1208.42 792.869 1230.84 857.658 1274.48 907.31C1275.39 908.37 1276.14 909.278 1277.05 910.338C1381.59 1029.62 1566.43 1029.62 1670.97 910.338C1671.88 909.278 1672.63 908.37 1673.54 907.31C1717.18 857.81 1739.45 793.02 1737.18 727.02Z\" fill=\"white\"/><path d=\"M727.02 1210.82C-10.3398 1237.64 -10.3398 1710.34 727.02 1737.16C792.869 1739.58 857.658 1717.16 907.31 1673.52C908.218 1672.62 909.278 1671.86 910.338 1670.95C1029.62 1566.41 1029.62 1381.57 910.338 1277.03C909.278 1276.12 908.37 1275.37 907.31 1274.46C857.81 1230.82 793.02 1208.55 727.02 1210.82Z\" fill=\"white\"/><path d=\"M2040.69 1274.48C2039.63 1275.39 2038.72 1276.14 2037.66 1277.05C1918.38 1381.59 1918.38 1566.43 2037.66 1670.97C2038.72 1671.88 2039.63 1672.63 2040.69 1673.54C2090.19 1717.18 2154.98 1739.45 2220.98 1737.18C2958.34 1710.36 2958.34 1237.66 2220.98 1210.84C2155.13 1208.42 2090.34 1230.84 2040.69 1274.48Z\" fill=\"white\"/><path d=\"M1210.82 2220.98C1237.64 2958.34 1710.34 2958.34 1737.16 2220.98C1739.58 2155.13 1717.16 2090.34 1673.52 2040.69C1672.62 2039.63 1671.86 2038.72 1670.95 2037.66C1566.41 1918.38 1381.57 1918.38 1277.03 2037.66C1276.12 2038.72 1275.37 2039.63 1274.46 2040.69C1230.82 2090.19 1208.55 2154.98 1210.82 2220.98Z\" fill=\"white\"/><circle cx=\"1474.5\" cy=\"1474.5\" r=\"886.5\" fill=\"white\"/><path d=\"M1391.06 1500C1391.06 1352.11 1358.4 1218.38 1305.74 1121.72C1253.03 1024.95 1180.69 966 1101.53 966C1022.36 966 950.031 1024.95 897.314 1121.72C844.66 1218.38 812 1352.11 812 1500C812 1647.89 844.66 1781.62 897.314 1878.28C950.031 1975.05 1022.36 2034 1101.53 2034C1180.69 2034 1253.03 1975.05 1305.74 1878.28C1358.4 1781.62 1391.06 1647.89 1391.06 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"126.414\" cy=\"231.934\" rx=\"126.414\" ry=\"231.934\" transform=\"matrix(1 0 0 -1 976.16 2037)\" fill=\"white\"/><path d=\"M2187.16 1500C2187.16 1352.11 2154.5 1218.38 2101.84 1121.72C2049.12 1024.95 1976.79 966 1897.63 966C1818.46 966 1746.13 1024.95 1693.41 1121.72C1640.76 1218.38 1608.1 1352.11 1608.1 1500C1608.1 1647.89 1640.76 1781.62 1693.41 1878.28C1746.13 1975.05 1818.46 2034 1897.63 2034C1976.79 2034 2049.12 1975.05 2101.84 1878.28C2154.5 1781.62 2187.16 1647.89 2187.16 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"126.414\" cy=\"231.934\" rx=\"126.414\" ry=\"231.934\" transform=\"matrix(1 0 0 -1 1770.17 2037)\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72809\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Nmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72826)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M587.596 2230.75C839.799 2148.27 1126.41 2048.74 1282.85 1934.35C1406.13 1849.79 1458.98 1757.13 1483.16 1651.34C1488.13 1629.73 1511.93 1629.73 1516.8 1651.34C1540.98 1757.01 1593.83 1849.67 1717.11 1934.35C1873.55 2048.74 2160.26 2148.28 2412.36 2230.75C2681.77 2308.44 2735.86 2334.34 2656.73 2207.31C2588.97 2088.63 2388.28 1817.51 2407.39 1489.82C2407.39 1489.21 2407.39 1488.59 2407.39 1487.86C2397.17 1162.25 2598.34 899.36 2662.18 786.079C2737.77 664.821 2675.65 693.54 2406.72 771.597C2154.43 854.195 1870.3 953.362 1715.2 1067.5C1593.25 1151.7 1540.79 1203.99 1516.8 1309.05C1511.83 1330.65 1488.03 1330.65 1483.16 1309.05C1459.17 1203.87 1406.71 1151.7 1284.76 1067.5C1129.66 953.362 845.533 854.195 593.234 771.597C324.307 693.54 262.284 664.821 337.782 786.079C401.621 899.36 602.791 1162.37 592.47 1488.1C592.47 1488.72 592.47 1489.33 592.47 1490.07C611.583 1817.76 410.891 2088.87 343.134 2207.55C264.004 2334.46 318.095 2308.68 587.5 2231L587.596 2230.75Z\" fill=\"white\"/><path d=\"M769.249 587.596C851.725 839.799 951.26 1126.41 1065.65 1282.85C1150.21 1406.13 1242.87 1458.98 1348.66 1483.16C1370.26 1488.13 1370.26 1511.93 1348.66 1516.8C1242.99 1540.98 1150.33 1593.83 1065.65 1717.11C951.26 1873.55 851.725 2160.26 769.249 2412.36C691.56 2681.77 665.664 2735.86 792.691 2656.73C911.372 2588.97 1182.49 2388.28 1510.18 2407.39C1510.79 2407.39 1511.41 2407.39 1512.14 2407.39C1837.75 2397.17 2100.64 2598.34 2213.92 2662.18C2335.18 2737.77 2306.46 2675.65 2228.4 2406.72C2145.8 2154.43 2046.64 1870.3 1932.5 1715.2C1848.3 1593.25 1796.01 1540.79 1690.95 1516.8C1669.35 1511.83 1669.35 1488.03 1690.95 1483.16C1796.13 1459.17 1848.3 1406.71 1932.5 1284.76C2046.64 1129.66 2145.8 845.533 2228.4 593.234C2306.46 324.307 2335.18 262.284 2213.92 337.782C2100.64 401.621 1837.63 602.791 1511.9 592.47C1511.28 592.47 1510.67 592.47 1509.93 592.47C1182.24 611.583 911.127 410.891 792.446 343.134C665.541 264.004 691.315 318.095 769.004 587.5L769.249 587.596Z\" fill=\"white\"/><path d=\"M1391.06 1500C1391.06 1352.11 1358.4 1218.38 1305.74 1121.72C1253.03 1024.95 1180.69 966 1101.53 966C1022.36 966 950.031 1024.95 897.314 1121.72C844.66 1218.38 812 1352.11 812 1500C812 1647.89 844.66 1781.62 897.314 1878.28C950.031 1975.05 1022.36 2034 1101.53 2034C1180.69 2034 1253.03 1975.05 1305.74 1878.28C1358.4 1781.62 1391.06 1647.89 1391.06 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"126.414\" cy=\"231.934\" rx=\"126.414\" ry=\"231.934\" transform=\"matrix(1 0 0 -1 976.159 2037)\" fill=\"white\"/><path d=\"M2187.16 1500C2187.16 1352.11 2154.5 1218.38 2101.84 1121.72C2049.12 1024.95 1976.79 966 1897.63 966C1818.46 966 1746.13 1024.95 1693.41 1121.72C1640.76 1218.38 1608.1 1352.11 1608.1 1500C1608.1 1647.89 1640.76 1781.62 1693.41 1878.28C1746.13 1975.05 1818.46 2034 1897.63 2034C1976.79 2034 2049.12 1975.05 2101.84 1878.28C2154.5 1781.62 2187.16 1647.89 2187.16 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"126.414\" cy=\"231.934\" rx=\"126.414\" ry=\"231.934\" transform=\"matrix(1 0 0 -1 1770.17 2037)\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72826\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Lmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72835)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M2713.13 1500C2731.2 1680.92 2615.13 1818.15 2507.78 1924.42C2394.7 2032.13 2290.44 2108.88 2200.88 2200.61C2109.15 2290.16 2032.22 2394.61 1924.51 2507.68C1818.15 2615.04 1680.92 2731.11 1500 2713.13C1319.08 2731.2 1181.85 2615.13 1075.58 2507.78C967.866 2394.7 891.12 2290.44 799.389 2200.88C709.837 2109.15 605.39 2032.22 492.315 1924.51C384.962 1818.15 268.89 1680.92 286.873 1500C268.799 1319.08 384.871 1181.85 492.224 1075.58C605.299 967.866 709.564 891.12 799.116 799.389C890.848 709.837 967.775 605.39 1075.49 492.315C1181.85 384.871 1319.08 268.799 1500 286.873C1680.92 268.799 1818.15 384.871 1924.42 492.224C2032.13 605.299 2108.88 709.564 2200.61 799.116C2290.16 890.848 2394.61 967.775 2507.68 1075.49C2615.04 1181.85 2731.11 1319.08 2713.13 1500Z\" fill=\"white\"/><path d=\"M1391.06 1500C1391.06 1647.89 1358.4 1781.62 1305.74 1878.28C1253.03 1975.05 1180.69 2034 1101.53 2034C1022.36 2034 950.031 1975.05 897.314 1878.28C844.66 1781.62 812 1647.89 812 1500C812 1352.11 844.66 1218.38 897.314 1121.72C950.031 1024.95 1022.36 966 1101.53 966C1180.69 966 1253.03 1024.95 1305.74 1121.72C1358.4 1218.38 1391.06 1352.11 1391.06 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1102.57\" cy=\"1194.93\" rx=\"126.414\" ry=\"231.934\" fill=\"white\"/><path d=\"M2187.16 1500C2187.16 1647.89 2154.5 1781.62 2101.84 1878.28C2049.12 1975.05 1976.79 2034 1897.63 2034C1818.46 2034 1746.13 1975.05 1693.41 1878.28C1640.76 1781.62 1608.1 1647.89 1608.1 1500C1608.1 1352.11 1640.76 1218.38 1693.41 1121.72C1746.13 1024.95 1818.46 966 1897.63 966C1976.79 966 2049.12 1024.95 2101.84 1121.72C2154.5 1218.38 2187.16 1352.11 2187.16 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1896.58\" cy=\"1194.93\" rx=\"126.414\" ry=\"231.934\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72835\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Bmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72843)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M2321.64 1500C3048.65 1727.51 2902.59 1900.1 2182.54 1787.44C2625.43 2169.27 2494.23 2265.93 1974.71 1974.53C2266.19 2493.97 2169.44 2625.34 1787.53 2182.54C1900.19 2902.68 1727.6 3048.65 1500 2321.64C1272.49 3048.65 1099.9 2902.59 1212.56 2182.54C830.733 2625.43 734.069 2494.23 1025.47 1974.71C506.03 2266.19 374.655 2169.44 817.464 1787.53C97.3173 1900.19 -48.6455 1727.6 678.356 1500C-48.6455 1272.49 97.4051 1099.9 817.464 1212.56C374.567 830.733 505.767 734.069 1025.29 1025.47C733.806 506.03 830.558 374.655 1212.47 817.464C1099.81 97.3173 1272.4 -48.6455 1500 678.356C1727.51 -48.6455 1900.1 97.4051 1787.44 817.464C2169.27 374.567 2265.93 505.767 1974.53 1025.29C2493.97 733.806 2625.34 830.558 2182.54 1212.47C2902.68 1099.81 3048.65 1272.4 2321.64 1500Z\" fill=\"white\"/><path d=\"M1402.29 1500.15C1402.29 1632.88 1372.98 1752.91 1325.73 1839.64C1278.42 1926.48 1213.56 1979.29 1142.65 1979.29C1071.73 1979.29 1006.87 1926.48 959.562 1839.64C912.315 1752.91 883 1632.88 883 1500.15C883 1367.41 912.315 1247.38 959.562 1160.65C1006.87 1073.81 1071.73 1021 1142.65 1021C1213.56 1021 1278.42 1073.81 1325.73 1160.65C1372.98 1247.38 1402.29 1367.41 1402.29 1500.15Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"998.466\" cy=\"1500.14\" rx=\"113.501\" ry=\"208.242\" fill=\"white\"/><path d=\"M2117.07 1500.15C2117.07 1632.88 2087.76 1752.91 2040.51 1839.64C1993.2 1926.48 1928.34 1979.29 1857.42 1979.29C1786.51 1979.29 1721.65 1926.48 1674.34 1839.64C1627.09 1752.91 1597.78 1632.88 1597.78 1500.15C1597.78 1367.41 1627.09 1247.38 1674.34 1160.65C1721.65 1073.81 1786.51 1021 1857.42 1021C1928.34 1021 1993.2 1073.81 2040.51 1160.65C2087.76 1247.38 2117.07 1367.41 2117.07 1500.15Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1712.74\" cy=\"1498.06\" rx=\"113.501\" ry=\"208.242\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72843\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Dmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72851)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M2538.7 1207.34C2483.17 1184.33 2431.23 1159.94 2382.18 1133.9C2398.44 1080.86 2417.87 1026.85 2440.88 971.324C2548.89 711.06 2287.94 450.106 2027.68 558.125C1972.15 581.134 1918.14 600.699 1865.1 616.819C1839.06 567.907 1814.67 515.827 1791.66 460.302C1684.05 199.899 1314.94 199.899 1207.34 460.302C1184.33 515.827 1159.94 567.769 1133.9 616.819C1080.86 600.561 1026.85 581.134 971.324 558.125C711.06 450.106 450.106 711.06 558.125 971.324C581.134 1026.85 600.699 1080.86 616.819 1133.9C567.907 1159.94 515.827 1184.33 460.302 1207.34C199.899 1314.94 199.899 1684.05 460.302 1791.66C515.827 1814.67 567.769 1839.06 616.819 1865.1C600.561 1918.14 581.134 1972.15 558.125 2027.68C450.106 2287.94 711.06 2548.89 971.324 2440.88C1026.85 2417.87 1080.86 2398.3 1133.9 2382.18C1159.94 2431.09 1184.33 2483.17 1207.34 2538.7C1314.94 2799.1 1684.05 2799.1 1791.66 2538.7C1814.67 2483.17 1839.06 2431.23 1865.1 2382.18C1918.14 2398.44 1972.15 2417.87 2027.68 2440.88C2287.94 2548.89 2548.89 2287.94 2440.88 2027.68C2417.87 1972.15 2398.3 1918.14 2382.18 1865.1C2431.09 1839.06 2483.17 1814.67 2538.7 1791.66C2799.1 1684.05 2799.1 1314.94 2538.7 1207.34ZM1735.31 1727.87C1732.83 1730.35 1730.35 1732.83 1727.87 1735.31C1697.42 1766.58 1662.15 1790.01 1624.53 1806.13C1587.47 1820.46 1547.24 1828.17 1504.94 1827.62C1501.36 1827.62 1497.92 1827.62 1494.33 1827.62C1452.04 1828.17 1411.67 1820.32 1374.74 1806.13C1337.13 1790.01 1301.86 1766.58 1271.41 1735.31C1268.93 1732.83 1266.45 1730.35 1263.97 1727.87C1232.69 1697.42 1209.27 1662.15 1193.15 1624.53C1178.82 1587.61 1171.1 1547.24 1171.65 1504.94C1171.65 1501.36 1171.65 1497.92 1171.65 1494.33C1171.1 1452.04 1178.96 1411.67 1193.15 1374.74C1209.27 1337.13 1232.69 1301.86 1263.97 1271.41C1266.45 1268.93 1268.93 1266.45 1271.41 1263.97C1301.86 1232.69 1337.13 1209.27 1374.74 1193.15C1411.67 1178.82 1452.04 1171.1 1494.33 1171.65C1497.92 1171.65 1501.36 1171.65 1504.94 1171.65C1547.24 1171.1 1587.61 1178.96 1624.53 1193.15C1662.15 1209.27 1697.42 1232.69 1727.87 1263.97C1730.35 1266.45 1732.83 1268.93 1735.31 1271.41C1766.58 1301.86 1790.01 1337.13 1806.13 1374.74C1820.46 1411.8 1828.17 1452.04 1827.62 1494.33C1827.62 1497.92 1827.62 1501.36 1827.62 1504.94C1828.17 1547.24 1820.32 1587.61 1806.13 1624.53C1790.01 1662.15 1766.58 1697.42 1735.31 1727.87Z\" fill=\"white\"/><circle cx=\"1476\" cy=\"1442\" r=\"443\" fill=\"white\"/><path d=\"M1400.59 1202.5C1400.59 1334.79 1371.37 1454.31 1324.38 1540.58C1277.28 1627.04 1213.04 1679 1143.3 1679C1073.56 1679 1009.31 1627.04 962.215 1540.58C915.221 1454.31 886 1334.79 886 1202.5C886 1070.21 915.221 950.688 962.215 864.42C1009.31 777.961 1073.56 726 1143.3 726C1213.04 726 1277.28 777.961 1324.38 864.42C1371.37 950.688 1400.59 1070.21 1400.59 1202.5Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"10\"/><ellipse cx=\"1141.26\" cy=\"931.03\" rx=\"113.349\" ry=\"207.963\" fill=\"white\"/><path d=\"M2114.41 1202.5C2114.41 1334.79 2085.19 1454.31 2038.19 1540.58C1991.1 1627.04 1926.85 1679 1857.11 1679C1787.37 1679 1723.13 1627.04 1676.03 1540.58C1629.04 1454.31 1599.82 1334.79 1599.82 1202.5C1599.82 1070.21 1629.04 950.688 1676.03 864.42C1723.13 777.961 1787.37 726 1857.11 726C1926.85 726 1991.1 777.961 2038.19 864.42C2085.19 950.688 2114.41 1070.21 2114.41 1202.5Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"10\"/><ellipse cx=\"1861.96\" cy=\"928.963\" rx=\"113.349\" ry=\"207.963\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72851\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',Fmt=\\'<svg width=\"3000\" height=\"3000\" viewBox=\"0 0 3000 3000\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_5569_72860)\"><rect width=\"3000\" height=\"3000\" fill=\"#155DFD\"/><circle cx=\"1500\" cy=\"1500\" r=\"1500\" fill=\"#155DFD\"/><path d=\"M1500.19 1499.87C1365.57 1351.79 1298.1 1205.48 1296.93 988.1C1296.16 779.052 1361.71 498.983 1502.29 274.909C1565.01 170.441 1645.1 119.866 1696.41 125.097C1750.22 129.37 1775.2 189.413 1785.5 284.511C1806.04 473.278 1775.29 803.798 1990.99 1009.07C2196.26 1224.77 2526.78 1194.09 2715.59 1214.68C2810.65 1224.78 2870.69 1249.84 2874.93 1303.61C2880.12 1354.96 2829.55 1435.05 2725.08 1497.77C2501.01 1638.35 2220.94 1703.91 2011.89 1703.13C1794.55 1702 1648.19 1634.49 1500.12 1499.87L1500.19 1499.87Z\" fill=\"white\"/><path d=\"M1499.98 1500.01C1634.61 1648.08 1702.07 1794.4 1703.24 2011.77C1704.02 2220.82 1638.47 2500.89 1497.89 2724.97C1435.16 2829.43 1355.07 2880.01 1303.77 2874.78C1249.96 2870.5 1224.97 2810.46 1214.68 2715.36C1194.13 2526.6 1224.89 2196.08 1009.18 1990.81C803.914 1775.1 473.394 1805.78 284.59 1785.2C189.528 1775.09 129.486 1750.03 125.249 1696.26C120.055 1644.91 170.63 1564.82 275.098 1502.1C499.172 1361.52 779.24 1295.97 988.289 1296.75C1205.63 1297.88 1351.98 1365.38 1500.06 1500.01L1499.98 1500.01Z\" fill=\"white\"/><path d=\"M1481.64 1518.29C1630.16 1383.18 1776.72 1315.24 1994.12 1313.37C2203.19 1311.92 2483.08 1376.57 2706.72 1516.45C2811 1578.84 2861.32 1658.78 2855.93 1710.11C2851.48 1763.93 2791.35 1789.12 2696.21 1799.72C2507.36 1820.87 2176.9 1791.18 1970.91 2007.57C1754.52 2213.55 1784.15 2544.01 1762.95 2732.9C1752.54 2828.01 1727.28 2888.14 1673.49 2892.55C1622.12 2897.91 1542.19 2847.58 1479.79 2743.31C1339.92 2519.66 1275.26 2239.77 1276.71 2030.7C1278.54 1813.33 1346.52 1666.75 1481.64 1518.22L1481.64 1518.29Z\" fill=\"white\"/><path d=\"M1481.81 1518.43C1333.29 1653.54 1186.74 1721.48 969.339 1723.34C760.267 1724.79 480.38 1660.13 256.734 1520.25C152.457 1457.85 102.133 1377.92 107.529 1326.59C111.975 1272.76 172.103 1247.58 267.243 1236.98C456.094 1215.83 786.549 1245.53 992.528 1029.15C1208.91 823.167 1179.28 492.713 1200.47 303.825C1210.92 208.685 1236.11 148.557 1289.93 144.111C1341.3 138.752 1421.23 189.076 1483.63 293.353C1623.51 516.999 1688.17 796.885 1686.72 1005.96C1684.9 1223.32 1616.92 1369.91 1481.81 1518.43Z\" fill=\"white\"/><path d=\"M1403.24 1500C1403.24 1630.77 1374.36 1749 1327.82 1834.44C1281.21 1919.99 1217.33 1972 1147.49 1972C1077.65 1972 1013.76 1919.99 967.153 1834.44C920.611 1749 891.731 1630.77 891.731 1500C891.731 1369.23 920.611 1251 967.153 1165.56C1013.76 1080.01 1077.65 1028 1147.49 1028C1217.33 1028 1281.21 1080.01 1327.82 1165.56C1374.36 1251 1403.24 1369.23 1403.24 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1148.41\" cy=\"1230.16\" rx=\"111.819\" ry=\"205.156\" fill=\"white\"/><path d=\"M2107.42 1500C2107.42 1630.77 2078.55 1749 2032 1834.44C1985.4 1919.99 1921.51 1972 1851.67 1972C1781.83 1972 1717.94 1919.99 1671.34 1834.44C1624.79 1749 1595.92 1630.77 1595.92 1500C1595.92 1369.23 1624.79 1251 1671.34 1165.56C1717.94 1080.01 1781.83 1028 1851.67 1028C1921.51 1028 1985.4 1080.01 2032 1165.56C2078.55 1251 2107.42 1369.23 2107.42 1500Z\" fill=\"#155DFD\" stroke=\"white\" stroke-width=\"6\"/><ellipse cx=\"1850.75\" cy=\"1230.16\" rx=\"111.819\" ry=\"205.156\" fill=\"white\"/></g><defs><clipPath id=\"clip0_5569_72860\"><rect width=\"3000\" height=\"3000\" fill=\"white\"/></clipPath></defs></svg>\\',_ie=[Pmt,Mmt,Nmt,Lmt,Bmt,Dmt,Fmt],O9e=\"0xf8b05c79f090979bf4a80270aba232dff11a10d9ca55c4f88de95317970f0de9\";p();function P9e(t,e){return new RegExp(`^0x[a-fA-F0-9]{${e}}$`).test(t)}p();var Umt=t=>{let e=new Uint8Array(t);return crypto.getRandomValues(e),e},M9e=()=>{if(typeof crypto<\"u\"&&typeof crypto.randomUUID==\"function\")return crypto.randomUUID();let t=Umt(16);return t[0].toString(16).padStart(2,\"0\")+t[1].toString(16).padStart(2,\"0\")+t[2].toString(16).padStart(2,\"0\")+t[3].toString(16).padStart(2,\"0\")+\"-\"+t[4].toString(16).padStart(2,\"0\")+t[5].toString(16).padStart(2,\"0\")+\"-\"+(t[6]&15|64).toString(16).padStart(2,\"0\")+t[7].toString(16).padStart(2,\"0\")+\"-\"+(t[8]&63|128).toString(16).padStart(2,\"0\")+t[9].toString(16).padStart(2,\"0\")+\"-\"+t[10].toString(16).padStart(2,\"0\")+t[11].toString(16).padStart(2,\"0\")+t[12].toString(16).padStart(2,\"0\")+t[13].toString(16).padStart(2,\"0\")+t[14].toString(16).padStart(2,\"0\")+t[15].toString(16).padStart(2,\"0\")};p();p();bo();RP.type=\"farcasterFrame\";var QA,JA,XA;function RP(){return t=>({id:\"farcaster\",name:\"Farcaster\",rdns:\"xyz.farcaster.MiniAppWallet\",icon:\"https://imagedelivery.net/BXluQx4ige9GuW0Ia56BHw/055c25d6-7fe7-4a49-abf9-49772021cf00/original\",type:RP.type,async connect({chainId:e}={}){let n=await this.getProvider(),r=await n.request({method:\"eth_requestAccounts\"}),o=e;if(!o){let a=await t.storage?.getItem(\"state\")??{};t.chains.some(u=>u.id===a.chainId)?o=a.chainId:o=t.chains[0]?.id}if(!o)throw new Error(\"No chains found on connector.\");QA||(QA=this.onAccountsChanged.bind(this),n.on(\"accountsChanged\",QA)),JA||(JA=this.onChainChanged.bind(this),n.on(\"chainChanged\",JA)),XA||(XA=this.onDisconnect.bind(this),n.on(\"disconnect\",XA));let i=await this.getChainId();return o&&i!==o&&(i=(await this.switchChain({chainId:o})).id),{accounts:r.map(a=>Fr(a)),chainId:i}},async disconnect(){let e=await this.getProvider();QA&&(e.removeListener(\"accountsChanged\",QA),QA=void 0),JA&&(e.removeListener(\"chainChanged\",JA),JA=void 0),XA&&(e.removeListener(\"disconnect\",XA),XA=void 0)},async getAccounts(){return(await(await this.getProvider()).request({method:\"eth_accounts\"})).map(r=>Fr(r))},async getChainId(){let n=await(await this.getProvider()).request({method:\"eth_chainId\"});return tL(n,\"number\")},async isAuthorized(){try{return!!(await this.getAccounts()).length}catch{return!1}},async switchChain({chainId:e}){let n=await this.getProvider(),r=t.chains.find(o=>o.id===e);if(!r)throw new ha(new Lc);return await n.request({method:\"wallet_switchEthereumChain\",params:[{chainId:Ye(e)}]}),t.emitter.emit(\"change\",{chainId:e}),r},onAccountsChanged(e){e.length===0?this.onDisconnect():t.emitter.emit(\"change\",{accounts:e.map(n=>Fr(n))})},onChainChanged(e){let n=Number(e);t.emitter.emit(\"change\",{chainId:n})},async onDisconnect(){t.emitter.emit(\"disconnect\")},async getProvider(){return GA.wallet.ethProvider}})}p();var N9e=he(De(),1);var L9e=he(et(),1);p();var jmt={},zmt=(0,wg.createContext)(jmt);function Cie({address:t,analytics:e,apiKey:n,chain:r,children:o,config:i,projectId:a,rpcUrl:c,schemaId:u}){var d;if(u&&!P9e(u,64))throw Error(\\'EAS schemaId must be 64 characters prefixed with \"0x\"\\');let h=(0,wg.useMemo)(()=>M9e(),[]),m=!!((d=(0,wg.useContext)(zmt))!=null&&d.__isMiniKit);(0,wg.useEffect)(()=>{lk.isInitialized()||lk.init({isMiniKit:m})},[m]);let g=(0,wg.useMemo)(()=>{var b,E,C,T,R,L,D,G,W,J,ne,ie,Z,ae,V;let $=n?`https://api.developer.coinbase.com/rpc/v1/${r.name.replace(\" \",\"-\").toLowerCase()}/${n}`:null,F={address:t??null,apiKey:n??null,chain:r,config:{analytics:e??!0,analyticsUrl:i?.analyticsUrl??null,appearance:{name:((b=i?.appearance)==null?void 0:b.name)??\"Dapp\",logo:((E=i?.appearance)==null?void 0:E.logo)??\"\",mode:((C=i?.appearance)==null?void 0:C.mode)??\"auto\",theme:((T=i?.appearance)==null?void 0:T.theme)??\"default\"},paymaster:i?.paymaster||$,wallet:{display:((R=i?.wallet)==null?void 0:R.display)??\"classic\",preference:((L=i?.wallet)==null?void 0:L.preference)??\"all\",signUpEnabled:((D=i?.wallet)==null?void 0:D.signUpEnabled)??!0,termsUrl:((G=i?.wallet)==null?void 0:G.termsUrl)||I9e,privacyUrl:((W=i?.wallet)==null?void 0:W.privacyUrl)||R9e,supportedWallets:{rabby:((ne=(J=i?.wallet)==null?void 0:J.supportedWallets)==null?void 0:ne.rabby)??!1,trust:((Z=(ie=i?.wallet)==null?void 0:ie.supportedWallets)==null?void 0:Z.trust)??!1,frame:((V=(ae=i?.wallet)==null?void 0:ae.supportedWallets)==null?void 0:V.frame)??!1}}},projectId:a??null,rpcUrl:c??null,schemaId:u??O9e,sessionId:h};return hZ(F),F},[t,e,n,r,i,a,c,u,h]);return(0,CW.jsx)(hoe.Provider,{value:g,children:(0,CW.jsx)(S7e,{children:(0,CW.jsx)(_W,{children:o})})})}Si();p();var D9e=he(De());function B9e({children:t}){let{testnet:e,cdpClientKey:n,appName:r,appLogo:o}=window.x402;return(0,D9e.jsx)(Cie,{apiKey:n||void 0,chain:e?xs:Yn,config:{appearance:{mode:\"light\",theme:\"base\",name:r||void 0,logo:o||void 0},wallet:{display:\"modal\",supportedWallets:{rabby:!0,trust:!0,frame:!0}}},children:t})}p();p();p();var Ff=he(De(),1),u2=he(et(),1);p();p();var AW=he(et(),1);function F9e(){let[t,e]=(0,AW.useState)(\"light\");return(0,AW.useEffect)(()=>{let n=window.matchMedia(\"(prefers-color-scheme: dark)\");e(n.matches?\"dark\":\"light\");function r(o){e(o.matches?\"dark\":\"light\")}return n.addEventListener(\"change\",r),()=>n.removeEventListener(\"change\",r)},[]),t}function ji(){let t=F9e(),{config:{appearance:e}={}}=lo(),{theme:n=\"default\",mode:r=\"auto\"}=e||{};if(n===\"cyberpunk\"||n===\"hacker\")return n;switch(r){case\"auto\":return`${n}-${t}`;case\"dark\":return`${n}-dark`;case\"light\":return`${n}-light`;default:return`${n}-${t}`}}p();p();function U9e(t){var e,n,r=\"\";if(typeof t==\"string\"||typeof t==\"number\")r+=t;else if(typeof t==\"object\")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=U9e(t[e]))&&(r&&(r+=\" \"),r+=n)}else for(n in t)t[n]&&(r&&(r+=\" \"),r+=n);return r}function j9e(){for(var t,e,n=0,r=\"\",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=U9e(t))&&(r&&(r+=\" \"),r+=e);return r}p();var Rie=\"-\",Hmt=t=>{let e=Wmt(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:a=>{let c=a.split(Rie);return c[0]===\"\"&&c.length!==1&&c.shift(),q9e(c,e)||qmt(a)},getConflictingClassGroupIds:(a,c)=>{let u=n[a]||[];return c&&r[a]?[...u,...r[a]]:u}}},q9e=(t,e)=>{if(t.length===0)return e.classGroupId;let n=t[0],r=e.nextPart.get(n),o=r?q9e(t.slice(1),r):void 0;if(o)return o;if(e.validators.length===0)return;let i=t.join(Rie);return e.validators.find(({validator:a})=>a(i))?.classGroupId},z9e=/^\\\\[(.+)\\\\]$/,qmt=t=>{if(z9e.test(t)){let e=z9e.exec(t)[1],n=e?.substring(0,e.indexOf(\":\"));if(n)return\"arbitrary..\"+n}},Wmt=t=>{let{theme:e,prefix:n}=t,r={nextPart:new Map,validators:[]};return $mt(Object.entries(t.classGroups),n).forEach(([i,a])=>{Tie(a,r,i,e)}),r},Tie=(t,e,n,r)=>{t.forEach(o=>{if(typeof o==\"string\"){let i=o===\"\"?e:H9e(e,o);i.classGroupId=n;return}if(typeof o==\"function\"){if(Vmt(o)){Tie(o(r),e,n,r);return}e.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{Tie(a,H9e(e,i),n,r)})})},H9e=(t,e)=>{let n=t;return e.split(Rie).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},Vmt=t=>t.isThemeGetter,$mt=(t,e)=>e?t.map(([n,r])=>{let o=r.map(i=>typeof i==\"string\"?e+i:typeof i==\"object\"?Object.fromEntries(Object.entries(i).map(([a,c])=>[e+a,c])):i);return[n,o]}):t,Kmt=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,n=new Map,r=new Map,o=(i,a)=>{n.set(i,a),e++,e>t&&(e=0,r=n,n=new Map)};return{get(i){let a=n.get(i);if(a!==void 0)return a;if((a=r.get(i))!==void 0)return o(i,a),a},set(i,a){n.has(i)?n.set(i,a):o(i,a)}}},W9e=\"!\",Gmt=t=>{let{separator:e,experimentalParseClassName:n}=t,r=e.length===1,o=e[0],i=e.length,a=c=>{let u=[],d=0,h=0,m;for(let T=0;T<c.length;T++){let R=c[T];if(d===0){if(R===o&&(r||c.slice(T,T+i)===e)){u.push(c.slice(h,T)),h=T+i;continue}if(R===\"/\"){m=T;continue}}R===\"[\"?d++:R===\"]\"&&d--}let g=u.length===0?c:c.substring(h),b=g.startsWith(W9e),E=b?g.substring(1):g,C=m&&m>h?m-h:void 0;return{modifiers:u,hasImportantModifier:b,baseClassName:E,maybePostfixModifierPosition:C}};return n?c=>n({className:c,parseClassName:a}):a},Zmt=t=>{if(t.length<=1)return t;let e=[],n=[];return t.forEach(r=>{r[0]===\"[\"?(e.push(...n.sort(),r),n=[]):n.push(r)}),e.push(...n.sort()),e},Ymt=t=>({cache:Kmt(t.cacheSize),parseClassName:Gmt(t),...Hmt(t)}),Qmt=/\\\\s+/,Jmt=(t,e)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=e,i=[],a=t.trim().split(Qmt),c=\"\";for(let u=a.length-1;u>=0;u-=1){let d=a[u],{modifiers:h,hasImportantModifier:m,baseClassName:g,maybePostfixModifierPosition:b}=n(d),E=!!b,C=r(E?g.substring(0,b):g);if(!C){if(!E){c=d+(c.length>0?\" \"+c:c);continue}if(C=r(g),!C){c=d+(c.length>0?\" \"+c:c);continue}E=!1}let T=Zmt(h).join(\":\"),R=m?T+W9e:T,L=R+C;if(i.includes(L))continue;i.push(L);let D=o(C,E);for(let G=0;G<D.length;++G){let W=D[G];i.push(R+W)}c=d+(c.length>0?\" \"+c:c)}return c};function Xmt(){let t=0,e,n,r=\"\";for(;t<arguments.length;)(e=arguments[t++])&&(n=V9e(e))&&(r&&(r+=\" \"),r+=n);return r}var V9e=t=>{if(typeof t==\"string\")return t;let e,n=\"\";for(let r=0;r<t.length;r++)t[r]&&(e=V9e(t[r]))&&(n&&(n+=\" \"),n+=e);return n};function e0t(t,...e){let n,r,o,i=a;function a(u){let d=e.reduce((h,m)=>m(h),t());return n=Ymt(d),r=n.cache.get,o=n.cache.set,i=c,c(u)}function c(u){let d=r(u);if(d)return d;let h=Jmt(u,n);return o(u,h),h}return function(){return i(Xmt.apply(null,arguments))}}var es=t=>{let e=n=>n[t]||[];return e.isThemeGetter=!0,e},$9e=/^\\\\[(?:([a-z-]+):)?(.+)\\\\]$/i,t0t=/^\\\\d+\\\\/\\\\d+$/,n0t=new Set([\"px\",\"full\",\"screen\"]),r0t=/^(\\\\d+(\\\\.\\\\d+)?)?(xs|sm|md|lg|xl)$/,o0t=/\\\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\\\b(calc|min|max|clamp)\\\\(.+\\\\)|^0$/,i0t=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\\\(.+\\\\)$/,s0t=/^(inset_)?-?((\\\\d+)?\\\\.?(\\\\d+)[a-z]+|0)_-?((\\\\d+)?\\\\.?(\\\\d+)[a-z]+|0)/,a0t=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\\\(.+\\\\)$/,l2=t=>eT(t)||n0t.has(t)||t0t.test(t),A3=t=>tT(t,\"length\",m0t),eT=t=>!!t&&!Number.isNaN(Number(t)),Aie=t=>tT(t,\"number\",eT),IP=t=>!!t&&Number.isInteger(Number(t)),c0t=t=>t.endsWith(\"%\")&&eT(t.slice(0,-1)),lr=t=>$9e.test(t),T3=t=>r0t.test(t),l0t=new Set([\"length\",\"size\",\"percentage\"]),u0t=t=>tT(t,l0t,K9e),d0t=t=>tT(t,\"position\",K9e),f0t=new Set([\"image\",\"url\"]),h0t=t=>tT(t,f0t,y0t),p0t=t=>tT(t,\"\",g0t),OP=()=>!0,tT=(t,e,n)=>{let r=$9e.exec(t);return r?r[1]?typeof e==\"string\"?r[1]===e:e.has(r[1]):n(r[2]):!1},m0t=t=>o0t.test(t)&&!i0t.test(t),K9e=()=>!1,g0t=t=>s0t.test(t),y0t=t=>a0t.test(t);var b0t=()=>{let t=es(\"colors\"),e=es(\"spacing\"),n=es(\"blur\"),r=es(\"brightness\"),o=es(\"borderColor\"),i=es(\"borderRadius\"),a=es(\"borderSpacing\"),c=es(\"borderWidth\"),u=es(\"contrast\"),d=es(\"grayscale\"),h=es(\"hueRotate\"),m=es(\"invert\"),g=es(\"gap\"),b=es(\"gradientColorStops\"),E=es(\"gradientColorStopPositions\"),C=es(\"inset\"),T=es(\"margin\"),R=es(\"opacity\"),L=es(\"padding\"),D=es(\"saturate\"),G=es(\"scale\"),W=es(\"sepia\"),J=es(\"skew\"),ne=es(\"space\"),ie=es(\"translate\"),Z=()=>[\"auto\",\"contain\",\"none\"],ae=()=>[\"auto\",\"hidden\",\"clip\",\"visible\",\"scroll\"],V=()=>[\"auto\",lr,e],$=()=>[lr,e],F=()=>[\"\",l2,A3],_=()=>[\"auto\",eT,lr],O=()=>[\"bottom\",\"center\",\"left\",\"left-bottom\",\"left-top\",\"right\",\"right-bottom\",\"right-top\",\"top\"],z=()=>[\"solid\",\"dashed\",\"dotted\",\"double\",\"none\"],N=()=>[\"normal\",\"multiply\",\"screen\",\"overlay\",\"darken\",\"lighten\",\"color-dodge\",\"color-burn\",\"hard-light\",\"soft-light\",\"difference\",\"exclusion\",\"hue\",\"saturation\",\"color\",\"luminosity\"],B=()=>[\"start\",\"end\",\"center\",\"between\",\"around\",\"evenly\",\"stretch\"],j=()=>[\"\",\"0\",lr],q=()=>[\"auto\",\"avoid\",\"all\",\"avoid-page\",\"page\",\"left\",\"right\",\"column\"],H=()=>[eT,lr];return{cacheSize:500,separator:\":\",theme:{colors:[OP],spacing:[l2,A3],blur:[\"none\",\"\",T3,lr],brightness:H(),borderColor:[t],borderRadius:[\"none\",\"\",\"full\",T3,lr],borderSpacing:$(),borderWidth:F(),contrast:H(),grayscale:j(),hueRotate:H(),invert:j(),gap:$(),gradientColorStops:[t],gradientColorStopPositions:[c0t,A3],inset:V(),margin:V(),opacity:H(),padding:$(),saturate:H(),scale:H(),sepia:j(),skew:H(),space:$(),translate:$()},classGroups:{aspect:[{aspect:[\"auto\",\"square\",\"video\",lr]}],container:[\"container\"],columns:[{columns:[T3]}],\"break-after\":[{\"break-after\":q()}],\"break-before\":[{\"break-before\":q()}],\"break-inside\":[{\"break-inside\":[\"auto\",\"avoid\",\"avoid-page\",\"avoid-column\"]}],\"box-decoration\":[{\"box-decoration\":[\"slice\",\"clone\"]}],box:[{box:[\"border\",\"content\"]}],display:[\"block\",\"inline-block\",\"inline\",\"flex\",\"inline-flex\",\"table\",\"inline-table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row-group\",\"table-row\",\"flow-root\",\"grid\",\"inline-grid\",\"contents\",\"list-item\",\"hidden\"],float:[{float:[\"right\",\"left\",\"none\",\"start\",\"end\"]}],clear:[{clear:[\"left\",\"right\",\"both\",\"none\",\"start\",\"end\"]}],isolation:[\"isolate\",\"isolation-auto\"],\"object-fit\":[{object:[\"contain\",\"cover\",\"fill\",\"none\",\"scale-down\"]}],\"object-position\":[{object:[...O(),lr]}],overflow:[{overflow:ae()}],\"overflow-x\":[{\"overflow-x\":ae()}],\"overflow-y\":[{\"overflow-y\":ae()}],overscroll:[{overscroll:Z()}],\"overscroll-x\":[{\"overscroll-x\":Z()}],\"overscroll-y\":[{\"overscroll-y\":Z()}],position:[\"static\",\"fixed\",\"absolute\",\"relative\",\"sticky\"],inset:[{inset:[C]}],\"inset-x\":[{\"inset-x\":[C]}],\"inset-y\":[{\"inset-y\":[C]}],start:[{start:[C]}],end:[{end:[C]}],top:[{top:[C]}],right:[{right:[C]}],bottom:[{bottom:[C]}],left:[{left:[C]}],visibility:[\"visible\",\"invisible\",\"collapse\"],z:[{z:[\"auto\",IP,lr]}],basis:[{basis:V()}],\"flex-direction\":[{flex:[\"row\",\"row-reverse\",\"col\",\"col-reverse\"]}],\"flex-wrap\":[{flex:[\"wrap\",\"wrap-reverse\",\"nowrap\"]}],flex:[{flex:[\"1\",\"auto\",\"initial\",\"none\",lr]}],grow:[{grow:j()}],shrink:[{shrink:j()}],order:[{order:[\"first\",\"last\",\"none\",IP,lr]}],\"grid-cols\":[{\"grid-cols\":[OP]}],\"col-start-end\":[{col:[\"auto\",{span:[\"full\",IP,lr]},lr]}],\"col-start\":[{\"col-start\":_()}],\"col-end\":[{\"col-end\":_()}],\"grid-rows\":[{\"grid-rows\":[OP]}],\"row-start-end\":[{row:[\"auto\",{span:[IP,lr]},lr]}],\"row-start\":[{\"row-start\":_()}],\"row-end\":[{\"row-end\":_()}],\"grid-flow\":[{\"grid-flow\":[\"row\",\"col\",\"dense\",\"row-dense\",\"col-dense\"]}],\"auto-cols\":[{\"auto-cols\":[\"auto\",\"min\",\"max\",\"fr\",lr]}],\"auto-rows\":[{\"auto-rows\":[\"auto\",\"min\",\"max\",\"fr\",lr]}],gap:[{gap:[g]}],\"gap-x\":[{\"gap-x\":[g]}],\"gap-y\":[{\"gap-y\":[g]}],\"justify-content\":[{justify:[\"normal\",...B()]}],\"justify-items\":[{\"justify-items\":[\"start\",\"end\",\"center\",\"stretch\"]}],\"justify-self\":[{\"justify-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],\"align-content\":[{content:[\"normal\",...B(),\"baseline\"]}],\"align-items\":[{items:[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"align-self\":[{self:[\"auto\",\"start\",\"end\",\"center\",\"stretch\",\"baseline\"]}],\"place-content\":[{\"place-content\":[...B(),\"baseline\"]}],\"place-items\":[{\"place-items\":[\"start\",\"end\",\"center\",\"baseline\",\"stretch\"]}],\"place-self\":[{\"place-self\":[\"auto\",\"start\",\"end\",\"center\",\"stretch\"]}],p:[{p:[L]}],px:[{px:[L]}],py:[{py:[L]}],ps:[{ps:[L]}],pe:[{pe:[L]}],pt:[{pt:[L]}],pr:[{pr:[L]}],pb:[{pb:[L]}],pl:[{pl:[L]}],m:[{m:[T]}],mx:[{mx:[T]}],my:[{my:[T]}],ms:[{ms:[T]}],me:[{me:[T]}],mt:[{mt:[T]}],mr:[{mr:[T]}],mb:[{mb:[T]}],ml:[{ml:[T]}],\"space-x\":[{\"space-x\":[ne]}],\"space-x-reverse\":[\"space-x-reverse\"],\"space-y\":[{\"space-y\":[ne]}],\"space-y-reverse\":[\"space-y-reverse\"],w:[{w:[\"auto\",\"min\",\"max\",\"fit\",\"svw\",\"lvw\",\"dvw\",lr,e]}],\"min-w\":[{\"min-w\":[lr,e,\"min\",\"max\",\"fit\"]}],\"max-w\":[{\"max-w\":[lr,e,\"none\",\"full\",\"min\",\"max\",\"fit\",\"prose\",{screen:[T3]},T3]}],h:[{h:[lr,e,\"auto\",\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"min-h\":[{\"min-h\":[lr,e,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],\"max-h\":[{\"max-h\":[lr,e,\"min\",\"max\",\"fit\",\"svh\",\"lvh\",\"dvh\"]}],size:[{size:[lr,e,\"auto\",\"min\",\"max\",\"fit\"]}],\"font-size\":[{text:[\"base\",T3,A3]}],\"font-smoothing\":[\"antialiased\",\"subpixel-antialiased\"],\"font-style\":[\"italic\",\"not-italic\"],\"font-weight\":[{font:[\"thin\",\"extralight\",\"light\",\"normal\",\"medium\",\"semibold\",\"bold\",\"extrabold\",\"black\",Aie]}],\"font-family\":[{font:[OP]}],\"fvn-normal\":[\"normal-nums\"],\"fvn-ordinal\":[\"ordinal\"],\"fvn-slashed-zero\":[\"slashed-zero\"],\"fvn-figure\":[\"lining-nums\",\"oldstyle-nums\"],\"fvn-spacing\":[\"proportional-nums\",\"tabular-nums\"],\"fvn-fraction\":[\"diagonal-fractions\",\"stacked-fractions\"],tracking:[{tracking:[\"tighter\",\"tight\",\"normal\",\"wide\",\"wider\",\"widest\",lr]}],\"line-clamp\":[{\"line-clamp\":[\"none\",eT,Aie]}],leading:[{leading:[\"none\",\"tight\",\"snug\",\"normal\",\"relaxed\",\"loose\",l2,lr]}],\"list-image\":[{\"list-image\":[\"none\",lr]}],\"list-style-type\":[{list:[\"none\",\"disc\",\"decimal\",lr]}],\"list-style-position\":[{list:[\"inside\",\"outside\"]}],\"placeholder-color\":[{placeholder:[t]}],\"placeholder-opacity\":[{\"placeholder-opacity\":[R]}],\"text-alignment\":[{text:[\"left\",\"center\",\"right\",\"justify\",\"start\",\"end\"]}],\"text-color\":[{text:[t]}],\"text-opacity\":[{\"text-opacity\":[R]}],\"text-decoration\":[\"underline\",\"overline\",\"line-through\",\"no-underline\"],\"text-decoration-style\":[{decoration:[...z(),\"wavy\"]}],\"text-decoration-thickness\":[{decoration:[\"auto\",\"from-font\",l2,A3]}],\"underline-offset\":[{\"underline-offset\":[\"auto\",l2,lr]}],\"text-decoration-color\":[{decoration:[t]}],\"text-transform\":[\"uppercase\",\"lowercase\",\"capitalize\",\"normal-case\"],\"text-overflow\":[\"truncate\",\"text-ellipsis\",\"text-clip\"],\"text-wrap\":[{text:[\"wrap\",\"nowrap\",\"balance\",\"pretty\"]}],indent:[{indent:$()}],\"vertical-align\":[{align:[\"baseline\",\"top\",\"middle\",\"bottom\",\"text-top\",\"text-bottom\",\"sub\",\"super\",lr]}],whitespace:[{whitespace:[\"normal\",\"nowrap\",\"pre\",\"pre-line\",\"pre-wrap\",\"break-spaces\"]}],break:[{break:[\"normal\",\"words\",\"all\",\"keep\"]}],hyphens:[{hyphens:[\"none\",\"manual\",\"auto\"]}],content:[{content:[\"none\",lr]}],\"bg-attachment\":[{bg:[\"fixed\",\"local\",\"scroll\"]}],\"bg-clip\":[{\"bg-clip\":[\"border\",\"padding\",\"content\",\"text\"]}],\"bg-opacity\":[{\"bg-opacity\":[R]}],\"bg-origin\":[{\"bg-origin\":[\"border\",\"padding\",\"content\"]}],\"bg-position\":[{bg:[...O(),d0t]}],\"bg-repeat\":[{bg:[\"no-repeat\",{repeat:[\"\",\"x\",\"y\",\"round\",\"space\"]}]}],\"bg-size\":[{bg:[\"auto\",\"cover\",\"contain\",u0t]}],\"bg-image\":[{bg:[\"none\",{\"gradient-to\":[\"t\",\"tr\",\"r\",\"br\",\"b\",\"bl\",\"l\",\"tl\"]},h0t]}],\"bg-color\":[{bg:[t]}],\"gradient-from-pos\":[{from:[E]}],\"gradient-via-pos\":[{via:[E]}],\"gradient-to-pos\":[{to:[E]}],\"gradient-from\":[{from:[b]}],\"gradient-via\":[{via:[b]}],\"gradient-to\":[{to:[b]}],rounded:[{rounded:[i]}],\"rounded-s\":[{\"rounded-s\":[i]}],\"rounded-e\":[{\"rounded-e\":[i]}],\"rounded-t\":[{\"rounded-t\":[i]}],\"rounded-r\":[{\"rounded-r\":[i]}],\"rounded-b\":[{\"rounded-b\":[i]}],\"rounded-l\":[{\"rounded-l\":[i]}],\"rounded-ss\":[{\"rounded-ss\":[i]}],\"rounded-se\":[{\"rounded-se\":[i]}],\"rounded-ee\":[{\"rounded-ee\":[i]}],\"rounded-es\":[{\"rounded-es\":[i]}],\"rounded-tl\":[{\"rounded-tl\":[i]}],\"rounded-tr\":[{\"rounded-tr\":[i]}],\"rounded-br\":[{\"rounded-br\":[i]}],\"rounded-bl\":[{\"rounded-bl\":[i]}],\"border-w\":[{border:[c]}],\"border-w-x\":[{\"border-x\":[c]}],\"border-w-y\":[{\"border-y\":[c]}],\"border-w-s\":[{\"border-s\":[c]}],\"border-w-e\":[{\"border-e\":[c]}],\"border-w-t\":[{\"border-t\":[c]}],\"border-w-r\":[{\"border-r\":[c]}],\"border-w-b\":[{\"border-b\":[c]}],\"border-w-l\":[{\"border-l\":[c]}],\"border-opacity\":[{\"border-opacity\":[R]}],\"border-style\":[{border:[...z(),\"hidden\"]}],\"divide-x\":[{\"divide-x\":[c]}],\"divide-x-reverse\":[\"divide-x-reverse\"],\"divide-y\":[{\"divide-y\":[c]}],\"divide-y-reverse\":[\"divide-y-reverse\"],\"divide-opacity\":[{\"divide-opacity\":[R]}],\"divide-style\":[{divide:z()}],\"border-color\":[{border:[o]}],\"border-color-x\":[{\"border-x\":[o]}],\"border-color-y\":[{\"border-y\":[o]}],\"border-color-s\":[{\"border-s\":[o]}],\"border-color-e\":[{\"border-e\":[o]}],\"border-color-t\":[{\"border-t\":[o]}],\"border-color-r\":[{\"border-r\":[o]}],\"border-color-b\":[{\"border-b\":[o]}],\"border-color-l\":[{\"border-l\":[o]}],\"divide-color\":[{divide:[o]}],\"outline-style\":[{outline:[\"\",...z()]}],\"outline-offset\":[{\"outline-offset\":[l2,lr]}],\"outline-w\":[{outline:[l2,A3]}],\"outline-color\":[{outline:[t]}],\"ring-w\":[{ring:F()}],\"ring-w-inset\":[\"ring-inset\"],\"ring-color\":[{ring:[t]}],\"ring-opacity\":[{\"ring-opacity\":[R]}],\"ring-offset-w\":[{\"ring-offset\":[l2,A3]}],\"ring-offset-color\":[{\"ring-offset\":[t]}],shadow:[{shadow:[\"\",\"inner\",\"none\",T3,p0t]}],\"shadow-color\":[{shadow:[OP]}],opacity:[{opacity:[R]}],\"mix-blend\":[{\"mix-blend\":[...N(),\"plus-lighter\",\"plus-darker\"]}],\"bg-blend\":[{\"bg-blend\":N()}],filter:[{filter:[\"\",\"none\"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],\"drop-shadow\":[{\"drop-shadow\":[\"\",\"none\",T3,lr]}],grayscale:[{grayscale:[d]}],\"hue-rotate\":[{\"hue-rotate\":[h]}],invert:[{invert:[m]}],saturate:[{saturate:[D]}],sepia:[{sepia:[W]}],\"backdrop-filter\":[{\"backdrop-filter\":[\"\",\"none\"]}],\"backdrop-blur\":[{\"backdrop-blur\":[n]}],\"backdrop-brightness\":[{\"backdrop-brightness\":[r]}],\"backdrop-contrast\":[{\"backdrop-contrast\":[u]}],\"backdrop-grayscale\":[{\"backdrop-grayscale\":[d]}],\"backdrop-hue-rotate\":[{\"backdrop-hue-rotate\":[h]}],\"backdrop-invert\":[{\"backdrop-invert\":[m]}],\"backdrop-opacity\":[{\"backdrop-opacity\":[R]}],\"backdrop-saturate\":[{\"backdrop-saturate\":[D]}],\"backdrop-sepia\":[{\"backdrop-sepia\":[W]}],\"border-collapse\":[{border:[\"collapse\",\"separate\"]}],\"border-spacing\":[{\"border-spacing\":[a]}],\"border-spacing-x\":[{\"border-spacing-x\":[a]}],\"border-spacing-y\":[{\"border-spacing-y\":[a]}],\"table-layout\":[{table:[\"auto\",\"fixed\"]}],caption:[{caption:[\"top\",\"bottom\"]}],transition:[{transition:[\"none\",\"all\",\"\",\"colors\",\"opacity\",\"shadow\",\"transform\",lr]}],duration:[{duration:H()}],ease:[{ease:[\"linear\",\"in\",\"out\",\"in-out\",lr]}],delay:[{delay:H()}],animate:[{animate:[\"none\",\"spin\",\"ping\",\"pulse\",\"bounce\",lr]}],transform:[{transform:[\"\",\"gpu\",\"none\"]}],scale:[{scale:[G]}],\"scale-x\":[{\"scale-x\":[G]}],\"scale-y\":[{\"scale-y\":[G]}],rotate:[{rotate:[IP,lr]}],\"translate-x\":[{\"translate-x\":[ie]}],\"translate-y\":[{\"translate-y\":[ie]}],\"skew-x\":[{\"skew-x\":[J]}],\"skew-y\":[{\"skew-y\":[J]}],\"transform-origin\":[{origin:[\"center\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\",\"top-left\",lr]}],accent:[{accent:[\"auto\",t]}],appearance:[{appearance:[\"none\",\"auto\"]}],cursor:[{cursor:[\"auto\",\"default\",\"pointer\",\"wait\",\"text\",\"move\",\"help\",\"not-allowed\",\"none\",\"context-menu\",\"progress\",\"cell\",\"crosshair\",\"vertical-text\",\"alias\",\"copy\",\"no-drop\",\"grab\",\"grabbing\",\"all-scroll\",\"col-resize\",\"row-resize\",\"n-resize\",\"e-resize\",\"s-resize\",\"w-resize\",\"ne-resize\",\"nw-resize\",\"se-resize\",\"sw-resize\",\"ew-resize\",\"ns-resize\",\"nesw-resize\",\"nwse-resize\",\"zoom-in\",\"zoom-out\",lr]}],\"caret-color\":[{caret:[t]}],\"pointer-events\":[{\"pointer-events\":[\"none\",\"auto\"]}],resize:[{resize:[\"none\",\"y\",\"x\",\"\"]}],\"scroll-behavior\":[{scroll:[\"auto\",\"smooth\"]}],\"scroll-m\":[{\"scroll-m\":$()}],\"scroll-mx\":[{\"scroll-mx\":$()}],\"scroll-my\":[{\"scroll-my\":$()}],\"scroll-ms\":[{\"scroll-ms\":$()}],\"scroll-me\":[{\"scroll-me\":$()}],\"scroll-mt\":[{\"scroll-mt\":$()}],\"scroll-mr\":[{\"scroll-mr\":$()}],\"scroll-mb\":[{\"scroll-mb\":$()}],\"scroll-ml\":[{\"scroll-ml\":$()}],\"scroll-p\":[{\"scroll-p\":$()}],\"scroll-px\":[{\"scroll-px\":$()}],\"scroll-py\":[{\"scroll-py\":$()}],\"scroll-ps\":[{\"scroll-ps\":$()}],\"scroll-pe\":[{\"scroll-pe\":$()}],\"scroll-pt\":[{\"scroll-pt\":$()}],\"scroll-pr\":[{\"scroll-pr\":$()}],\"scroll-pb\":[{\"scroll-pb\":$()}],\"scroll-pl\":[{\"scroll-pl\":$()}],\"snap-align\":[{snap:[\"start\",\"end\",\"center\",\"align-none\"]}],\"snap-stop\":[{snap:[\"normal\",\"always\"]}],\"snap-type\":[{snap:[\"none\",\"x\",\"y\",\"both\"]}],\"snap-strictness\":[{snap:[\"mandatory\",\"proximity\"]}],touch:[{touch:[\"auto\",\"none\",\"manipulation\"]}],\"touch-x\":[{\"touch-pan\":[\"x\",\"left\",\"right\"]}],\"touch-y\":[{\"touch-pan\":[\"y\",\"up\",\"down\"]}],\"touch-pz\":[\"touch-pinch-zoom\"],select:[{select:[\"none\",\"text\",\"all\",\"auto\"]}],\"will-change\":[{\"will-change\":[\"auto\",\"scroll\",\"contents\",\"transform\",lr]}],fill:[{fill:[t,\"none\"]}],\"stroke-w\":[{stroke:[l2,A3,Aie]}],stroke:[{stroke:[t,\"none\"]}],sr:[\"sr-only\",\"not-sr-only\"],\"forced-color-adjust\":[{\"forced-color-adjust\":[\"auto\",\"none\"]}]},conflictingClassGroups:{overflow:[\"overflow-x\",\"overflow-y\"],overscroll:[\"overscroll-x\",\"overscroll-y\"],inset:[\"inset-x\",\"inset-y\",\"start\",\"end\",\"top\",\"right\",\"bottom\",\"left\"],\"inset-x\":[\"right\",\"left\"],\"inset-y\":[\"top\",\"bottom\"],flex:[\"basis\",\"grow\",\"shrink\"],gap:[\"gap-x\",\"gap-y\"],p:[\"px\",\"py\",\"ps\",\"pe\",\"pt\",\"pr\",\"pb\",\"pl\"],px:[\"pr\",\"pl\"],py:[\"pt\",\"pb\"],m:[\"mx\",\"my\",\"ms\",\"me\",\"mt\",\"mr\",\"mb\",\"ml\"],mx:[\"mr\",\"ml\"],my:[\"mt\",\"mb\"],size:[\"w\",\"h\"],\"font-size\":[\"leading\"],\"fvn-normal\":[\"fvn-ordinal\",\"fvn-slashed-zero\",\"fvn-figure\",\"fvn-spacing\",\"fvn-fraction\"],\"fvn-ordinal\":[\"fvn-normal\"],\"fvn-slashed-zero\":[\"fvn-normal\"],\"fvn-figure\":[\"fvn-normal\"],\"fvn-spacing\":[\"fvn-normal\"],\"fvn-fraction\":[\"fvn-normal\"],\"line-clamp\":[\"display\",\"overflow\"],rounded:[\"rounded-s\",\"rounded-e\",\"rounded-t\",\"rounded-r\",\"rounded-b\",\"rounded-l\",\"rounded-ss\",\"rounded-se\",\"rounded-ee\",\"rounded-es\",\"rounded-tl\",\"rounded-tr\",\"rounded-br\",\"rounded-bl\"],\"rounded-s\":[\"rounded-ss\",\"rounded-es\"],\"rounded-e\":[\"rounded-se\",\"rounded-ee\"],\"rounded-t\":[\"rounded-tl\",\"rounded-tr\"],\"rounded-r\":[\"rounded-tr\",\"rounded-br\"],\"rounded-b\":[\"rounded-br\",\"rounded-bl\"],\"rounded-l\":[\"rounded-tl\",\"rounded-bl\"],\"border-spacing\":[\"border-spacing-x\",\"border-spacing-y\"],\"border-w\":[\"border-w-s\",\"border-w-e\",\"border-w-t\",\"border-w-r\",\"border-w-b\",\"border-w-l\"],\"border-w-x\":[\"border-w-r\",\"border-w-l\"],\"border-w-y\":[\"border-w-t\",\"border-w-b\"],\"border-color\":[\"border-color-s\",\"border-color-e\",\"border-color-t\",\"border-color-r\",\"border-color-b\",\"border-color-l\"],\"border-color-x\":[\"border-color-r\",\"border-color-l\"],\"border-color-y\":[\"border-color-t\",\"border-color-b\"],\"scroll-m\":[\"scroll-mx\",\"scroll-my\",\"scroll-ms\",\"scroll-me\",\"scroll-mt\",\"scroll-mr\",\"scroll-mb\",\"scroll-ml\"],\"scroll-mx\":[\"scroll-mr\",\"scroll-ml\"],\"scroll-my\":[\"scroll-mt\",\"scroll-mb\"],\"scroll-p\":[\"scroll-px\",\"scroll-py\",\"scroll-ps\",\"scroll-pe\",\"scroll-pt\",\"scroll-pr\",\"scroll-pb\",\"scroll-pl\"],\"scroll-px\":[\"scroll-pr\",\"scroll-pl\"],\"scroll-py\":[\"scroll-pt\",\"scroll-pb\"],touch:[\"touch-x\",\"touch-y\",\"touch-pz\"],\"touch-x\":[\"touch\"],\"touch-y\":[\"touch\"],\"touch-pz\":[\"touch\"]},conflictingClassGroupModifiers:{\"font-size\":[\"leading\"]}}};var G9e=e0t(b0t);function ge(...t){return G9e(j9e(t))}var Xe={base:\"ock-font-family\",body:\"ock-font-family font-normal text-base\",caption:\"ock-font-family font-semibold text-xs\",headline:\"ock-font-family font-semibold\",label1:\"ock-font-family font-semibold text-sm\",label2:\"ock-font-family text-sm\",legal:\"ock-font-family text-xs\",title1:\"ock-font-family font-semibold text-2xl\",title3:\"ock-font-family font-semibold text-xl\"},Ht={default:\"cursor-pointer ock-bg-default active:bg-[var(--ock-bg-default-active)] hover:bg-[var(--ock-bg-default-hover)]\",alternate:\"cursor-pointer ock-bg-alternate active:bg-[var(--ock-bg-alternate-active)] hover:bg-[var(--ock-bg-alternate-hover)]\",inverse:\"cursor-pointer ock-bg-inverse active:bg-[var(--ock-bg-inverse-active)] hover:bg-[var(--ock-bg-inverse-hover)]\",primary:\"cursor-pointer ock-bg-primary active:bg-[var(--ock-bg-primary-active)] hover:bg-[var(--ock-bg-primary-hover)]\",secondary:\"cursor-pointer ock-bg-secondary active:bg-[var(--ock-bg-secondary-active)] hover:bg-[var(--ock-bg-secondary-hover)]\",coinbaseBranding:\"cursor-pointer bg-[#0052FF] hover:bg-[#0045D8]\",shadow:\"ock-shadow-default\",disabled:\"opacity-[0.38] pointer-events-none\"},dn={default:\"ock-bg-default\",alternate:\"ock-bg-alternate\",inverse:\"ock-bg-inverse\",primary:\"ock-bg-primary\",secondary:\"ock-bg-secondary\",error:\"ock-bg-error\",warning:\"ock-bg-warning\",success:\"ock-bg-success\",washed:\"ock-bg-primary-washed\",disabled:\"ock-bg-primary-disabled\",reverse:\"ock-bg-default-reverse\"},it={inverse:\"ock-text-inverse\",foreground:\"ock-text-foreground\",foregroundMuted:\"ock-text-foreground-muted\",error:\"ock-text-error\",primary:\"ock-text-primary\",success:\"ock-text-success\",warning:\"ock-text-warning\",disabled:\"ock-text-disabled\"};var mt={default:\"ock-border-default\",defaultActive:\"ock-border-default-active\",linePrimary:\"ock-border-line-primary border\",lineDefault:\"ock-border-line-default border\",lineHeavy:\"ock-border-line-heavy border\",lineInverse:\"ock-border-line-inverse border\",radius:\"ock-border-radius\",radiusInner:\"ock-border-radius-inner\"};var Kt={primary:\"ock-icon-color-primary\",foreground:\"ock-icon-color-foreground\",foregroundMuted:\"ock-icon-color-foreground-muted\",inverse:\"ock-icon-color-inverse\",error:\"ock-icon-color-error\",success:\"ock-icon-color-success\",warning:\"ock-icon-color-warning\"};p();var dk=he(et(),1),Z9e=t=>{let e=(0,dk.useRef)(null),n=(0,dk.useCallback)(o=>{e.current&&clearInterval(e.current),e.current=window.setInterval(()=>{o.closed&&(e.current&&(clearInterval(e.current),e.current=null),t?.())},500)},[t]),r=(0,dk.useCallback)(()=>{e.current&&(clearInterval(e.current),e.current=null)},[]);return(0,dk.useEffect)(()=>()=>r(),[r]),{startPopupMonitor:n,stopPopupMonitor:r}};p();var PP=he(De(),1),TW=({fill:t=\"#E11D48\"})=>(0,PP.jsxs)(\"svg\",{\"aria-label\":\"ock-errorSvg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"data-testid\":\"ock-errorSvg\",children:[(0,PP.jsx)(\"title\",{children:\"Error\"}),(0,PP.jsx)(\"path\",{d:\"M8 16C12.4183 16 16 12.4183 16 8C16 3.58171 12.4183 0 8 0C3.58172 0 0 3.58171 0 8C0 12.4183 3.58172 16 8 16ZM11.7576 5.0909L8.84853 8L11.7576 10.9091L10.9091 11.7576L8 8.84851L5.09093 11.7576L4.2424 10.9091L7.15147 8L4.2424 5.0909L5.09093 4.24239L8 7.15145L10.9091 4.24239L11.7576 5.0909Z\",fill:t})]});p();function Iie({url:t,target:e,height:n,width:r}){let o=Math.round((window.screen.width-r)/2),i=Math.round((window.screen.height-n)/2),a=`width=${r},height=${n},resizable,scrollbars=yes,status=1,left=${o},top=${i}`;return window.open(t,e,a)}p();var zi=()=>({sendAnalytics:kW});p();var Oie=he(De(),1);function jh({className:t}){return(0,Oie.jsx)(\"div\",{className:\"flex h-full items-center justify-center\",\"data-testid\":\"ockSpinner\",children:(0,Oie.jsx)(\"div\",{className:ge(\"animate-spin border-2 border-gray-200 border-t-3\",\"rounded-full border-t-gray-400 px-2.5 py-2.5\",t)})})}p();var MP=he(De(),1);var Y9e=({className:t=ge(Kt.inverse)})=>(0,MP.jsxs)(\"svg\",{\"data-testid\":\"ock-addSvg\",role:\"img\",\"aria-label\":\"ock-addSvg\",width:\"13\",height:\"12\",viewBox:\"0 0 13 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,MP.jsx)(\"title\",{children:\"Add\"}),(0,MP.jsx)(\"path\",{d:\"M7.125 0H5.875V5.37501L0.5 5.37501L0.5 6.62501H5.875V12H7.125V6.62501H12.5V5.37501H7.125V0Z\",className:t})]});p();var NP=he(De(),1),nT=({fill:t=\"#65A30D\"})=>(0,NP.jsxs)(\"svg\",{\"aria-label\":\"ock-successSvg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"data-testid\":\"ock-successSvg\",children:[(0,NP.jsx)(\"title\",{children:\"Success SVG\"}),(0,NP.jsx)(\"path\",{d:\"M8 0C3.58 0 0 3.58 0 8C0 12.42 3.58 16 8 16C12.42 16 16 12.42 16 8C16 3.58 12.42 0 8 0ZM6.72667 11.5333L3.73333 8.54L4.67333 7.6L6.72667 9.65333L11.44 4.94L12.38 5.88L6.72667 11.5333Z\",fill:t})]});p();var Pl=he(De(),1),Ks=he(et(),1);p();var J9e=he(De(),1);p();var Q9e=he(et(),1);function Vc(t){return(0,Q9e.useMemo)(()=>t,[t])}var RW=he(et(),1),v0t={},X9e=(0,RW.createContext)(v0t);function Lf(){return(0,RW.useContext)(X9e)}function IW(t){let{chain:e}=lo(),n=t.chain??e,r=Vc({address:t.address||\"\",chain:n,schemaId:t.schemaId});return(0,J9e.jsx)(X9e.Provider,{value:r,children:t.children})}p();var L1=he(De(),1);p();p();p();bo();Si();function Bf(t){let e=Jw(\"apiKey\");return M9({chain:t,transport:(t===Yn||t===xs)&&!!e?Eh(`${t===Yn?\"https://api.developer.coinbase.com/rpc/v1/base\":\"https://api.developer.coinbase.com/rpc/v1/base-sepolia\"}/${e}`):Eh()})}Si();p();p();p();p();var w0t=\"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\",eIe=new Map([[8217,\"apostrophe\"],[8260,\"fraction slash\"],[12539,\"middle dot\"]]),tIe=4;function x0t(t){let e=0;function n(){return t[e++]<<8|t[e++]}let r=n(),o=1,i=[0,1];for(let W=1;W<r;W++)i.push(o+=n());let a=n(),c=e;e+=a;let u=0,d=0;function h(){return u==0&&(d=d<<8|t[e++],u=8),d>>--u&1}let m=31,g=2**m,b=g>>>1,E=b>>1,C=g-1,T=0;for(let W=0;W<m;W++)T=T<<1|h();let R=[],L=0,D=g;for(;;){let W=Math.floor(((T-L+1)*o-1)/D),J=0,ne=r;for(;ne-J>1;){let ae=J+ne>>>1;W<i[ae]?ne=ae:J=ae}if(J==0)break;R.push(J);let ie=L+Math.floor(D*i[J]/o),Z=L+Math.floor(D*i[J+1]/o)-1;for(;((ie^Z)&b)==0;)T=T<<1&C|h(),ie=ie<<1&C,Z=Z<<1&C|1;for(;ie&~Z&E;)T=T&b|T<<1&C>>>1|h(),ie=ie<<1^b,Z=(Z^b)<<1|b|1;L=ie,D=1+Z-ie}let G=r-4;return R.map(W=>{switch(W-G){case 3:return G+65792+(t[c++]<<16|t[c++]<<8|t[c++]);case 2:return G+256+(t[c++]<<8|t[c++]);case 1:return G+t[c++];default:return W-1}})}function E0t(t){let e=0;return()=>t[e++]}function iIe(t){return E0t(x0t(S0t(t)))}function S0t(t){let e=[];[...\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"].forEach((o,i)=>e[o.charCodeAt(0)]=i);let n=t.length,r=new Uint8Array(6*n>>3);for(let o=0,i=0,a=0,c=0;o<n;o++)c=c<<6|e[t.charCodeAt(o)],a+=6,a>=8&&(r[i++]=c>>(a-=8));return r}function k0t(t){return t&1?~t>>1:t>>1}function _0t(t,e){let n=Array(t);for(let r=0,o=0;r<t;r++)n[r]=o+=k0t(e());return n}function DP(t,e=0){let n=[];for(;;){let r=t(),o=t();if(!o)break;e+=r;for(let i=0;i<o;i++)n.push(e+i);e+=o+1}return n}function sIe(t){return FP(()=>{let e=DP(t);if(e.length)return e})}function aIe(t){let e=[];for(;;){let n=t();if(n==0)break;e.push(C0t(n,t))}for(;;){let n=t()-1;if(n<0)break;e.push(A0t(n,t))}return e.flat()}function FP(t){let e=[];for(;;){let n=t(e.length);if(!n)break;e.push(n)}return e}function cIe(t,e,n){let r=Array(t).fill().map(()=>[]);for(let o=0;o<e;o++)_0t(t,n).forEach((i,a)=>r[a].push(i));return r}function C0t(t,e){let n=1+e(),r=e(),o=FP(e);return cIe(o.length,1+t,e).flatMap((a,c)=>{let[u,...d]=a;return Array(o[c]).fill().map((h,m)=>{let g=m*r;return[u+m*n,d.map(b=>b+g)]})})}function A0t(t,e){let n=1+e();return cIe(n,1+t,e).map(o=>[o[0],o.slice(1)])}function T0t(t){let e=[],n=DP(t);return o(r([]),[]),e;function r(i){let a=t(),c=FP(()=>{let u=DP(t).map(d=>n[d]);if(u.length)return r(u)});return{S:a,B:c,Q:i}}function o({S:i,B:a},c,u){if(!(i&4&&u===c[c.length-1])){i&2&&(u=c[c.length-1]),i&1&&e.push(c);for(let d of a)for(let h of d.Q)o(d,[...c,h],u)}}}function R0t(t){return t.toString(16).toUpperCase().padStart(2,\"0\")}function lIe(t){return`{${R0t(t)}}`}function I0t(t){let e=[];for(let n=0,r=t.length;n<r;){let o=t.codePointAt(n);n+=o<65536?1:2,e.push(o)}return e}function iT(t){let n=t.length;if(n<4096)return String.fromCodePoint(...t);let r=[];for(let o=0;o<n;)r.push(String.fromCodePoint(...t.slice(o,o+=4096)));return r.join(\"\")}function O0t(t,e){let n=t.length,r=n-e.length;for(let o=0;r==0&&o<n;o++)r=t[o]-e[o];return r}var P0t=\"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\",UP=44032,PW=4352,MW=4449,NW=4519,uIe=19,dIe=21,sT=28,LW=dIe*sT,M0t=uIe*LW,N0t=UP+M0t,L0t=PW+uIe,B0t=MW+dIe,D0t=NW+sT;function LP(t){return t>>24&255}function fIe(t){return t&16777215}var Mie,nIe,Nie,OW;function F0t(){let t=iIe(P0t);Mie=new Map(sIe(t).flatMap((e,n)=>e.map(r=>[r,n+1<<24]))),nIe=new Set(DP(t)),Nie=new Map,OW=new Map;for(let[e,n]of aIe(t)){if(!nIe.has(e)&&n.length==2){let[r,o]=n,i=OW.get(r);i||(i=new Map,OW.set(r,i)),i.set(o,e)}Nie.set(e,n.reverse())}}function hIe(t){return t>=UP&&t<N0t}function U0t(t,e){if(t>=PW&&t<L0t&&e>=MW&&e<B0t)return UP+(t-PW)*LW+(e-MW)*sT;if(hIe(t)&&e>NW&&e<D0t&&(t-UP)%sT==0)return t+(e-NW);{let n=OW.get(t);return n&&(n=n.get(e),n)?n:-1}}function pIe(t){Mie||F0t();let e=[],n=[],r=!1;function o(i){let a=Mie.get(i);a&&(r=!0,i|=a),e.push(i)}for(let i of t)for(;;){if(i<128)e.push(i);else if(hIe(i)){let a=i-UP,c=a/LW|0,u=a%LW/sT|0,d=a%sT;o(PW+c),o(MW+u),d>0&&o(NW+d)}else{let a=Nie.get(i);a?n.push(...a):o(i)}if(!n.length)break;i=n.pop()}if(r&&e.length>1){let i=LP(e[0]);for(let a=1;a<e.length;a++){let c=LP(e[a]);if(c==0||i<=c){i=c;continue}let u=a-1;for(;;){let d=e[u+1];if(e[u+1]=e[u],e[u]=d,!u||(i=LP(e[--u]),i<=c))break}i=LP(e[a])}}return e}function j0t(t){let e=[],n=[],r=-1,o=0;for(let i of t){let a=LP(i),c=fIe(i);if(r==-1)a==0?r=c:e.push(c);else if(o>0&&o>=a)a==0?(e.push(r,...n),n.length=0,r=c):n.push(c),o=a;else{let u=U0t(r,c);u>=0?r=u:o==0&&a==0?(e.push(r),r=c):(n.push(c),o=a)}}return r>=0&&e.push(r,...n),e}function mIe(t){return pIe(t).map(fIe)}function z0t(t){return j0t(pIe(t))}var rIe=45;var gIe=\".\",yIe=65039,bIe=1,BW=t=>Array.from(t);function jP(t,e){return t.P.has(e)||t.Q.has(e)}var Lie=class extends Array{get is_emoji(){return!0}},Bie,vIe,hk,DW,wIe,H0t,oT,Pie,rT,fk,oIe,Die;function Fie(){if(Bie)return;let t=iIe(w0t),e=()=>DP(t),n=()=>new Set(e()),r=(h,m)=>m.forEach(g=>h.add(g));Bie=new Map(aIe(t)),vIe=n(),hk=e(),DW=new Set(e().map(h=>hk[h])),hk=new Set(hk),wIe=n(),H0t=n();let o=sIe(t),i=t(),a=()=>{let h=new Set;return e().forEach(m=>r(h,o[m])),r(h,e()),h};oT=FP(h=>{let m=FP(t).map(g=>g+96);if(m.length){let g=h>=i;m[0]-=32,m=iT(m),g&&(m=`Restricted[${m}]`);let b=a(),E=a(),C=!t();return{N:m,P:b,Q:E,M:C,R:g}}}),Pie=n(),rT=new Map;let c=e().concat(BW(Pie)).sort((h,m)=>h-m);c.forEach((h,m)=>{let g=t(),b=c[m]=g?c[m-g]:{V:[],M:new Map};b.V.push(h),Pie.has(h)||rT.set(h,b)});for(let{V:h,M:m}of new Set(rT.values())){let g=[];for(let E of h){let C=oT.filter(R=>jP(R,E)),T=g.find(({G:R})=>C.some(L=>R.has(L)));T||(T={G:new Set,V:[]},g.push(T)),T.V.push(E),r(T.G,C)}let b=g.flatMap(E=>BW(E.G));for(let{G:E,V:C}of g){let T=new Set(b.filter(R=>!E.has(R)));for(let R of C)m.set(R,T)}}fk=new Set;let u=new Set,d=h=>fk.has(h)?u.add(h):fk.add(h);for(let h of oT){for(let m of h.P)d(m);for(let m of h.Q)d(m)}for(let h of fk)!rT.has(h)&&!u.has(h)&&rT.set(h,bIe);r(fk,mIe(fk)),oIe=T0t(t).map(h=>Lie.from(h)).sort(O0t),Die=new Map;for(let h of oIe){let m=[Die];for(let g of h){let b=m.map(E=>{let C=E.get(g);return C||(C=new Map,E.set(g,C)),C});g===yIe?m.push(...b):m=b}for(let g of m)g.V=h}}function Uie(t){return(xIe(t)?\"\":`${jie(FW([t]))} `)+lIe(t)}function jie(t){return`\"${t}\"\\\\u200E`}function q0t(t){if(t.length>=4&&t[2]==rIe&&t[3]==rIe)throw new Error(`invalid label extension: \"${iT(t.slice(0,4))}\"`)}function W0t(t){for(let n=t.lastIndexOf(95);n>0;)if(t[--n]!==95)throw new Error(\"underscore allowed only at start\")}function V0t(t){let e=t[0],n=eIe.get(e);if(n)throw BP(`leading ${n}`);let r=t.length,o=-1;for(let i=1;i<r;i++){e=t[i];let a=eIe.get(e);if(a){if(o==i)throw BP(`${n} + ${a}`);o=i+1,n=a}}if(o==r)throw BP(`trailing ${n}`)}function FW(t,e=1/0,n=lIe){let r=[];$0t(t[0])&&r.push(\"\\\\u25CC\"),t.length>e&&(e>>=1,t=[...t.slice(0,e),8230,...t.slice(-e)]);let o=0,i=t.length;for(let a=0;a<i;a++){let c=t[a];xIe(c)&&(r.push(iT(t.slice(o,a))),r.push(n(c)),o=a+1)}return r.push(iT(t.slice(o,i))),r.join(\"\")}function $0t(t,e){return Fie(),e?DW.has(t):hk.has(t)}function xIe(t){return Fie(),wIe.has(t)}function EIe(t){return Y0t(K0t(t,z0t,X0t))}function K0t(t,e,n){if(!t)return[];Fie();let r=0;return t.split(gIe).map(o=>{let i=I0t(o),a={input:i,offset:r};r+=i.length+1;try{let c=a.tokens=J0t(i,e,n),u=c.length,d;if(!u)throw new Error(\"empty label\");let h=a.output=c.flat();if(W0t(h),!(a.emoji=u>1||c[0].is_emoji)&&h.every(g=>g<128))q0t(h),d=\"ASCII\";else{let g=c.flatMap(b=>b.is_emoji?[]:b);if(!g.length)d=\"Emoji\";else{if(hk.has(h[0]))throw BP(\"leading combining mark\");for(let C=1;C<u;C++){let T=c[C];if(!T.is_emoji&&hk.has(T[0]))throw BP(`emoji + combining mark: \"${iT(c[C-1])} + ${FW([T[0]])}\"`)}V0t(h);let b=BW(new Set(g)),[E]=Z0t(b);Q0t(E,g),G0t(E,b),d=E.N}}a.type=d}catch(c){a.error=c}return a})}function G0t(t,e){let n,r=[];for(let o of e){let i=rT.get(o);if(i===bIe)return;if(i){let a=i.M.get(o);if(n=n?n.filter(c=>a.has(c)):BW(a),!n.length)return}else r.push(o)}if(n){for(let o of n)if(r.every(i=>jP(o,i)))throw new Error(`whole-script confusable: ${t.N}/${o.N}`)}}function Z0t(t){let e=oT;for(let n of t){let r=e.filter(o=>jP(o,n));if(!r.length)throw oT.some(o=>jP(o,n))?kIe(e[0],n):SIe(n);if(e=r,r.length==1)break}return e}function Y0t(t){return t.map(({input:e,error:n,output:r})=>{if(n){let o=n.message;throw new Error(t.length==1?o:`Invalid label ${jie(FW(e,63))}: ${o}`)}return iT(r)}).join(gIe)}function SIe(t){return new Error(`disallowed character: ${Uie(t)}`)}function kIe(t,e){let n=Uie(e),r=oT.find(o=>o.P.has(e));return r&&(n=`${r.N} ${n}`),new Error(`illegal mixture: ${t.N} + ${n}`)}function BP(t){return new Error(`illegal placement: ${t}`)}function Q0t(t,e){for(let n of e)if(!jP(t,n))throw kIe(t,n);if(t.M){let n=mIe(e);for(let r=1,o=n.length;r<o;r++)if(DW.has(n[r])){let i=r+1;for(let a;i<o&&DW.has(a=n[i]);i++)for(let c=r;c<i;c++)if(n[c]==a)throw new Error(`duplicate non-spacing marks: ${Uie(a)}`);if(i-r>tIe)throw new Error(`excessive non-spacing marks: ${jie(FW(n.slice(r-1,i)))} (${i-r}/${tIe})`);r=i}}}function J0t(t,e,n){let r=[],o=[];for(t=t.slice().reverse();t.length;){let i=egt(t);if(i)o.length&&(r.push(e(o)),o=[]),r.push(n(i));else{let a=t.pop();if(fk.has(a))o.push(a);else{let c=Bie.get(a);if(c)o.push(...c);else if(!vIe.has(a))throw SIe(a)}}}return o.length&&r.push(e(o)),r}function X0t(t){return t.filter(e=>e!=yIe)}function egt(t,e){let n=Die,r,o=t.length;for(;o&&(n=n.get(t[--o]),!!n);){let{V:i}=n;i&&(r=i,e&&e.push(...t.slice(o).reverse()),t.length=o)}return r}function _Ie(t){return EIe(t)}function aT(t){return _Ie(t)}p();p();bo();var CIe=(t,e)=>{let n=Uint8Array.from(t.split(\"\").map(c=>c.charCodeAt(0))),r=cR(n);return Number.parseInt(r,16)%e};var zie=t=>{let e=CIe(t,_ie.length),n=_ie[e];return`data:image/svg+xml;base64,${btoa(n)}`};p();var pk=t=>!!(t.endsWith(\".base.eth\")||t.endsWith(\".basetest.eth\"));var Hie=async({ensName:t,chain:e=li})=>{let n=e6({chainId:e.id}),o=t6({chainId:e.id})||n,i=pk(t);if(!o)return Promise.reject(\"ChainId not supported, avatar resolution is only supported on Ethereum and Base.\");let a=Bf(e),c=null;if(n)try{if(c=await a.getEnsAvatar({name:aT(t),universalResolverAddress:YA[e.id]}),c)return c}catch{}a=Bf(li);let u=await a.getEnsAvatar({name:aT(t)});return u||(i?zie(t):null)};p();var Mu={gcTime:18e5,staleTime:3e5,refetchOnWindowFocus:!1};Si();var qie=({ensName:t,chain:e=li},n)=>{let r=[\"useAvatar\",t,e.id];return pd({queryKey:r,queryFn:()=>Hie({ensName:t,chain:e}),enabled:!!t,...Mu,gcTime:n?.cacheTime,...n})};p();p();Si();p();var Wie=[{inputs:[{internalType:\"contract ENS\",name:\"ens_\",type:\"address\"},{internalType:\"address\",name:\"registrarController_\",type:\"address\"},{internalType:\"address\",name:\"reverseRegistrar_\",type:\"address\"},{internalType:\"address\",name:\"owner_\",type:\"address\"}],stateMutability:\"nonpayable\",type:\"constructor\"},{inputs:[],name:\"AlreadyInitialized\",type:\"error\"},{inputs:[],name:\"CantSetSelfAsDelegate\",type:\"error\"},{inputs:[],name:\"CantSetSelfAsOperator\",type:\"error\"},{inputs:[],name:\"NewOwnerIsZeroAddress\",type:\"error\"},{inputs:[],name:\"NoHandoverRequest\",type:\"error\"},{inputs:[],name:\"Unauthorized\",type:\"error\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!0,internalType:\"uint256\",name:\"contentType\",type:\"uint256\"}],name:\"ABIChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"address\",name:\"a\",type:\"address\"}],name:\"AddrChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"uint256\",name:\"coinType\",type:\"uint256\"},{indexed:!1,internalType:\"bytes\",name:\"newAddress\",type:\"bytes\"}],name:\"AddressChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"owner\",type:\"address\"},{indexed:!0,internalType:\"address\",name:\"operator\",type:\"address\"},{indexed:!1,internalType:\"bool\",name:\"approved\",type:\"bool\"}],name:\"ApprovalForAll\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!1,internalType:\"address\",name:\"owner\",type:\"address\"},{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!0,internalType:\"address\",name:\"delegate\",type:\"address\"},{indexed:!0,internalType:\"bool\",name:\"approved\",type:\"bool\"}],name:\"Approved\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes\",name:\"hash\",type:\"bytes\"}],name:\"ContenthashChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes\",name:\"name\",type:\"bytes\"},{indexed:!1,internalType:\"uint16\",name:\"resource\",type:\"uint16\"},{indexed:!1,internalType:\"bytes\",name:\"record\",type:\"bytes\"}],name:\"DNSRecordChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes\",name:\"name\",type:\"bytes\"},{indexed:!1,internalType:\"uint16\",name:\"resource\",type:\"uint16\"}],name:\"DNSRecordDeleted\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes\",name:\"lastzonehash\",type:\"bytes\"},{indexed:!1,internalType:\"bytes\",name:\"zonehash\",type:\"bytes\"}],name:\"DNSZonehashChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!0,internalType:\"bytes4\",name:\"interfaceID\",type:\"bytes4\"},{indexed:!1,internalType:\"address\",name:\"implementer\",type:\"address\"}],name:\"InterfaceChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"string\",name:\"name\",type:\"string\"}],name:\"NameChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"pendingOwner\",type:\"address\"}],name:\"OwnershipHandoverCanceled\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"pendingOwner\",type:\"address\"}],name:\"OwnershipHandoverRequested\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"oldOwner\",type:\"address\"},{indexed:!0,internalType:\"address\",name:\"newOwner\",type:\"address\"}],name:\"OwnershipTransferred\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes32\",name:\"x\",type:\"bytes32\"},{indexed:!1,internalType:\"bytes32\",name:\"y\",type:\"bytes32\"}],name:\"PubkeyChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newRegistrarController\",type:\"address\"}],name:\"RegistrarControllerUpdated\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newReverseRegistrar\",type:\"address\"}],name:\"ReverseRegistrarUpdated\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!0,internalType:\"string\",name:\"indexedKey\",type:\"string\"},{indexed:!1,internalType:\"string\",name:\"key\",type:\"string\"},{indexed:!1,internalType:\"string\",name:\"value\",type:\"string\"}],name:\"TextChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{indexed:!1,internalType:\"uint64\",name:\"newVersion\",type:\"uint64\"}],name:\"VersionChanged\",type:\"event\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"uint256\",name:\"contentTypes\",type:\"uint256\"}],name:\"ABI\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"},{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"addr\",outputs:[{internalType:\"address payable\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"uint256\",name:\"coinType\",type:\"uint256\"}],name:\"addr\",outputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"address\",name:\"delegate\",type:\"address\"},{internalType:\"bool\",name:\"approved\",type:\"bool\"}],name:\"approve\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"cancelOwnershipHandover\",outputs:[],stateMutability:\"payable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"clearRecords\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"pendingOwner\",type:\"address\"}],name:\"completeOwnershipHandover\",outputs:[],stateMutability:\"payable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"contenthash\",outputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"name\",type:\"bytes32\"},{internalType:\"uint16\",name:\"resource\",type:\"uint16\"}],name:\"dnsRecord\",outputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"ens\",outputs:[{internalType:\"contract ENS\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"name\",type:\"bytes32\"}],name:\"hasDNSRecords\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes4\",name:\"interfaceID\",type:\"bytes4\"}],name:\"interfaceImplementer\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"owner\",type:\"address\"},{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"address\",name:\"delegate\",type:\"address\"}],name:\"isApprovedFor\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"account\",type:\"address\"},{internalType:\"address\",name:\"operator\",type:\"address\"}],name:\"isApprovedForAll\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes[]\",name:\"data\",type:\"bytes[]\"}],name:\"multicall\",outputs:[{internalType:\"bytes[]\",name:\"results\",type:\"bytes[]\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"nodehash\",type:\"bytes32\"},{internalType:\"bytes[]\",name:\"data\",type:\"bytes[]\"}],name:\"multicallWithNodeCheck\",outputs:[{internalType:\"bytes[]\",name:\"results\",type:\"bytes[]\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"name\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"owner\",outputs:[{internalType:\"address\",name:\"result\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"pendingOwner\",type:\"address\"}],name:\"ownershipHandoverExpiresAt\",outputs:[{internalType:\"uint256\",name:\"result\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"pubkey\",outputs:[{internalType:\"bytes32\",name:\"x\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"y\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],name:\"recordVersions\",outputs:[{internalType:\"uint64\",name:\"\",type:\"uint64\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"registrarController\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"renounceOwnership\",outputs:[],stateMutability:\"payable\",type:\"function\"},{inputs:[],name:\"requestOwnershipHandover\",outputs:[],stateMutability:\"payable\",type:\"function\"},{inputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"},{internalType:\"bytes\",name:\"data\",type:\"bytes\"}],name:\"resolve\",outputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"reverseRegistrar\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"uint256\",name:\"contentType\",type:\"uint256\"},{internalType:\"bytes\",name:\"data\",type:\"bytes\"}],name:\"setABI\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"uint256\",name:\"coinType\",type:\"uint256\"},{internalType:\"bytes\",name:\"a\",type:\"bytes\"}],name:\"setAddr\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"address\",name:\"a\",type:\"address\"}],name:\"setAddr\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"operator\",type:\"address\"},{internalType:\"bool\",name:\"approved\",type:\"bool\"}],name:\"setApprovalForAll\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes\",name:\"hash\",type:\"bytes\"}],name:\"setContenthash\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes\",name:\"data\",type:\"bytes\"}],name:\"setDNSRecords\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes4\",name:\"interfaceID\",type:\"bytes4\"},{internalType:\"address\",name:\"implementer\",type:\"address\"}],name:\"setInterface\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"string\",name:\"newName\",type:\"string\"}],name:\"setName\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"x\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"y\",type:\"bytes32\"}],name:\"setPubkey\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"registrarController_\",type:\"address\"}],name:\"setRegistrarController\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"reverseRegistrar_\",type:\"address\"}],name:\"setReverseRegistrar\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"string\",name:\"key\",type:\"string\"},{internalType:\"string\",name:\"value\",type:\"string\"}],name:\"setText\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"bytes\",name:\"hash\",type:\"bytes\"}],name:\"setZonehash\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"bytes4\",name:\"interfaceID\",type:\"bytes4\"}],name:\"supportsInterface\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"},{internalType:\"string\",name:\"key\",type:\"string\"}],name:\"text\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"newOwner\",type:\"address\"}],name:\"transferOwnership\",outputs:[],stateMutability:\"payable\",type:\"function\"},{inputs:[{internalType:\"bytes32\",name:\"node\",type:\"bytes32\"}],name:\"zonehash\",outputs:[{internalType:\"bytes\",name:\"\",type:\"bytes\"}],stateMutability:\"view\",type:\"function\"}];p();bo();p();Si();var AIe=t=>t===li.id?\"addr\":((2147483648|t)>>>0).toString(16).toLocaleUpperCase();var Vie=(t,e)=>{let n=t.toLocaleLowerCase(),r=Po(n.substring(2)),o=AIe(e),i=vv(`${o.toLocaleUpperCase()}.reverse`);return Po(eQ([\"bytes32\",\"bytes32\"],[i,r]))};p();Si();var ngt=Bf(li),mk=async({name:t})=>await ngt.getEnsAddress({name:t})??null;var zP=async({address:t,chain:e=li})=>{let n=e6({chainId:e.id});if(!(t6({chainId:e.id})||n))return Promise.reject(\"ChainId not supported, name resolution is only supported on Ethereum and Base.\");let i=Bf(e);if(n){let c=Vie(t,Yn.id);try{let u=await i.readContract({abi:Wie,address:YA[e.id],functionName:\"name\",args:[c]});if(u)try{let d=await mk({name:u});if(d&&d.toLowerCase()===t.toLowerCase())return u}catch(d){console.error(\"Error during basename forward resolution verification:\",d)}}catch{}}let a=Bf(li);try{let c=await a.getEnsName({address:t});if(c)try{let u=await mk({name:c});if(u&&u.toLowerCase()===t.toLowerCase())return c}catch(u){console.error(\"Error during ENS forward resolution verification:\",u)}}catch{}return null};Si();var R3=({address:t,chain:e=li},n)=>{let r=[\"useName\",t,e.id];return pd({queryKey:r,queryFn:()=>zP({address:t,chain:e}),enabled:!!t,...Mu,gcTime:n?.cacheTime,...n})};p();var TIe=he(et(),1);function Nd(t){return e=>{let n=e?.type;return n&&typeof n==\"object\"&&\"_payload\"in n?n._payload.value[2]===t.name:(0,TIe.isValidElement)(e)&&e.type===t}}var rV=he(et(),1);p();var $ie=he(De(),1);var UW=(0,$ie.jsx)(\"svg\",{\"data-testid\":\"ock-defaultAvatarSVG\",role:\"img\",\"aria-label\":\"ock-defaultAvatarSVG\",width:\"100%\",height:\"100%\",viewBox:\"0 0 40 40\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"h-full w-full\",children:(0,$ie.jsx)(\"path\",{d:\"M20 40C8.9543 40 0 31.0457 0 20C0 8.9543 8.9543 0 20 0C31.0457 0 40 8.9543 40 20C40 31.0457 31.0457 40 20 40ZM25.6641 13.9974C25.6641 10.8692 23.1282 8.33333 20.0001 8.33333C16.8719 8.33333 14.336 10.8692 14.336 13.9974C14.336 17.1256 16.8719 19.6615 20.0001 19.6615C23.1282 19.6615 25.6641 17.1256 25.6641 13.9974ZM11.3453 23.362L9.53476 28.1875C12.2141 30.8475 15.9019 32.493 19.974 32.5H20.026C24.0981 32.493 27.7859 30.8475 30.4653 28.1874L28.6547 23.362C28.0052 21.625 26.3589 20.4771 24.5162 20.4318C24.4557 20.4771 22.462 21.9271 20 21.9271C17.538 21.9271 15.5443 20.4771 15.4839 20.4318C13.6412 20.462 11.9948 21.625 11.3453 23.362Z\",className:Kt.foreground})});p();var jW=he(De(),1),RIe=(0,jW.jsx)(\"svg\",{\"data-testid\":\"ock-defaultLoadingSVG\",role:\"img\",\"aria-label\":\"ock-defaultLoadingSVG\",width:\"100%\",height:\"100%\",viewBox:\"0 0 100 100\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,jW.jsx)(\"circle\",{cx:\"50\",cy:\"50\",r:\"45\",stroke:\"#333\",fill:\"none\",strokeWidth:\"10\",strokeLinecap:\"round\",children:(0,jW.jsx)(\"animateTransform\",{attributeName:\"transform\",type:\"rotate\",from:\"0 50 50\",to:\"360 50 50\",dur:\"1s\",repeatCount:\"indefinite\"})})});p();var yT=he(De(),1);p();p();p();p();p();var zW=JSON;p();var IIe=t=>t.toUpperCase(),OIe=t=>{let e={};return t.forEach((n,r)=>{e[r]=n}),e};p();var PIe=(t,e,n)=>t.document?t:{document:t,variables:e,requestHeaders:n,signal:void 0},MIe=(t,e,n)=>t.query?t:{query:t,variables:e,requestHeaders:n,signal:void 0},NIe=(t,e)=>t.documents?t:{documents:t,requestHeaders:e,signal:void 0};p();p();p();function cT(t,e){if(!!!t)throw new Error(e)}p();p();p();p();function LIe(t){return typeof t==\"object\"&&t!==null}p();p();function BIe(t,e){if(!!!t)throw new Error(e??\"Unexpected invariant triggered.\")}var rgt=/\\\\r\\\\n|[\\\\n\\\\r]/g;function lT(t,e){let n=0,r=1;for(let o of t.body.matchAll(rgt)){if(typeof o.index==\"number\"||BIe(!1),o.index>=e)break;n=o.index+o[0].length,r+=1}return{line:r,column:e+1-n}}p();function Kie(t){return HW(t.source,lT(t.source,t.start))}function HW(t,e){let n=t.locationOffset.column-1,r=\"\".padStart(n)+t.body,o=e.line-1,i=t.locationOffset.line-1,a=e.line+i,c=e.line===1?n:0,u=e.column+c,d=`${t.name}:${a}:${u}\\n`,h=r.split(/\\\\r\\\\n|[\\\\n\\\\r]/g),m=h[o];if(m.length>120){let g=Math.floor(u/80),b=u%80,E=[];for(let C=0;C<m.length;C+=80)E.push(m.slice(C,C+80));return d+DIe([[`${a} |`,E[0]],...E.slice(1,g+1).map(C=>[\"|\",C]),[\"|\",\"^\".padStart(b)],[\"|\",E[g+1]]])}return d+DIe([[`${a-1} |`,h[o-1]],[`${a} |`,m],[\"|\",\"^\".padStart(u)],[`${a+1} |`,h[o+1]]])}function DIe(t){let e=t.filter(([r,o])=>o!==void 0),n=Math.max(...e.map(([r])=>r.length));return e.map(([r,o])=>r.padStart(n)+(o?\" \"+o:\"\")).join(`\\n`)}function ogt(t){let e=t[0];return e==null||\"kind\"in e||\"length\"in e?{nodes:e,source:t[1],positions:t[2],path:t[3],originalError:t[4],extensions:t[5]}:e}var qW=class t extends Error{constructor(e,...n){var r,o,i;let{nodes:a,source:c,positions:u,path:d,originalError:h,extensions:m}=ogt(n);super(e),this.name=\"GraphQLError\",this.path=d??void 0,this.originalError=h??void 0,this.nodes=FIe(Array.isArray(a)?a:a?[a]:void 0);let g=FIe((r=this.nodes)===null||r===void 0?void 0:r.map(E=>E.loc).filter(E=>E!=null));this.source=c??(g==null||(o=g[0])===null||o===void 0?void 0:o.source),this.positions=u??g?.map(E=>E.start),this.locations=u&&c?u.map(E=>lT(c,E)):g?.map(E=>lT(E.source,E.start));let b=LIe(h?.extensions)?h?.extensions:void 0;this.extensions=(i=m??b)!==null&&i!==void 0?i:Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),h!=null&&h.stack?Object.defineProperty(this,\"stack\",{value:h.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,\"stack\",{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return\"GraphQLError\"}toString(){let e=this.message;if(this.nodes)for(let n of this.nodes)n.loc&&(e+=`\\n\\n`+Kie(n.loc));else if(this.source&&this.locations)for(let n of this.locations)e+=`\\n\\n`+HW(this.source,n);return e}toJSON(){let e={message:this.message};return this.locations!=null&&(e.locations=this.locations),this.path!=null&&(e.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(e.extensions=this.extensions),e}};function FIe(t){return t===void 0||t.length===0?void 0:t}function $a(t,e,n){return new qW(`Syntax Error: ${n}`,{source:t,positions:[e]})}p();var HP=class{constructor(e,n,r){this.start=e.start,this.end=n.end,this.startToken=e,this.endToken=n,this.source=r}get[Symbol.toStringTag](){return\"Location\"}toJSON(){return{start:this.start,end:this.end}}},uT=class{constructor(e,n,r,o,i,a){this.kind=e,this.start=n,this.end=r,this.line=o,this.column=i,this.value=a,this.prev=null,this.next=null}get[Symbol.toStringTag](){return\"Token\"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},Gie={Name:[],Document:[\"definitions\"],OperationDefinition:[\"name\",\"variableDefinitions\",\"directives\",\"selectionSet\"],VariableDefinition:[\"variable\",\"type\",\"defaultValue\",\"directives\"],Variable:[\"name\"],SelectionSet:[\"selections\"],Field:[\"alias\",\"name\",\"arguments\",\"directives\",\"selectionSet\"],Argument:[\"name\",\"value\"],FragmentSpread:[\"name\",\"directives\"],InlineFragment:[\"typeCondition\",\"directives\",\"selectionSet\"],FragmentDefinition:[\"name\",\"variableDefinitions\",\"typeCondition\",\"directives\",\"selectionSet\"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[\"values\"],ObjectValue:[\"fields\"],ObjectField:[\"name\",\"value\"],Directive:[\"name\",\"arguments\"],NamedType:[\"name\"],ListType:[\"type\"],NonNullType:[\"type\"],SchemaDefinition:[\"description\",\"directives\",\"operationTypes\"],OperationTypeDefinition:[\"type\"],ScalarTypeDefinition:[\"description\",\"name\",\"directives\"],ObjectTypeDefinition:[\"description\",\"name\",\"interfaces\",\"directives\",\"fields\"],FieldDefinition:[\"description\",\"name\",\"arguments\",\"type\",\"directives\"],InputValueDefinition:[\"description\",\"name\",\"type\",\"defaultValue\",\"directives\"],InterfaceTypeDefinition:[\"description\",\"name\",\"interfaces\",\"directives\",\"fields\"],UnionTypeDefinition:[\"description\",\"name\",\"directives\",\"types\"],EnumTypeDefinition:[\"description\",\"name\",\"directives\",\"values\"],EnumValueDefinition:[\"description\",\"name\",\"directives\"],InputObjectTypeDefinition:[\"description\",\"name\",\"directives\",\"fields\"],DirectiveDefinition:[\"description\",\"name\",\"arguments\",\"locations\"],SchemaExtension:[\"directives\",\"operationTypes\"],ScalarTypeExtension:[\"name\",\"directives\"],ObjectTypeExtension:[\"name\",\"interfaces\",\"directives\",\"fields\"],InterfaceTypeExtension:[\"name\",\"interfaces\",\"directives\",\"fields\"],UnionTypeExtension:[\"name\",\"directives\",\"types\"],EnumTypeExtension:[\"name\",\"directives\",\"values\"],InputObjectTypeExtension:[\"name\",\"directives\",\"fields\"]},igt=new Set(Object.keys(Gie));function Zie(t){let e=t?.kind;return typeof e==\"string\"&&igt.has(e)}var I3;(function(t){t.QUERY=\"query\",t.MUTATION=\"mutation\",t.SUBSCRIPTION=\"subscription\"})(I3||(I3={}));p();var qP;(function(t){t.QUERY=\"QUERY\",t.MUTATION=\"MUTATION\",t.SUBSCRIPTION=\"SUBSCRIPTION\",t.FIELD=\"FIELD\",t.FRAGMENT_DEFINITION=\"FRAGMENT_DEFINITION\",t.FRAGMENT_SPREAD=\"FRAGMENT_SPREAD\",t.INLINE_FRAGMENT=\"INLINE_FRAGMENT\",t.VARIABLE_DEFINITION=\"VARIABLE_DEFINITION\",t.SCHEMA=\"SCHEMA\",t.SCALAR=\"SCALAR\",t.OBJECT=\"OBJECT\",t.FIELD_DEFINITION=\"FIELD_DEFINITION\",t.ARGUMENT_DEFINITION=\"ARGUMENT_DEFINITION\",t.INTERFACE=\"INTERFACE\",t.UNION=\"UNION\",t.ENUM=\"ENUM\",t.ENUM_VALUE=\"ENUM_VALUE\",t.INPUT_OBJECT=\"INPUT_OBJECT\",t.INPUT_FIELD_DEFINITION=\"INPUT_FIELD_DEFINITION\"})(qP||(qP={}));p();var xn;(function(t){t.NAME=\"Name\",t.DOCUMENT=\"Document\",t.OPERATION_DEFINITION=\"OperationDefinition\",t.VARIABLE_DEFINITION=\"VariableDefinition\",t.SELECTION_SET=\"SelectionSet\",t.FIELD=\"Field\",t.ARGUMENT=\"Argument\",t.FRAGMENT_SPREAD=\"FragmentSpread\",t.INLINE_FRAGMENT=\"InlineFragment\",t.FRAGMENT_DEFINITION=\"FragmentDefinition\",t.VARIABLE=\"Variable\",t.INT=\"IntValue\",t.FLOAT=\"FloatValue\",t.STRING=\"StringValue\",t.BOOLEAN=\"BooleanValue\",t.NULL=\"NullValue\",t.ENUM=\"EnumValue\",t.LIST=\"ListValue\",t.OBJECT=\"ObjectValue\",t.OBJECT_FIELD=\"ObjectField\",t.DIRECTIVE=\"Directive\",t.NAMED_TYPE=\"NamedType\",t.LIST_TYPE=\"ListType\",t.NON_NULL_TYPE=\"NonNullType\",t.SCHEMA_DEFINITION=\"SchemaDefinition\",t.OPERATION_TYPE_DEFINITION=\"OperationTypeDefinition\",t.SCALAR_TYPE_DEFINITION=\"ScalarTypeDefinition\",t.OBJECT_TYPE_DEFINITION=\"ObjectTypeDefinition\",t.FIELD_DEFINITION=\"FieldDefinition\",t.INPUT_VALUE_DEFINITION=\"InputValueDefinition\",t.INTERFACE_TYPE_DEFINITION=\"InterfaceTypeDefinition\",t.UNION_TYPE_DEFINITION=\"UnionTypeDefinition\",t.ENUM_TYPE_DEFINITION=\"EnumTypeDefinition\",t.ENUM_VALUE_DEFINITION=\"EnumValueDefinition\",t.INPUT_OBJECT_TYPE_DEFINITION=\"InputObjectTypeDefinition\",t.DIRECTIVE_DEFINITION=\"DirectiveDefinition\",t.SCHEMA_EXTENSION=\"SchemaExtension\",t.SCALAR_TYPE_EXTENSION=\"ScalarTypeExtension\",t.OBJECT_TYPE_EXTENSION=\"ObjectTypeExtension\",t.INTERFACE_TYPE_EXTENSION=\"InterfaceTypeExtension\",t.UNION_TYPE_EXTENSION=\"UnionTypeExtension\",t.ENUM_TYPE_EXTENSION=\"EnumTypeExtension\",t.INPUT_OBJECT_TYPE_EXTENSION=\"InputObjectTypeExtension\"})(xn||(xn={}));p();p();p();function WW(t){return t===9||t===32}function dT(t){return t>=48&&t<=57}function UIe(t){return t>=97&&t<=122||t>=65&&t<=90}function Yie(t){return UIe(t)||t===95}function jIe(t){return UIe(t)||dT(t)||t===95}function zIe(t){var e;let n=Number.MAX_SAFE_INTEGER,r=null,o=-1;for(let a=0;a<t.length;++a){var i;let c=t[a],u=sgt(c);u!==c.length&&(r=(i=r)!==null&&i!==void 0?i:a,o=a,a!==0&&u<n&&(n=u))}return t.map((a,c)=>c===0?a:a.slice(n)).slice((e=r)!==null&&e!==void 0?e:0,o+1)}function sgt(t){let e=0;for(;e<t.length&&WW(t.charCodeAt(e));)++e;return e}function HIe(t,e){let n=t.replace(/\"\"\"/g,\\'\\\\\\\\\"\"\"\\'),r=n.split(/\\\\r\\\\n|[\\\\n\\\\r]/g),o=r.length===1,i=r.length>1&&r.slice(1).every(b=>b.length===0||WW(b.charCodeAt(0))),a=n.endsWith(\\'\\\\\\\\\"\"\"\\'),c=t.endsWith(\\'\"\\')&&!a,u=t.endsWith(\"\\\\\\\\\"),d=c||u,h=!(e!=null&&e.minimize)&&(!o||t.length>70||d||i||a),m=\"\",g=o&&WW(t.charCodeAt(0));return(h&&!g||i)&&(m+=`\\n`),m+=n,(h||d)&&(m+=`\\n`),\\'\"\"\"\\'+m+\\'\"\"\"\\'}p();var ft;(function(t){t.SOF=\"<SOF>\",t.EOF=\"<EOF>\",t.BANG=\"!\",t.DOLLAR=\"$\",t.AMP=\"&\",t.PAREN_L=\"(\",t.PAREN_R=\")\",t.SPREAD=\"...\",t.COLON=\":\",t.EQUALS=\"=\",t.AT=\"@\",t.BRACKET_L=\"[\",t.BRACKET_R=\"]\",t.BRACE_L=\"{\",t.PIPE=\"|\",t.BRACE_R=\"}\",t.NAME=\"Name\",t.INT=\"Int\",t.FLOAT=\"Float\",t.STRING=\"String\",t.BLOCK_STRING=\"BlockString\",t.COMMENT=\"Comment\"})(ft||(ft={}));var VP=class{constructor(e){let n=new uT(ft.SOF,0,0,0,0);this.source=e,this.lastToken=n,this.token=n,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return\"Lexer\"}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let e=this.token;if(e.kind!==ft.EOF)do if(e.next)e=e.next;else{let n=agt(this,e.end);e.next=n,n.prev=e,e=n}while(e.kind===ft.COMMENT);return e}};function WIe(t){return t===ft.BANG||t===ft.DOLLAR||t===ft.AMP||t===ft.PAREN_L||t===ft.PAREN_R||t===ft.SPREAD||t===ft.COLON||t===ft.EQUALS||t===ft.AT||t===ft.BRACKET_L||t===ft.BRACKET_R||t===ft.BRACE_L||t===ft.PIPE||t===ft.BRACE_R}function fT(t){return t>=0&&t<=55295||t>=57344&&t<=1114111}function VW(t,e){return VIe(t.charCodeAt(e))&&$Ie(t.charCodeAt(e+1))}function VIe(t){return t>=55296&&t<=56319}function $Ie(t){return t>=56320&&t<=57343}function gk(t,e){let n=t.source.body.codePointAt(e);if(n===void 0)return ft.EOF;if(n>=32&&n<=126){let r=String.fromCodePoint(n);return r===\\'\"\\'?`\\'\"\\'`:`\"${r}\"`}return\"U+\"+n.toString(16).toUpperCase().padStart(4,\"0\")}function Ka(t,e,n,r,o){let i=t.line,a=1+n-t.lineStart;return new uT(e,n,r,i,a,o)}function agt(t,e){let n=t.source.body,r=n.length,o=e;for(;o<r;){let i=n.charCodeAt(o);switch(i){case 65279:case 9:case 32:case 44:++o;continue;case 10:++o,++t.line,t.lineStart=o;continue;case 13:n.charCodeAt(o+1)===10?o+=2:++o,++t.line,t.lineStart=o;continue;case 35:return cgt(t,o);case 33:return Ka(t,ft.BANG,o,o+1);case 36:return Ka(t,ft.DOLLAR,o,o+1);case 38:return Ka(t,ft.AMP,o,o+1);case 40:return Ka(t,ft.PAREN_L,o,o+1);case 41:return Ka(t,ft.PAREN_R,o,o+1);case 46:if(n.charCodeAt(o+1)===46&&n.charCodeAt(o+2)===46)return Ka(t,ft.SPREAD,o,o+3);break;case 58:return Ka(t,ft.COLON,o,o+1);case 61:return Ka(t,ft.EQUALS,o,o+1);case 64:return Ka(t,ft.AT,o,o+1);case 91:return Ka(t,ft.BRACKET_L,o,o+1);case 93:return Ka(t,ft.BRACKET_R,o,o+1);case 123:return Ka(t,ft.BRACE_L,o,o+1);case 124:return Ka(t,ft.PIPE,o,o+1);case 125:return Ka(t,ft.BRACE_R,o,o+1);case 34:return n.charCodeAt(o+1)===34&&n.charCodeAt(o+2)===34?pgt(t,o):ugt(t,o)}if(dT(i)||i===45)return lgt(t,o,i);if(Yie(i))return mgt(t,o);throw $a(t.source,o,i===39?`Unexpected single quote character (\\'), did you mean to use a double quote (\")?`:fT(i)||VW(n,o)?`Unexpected character: ${gk(t,o)}.`:`Invalid character: ${gk(t,o)}.`)}return Ka(t,ft.EOF,r,r)}function cgt(t,e){let n=t.source.body,r=n.length,o=e+1;for(;o<r;){let i=n.charCodeAt(o);if(i===10||i===13)break;if(fT(i))++o;else if(VW(n,o))o+=2;else break}return Ka(t,ft.COMMENT,e,o,n.slice(e+1,o))}function lgt(t,e,n){let r=t.source.body,o=e,i=n,a=!1;if(i===45&&(i=r.charCodeAt(++o)),i===48){if(i=r.charCodeAt(++o),dT(i))throw $a(t.source,o,`Invalid number, unexpected digit after 0: ${gk(t,o)}.`)}else o=Qie(t,o,i),i=r.charCodeAt(o);if(i===46&&(a=!0,i=r.charCodeAt(++o),o=Qie(t,o,i),i=r.charCodeAt(o)),(i===69||i===101)&&(a=!0,i=r.charCodeAt(++o),(i===43||i===45)&&(i=r.charCodeAt(++o)),o=Qie(t,o,i),i=r.charCodeAt(o)),i===46||Yie(i))throw $a(t.source,o,`Invalid number, expected digit but got: ${gk(t,o)}.`);return Ka(t,a?ft.FLOAT:ft.INT,e,o,r.slice(e,o))}function Qie(t,e,n){if(!dT(n))throw $a(t.source,e,`Invalid number, expected digit but got: ${gk(t,e)}.`);let r=t.source.body,o=e+1;for(;dT(r.charCodeAt(o));)++o;return o}function ugt(t,e){let n=t.source.body,r=n.length,o=e+1,i=o,a=\"\";for(;o<r;){let c=n.charCodeAt(o);if(c===34)return a+=n.slice(i,o),Ka(t,ft.STRING,e,o+1,a);if(c===92){a+=n.slice(i,o);let u=n.charCodeAt(o+1)===117?n.charCodeAt(o+2)===123?dgt(t,o):fgt(t,o):hgt(t,o);a+=u.value,o+=u.size,i=o;continue}if(c===10||c===13)break;if(fT(c))++o;else if(VW(n,o))o+=2;else throw $a(t.source,o,`Invalid character within String: ${gk(t,o)}.`)}throw $a(t.source,o,\"Unterminated string.\")}function dgt(t,e){let n=t.source.body,r=0,o=3;for(;o<12;){let i=n.charCodeAt(e+o++);if(i===125){if(o<5||!fT(r))break;return{value:String.fromCodePoint(r),size:o}}if(r=r<<4|WP(i),r<0)break}throw $a(t.source,e,`Invalid Unicode escape sequence: \"${n.slice(e,e+o)}\".`)}function fgt(t,e){let n=t.source.body,r=qIe(n,e+2);if(fT(r))return{value:String.fromCodePoint(r),size:6};if(VIe(r)&&n.charCodeAt(e+6)===92&&n.charCodeAt(e+7)===117){let o=qIe(n,e+8);if($Ie(o))return{value:String.fromCodePoint(r,o),size:12}}throw $a(t.source,e,`Invalid Unicode escape sequence: \"${n.slice(e,e+6)}\".`)}function qIe(t,e){return WP(t.charCodeAt(e))<<12|WP(t.charCodeAt(e+1))<<8|WP(t.charCodeAt(e+2))<<4|WP(t.charCodeAt(e+3))}function WP(t){return t>=48&&t<=57?t-48:t>=65&&t<=70?t-55:t>=97&&t<=102?t-87:-1}function hgt(t,e){let n=t.source.body;switch(n.charCodeAt(e+1)){case 34:return{value:\\'\"\\',size:2};case 92:return{value:\"\\\\\\\\\",size:2};case 47:return{value:\"/\",size:2};case 98:return{value:\"\\\\b\",size:2};case 102:return{value:\"\\\\f\",size:2};case 110:return{value:`\\n`,size:2};case 114:return{value:\"\\\\r\",size:2};case 116:return{value:\"\\t\",size:2}}throw $a(t.source,e,`Invalid character escape sequence: \"${n.slice(e,e+2)}\".`)}function pgt(t,e){let n=t.source.body,r=n.length,o=t.lineStart,i=e+3,a=i,c=\"\",u=[];for(;i<r;){let d=n.charCodeAt(i);if(d===34&&n.charCodeAt(i+1)===34&&n.charCodeAt(i+2)===34){c+=n.slice(a,i),u.push(c);let h=Ka(t,ft.BLOCK_STRING,e,i+3,zIe(u).join(`\\n`));return t.line+=u.length-1,t.lineStart=o,h}if(d===92&&n.charCodeAt(i+1)===34&&n.charCodeAt(i+2)===34&&n.charCodeAt(i+3)===34){c+=n.slice(a,i),a=i+1,i+=4;continue}if(d===10||d===13){c+=n.slice(a,i),u.push(c),d===13&&n.charCodeAt(i+1)===10?i+=2:++i,c=\"\",a=i,o=i;continue}if(fT(d))++i;else if(VW(n,i))i+=2;else throw $a(t.source,i,`Invalid character within String: ${gk(t,i)}.`)}throw $a(t.source,i,\"Unterminated string.\")}function mgt(t,e){let n=t.source.body,r=n.length,o=e+1;for(;o<r;){let i=n.charCodeAt(o);if(jIe(i))++o;else break}return Ka(t,ft.NAME,e,o,n.slice(e,o))}p();p();function hT(t){return $W(t,[])}function $W(t,e){switch(typeof t){case\"string\":return JSON.stringify(t);case\"function\":return t.name?`[function ${t.name}]`:\"[function]\";case\"object\":return ggt(t,e);default:return String(t)}}function ggt(t,e){if(t===null)return\"null\";if(e.includes(t))return\"[Circular]\";let n=[...e,t];if(ygt(t)){let r=t.toJSON();if(r!==t)return typeof r==\"string\"?r:$W(r,n)}else if(Array.isArray(t))return vgt(t,n);return bgt(t,n)}function ygt(t){return typeof t.toJSON==\"function\"}function bgt(t,e){let n=Object.entries(t);return n.length===0?\"{}\":e.length>2?\"[\"+wgt(t)+\"]\":\"{ \"+n.map(([o,i])=>o+\": \"+$W(i,e)).join(\", \")+\" }\"}function vgt(t,e){if(t.length===0)return\"[]\";if(e.length>2)return\"[Array]\";let n=Math.min(10,t.length),r=t.length-n,o=[];for(let i=0;i<n;++i)o.push($W(t[i],e));return r===1?o.push(\"... 1 more item\"):r>1&&o.push(`... ${r} more items`),\"[\"+o.join(\", \")+\"]\"}function wgt(t){let e=Object.prototype.toString.call(t).replace(/^\\\\[object /,\"\").replace(/]$/,\"\");if(e===\"Object\"&&typeof t.constructor==\"function\"){let n=t.constructor.name;if(typeof n==\"string\"&&n!==\"\")return n}return e}p();var xgt=globalThis.process&&!1,KIe=xgt?function(e,n){return e instanceof n}:function(e,n){if(e instanceof n)return!0;if(typeof e==\"object\"&&e!==null){var r;let o=n.prototype[Symbol.toStringTag],i=Symbol.toStringTag in e?e[Symbol.toStringTag]:(r=e.constructor)===null||r===void 0?void 0:r.name;if(o===i){let a=hT(e);throw new Error(`Cannot use ${o} \"${a}\" from another module or realm.\\n\\nEnsure that there is only one instance of \"graphql\" in the node_modules\\ndirectory. If different versions of \"graphql\" are the dependencies of other\\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \"graphql\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.`)}}return!1};var pT=class{constructor(e,n=\"GraphQL request\",r={line:1,column:1}){typeof e==\"string\"||cT(!1,`Body must be a string. Received: ${hT(e)}.`),this.body=e,this.name=n,this.locationOffset=r,this.locationOffset.line>0||cT(!1,\"line in locationOffset is 1-indexed and must be positive.\"),this.locationOffset.column>0||cT(!1,\"column in locationOffset is 1-indexed and must be positive.\")}get[Symbol.toStringTag](){return\"Source\"}};function GIe(t){return KIe(t,pT)}function GW(t,e){let n=new Jie(t,e),r=n.parseDocument();return Object.defineProperty(r,\"tokenCount\",{enumerable:!1,value:n.tokenCount}),r}var Jie=class{constructor(e,n={}){let r=GIe(e)?e:new pT(e);this._lexer=new VP(r),this._options=n,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){let e=this.expectToken(ft.NAME);return this.node(e,{kind:xn.NAME,value:e.value})}parseDocument(){return this.node(this._lexer.token,{kind:xn.DOCUMENT,definitions:this.many(ft.SOF,this.parseDefinition,ft.EOF)})}parseDefinition(){if(this.peek(ft.BRACE_L))return this.parseOperationDefinition();let e=this.peekDescription(),n=e?this._lexer.lookahead():this._lexer.token;if(n.kind===ft.NAME){switch(n.value){case\"schema\":return this.parseSchemaDefinition();case\"scalar\":return this.parseScalarTypeDefinition();case\"type\":return this.parseObjectTypeDefinition();case\"interface\":return this.parseInterfaceTypeDefinition();case\"union\":return this.parseUnionTypeDefinition();case\"enum\":return this.parseEnumTypeDefinition();case\"input\":return this.parseInputObjectTypeDefinition();case\"directive\":return this.parseDirectiveDefinition()}if(e)throw $a(this._lexer.source,this._lexer.token.start,\"Unexpected description, descriptions are supported only on type definitions.\");switch(n.value){case\"query\":case\"mutation\":case\"subscription\":return this.parseOperationDefinition();case\"fragment\":return this.parseFragmentDefinition();case\"extend\":return this.parseTypeSystemExtension()}}throw this.unexpected(n)}parseOperationDefinition(){let e=this._lexer.token;if(this.peek(ft.BRACE_L))return this.node(e,{kind:xn.OPERATION_DEFINITION,operation:I3.QUERY,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});let n=this.parseOperationType(),r;return this.peek(ft.NAME)&&(r=this.parseName()),this.node(e,{kind:xn.OPERATION_DEFINITION,operation:n,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){let e=this.expectToken(ft.NAME);switch(e.value){case\"query\":return I3.QUERY;case\"mutation\":return I3.MUTATION;case\"subscription\":return I3.SUBSCRIPTION}throw this.unexpected(e)}parseVariableDefinitions(){return this.optionalMany(ft.PAREN_L,this.parseVariableDefinition,ft.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:xn.VARIABLE_DEFINITION,variable:this.parseVariable(),type:(this.expectToken(ft.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(ft.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){let e=this._lexer.token;return this.expectToken(ft.DOLLAR),this.node(e,{kind:xn.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:xn.SELECTION_SET,selections:this.many(ft.BRACE_L,this.parseSelection,ft.BRACE_R)})}parseSelection(){return this.peek(ft.SPREAD)?this.parseFragment():this.parseField()}parseField(){let e=this._lexer.token,n=this.parseName(),r,o;return this.expectOptionalToken(ft.COLON)?(r=n,o=this.parseName()):o=n,this.node(e,{kind:xn.FIELD,alias:r,name:o,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(ft.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(e){let n=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(ft.PAREN_L,n,ft.PAREN_R)}parseArgument(e=!1){let n=this._lexer.token,r=this.parseName();return this.expectToken(ft.COLON),this.node(n,{kind:xn.ARGUMENT,name:r,value:this.parseValueLiteral(e)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){let e=this._lexer.token;this.expectToken(ft.SPREAD);let n=this.expectOptionalKeyword(\"on\");return!n&&this.peek(ft.NAME)?this.node(e,{kind:xn.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(e,{kind:xn.INLINE_FRAGMENT,typeCondition:n?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){let e=this._lexer.token;return this.expectKeyword(\"fragment\"),this._options.allowLegacyFragmentVariables===!0?this.node(e,{kind:xn.FRAGMENT_DEFINITION,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(e,{kind:xn.FRAGMENT_DEFINITION,name:this.parseFragmentName(),typeCondition:(this.expectKeyword(\"on\"),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value===\"on\")throw this.unexpected();return this.parseName()}parseValueLiteral(e){let n=this._lexer.token;switch(n.kind){case ft.BRACKET_L:return this.parseList(e);case ft.BRACE_L:return this.parseObject(e);case ft.INT:return this.advanceLexer(),this.node(n,{kind:xn.INT,value:n.value});case ft.FLOAT:return this.advanceLexer(),this.node(n,{kind:xn.FLOAT,value:n.value});case ft.STRING:case ft.BLOCK_STRING:return this.parseStringLiteral();case ft.NAME:switch(this.advanceLexer(),n.value){case\"true\":return this.node(n,{kind:xn.BOOLEAN,value:!0});case\"false\":return this.node(n,{kind:xn.BOOLEAN,value:!1});case\"null\":return this.node(n,{kind:xn.NULL});default:return this.node(n,{kind:xn.ENUM,value:n.value})}case ft.DOLLAR:if(e)if(this.expectToken(ft.DOLLAR),this._lexer.token.kind===ft.NAME){let r=this._lexer.token.value;throw $a(this._lexer.source,n.start,`Unexpected variable \"$${r}\" in constant value.`)}else throw this.unexpected(n);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){let e=this._lexer.token;return this.advanceLexer(),this.node(e,{kind:xn.STRING,value:e.value,block:e.kind===ft.BLOCK_STRING})}parseList(e){let n=()=>this.parseValueLiteral(e);return this.node(this._lexer.token,{kind:xn.LIST,values:this.any(ft.BRACKET_L,n,ft.BRACKET_R)})}parseObject(e){let n=()=>this.parseObjectField(e);return this.node(this._lexer.token,{kind:xn.OBJECT,fields:this.any(ft.BRACE_L,n,ft.BRACE_R)})}parseObjectField(e){let n=this._lexer.token,r=this.parseName();return this.expectToken(ft.COLON),this.node(n,{kind:xn.OBJECT_FIELD,name:r,value:this.parseValueLiteral(e)})}parseDirectives(e){let n=[];for(;this.peek(ft.AT);)n.push(this.parseDirective(e));return n}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(e){let n=this._lexer.token;return this.expectToken(ft.AT),this.node(n,{kind:xn.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e)})}parseTypeReference(){let e=this._lexer.token,n;if(this.expectOptionalToken(ft.BRACKET_L)){let r=this.parseTypeReference();this.expectToken(ft.BRACKET_R),n=this.node(e,{kind:xn.LIST_TYPE,type:r})}else n=this.parseNamedType();return this.expectOptionalToken(ft.BANG)?this.node(e,{kind:xn.NON_NULL_TYPE,type:n}):n}parseNamedType(){return this.node(this._lexer.token,{kind:xn.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(ft.STRING)||this.peek(ft.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"schema\");let r=this.parseConstDirectives(),o=this.many(ft.BRACE_L,this.parseOperationTypeDefinition,ft.BRACE_R);return this.node(e,{kind:xn.SCHEMA_DEFINITION,description:n,directives:r,operationTypes:o})}parseOperationTypeDefinition(){let e=this._lexer.token,n=this.parseOperationType();this.expectToken(ft.COLON);let r=this.parseNamedType();return this.node(e,{kind:xn.OPERATION_TYPE_DEFINITION,operation:n,type:r})}parseScalarTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"scalar\");let r=this.parseName(),o=this.parseConstDirectives();return this.node(e,{kind:xn.SCALAR_TYPE_DEFINITION,description:n,name:r,directives:o})}parseObjectTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"type\");let r=this.parseName(),o=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(e,{kind:xn.OBJECT_TYPE_DEFINITION,description:n,name:r,interfaces:o,directives:i,fields:a})}parseImplementsInterfaces(){return this.expectOptionalKeyword(\"implements\")?this.delimitedMany(ft.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(ft.BRACE_L,this.parseFieldDefinition,ft.BRACE_R)}parseFieldDefinition(){let e=this._lexer.token,n=this.parseDescription(),r=this.parseName(),o=this.parseArgumentDefs();this.expectToken(ft.COLON);let i=this.parseTypeReference(),a=this.parseConstDirectives();return this.node(e,{kind:xn.FIELD_DEFINITION,description:n,name:r,arguments:o,type:i,directives:a})}parseArgumentDefs(){return this.optionalMany(ft.PAREN_L,this.parseInputValueDef,ft.PAREN_R)}parseInputValueDef(){let e=this._lexer.token,n=this.parseDescription(),r=this.parseName();this.expectToken(ft.COLON);let o=this.parseTypeReference(),i;this.expectOptionalToken(ft.EQUALS)&&(i=this.parseConstValueLiteral());let a=this.parseConstDirectives();return this.node(e,{kind:xn.INPUT_VALUE_DEFINITION,description:n,name:r,type:o,defaultValue:i,directives:a})}parseInterfaceTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"interface\");let r=this.parseName(),o=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(e,{kind:xn.INTERFACE_TYPE_DEFINITION,description:n,name:r,interfaces:o,directives:i,fields:a})}parseUnionTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"union\");let r=this.parseName(),o=this.parseConstDirectives(),i=this.parseUnionMemberTypes();return this.node(e,{kind:xn.UNION_TYPE_DEFINITION,description:n,name:r,directives:o,types:i})}parseUnionMemberTypes(){return this.expectOptionalToken(ft.EQUALS)?this.delimitedMany(ft.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"enum\");let r=this.parseName(),o=this.parseConstDirectives(),i=this.parseEnumValuesDefinition();return this.node(e,{kind:xn.ENUM_TYPE_DEFINITION,description:n,name:r,directives:o,values:i})}parseEnumValuesDefinition(){return this.optionalMany(ft.BRACE_L,this.parseEnumValueDefinition,ft.BRACE_R)}parseEnumValueDefinition(){let e=this._lexer.token,n=this.parseDescription(),r=this.parseEnumValueName(),o=this.parseConstDirectives();return this.node(e,{kind:xn.ENUM_VALUE_DEFINITION,description:n,name:r,directives:o})}parseEnumValueName(){if(this._lexer.token.value===\"true\"||this._lexer.token.value===\"false\"||this._lexer.token.value===\"null\")throw $a(this._lexer.source,this._lexer.token.start,`${KW(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"input\");let r=this.parseName(),o=this.parseConstDirectives(),i=this.parseInputFieldsDefinition();return this.node(e,{kind:xn.INPUT_OBJECT_TYPE_DEFINITION,description:n,name:r,directives:o,fields:i})}parseInputFieldsDefinition(){return this.optionalMany(ft.BRACE_L,this.parseInputValueDef,ft.BRACE_R)}parseTypeSystemExtension(){let e=this._lexer.lookahead();if(e.kind===ft.NAME)switch(e.value){case\"schema\":return this.parseSchemaExtension();case\"scalar\":return this.parseScalarTypeExtension();case\"type\":return this.parseObjectTypeExtension();case\"interface\":return this.parseInterfaceTypeExtension();case\"union\":return this.parseUnionTypeExtension();case\"enum\":return this.parseEnumTypeExtension();case\"input\":return this.parseInputObjectTypeExtension()}throw this.unexpected(e)}parseSchemaExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"schema\");let n=this.parseConstDirectives(),r=this.optionalMany(ft.BRACE_L,this.parseOperationTypeDefinition,ft.BRACE_R);if(n.length===0&&r.length===0)throw this.unexpected();return this.node(e,{kind:xn.SCHEMA_EXTENSION,directives:n,operationTypes:r})}parseScalarTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"scalar\");let n=this.parseName(),r=this.parseConstDirectives();if(r.length===0)throw this.unexpected();return this.node(e,{kind:xn.SCALAR_TYPE_EXTENSION,name:n,directives:r})}parseObjectTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"type\");let n=this.parseName(),r=this.parseImplementsInterfaces(),o=this.parseConstDirectives(),i=this.parseFieldsDefinition();if(r.length===0&&o.length===0&&i.length===0)throw this.unexpected();return this.node(e,{kind:xn.OBJECT_TYPE_EXTENSION,name:n,interfaces:r,directives:o,fields:i})}parseInterfaceTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"interface\");let n=this.parseName(),r=this.parseImplementsInterfaces(),o=this.parseConstDirectives(),i=this.parseFieldsDefinition();if(r.length===0&&o.length===0&&i.length===0)throw this.unexpected();return this.node(e,{kind:xn.INTERFACE_TYPE_EXTENSION,name:n,interfaces:r,directives:o,fields:i})}parseUnionTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"union\");let n=this.parseName(),r=this.parseConstDirectives(),o=this.parseUnionMemberTypes();if(r.length===0&&o.length===0)throw this.unexpected();return this.node(e,{kind:xn.UNION_TYPE_EXTENSION,name:n,directives:r,types:o})}parseEnumTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"enum\");let n=this.parseName(),r=this.parseConstDirectives(),o=this.parseEnumValuesDefinition();if(r.length===0&&o.length===0)throw this.unexpected();return this.node(e,{kind:xn.ENUM_TYPE_EXTENSION,name:n,directives:r,values:o})}parseInputObjectTypeExtension(){let e=this._lexer.token;this.expectKeyword(\"extend\"),this.expectKeyword(\"input\");let n=this.parseName(),r=this.parseConstDirectives(),o=this.parseInputFieldsDefinition();if(r.length===0&&o.length===0)throw this.unexpected();return this.node(e,{kind:xn.INPUT_OBJECT_TYPE_EXTENSION,name:n,directives:r,fields:o})}parseDirectiveDefinition(){let e=this._lexer.token,n=this.parseDescription();this.expectKeyword(\"directive\"),this.expectToken(ft.AT);let r=this.parseName(),o=this.parseArgumentDefs(),i=this.expectOptionalKeyword(\"repeatable\");this.expectKeyword(\"on\");let a=this.parseDirectiveLocations();return this.node(e,{kind:xn.DIRECTIVE_DEFINITION,description:n,name:r,arguments:o,repeatable:i,locations:a})}parseDirectiveLocations(){return this.delimitedMany(ft.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){let e=this._lexer.token,n=this.parseName();if(Object.prototype.hasOwnProperty.call(qP,n.value))return n;throw this.unexpected(e)}node(e,n){return this._options.noLocation!==!0&&(n.loc=new HP(e,this._lexer.lastToken,this._lexer.source)),n}peek(e){return this._lexer.token.kind===e}expectToken(e){let n=this._lexer.token;if(n.kind===e)return this.advanceLexer(),n;throw $a(this._lexer.source,n.start,`Expected ${ZIe(e)}, found ${KW(n)}.`)}expectOptionalToken(e){return this._lexer.token.kind===e?(this.advanceLexer(),!0):!1}expectKeyword(e){let n=this._lexer.token;if(n.kind===ft.NAME&&n.value===e)this.advanceLexer();else throw $a(this._lexer.source,n.start,`Expected \"${e}\", found ${KW(n)}.`)}expectOptionalKeyword(e){let n=this._lexer.token;return n.kind===ft.NAME&&n.value===e?(this.advanceLexer(),!0):!1}unexpected(e){let n=e??this._lexer.token;return $a(this._lexer.source,n.start,`Unexpected ${KW(n)}.`)}any(e,n,r){this.expectToken(e);let o=[];for(;!this.expectOptionalToken(r);)o.push(n.call(this));return o}optionalMany(e,n,r){if(this.expectOptionalToken(e)){let o=[];do o.push(n.call(this));while(!this.expectOptionalToken(r));return o}return[]}many(e,n,r){this.expectToken(e);let o=[];do o.push(n.call(this));while(!this.expectOptionalToken(r));return o}delimitedMany(e,n){this.expectOptionalToken(e);let r=[];do r.push(n.call(this));while(this.expectOptionalToken(e));return r}advanceLexer(){let{maxTokens:e}=this._options,n=this._lexer.advance();if(n.kind!==ft.EOF&&(++this._tokenCounter,e!==void 0&&this._tokenCounter>e))throw $a(this._lexer.source,n.start,`Document contains more that ${e} tokens. Parsing aborted.`)}};function KW(t){let e=t.value;return ZIe(t.kind)+(e!=null?` \"${e}\"`:\"\")}function ZIe(t){return WIe(t)?`\"${t}\"`:t}p();p();function YIe(t){return`\"${t.replace(Egt,Sgt)}\"`}var Egt=/[\\\\x00-\\\\x1f\\\\x22\\\\x5c\\\\x7f-\\\\x9f]/g;function Sgt(t){return kgt[t.charCodeAt(0)]}var kgt=[\"\\\\\\\\u0000\",\"\\\\\\\\u0001\",\"\\\\\\\\u0002\",\"\\\\\\\\u0003\",\"\\\\\\\\u0004\",\"\\\\\\\\u0005\",\"\\\\\\\\u0006\",\"\\\\\\\\u0007\",\"\\\\\\\\b\",\"\\\\\\\\t\",\"\\\\\\\\n\",\"\\\\\\\\u000B\",\"\\\\\\\\f\",\"\\\\\\\\r\",\"\\\\\\\\u000E\",\"\\\\\\\\u000F\",\"\\\\\\\\u0010\",\"\\\\\\\\u0011\",\"\\\\\\\\u0012\",\"\\\\\\\\u0013\",\"\\\\\\\\u0014\",\"\\\\\\\\u0015\",\"\\\\\\\\u0016\",\"\\\\\\\\u0017\",\"\\\\\\\\u0018\",\"\\\\\\\\u0019\",\"\\\\\\\\u001A\",\"\\\\\\\\u001B\",\"\\\\\\\\u001C\",\"\\\\\\\\u001D\",\"\\\\\\\\u001E\",\"\\\\\\\\u001F\",\"\",\"\",\\'\\\\\\\\\"\\',\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\\\\\\\\\\\\\\\\\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\\\\\\\\u007F\",\"\\\\\\\\u0080\",\"\\\\\\\\u0081\",\"\\\\\\\\u0082\",\"\\\\\\\\u0083\",\"\\\\\\\\u0084\",\"\\\\\\\\u0085\",\"\\\\\\\\u0086\",\"\\\\\\\\u0087\",\"\\\\\\\\u0088\",\"\\\\\\\\u0089\",\"\\\\\\\\u008A\",\"\\\\\\\\u008B\",\"\\\\\\\\u008C\",\"\\\\\\\\u008D\",\"\\\\\\\\u008E\",\"\\\\\\\\u008F\",\"\\\\\\\\u0090\",\"\\\\\\\\u0091\",\"\\\\\\\\u0092\",\"\\\\\\\\u0093\",\"\\\\\\\\u0094\",\"\\\\\\\\u0095\",\"\\\\\\\\u0096\",\"\\\\\\\\u0097\",\"\\\\\\\\u0098\",\"\\\\\\\\u0099\",\"\\\\\\\\u009A\",\"\\\\\\\\u009B\",\"\\\\\\\\u009C\",\"\\\\\\\\u009D\",\"\\\\\\\\u009E\",\"\\\\\\\\u009F\"];p();var QIe=Object.freeze({});function Xie(t,e,n=Gie){let r=new Map;for(let R of Object.values(xn))r.set(R,JIe(e,R));let o,i=Array.isArray(t),a=[t],c=-1,u=[],d=t,h,m,g=[],b=[];do{c++;let R=c===a.length,L=R&&u.length!==0;if(R){if(h=b.length===0?void 0:g[g.length-1],d=m,m=b.pop(),L)if(i){d=d.slice();let G=0;for(let[W,J]of u){let ne=W-G;J===null?(d.splice(ne,1),G++):d[ne]=J}}else{d={...d};for(let[G,W]of u)d[G]=W}c=o.index,a=o.keys,u=o.edits,i=o.inArray,o=o.prev}else if(m){if(h=i?c:a[c],d=m[h],d==null)continue;g.push(h)}let D;if(!Array.isArray(d)){var E,C;Zie(d)||cT(!1,`Invalid AST Node: ${hT(d)}.`);let G=R?(E=r.get(d.kind))===null||E===void 0?void 0:E.leave:(C=r.get(d.kind))===null||C===void 0?void 0:C.enter;if(D=G?.call(e,d,h,m,g,b),D===QIe)break;if(D===!1){if(!R){g.pop();continue}}else if(D!==void 0&&(u.push([h,D]),!R))if(Zie(D))d=D;else{g.pop();continue}}if(D===void 0&&L&&u.push([h,d]),R)g.pop();else{var T;o={inArray:i,index:c,keys:a,edits:u,prev:o},i=Array.isArray(d),a=i?d:(T=n[d.kind])!==null&&T!==void 0?T:[],c=-1,u=[],m&&b.push(m),m=d}}while(o!==void 0);return u.length!==0?u[u.length-1][1]:t}function JIe(t,e){let n=t[e];return typeof n==\"object\"?n:typeof n==\"function\"?{enter:n,leave:void 0}:{enter:t.enter,leave:t.leave}}function YW(t){return Xie(t,Cgt)}var _gt=80,Cgt={Name:{leave:t=>t.value},Variable:{leave:t=>\"$\"+t.name},Document:{leave:t=>on(t.definitions,`\\n\\n`)},OperationDefinition:{leave(t){let e=$r(\"(\",on(t.variableDefinitions,\", \"),\")\"),n=on([t.operation,on([t.name,e]),on(t.directives,\" \")],\" \");return(n===\"query\"?\"\":n+\" \")+t.selectionSet}},VariableDefinition:{leave:({variable:t,type:e,defaultValue:n,directives:r})=>t+\": \"+e+$r(\" = \",n)+$r(\" \",on(r,\" \"))},SelectionSet:{leave:({selections:t})=>xg(t)},Field:{leave({alias:t,name:e,arguments:n,directives:r,selectionSet:o}){let i=$r(\"\",t,\": \")+e,a=i+$r(\"(\",on(n,\", \"),\")\");return a.length>_gt&&(a=i+$r(`(\\n`,ZW(on(n,`\\n`)),`\\n)`)),on([a,on(r,\" \"),o],\" \")}},Argument:{leave:({name:t,value:e})=>t+\": \"+e},FragmentSpread:{leave:({name:t,directives:e})=>\"...\"+t+$r(\" \",on(e,\" \"))},InlineFragment:{leave:({typeCondition:t,directives:e,selectionSet:n})=>on([\"...\",$r(\"on \",t),on(e,\" \"),n],\" \")},FragmentDefinition:{leave:({name:t,typeCondition:e,variableDefinitions:n,directives:r,selectionSet:o})=>`fragment ${t}${$r(\"(\",on(n,\", \"),\")\")} on ${e} ${$r(\"\",on(r,\" \"),\" \")}`+o},IntValue:{leave:({value:t})=>t},FloatValue:{leave:({value:t})=>t},StringValue:{leave:({value:t,block:e})=>e?HIe(t):YIe(t)},BooleanValue:{leave:({value:t})=>t?\"true\":\"false\"},NullValue:{leave:()=>\"null\"},EnumValue:{leave:({value:t})=>t},ListValue:{leave:({values:t})=>\"[\"+on(t,\", \")+\"]\"},ObjectValue:{leave:({fields:t})=>\"{\"+on(t,\", \")+\"}\"},ObjectField:{leave:({name:t,value:e})=>t+\": \"+e},Directive:{leave:({name:t,arguments:e})=>\"@\"+t+$r(\"(\",on(e,\", \"),\")\")},NamedType:{leave:({name:t})=>t},ListType:{leave:({type:t})=>\"[\"+t+\"]\"},NonNullType:{leave:({type:t})=>t+\"!\"},SchemaDefinition:{leave:({description:t,directives:e,operationTypes:n})=>$r(\"\",t,`\\n`)+on([\"schema\",on(e,\" \"),xg(n)],\" \")},OperationTypeDefinition:{leave:({operation:t,type:e})=>t+\": \"+e},ScalarTypeDefinition:{leave:({description:t,name:e,directives:n})=>$r(\"\",t,`\\n`)+on([\"scalar\",e,on(n,\" \")],\" \")},ObjectTypeDefinition:{leave:({description:t,name:e,interfaces:n,directives:r,fields:o})=>$r(\"\",t,`\\n`)+on([\"type\",e,$r(\"implements \",on(n,\" & \")),on(r,\" \"),xg(o)],\" \")},FieldDefinition:{leave:({description:t,name:e,arguments:n,type:r,directives:o})=>$r(\"\",t,`\\n`)+e+(XIe(n)?$r(`(\\n`,ZW(on(n,`\\n`)),`\\n)`):$r(\"(\",on(n,\", \"),\")\"))+\": \"+r+$r(\" \",on(o,\" \"))},InputValueDefinition:{leave:({description:t,name:e,type:n,defaultValue:r,directives:o})=>$r(\"\",t,`\\n`)+on([e+\": \"+n,$r(\"= \",r),on(o,\" \")],\" \")},InterfaceTypeDefinition:{leave:({description:t,name:e,interfaces:n,directives:r,fields:o})=>$r(\"\",t,`\\n`)+on([\"interface\",e,$r(\"implements \",on(n,\" & \")),on(r,\" \"),xg(o)],\" \")},UnionTypeDefinition:{leave:({description:t,name:e,directives:n,types:r})=>$r(\"\",t,`\\n`)+on([\"union\",e,on(n,\" \"),$r(\"= \",on(r,\" | \"))],\" \")},EnumTypeDefinition:{leave:({description:t,name:e,directives:n,values:r})=>$r(\"\",t,`\\n`)+on([\"enum\",e,on(n,\" \"),xg(r)],\" \")},EnumValueDefinition:{leave:({description:t,name:e,directives:n})=>$r(\"\",t,`\\n`)+on([e,on(n,\" \")],\" \")},InputObjectTypeDefinition:{leave:({description:t,name:e,directives:n,fields:r})=>$r(\"\",t,`\\n`)+on([\"input\",e,on(n,\" \"),xg(r)],\" \")},DirectiveDefinition:{leave:({description:t,name:e,arguments:n,repeatable:r,locations:o})=>$r(\"\",t,`\\n`)+\"directive @\"+e+(XIe(n)?$r(`(\\n`,ZW(on(n,`\\n`)),`\\n)`):$r(\"(\",on(n,\", \"),\")\"))+(r?\" repeatable\":\"\")+\" on \"+on(o,\" | \")},SchemaExtension:{leave:({directives:t,operationTypes:e})=>on([\"extend schema\",on(t,\" \"),xg(e)],\" \")},ScalarTypeExtension:{leave:({name:t,directives:e})=>on([\"extend scalar\",t,on(e,\" \")],\" \")},ObjectTypeExtension:{leave:({name:t,interfaces:e,directives:n,fields:r})=>on([\"extend type\",t,$r(\"implements \",on(e,\" & \")),on(n,\" \"),xg(r)],\" \")},InterfaceTypeExtension:{leave:({name:t,interfaces:e,directives:n,fields:r})=>on([\"extend interface\",t,$r(\"implements \",on(e,\" & \")),on(n,\" \"),xg(r)],\" \")},UnionTypeExtension:{leave:({name:t,directives:e,types:n})=>on([\"extend union\",t,on(e,\" \"),$r(\"= \",on(n,\" | \"))],\" \")},EnumTypeExtension:{leave:({name:t,directives:e,values:n})=>on([\"extend enum\",t,on(e,\" \"),xg(n)],\" \")},InputObjectTypeExtension:{leave:({name:t,directives:e,fields:n})=>on([\"extend input\",t,on(e,\" \"),xg(n)],\" \")}};function on(t,e=\"\"){var n;return(n=t?.filter(r=>r).join(e))!==null&&n!==void 0?n:\"\"}function xg(t){return $r(`{\\n`,ZW(on(t,`\\n`)),`\\n}`)}function $r(t,e,n=\"\"){return e!=null&&e!==\"\"?t+e+n:\"\"}function ZW(t){return $r(\"  \",t.replace(/\\\\n/g,`\\n  `))}function XIe(t){var e;return(e=t?.some(n=>n.includes(`\\n`)))!==null&&e!==void 0?e:!1}p();var eOe=t=>{let e,n=t.definitions.filter(r=>r.kind===\"OperationDefinition\");return n.length===1&&(e=n[0]?.name?.value),e},yk=t=>{if(typeof t==\"string\"){let n;try{let r=GW(t);n=eOe(r)}catch{}return{query:t,operationName:n}}let e=eOe(t);return{query:YW(t),operationName:e}};p();var bk=class t extends Error{constructor(e,n){let r=`${t.extractMessage(e)}: ${JSON.stringify({response:e,request:n})}`;super(r),Object.setPrototypeOf(this,t.prototype),this.response=e,this.request=n,typeof Error.captureStackTrace==\"function\"&&Error.captureStackTrace(this,t)}static extractMessage(e){return e.errors?.[0]?.message??`GraphQL Error (Code: ${e.status})`}};var M3=he(nOe(),1);p();var Igt=\"connection_init\",Ogt=\"connection_ack\",oOe=\"ping\",iOe=\"pong\",Pgt=\"subscribe\",Mgt=\"next\",Ngt=\"error\",sOe=\"complete\",P3=class t{get type(){return this._type}get id(){return this._id}get payload(){return this._payload}constructor(e,n,r){this._type=e,this._payload=n,this._id=r}get text(){let e={type:this.type};return this.id!=null&&this.id!=null&&(e.id=this.id),this.payload!=null&&this.payload!=null&&(e.payload=this.payload),JSON.stringify(e)}static parse(e,n){let{type:r,payload:o,id:i}=JSON.parse(e);return new t(r,n(o),i)}},XW=class{constructor(e,{onInit:n,onAcknowledged:r,onPing:o,onPong:i}){this.socketState={acknowledged:!1,lastRequestId:0,subscriptions:{}},this.socket=e,e.addEventListener(\"open\",async a=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={},e.send(Bgt(n?await n():null).text)}),e.addEventListener(\"close\",a=>{this.socketState.acknowledged=!1,this.socketState.subscriptions={}}),e.addEventListener(\"error\",a=>{console.error(a)}),e.addEventListener(\"message\",a=>{try{let c=Lgt(a.data);switch(c.type){case Ogt:{this.socketState.acknowledged?console.warn(\"Duplicate CONNECTION_ACK message ignored\"):(this.socketState.acknowledged=!0,r&&r(c.payload));return}case oOe:{o?o(c.payload).then(m=>e.send(rOe(m).text)):e.send(rOe(null).text);return}case iOe:{i&&i(c.payload);return}}if(!this.socketState.acknowledged||c.id===void 0||c.id===null||!this.socketState.subscriptions[c.id])return;let{query:u,variables:d,subscriber:h}=this.socketState.subscriptions[c.id];switch(c.type){case Mgt:{!c.payload.errors&&c.payload.data&&h.next&&h.next(c.payload.data),c.payload.errors&&h.error&&h.error(new bk({...c.payload,status:200},{query:u,variables:d}));return}case Ngt:{h.error&&h.error(new bk({errors:c.payload,status:200},{query:u,variables:d}));return}case sOe:{h.complete&&h.complete(),delete this.socketState.subscriptions[c.id];return}}}catch(c){console.error(c),e.close(1006)}e.close(4400,\"Unknown graphql-ws message.\")})}makeSubscribe(e,n,r,o){let i=(this.socketState.lastRequestId++).toString();return this.socketState.subscriptions[i]={query:e,variables:o,subscriber:r},this.socket.send(Fgt(i,{query:e,operationName:n,variables:o}).text),()=>{this.socket.send(Ugt(i).text),delete this.socketState.subscriptions[i]}}rawRequest(e,n){return new Promise((r,o)=>{let i;this.rawSubscribe(e,{next:(a,c)=>i={data:a,extensions:c},error:o,complete:()=>r(i)},n)})}request(e,n){return new Promise((r,o)=>{let i;this.subscribe(e,{next:a=>i=a,error:o,complete:()=>r(i)},n)})}subscribe(e,n,r){let{query:o,operationName:i}=yk(e);return this.makeSubscribe(o,i,n,r)}rawSubscribe(e,n,r){return this.makeSubscribe(e,void 0,n,r)}ping(e){this.socket.send(Dgt(e).text)}close(){this.socket.close(1e3)}};XW.PROTOCOL=\"graphql-transport-ws\";function Lgt(t,e=n=>n){return P3.parse(t,e)}function Bgt(t){return new P3(Igt,t)}function Dgt(t){return new P3(oOe,t,void 0)}function rOe(t){return new P3(iOe,t,void 0)}function Fgt(t,e){return new P3(Pgt,e,t)}function Ugt(t){return new P3(sOe,void 0,t)}var gT=t=>{let e={};return t&&(typeof Headers<\"u\"&&t instanceof Headers||M3&&M3.Headers&&t instanceof M3.Headers?e=OIe(t):Array.isArray(t)?t.forEach(([n,r])=>{n&&r!==void 0&&(e[n]=r)}):e=t),e},aOe=t=>t.replace(/([\\\\s,]|#[^\\\\n\\\\r]+)+/g,\" \").trim(),jgt=t=>{if(!Array.isArray(t.query)){let r=t,o=[`query=${encodeURIComponent(aOe(r.query))}`];return t.variables&&o.push(`variables=${encodeURIComponent(r.jsonSerializer.stringify(r.variables))}`),r.operationName&&o.push(`operationName=${encodeURIComponent(r.operationName)}`),o.join(\"&\")}if(typeof t.variables<\"u\"&&!Array.isArray(t.variables))throw new Error(\"Cannot create query with given variable type, array expected\");let e=t,n=t.query.reduce((r,o,i)=>(r.push({query:aOe(o),variables:e.variables?e.jsonSerializer.stringify(e.variables[i]):void 0}),r),[]);return`query=${encodeURIComponent(e.jsonSerializer.stringify(n))}`},zgt=t=>async e=>{let{url:n,query:r,variables:o,operationName:i,fetch:a,fetchOptions:c,middleware:u}=e,d={...e.headers},h=\"\",m;t===\"POST\"?(m=Hgt(r,o,i,c.jsonSerializer),typeof m==\"string\"&&(d[\"Content-Type\"]=\"application/json\")):h=jgt({query:r,variables:o,operationName:i,jsonSerializer:c.jsonSerializer??zW});let g={method:t,headers:d,body:m,...c},b=n,E=g;if(u){let C=await Promise.resolve(u({...g,url:n,operationName:i,variables:o})),{url:T,...R}=C;b=T,E=R}return h&&(b=`${b}?${h}`),await a(b,E)},eV=class{constructor(e,n={}){this.url=e,this.requestConfig=n,this.rawRequest=async(...r)=>{let[o,i,a]=r,c=MIe(o,i,a),{headers:u,fetch:d=M3.default,method:h=\"POST\",requestMiddleware:m,responseMiddleware:g,...b}=this.requestConfig,{url:E}=this;c.signal!==void 0&&(b.signal=c.signal);let{operationName:C}=yk(c.query);return ese({url:E,query:c.query,variables:c.variables,headers:{...gT(tse(u)),...gT(c.requestHeaders)},operationName:C,fetch:d,method:h,fetchOptions:b,middleware:m}).then(T=>(g&&g(T),T)).catch(T=>{throw g&&g(T),T})}}async request(e,...n){let[r,o]=n,i=PIe(e,r,o),{headers:a,fetch:c=M3.default,method:u=\"POST\",requestMiddleware:d,responseMiddleware:h,...m}=this.requestConfig,{url:g}=this;i.signal!==void 0&&(m.signal=i.signal);let{query:b,operationName:E}=yk(i.document);return ese({url:g,query:b,variables:i.variables,headers:{...gT(tse(a)),...gT(i.requestHeaders)},operationName:E,fetch:c,method:u,fetchOptions:m,middleware:d}).then(C=>(h&&h(C),C.data)).catch(C=>{throw h&&h(C),C})}batchRequests(e,n){let r=NIe(e,n),{headers:o,...i}=this.requestConfig;r.signal!==void 0&&(i.signal=r.signal);let a=r.documents.map(({document:u})=>yk(u).query),c=r.documents.map(({variables:u})=>u);return ese({url:this.url,query:a,variables:c,headers:{...gT(tse(o)),...gT(r.requestHeaders)},operationName:void 0,fetch:this.requestConfig.fetch??M3.default,method:this.requestConfig.method||\"POST\",fetchOptions:i,middleware:this.requestConfig.requestMiddleware}).then(u=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u.data)).catch(u=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(u),u})}setHeaders(e){return this.requestConfig.headers=e,this}setHeader(e,n){let{headers:r}=this.requestConfig;return r?r[e]=n:this.requestConfig.headers={[e]:n},this}setEndpoint(e){return this.url=e,this}},ese=async t=>{let{query:e,variables:n,fetchOptions:r}=t,o=zgt(IIe(t.method??\"post\")),i=Array.isArray(t.query),a=await o(t),c=await qgt(a,r.jsonSerializer??zW),u=Array.isArray(c)?!c.some(({data:h})=>!h):!!c.data,d=Array.isArray(c)||!c.errors||Array.isArray(c.errors)&&!c.errors.length||r.errorPolicy===\"all\"||r.errorPolicy===\"ignore\";if(a.ok&&d&&u){let{errors:h,...m}=(Array.isArray(c),c),g=r.errorPolicy===\"ignore\"?m:c;return{...i?{data:g}:g,headers:a.headers,status:a.status}}else{let h=typeof c==\"string\"?{error:c}:c;throw new bk({...h,status:a.status,headers:a.headers},{query:e,variables:n})}};var Hgt=(t,e,n,r)=>{let o=r??zW;if(!Array.isArray(t))return o.stringify({query:t,variables:e,operationName:n});if(typeof e<\"u\"&&!Array.isArray(e))throw new Error(\"Cannot create request body with given variable type, array expected\");let i=t.reduce((a,c,u)=>(a.push({query:c,variables:e?e[u]:void 0}),a),[]);return o.stringify(i)},qgt=async(t,e)=>{let n;return t.headers.forEach((r,o)=>{o.toLowerCase()===\"content-type\"&&(n=r)}),n&&(n.toLowerCase().startsWith(\"application/json\")||n.toLowerCase().startsWith(\"application/graphql+json\")||n.toLowerCase().startsWith(\"application/graphql-response+json\"))?e.parse(await t.text()):t.text()},tse=t=>typeof t==\"function\"?t():t,cOe=(t,...e)=>t.reduce((n,r,o)=>`${n}${r}${o in e?String(e[o]):\"\"}`,\"\");bo();p();p();p();Si();var nse={id:Yn.id,easGraphqlAPI:\"https://base.easscan.org/graphql\",schemaUids:[\"0x1801901fabd0e6189356b4fb52bb0ab855276d84f7ec140839fbd1f6801ca065\",\"0xf8b05c79f090979bf4a80270aba232dff11a10d9ca55c4f88de95317970f0de9\"]};p();Si();var rse={id:xs.id,easGraphqlAPI:\"https://base-sepolia.easscan.org/graphql\",schemaUids:[\"0xef54ae90f47a187acc050ce631c55584fd4273c0ca9456ab21750921c3a84028\",\"0x2f34a2ffe5f87b2f45fbc7c784896b768d77261e2f24f77341ae43751c765a69\"]};p();Si();var ose={id:KR.id,easGraphqlAPI:\"https://optimism.easscan.org/graphql\",schemaUids:[\"0xac4c92fc5c7babed88f78a917cdbcdc1c496a8f4ab2d5b2ec29402736b2cf929\",\"0x6ab5d34260fca0cfcf0e76e96d439cace6aa7c3c019d7c4580ed52c6845e9c89\",\"0x401a80196f3805c57b00482ae2b575a9f270562b6b6de7711af9837f08fa0faf\"]};var lOe={[nse.id]:nse,[rse.id]:rse,[ose.id]:ose};function uOe(t){return t.id in lOe}function dOe(t){var e;return((e=lOe[t.id])==null?void 0:e.easGraphqlAPI)??\"\"}function fOe(t){let e=dOe(t);return new eV(e)}var Wgt=cOe`\\n  query AttestationsForUsers(\\n    $where: AttestationWhereInput\\n    $distinct: [AttestationScalarFieldEnum!]\\n    $take: Int\\n  ) {\\n    attestations(where: $where, distinct: $distinct, take: $take) {\\n      id\\n      txid\\n      schemaId\\n      attester\\n      recipient\\n      revoked\\n      revocationTime\\n      expirationTime\\n      time\\n      timeCreated\\n      decodedDataJson\\n    }\\n  }\\n`;function Vgt(t,e){let r={recipient:{equals:Fr(t)},revoked:{equals:e.revoked}};return typeof e.expirationTime==\"number\"&&(r.OR=[{expirationTime:{equals:0}},{expirationTime:{gt:e.expirationTime}}]),e?.schemas&&e.schemas.length>0&&(r.schemaId={in:e.schemas}),{where:{AND:[r]},distinct:[\"schemaId\"],take:e.limit}}async function hOe(t,e,n){let r=fOe(e),o=Vgt(t,n),{attestations:i}=await r.request(Wgt,o);return i}async function ise(t,e,n){if(!t)return console.log(\"Error in getAttestation: Address is not provided\"),[];if(!uOe(e))return console.log(\"Error in getAttestation: Chain is not supported\"),[];try{let o={...{revoked:!1,expirationTime:Math.round(Date.now()/1e3),limit:10},...n};return await hOe(t,e,o)}catch(r){return console.log(`Error in getAttestation: ${r.message}`),[]}}function $P({address:t,chain:e,schemaId:n},r){return pd({queryKey:[\"useAttestations\",t,e?.id,n],queryFn:async()=>ise(t,e,{schemas:[n]}),enabled:!!t&&!!n,...Mu,gcTime:r?.cacheTime,...r}).data||[]}p();var sse=he(De(),1);var pOe=(0,sse.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-badgeSvg\",width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"h-full w-full\",children:(0,sse.jsx)(\"path\",{d:\"M8.12957 3.73002L5.11957 6.74002L3.77957 5.40002C3.49957 5.12002 3.04957 5.12002 2.76957 5.40002C2.48957 5.68002 2.48957 6.13002 2.76957 6.41002L4.10957 7.75002L4.59957 8.24002C4.90957 8.55002 5.41957 8.55002 5.72957 8.24002L9.17957 4.79002C9.45957 4.51002 9.45957 4.06002 9.17957 3.78002L9.12957 3.73002C8.84957 3.45002 8.39957 3.45002 8.11957 3.73002H8.12957Z\",\"data-testid\":\"ock-badgeSvg\",className:Kt.inverse})});p();var Nu={base:\"z-0\",navigation:\"z-1\",dropdown:\"z-10\",tooltip:\"z-20\",modal:\"z-40\",notification:\"z-50\"};var tV=he(et(),1);function bT({className:t,tooltip:e=!1}){let[n,r]=(0,tV.useState)(!1),{address:o,schemaId:i}=Lf(),{chain:a,schemaId:c}=lo(),u=$P({address:o,chain:a,schemaId:e?i??c:null}),d=(0,tV.useMemo)(()=>e?typeof e==\"string\"?e:$gt(u[0]):null,[e,u]),h=\"12px\";return(0,yT.jsxs)(\"div\",{className:\"relative inline-flex\",\"data-testid\":\"ockBadgeContainer\",children:[(0,yT.jsx)(\"span\",{className:ge(dn.primary,mt.default,mt.radius,e&&\"cursor-pointer\",t),style:{height:h,width:h,maxHeight:h,maxWidth:h},\"data-testid\":\"ockBadge\",...e&&{onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1)},children:pOe}),n&&e&&(0,yT.jsxs)(\"div\",{className:ge(mt.radius,mt.default,Ht.alternate,Xe.legal,it.foreground,Nu.tooltip,\"-translate-x-1/2 absolute bottom-full left-1/2 mb-1 transform\",\"whitespace-nowrap px-1.5 py-0.5\"),\"data-testid\":\"ockBadgeTooltip\",children:[d,(0,yT.jsx)(\"div\",{className:ge(\"-translate-x-1/2 absolute top-full left-1/2 transform\")})]})]})}function $gt(t){var e;if(!t?.decodedDataJson)return\"Verified\";try{let n=JSON.parse(t.decodedDataJson);if(Array.isArray(n)&&((e=n[0])!=null&&e.name))return n[0].name;let r=Object.values(n)[0];if(typeof r==\"string\")return r;if(r&&typeof r==\"object\"&&\"value\"in r&&typeof r.value==\"string\")return r.value}catch{}return\"Verified\"}p();function nV({children:t,address:e}){let{chain:n,schemaId:r}=lo(),{schemaId:o,address:i}=Lf();if(!o&&!r)throw new Error(\"Name: a SchemaId must be provided to the OnchainKitProvider or Identity component.\");return $P({address:e??i,chain:n,schemaId:o??r}).length===0?null:t}function Ld({address:t=null,chain:e,className:n,defaultComponent:r,loadingComponent:o,children:i,...a}){let{address:c,chain:u}=Lf(),d=t??c,h=e??u;if(!d)return console.error(\"Avatar: an Ethereum address must be provided to the Identity or Avatar component.\"),null;let{data:m,isLoading:g}=R3({address:d,chain:h}),{data:b,isLoading:E}=qie({ensName:m??\"\",chain:h},{enabled:!!m}),C=(0,rV.useMemo)(()=>rV.Children.toArray(i).find(Nd(bT)),[i]),T=r||UW,R=o||RIe;if(g||E)return(0,L1.jsx)(\"div\",{className:ge(\"h-8 w-8 overflow-hidden rounded-full\",n),children:R});let L=m&&b;return(0,L1.jsxs)(\"div\",{className:\"relative\",children:[(0,L1.jsx)(\"div\",{\"data-testid\":\"ockAvatar_ImageContainer\",className:ge(\"h-10 w-10 overflow-hidden rounded-full\",n),children:L?(0,L1.jsx)(\"img\",{className:\"min-h-full min-w-full object-cover\",\"data-testid\":\"ockAvatar_Image\",loading:\"lazy\",width:\"100%\",height:\"100%\",decoding:\"async\",src:b,alt:m,...a}):(0,L1.jsx)(\"div\",{className:ge(mt.default,\"h-full w-full border\"),children:T})}),C&&(0,L1.jsx)(nV,{address:d,children:(0,L1.jsx)(\"div\",{\"data-testid\":\"ockAvatar_BadgeContainer\",className:\"-bottom-0.5 -right-0.5 absolute flex h-[15px] w-[15px] items-center justify-center rounded-full bg-transparent\",children:(0,L1.jsx)(\"div\",{className:\"flex h-3 w-3 items-center justify-center\",children:C})})})]})}p();var vT=he(De(),1);p();var vk=t=>`${t.slice(0,6)}...${t.slice(-4)}`;var oV=he(et(),1);function Df({address:t=null,className:e,children:n,chain:r,...o}){let{address:i,chain:a}=Lf();if(!i&&!t)return console.error(\"Name: an Ethereum address must be provided to the Identity or Name component.\"),null;let c=t??i,u=r??a,{data:d,isLoading:h}=R3({address:c,chain:u}),m=(0,oV.useMemo)(()=>oV.Children.toArray(n).find(Nd(bT)),[n]);return h?(0,vT.jsx)(\"span\",{className:e}):(0,vT.jsxs)(\"div\",{className:\"flex items-center gap-1\",children:[(0,vT.jsx)(\"span\",{\"data-testid\":\"ockIdentity_Text\",className:ge(Xe.headline,it.foreground,e),...o,children:d||vk(c)}),m&&(0,vT.jsx)(nV,{address:c,children:m})]})}p();var ase=he(De(),1);var mOe=(0,ase.jsx)(\"svg\",{\"data-testid\":\"ock-githubSvg\",role:\"img\",\"aria-label\":\"ock-githubSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 24 24\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",className:\"h-full w-full\",children:(0,ase.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z\",className:Kt.foreground})});p();var N3=he(De(),1);var gOe=(0,N3.jsxs)(\"svg\",{\"data-testid\":\"ock-twitterSvg\",role:\"img\",\"aria-label\":\"ock-twitterSvg\",width:\"100%\",height:\"100%\",viewBox:\"-1 -1 14 14\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",className:\"h-full w-full\",children:[(0,N3.jsx)(\"g\",{clipPath:\"url(#clip0_6998_47)\",children:(0,N3.jsx)(\"path\",{d:\"M7.14163 5.07857L11.6089 0H10.5503L6.67137 4.40965L3.57328 0H0L4.68492 6.66817L0 11.9938H1.05866L5.15491 7.33709L8.42672 11.9938H12L7.14137 5.07857H7.14163ZM5.69165 6.72692L5.21697 6.06292L1.44011 0.779407H3.06615L6.11412 5.04337L6.5888 5.70737L10.5508 11.2499H8.92476L5.69165 6.72718V6.72692Z\",className:Kt.foreground})}),(0,N3.jsx)(\"defs\",{children:(0,N3.jsx)(\"clipPath\",{id:\"clip0_6998_47\",children:(0,N3.jsx)(\"rect\",{width:\"12\",height:\"12\",fill:\"white\"})})})]});p();var wT=he(De(),1);var yOe=(0,wT.jsxs)(\"svg\",{\"data-testid\":\"ock-warpcastSvg\",role:\"img\",\"aria-label\":\"ock-warpcastSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 13 12\",xmlns:\"http://www.w3.org/2000/svg\",className:`h-full w-full ${Kt.foreground}`,children:[(0,wT.jsx)(\"path\",{d:\"M2.23071 0H10.6153V12H9.38451V6.50322H9.37245C9.23641 4.98404 7.96783 3.79353 6.42299 3.79353C4.87815 3.79353 3.60957 4.98404 3.47354 6.50322H3.46147V12H2.23071V0Z\",className:Kt.foreground}),(0,wT.jsx)(\"path\",{d:\"M0 1.70312L0.499999 3.40635H0.923066V10.2967C0.71065 10.2967 0.538456 10.47 0.538456 10.6838V11.1483H0.461541C0.249125 11.1483 0.0769147 11.3216 0.0769147 11.5354V11.9999H4.38458V11.5354C4.38458 11.3216 4.21239 11.1483 3.99998 11.1483H3.92306V10.6838C3.92306 10.47 3.75085 10.2967 3.53843 10.2967H3.07691V1.70312H0Z\",className:Kt.foreground}),(0,wT.jsx)(\"path\",{d:\"M9.46163 10.2967C9.24921 10.2967 9.077 10.47 9.077 10.6838V11.1483H9.00009C8.78767 11.1483 8.61548 11.3216 8.61548 11.5354V11.9999H12.9231V11.5354C12.9231 11.3216 12.7509 11.1483 12.5385 11.1483H12.4616V10.6838C12.4616 10.47 12.2894 10.2967 12.077 10.2967V3.40635H12.5001L13.0001 1.70312H9.92315V10.2967H9.46163Z\",className:Kt.foreground})]});p();var cse=he(De(),1);var bOe=(0,cse.jsx)(\"svg\",{\"data-testid\":\"ock-websiteSvg\",role:\"img\",\"aria-label\":\"ock-websiteSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 12 12\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",className:`h-full w-full ${Kt.foreground}`,children:(0,cse.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6 0C9.31356 0 12 2.68644 12 6C12 9.31356 9.31356 12 6 12C2.69689 12 0.0245556 9.35356 0 6C0.0244789 2.64689 2.69689 0 6 0ZM9.34844 9.97867C9.15053 9.88544 8.9422 9.80002 8.72553 9.72346C8.56251 10.0854 8.36772 10.4313 8.13856 10.7412C8.57762 10.5427 8.98439 10.2854 9.34844 9.97867ZM7.95156 9.49742C7.46353 9.38284 6.9427 9.30992 6.4 9.28597V11.1381C7.04791 10.9365 7.58233 10.2766 7.95156 9.49742ZM5.6 9.28597C5.05729 9.30993 4.53646 9.38284 4.04844 9.49742C4.41771 10.2766 4.95209 10.936 5.6 11.1375V9.28597ZM3.27456 9.72347C3.05737 9.80003 2.84956 9.88544 2.65164 9.97868C3.01571 10.2854 3.42248 10.5427 3.86153 10.7412C3.63237 10.4313 3.43758 10.0854 3.27456 9.72347ZM2.05267 9.38492C2.34486 9.2318 2.65736 9.09534 2.98809 8.97763C2.73913 8.21044 2.58288 7.33386 2.54799 6.40008H0.815211C0.901669 7.53597 1.35323 8.5703 2.05277 9.38497L2.05267 9.38492ZM3.75156 8.74742C4.33229 8.60263 4.95367 8.512 5.6 8.48545V6.4H3.34844C3.3823 7.25677 3.52553 8.05522 3.75157 8.74733L3.75156 8.74742ZM6.4 8.48545C7.04636 8.51201 7.66767 8.60263 8.24844 8.74794C8.47449 8.05523 8.61771 7.25728 8.65157 6.40061L6.40001 6.40009L6.4 8.48545ZM9.012 8.97763C9.34273 9.09534 9.65576 9.2318 9.94742 9.38492C10.6469 8.56982 11.0984 7.53603 11.185 6.40003H9.4522C9.4173 7.33389 9.26106 8.21048 9.0121 8.97759L9.012 8.97763ZM9.94742 2.61508C9.65523 2.7682 9.34273 2.90466 9.012 3.02237C9.26096 3.78956 9.41721 4.66614 9.4521 5.59992H11.1849C11.0984 4.46403 10.6469 3.4297 9.94732 2.61503L9.94742 2.61508ZM8.24853 3.25258C7.6678 3.39737 7.04642 3.488 6.40009 3.51456V5.6H8.65164C8.61779 4.74323 8.47456 3.94478 8.24852 3.25267L8.24853 3.25258ZM5.60009 3.51456C4.95373 3.48799 4.33242 3.39737 3.75164 3.25206C3.5256 3.94477 3.38238 4.74328 3.34852 5.59994H5.60008L5.60009 3.51456ZM2.98809 3.02237C2.65736 2.90466 2.34433 2.7682 2.05267 2.61508C1.35319 3.43018 0.901667 4.46397 0.815111 5.59997H2.54789C2.58278 4.66611 2.73903 3.78952 2.98799 3.02241L2.98809 3.02237ZM2.65163 2.02132C2.84954 2.11455 3.05788 2.19997 3.27454 2.27653C3.43757 1.91456 3.63236 1.56872 3.86152 1.25882C3.42246 1.45726 3.01569 1.71456 2.65163 2.02132ZM4.04852 2.50257C4.53654 2.61714 5.05738 2.69007 5.60008 2.71402V0.861911C4.95217 1.06348 4.41774 1.72337 4.04852 2.50258V2.50257ZM6.40008 2.71402C6.94279 2.69006 7.46362 2.61715 7.95163 2.50257C7.58237 1.7234 7.04747 1.06346 6.40008 0.8619V2.71402ZM8.72552 2.27652C8.94271 2.19996 9.15052 2.11454 9.34843 2.02131C8.98437 1.71454 8.5776 1.45724 8.13855 1.25881C8.36771 1.56923 8.5625 1.91454 8.72552 2.27652Z\"})});p();Si();var t6n=Bf(li);p();var lse=he(De(),1);function vOe({className:t,connectWalletText:e,onClick:n,text:r}){return(0,lse.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockConnectButton\",className:ge(Ht.primary,mt.radius,Xe.headline,it.inverse,\"inline-flex min-w-[153px] items-center justify-center px-4 py-3\",t),onClick:n,children:e||(0,lse.jsx)(\"span\",{className:ge(it.inverse),children:r})})}p();var wOe=he(De(),1);function iV({children:t,className:e}){return(0,wOe.jsx)(\"span\",{className:ge(Xe.headline,it.inverse,e),children:t})}p();var Hi=he(De(),1);p();var GP=he(De(),1);var kOe=he(et(),1),_Oe=he(I0(),1);p();var xOe=he(De(),1),sV=he(et(),1);function B1({children:t,disableEscapeKey:e=!1,disableOutsideClick:n=!1,onDismiss:r,triggerRef:o,preventTriggerEvents:i=!1}){let a=(0,sV.useRef)(null);return(0,sV.useEffect)(()=>{if(n&&e)return;let c=m=>{i&&(m.preventDefault(),m.stopPropagation())},u=m=>{var g;return(g=a.current)==null?void 0:g.contains(m)},d=m=>{var g;if(n||!(m.target instanceof Node))return;let b=m.target;if((g=o?.current)!=null&&g.contains(b)){c(m);return}u(b)||r?.()},h=m=>{!e&&m.key===\"Escape\"&&r?.()};return document.addEventListener(\"pointerdown\",d,!0),document.addEventListener(\"keydown\",h),()=>{document.removeEventListener(\"pointerdown\",d,!0),document.removeEventListener(\"keydown\",h)}},[n,e,r,o,i]),(0,xOe.jsx)(\"div\",{\"data-testid\":\"ockDismissableLayer\",ref:a,children:t})}p();var SOe=he(De(),1),KP=he(et(),1),EOe=\\'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])\\';function D1({active:t=!0,children:e}){let n=(0,KP.useRef)(null),r=(0,KP.useRef)(null);(0,KP.useEffect)(()=>{if(t){if(r.current=document.activeElement,n.current){let c=n.current.querySelector(EOe);c?.focus()}return()=>{var c;(c=r.current)==null||c.focus()}}},[t]);let o=()=>{var c;return(c=n.current)==null?void 0:c.querySelectorAll(EOe)},i=(c,u)=>{let d=u[0],h=u[u.length-1],m=document.activeElement===d,g=document.activeElement===h;c.shiftKey&&m?(c.preventDefault(),h.focus()):!c.shiftKey&&g&&(c.preventDefault(),d.focus())};return(0,SOe.jsx)(\"div\",{\"data-testid\":\"ockFocusTrap\",onKeyDown:c=>{if(!t||c.key!==\"Tab\")return;let u=o();u?.length&&i(c,u)},ref:n,children:e})}function COe({children:t,isOpen:e,modal:n=!0,onClose:r,\"aria-label\":o,\"aria-labelledby\":i,\"aria-describedby\":a}){let c=ji(),u=(0,kOe.useRef)(null);if(!e)return null;let d=(0,GP.jsx)(\"div\",{className:ge(c,Nu.modal,\"fixed inset-0 flex items-center justify-center\",\"bg-black/50 transition-opacity duration-200\",\"fade-in animate-in duration-200\"),\"data-portal-origin\":\"true\",children:(0,GP.jsx)(D1,{active:e,children:(0,GP.jsx)(B1,{onDismiss:r,children:(0,GP.jsx)(\"div\",{\"aria-describedby\":a,\"aria-label\":o,\"aria-labelledby\":i,\"aria-modal\":n,className:\"zoom-in-95 animate-in duration-200\",\"data-testid\":\"ockDialog\",onClick:h=>h.stopPropagation(),onKeyDown:h=>{(h.key===\"Enter\"||h.key===\" \")&&h.stopPropagation()},ref:u,role:\"dialog\",children:t})})})});return(0,_Oe.createPortal)(d,document.body)}p();var ZP=he(De(),1);function xT({className:t=Kt.foreground}){return(0,ZP.jsxs)(\"svg\",{\"aria-label\":\"ock-closeSvg\",width:\"12\",height:\"12\",viewBox:\"0 0 16 16\",fill:\"currentColor\",xmlns:\"http://www.w3.org/2000/svg\",className:t,children:[(0,ZP.jsx)(\"title\",{children:\"Close\"}),(0,ZP.jsx)(\"path\",{d:\"M2.14921 1L1 2.1492L6.8508 8L1 13.8508L2.1492 15L8 9.1492L13.8508 15L15 13.8508L9.14921 8L15 2.1492L13.8508 1L8 6.8508L2.14921 1Z\"})]})}p();var ET=he(De(),1),aV=(0,ET.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 146 146\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",role:\"img\",\"aria-label\":\"Coinbase Wallet Logo\",children:[(0,ET.jsx)(\"title\",{children:\"Coinbase Wallet Logo\"}),(0,ET.jsx)(\"rect\",{width:\"146\",height:\"146\",fill:\"#0052FF\"}),(0,ET.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M21.9 73C21.9 102.053 45.1466 125.3 74.2 125.3C103.253 125.3 126.5 102.053 126.5 73C126.5 43.9466 103.253 20.7 74.2 20.7C45.1466 20.7 21.9 43.9466 21.9 73ZM60.5 54.75C58.5673 54.75 57 56.3173 57 58.25V87.75C57 89.6827 58.5673 91.25 60.5 91.25H87.9C89.8327 91.25 91.4 89.6827 91.4 87.75V58.25C91.4 56.3173 89.8327 54.75 87.9 54.75H60.5Z\",fill:\"white\"})]});p();var ST=he(De(),1),AOe=(0,ST.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 307.5 306\",xmlns:\"http://www.w3.org/2000/svg\",role:\"img\",\"aria-labelledby\":\"frameWallet\",children:[(0,ST.jsx)(\"title\",{id:\"frameWalletTitle\",children:\"Frame Wallet Logo\"}),(0,ST.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"#28272a\"}),(0,ST.jsx)(\"path\",{fill:\"#00d2be\",transform:\"translate(77, 76.5)\",d:\"M145.1,75.6V17.6c0-5.1-4.2-9.3-9.3-9.3h-58.1c-.6,0-1.1-.2-1.6-.6l-7-7c-.4-.4-1-.7-1.6-.7H9.3C4.2,0,0,4.1,0,9.3h0v58c0,.6.2,1.1.6,1.6l7,7c.4.4.7,1,.7,1.6v58c0,5.1,4.2,9.3,9.3,9.3h58.2c.6,0,1.1.2,1.6.6l7,7c.4.4,1,.6,1.6.6h58.2c5.1,0,9.3-4.1,9.3-9.3h0v-58c0-.6-.2-1.1-.6-1.6l-7-7c-.5-.4-.8-.9-.8-1.5ZM105.6,106.6h-57.7c-.7,0-1.3-.6-1.3-1.3v-57.6c0-.7.6-1.3,1.3-1.3h57.7c.7,0,1.3.6,1.3,1.3v57.6c.1.7-.5,1.3-1.3,1.3Z\"})]});p();var $c=he(De(),1),TOe=(0,$c.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",xmlSpace:\"preserve\",viewBox:\"0 0 204.8 192.4\",width:\"100%\",height:\"100%\",role:\"img\",\"aria-hidden\":\"true\",children:[(0,$c.jsx)(\"title\",{children:\"MetaMask Logo\"}),(0,$c.jsx)(\"style\",{children:\".st1{fill:#f5841f}.st2{fill:#e27625}.st3{fill:#d7c1b3}.st4{fill:#2f343b}.st5{fill:#cc6228}.st7{fill:#763e1a}\"}),(0,$c.jsx)(\"path\",{id:\"MM_Head_background__x28_Do_not_edit_x29_\",d:\"m167.4 96.1 6.9-8.1-3-2.2 4.8-4.4-3.7-2.8 4.8-3.6-3.1-2.4 5-24.4-7.6-22.6m0 0-48.8 18.1H82L33.2 25.6l.3.2-.3-.2-7.6 22.6 5.1 24.4-3.2 2.4 4.9 3.6-3.7 2.8 4.8 4.4-3 2.2 6.9 8.1-10.5 32.4 9.7 33.1 34.1-9.4v-.1.1l6.6 5.4 13.5 9.2h23.1l13.5-9.2 6.6-5.4 34.2 9.4 9.8-33.1-10.6-32.4m-96.7 56\",className:\"st1\"}),(0,$c.jsxs)(\"g\",{id:\"Logos\",children:[(0,$c.jsx)(\"path\",{d:\"m171.5 25.6-59.9 44.1 11.1-26zM33.2 25.6l59.4 44.5L82 43.7zM150 127.9l-16 24.2 34.2 9.4 9.8-33.1zM26.9 128.4l9.7 33.1 34.1-9.4-15.9-24.2z\",className:\"st2\"}),(0,$c.jsx)(\"path\",{d:\"m68.9 86.9-9.5 14.3 33.8 1.5-1.1-36.2zM135.9 86.9l-23.6-20.8-.7 36.6 33.8-1.5zM70.7 152.1l20.5-9.8-17.7-13.6zM113.6 142.3l20.4 9.8-2.8-23.4z\",className:\"st2\"}),(0,$c.jsx)(\"path\",{d:\"m134 152.1-20.4-9.8 1.7 13.2-.2 5.6zM70.7 152.1l19 9-.1-5.6 1.6-13.2z\",className:\"st3\"}),(0,$c.jsx)(\"path\",{d:\"M90 119.9 73.1 115l12-5.5zM114.7 119.9l5-10.4 12 5.5z\",className:\"st4\"}),(0,$c.jsx)(\"path\",{d:\"m70.7 152.1 3-24.2-18.9.5zM131.1 127.9l2.9 24.2 16-23.7zM145.4 101.2l-33.8 1.5 3.1 17.2 5-10.4 12 5.5zM73.1 115l12-5.5 4.9 10.4 3.2-17.2-33.8-1.5z\",className:\"st5\"}),(0,$c.jsx)(\"path\",{d:\"m59.4 101.2 14.1 27.5-.4-13.7zM131.7 115l-.5 13.7 14.2-27.5zM93.2 102.7 90 119.9l4 20.4.9-26.8zM111.6 102.7l-1.7 10.7.8 26.9 4-20.4z\",className:\"st2\"}),(0,$c.jsx)(\"path\",{d:\"m114.7 119.9-4 20.4 2.9 2 17.6-13.6.5-13.7zM73.1 115l.4 13.7 17.7 13.6 2.8-2-4-20.4z\",className:\"st1\"}),(0,$c.jsx)(\"path\",{d:\"m115.1 161.1.2-5.6-1.6-1.3H91l-1.4 1.3.1 5.6-19-9 6.6 5.4 13.5 9.3h23.1l13.5-9.3 6.6-5.4z\",style:{fill:\"#c0ad9e\"}}),(0,$c.jsx)(\"path\",{d:\"m113.6 142.3-2.9-2H94l-2.8 2-1.6 13.2 1.4-1.3h22.7l1.6 1.3z\",className:\"st4\"}),(0,$c.jsx)(\"path\",{d:\"m174.1 72.6 5-24.4-7.6-22.6-57.9 42.6 22.3 18.7 31.5 9.2 6.9-8.1-3-2.2 4.8-4.3-3.7-2.9 4.8-3.6zM25.6 48.2l5.1 24.4-3.2 2.4 4.8 3.7-3.7 2.8 4.8 4.3-3 2.2 7 8.1 31.5-9.2 22.3-18.7-58-42.6z\",className:\"st7\"}),(0,$c.jsx)(\"path\",{d:\"m167.4 96.1-31.5-9.2 9.5 14.3-14.2 27.5 18.8-.3h28zM68.9 86.9l-31.5 9.2-10.5 32.3h27.9l18.7.3-14.1-27.5zM111.6 102.7l2-34.5 9.1-24.5H82l9.2 24.5 2 34.5.8 10.8v26.8h16.7l.1-26.8z\",className:\"st1\"})]})]});p();var F1=he(De(),1),ROe=(0,F1.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 146 146\",width:\"100%\",height:\"100%\",role:\"img\",\"aria-label\":\"Phantom Logo\",children:[(0,F1.jsx)(\"title\",{children:\"Phantom Logo\"}),(0,F1.jsxs)(\"g\",{clipPath:\"url(#clip0_phantom)\",children:[(0,F1.jsx)(\"rect\",{width:\"146\",height:\"146\",rx:\"31.3\",fill:\"#AB9FF2\"}),(0,F1.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M62.92 94.85C57.19 103.66 47.58 114.75 34.79 114.75C28.76 114.75 22.95 112.28 22.95 101.45C22.95 73.97 60.51 31.37 95.38 31.37C115.19 31.37 123.11 45.13 123.11 60.77C123.11 80.81 110.11 103.74 97.15 103.74C93.05 103.74 91.06 101.45 91.06 97.91C91.06 96.98 91.21 95.98 91.52 94.85C87.11 102.41 78.57 109.41 70.6 109.41C64.75 109.41 61.83 105.85 61.83 100.63C61.83 98.77 62.22 96.82 62.92 94.85ZM110.03 60.23C110.03 64.75 107.36 67.03 104.37 67.03C101.31 67.03 98.65 64.75 98.65 60.23C98.65 55.66 101.31 53.38 104.37 53.38C107.36 53.38 110.03 55.66 110.03 60.23ZM92.96 60.23C92.96 64.75 90.29 67.03 87.3 67.03C84.24 67.03 81.58 64.75 81.58 60.23C81.58 55.66 84.24 53.38 87.3 53.38C90.29 53.38 92.96 55.66 92.96 60.23Z\",fill:\"#FFFDF8\"})]}),(0,F1.jsx)(\"defs\",{children:(0,F1.jsx)(\"clipPath\",{id:\"clip0_phantom\",children:(0,F1.jsx)(\"rect\",{width:\"146\",height:\"146\",fill:\"white\"})})})]});p();var U1=he(De(),1),IOe=(0,U1.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",role:\"img\",\"aria-label\":\"Rabby Wallet Logo\",children:[(0,U1.jsx)(\"title\",{children:\"Rabby Wallet Logo\"}),(0,U1.jsx)(\"rect\",{width:\"12\",height:\"12\",rx:\"3\",fill:\"#EBEDFB\"}),(0,U1.jsxs)(\"g\",{transform:\"translate(0, 0.5) scale(1.1)\",children:[(0,U1.jsx)(\"path\",{d:\"M9.5721 5.7499C9.8866 5.0840 8.1892 3.2154 6.6954 2.3823C5.7598 1.7563 4.7717 1.8401 4.5853 2.1245C4.1549 2.7226 6.0967 3.2520 7.3950 3.8558C7.1472 3.9764 6.8946 4.1838 6.7517 4.4371C6.2874 3.9280 5.2613 3.5014 4.1590 3.8558C3.4854 4.1008 2.7626 4.6852 2.5094 5.5135C2.4467 5.4869 2.3767 5.4710 2.2998 5.4710C2.0064 5.4710 1.7717 5.7096 1.7717 6.0073C1.7717 6.3050 2.0064 6.5436 2.2998 6.5436C2.3507 6.5436 2.5170 6.5076 2.5170 6.5076L4.7717 6.5245C3.9726 8.2040 3.2103 8.4080 3.2103 8.6630C3.2103 8.9180 3.9180 8.8361 4.2186 8.7263C5.7352 8.2146 7.0660 6.6879 7.2942 6.2246C8.3475 6.3688 9.2166 6.3847 9.5721 5.7499Z\",fill:\"#8697FF\"}),(0,U1.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M7.3944 3.8557C7.3945 3.8557 7.3946 3.8558 7.3947 3.8558C7.4548 3.8352 7.4461 3.7506 7.4322 3.6805C7.3994 3.5201 6.7746 2.9261 6.2170 2.6612C5.5215 2.2965 4.9374 2.3152 4.8514 2.4833C4.9937 2.8066 5.7640 3.1063 6.5395 3.4180C6.8882 3.5549 7.2351 3.6939 7.3944 3.8557C7.3944 3.8558 7.3944 3.8558 7.3944 3.8557Z\",fill:\"#8697FF\"}),(0,U1.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.2552 7.0712C6.0818 7.0112 5.8933 6.9557 5.6818 6.9061C5.9029 6.5393 5.9510 5.9690 5.7525 5.6028C5.4532 5.1042 5.0556 4.8282 4.2115 4.8282C3.7200 4.8282 2.4599 4.9821 2.4356 6.0102C2.4331 6.1179 2.4356 6.2153 2.4439 6.3080L4.7714 6.5241C4.4672 6.7734 4.1652 7.1284 3.9000 7.4078C4.2305 7.4836 4.4899 7.5487 4.6998 7.6068C4.8768 7.6612 5.0481 7.7126 5.2313 7.7649C5.5162 7.5397 5.8350 7.3024 6.2552 7.0712Z\",fill:\"#465EED\"}),(0,U1.jsx)(\"path\",{d:\"M2.3571 6.1987C2.4479 6.9744 2.9092 7.2696 3.8618 7.3599C4.8144 7.4503 5.3088 7.3884 5.9936 7.4515C6.5898 7.5047 7.0868 7.7870 7.2760 7.6875C7.4406 7.5982 7.3425 7.2733 7.1116 7.0716C6.8062 6.7917 6.4008 6.6022 5.6997 6.5353C5.8437 6.1454 5.8044 5.5937 5.6040 5.2915C5.3096 4.8564 4.7516 4.6586 3.9000 4.7439C3.2649 4.8316 2.6828 5.2346 2.3571 6.1987Z\",fill:\"#6277F1\"})]})]});p();var YP=he(De(),1);var OOe=(0,YP.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 2500 2500\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:ge(\"text-foreground\"),\"aria-labelledby\":\"trustWallet\",children:[(0,YP.jsx)(\"title\",{id:\"trustWalletTitle\",children:\"Trust Wallet Logo\"}),(0,YP.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M84.1,426.3C-1,593.5-1,812.7-1,1250c0,438.4,0,656.5,85.1,823.7c75.1,147.1,195.2,266.2,341.3,341.3   C592.5,2500,811.7,2500,1249,2500c438.4,0,656.5,0,823.7-85.1c147.1-75.1,266.2-195.2,341.3-341.3   c85.1-167.1,85.1-386.3,85.1-823.7c0-438.4,0-656.5-85.1-823.7c-75.1-147.1-195.2-266.2-341.3-341.3C1905.5,0,1686.3,0,1249,0   C810.6,0,592.5,0,425.3,85.1C278.2,160.1,159.1,280.2,84.1,426.3z M1874.5,674.5c22,0,43,9,58,24c15,16,24,37,23,58   c-4,233.2-13,411.3-30,552.4c-16,141.1-41,246.2-78.1,330.3c-25,57-56,104.1-92.1,143.1c-49,53-105.1,91.1-166.1,127.1   c-26,16-53,31-82.1,47c-61,34-127.1,72.1-203.2,123.1c-27,18-63.1,18-90.1,0c-77.1-51-144.1-89.1-205.2-124.1c-14-8-27-15-40-23   c-71.1-41-136.1-81.1-192.2-138.1c-38-38-70.1-83.1-96.1-138.1c-35-73.1-59-161.1-77.1-274.2c-23-152.1-35-351.3-39-627.5   c0-21,8-43,23-58s36-24,58-24h34c104.1,0,332.3-10,530.4-164.1c29-23,70.1-23,100.1,0c198.2,154.1,426.3,164.1,530.4,164.1h34   V674.5z M1692.4,1588.3c25-52,47-125.1,63.1-229.2c19-124.1,31-293.2,36-523.4c-122.1-4-331.3-27-531.4-161.1   c-200.2,134.1-409.3,157.1-530.4,161.1c4,190.2,13,338.3,27,454.4c16,132.1,38,221.2,66.1,284.2c18,42,39,72.1,63.1,98.1   c32,36,73.1,65.1,129.1,98.1c23,14,49,28,77.1,44c50,28,106.1,60,170.1,100.1c62-40,118.1-71.1,167.1-99.1c15-8,29-16,42-24   c69.1-39,120.1-72.1,157.1-111.1c25-26,46-55,65.1-94.1L1692.4,1588.3z\",fill:\"#3375BB\"})]});var wk=he(et(),1);p();function Kgt(t){var e,n,r,o;if(typeof window>\"u\")return!1;if(!window.ethereum)return t===\"phantom\"?!!((n=(e=window.phantom)==null?void 0:e.ethereum)!=null&&n.isPhantom):!1;switch(t){case\"phantom\":return!!((o=(r=window.phantom)==null?void 0:r.ethereum)!=null&&o.isPhantom)||!!window.ethereum.isPhantom;case\"rabby\":return!!window.ethereum.isRabby;case\"trust\":return!!window.ethereum.isTrust||!!window.ethereum.isTrustWallet;case\"frame\":return!!window.ethereum.isFrame;default:return!1}}var Ggt={phantom:\"https://phantom.app/download\",rabby:\"https://rabby.io\",trust:\"https://trustwallet.com/download\",frame:\"https://frame.sh\"};function Zgt(t){let e=Ggt[t];return e?(window.open(e,\"_blank\",\"noopener,noreferrer\"),!0):!1}function cV(t){let e=Kgt(t);return e||Zgt(t),e}function use({className:t,isOpen:e,onClose:n,onError:r}){var o,i,a,c,u,d;let{connect:h}=U9(),{config:m}=lo(),g=((o=m?.appearance)==null?void 0:o.logo)??void 0,b=((i=m?.appearance)==null?void 0:i.name)??void 0,E=((a=m?.wallet)==null?void 0:a.privacyUrl)??void 0,C=((c=m?.wallet)==null?void 0:c.termsUrl)??void 0,T=((u=m?.wallet)==null?void 0:u.supportedWallets)??{rabby:!1,trust:!1,frame:!1},R=((d=m?.wallet)==null?void 0:d.signUpEnabled)??!0,L=(0,wk.useCallback)(()=>{try{let Z=f1({preference:\"all\",appName:b,appLogoUrl:g});h({connector:Z}),n()}catch(Z){console.error(\"Coinbase Wallet connection error:\",Z),r&&r(Z instanceof Error?Z:new Error(\"Failed to connect wallet\"))}},[b,g,h,n,r]),D=(0,wk.useCallback)(()=>{try{let Z=KO({dappMetadata:{name:b||\"OnchainKit App\",url:window.location.origin,iconUrl:g}});h({connector:Z}),n()}catch(Z){console.error(\"MetaMask connection error:\",Z),r?.(Z instanceof Error?Z:new Error(\"Failed to connect wallet\"))}},[h,n,r,b,g]),G=(0,wk.useCallback)(()=>{try{if(!cV(\"phantom\")){n();return}let Z=em({target:\"phantom\"});h({connector:Z}),n()}catch(Z){console.error(\"Phantom connection error:\",Z),r?.(Z instanceof Error?Z:new Error(\"Failed to connect wallet\"))}},[h,n,r]),W=(0,wk.useCallback)(()=>{try{if(!cV(\"rabby\")){n();return}let Z=em({target:\"rabby\"});h({connector:Z}),n()}catch(Z){console.error(\"Rabby connection error:\",Z),r?.(Z instanceof Error?Z:new Error(\"Failed to connect wallet\"))}},[h,n,r]),J=(0,wk.useCallback)(()=>{try{if(!cV(\"trust\")){n();return}let Z=em({target:\"trust\"});h({connector:Z}),n()}catch(Z){console.error(\"Trust Wallet connection error:\",Z),r?.(Z instanceof Error?Z:new Error(\"Failed to connect wallet\")),n()}},[h,n,r]),ne=(0,wk.useCallback)(()=>{var Z;try{if(!((Z=window.ethereum)!=null&&Z.isFrame)){window.open(\"https://frame.sh/download\",\"_blank\"),n();return}let ae=em();h({connector:ae}),n()}catch(ae){console.error(\"Frame Wallet connection error:\",ae),r?.(ae instanceof Error?ae:new Error(\"Failed to connect wallet\")),n()}},[h,n,r]),ie=[{id:\"coinbase\",name:\"Coinbase Wallet\",icon:aV,connector:L,enabled:!0},{id:\"metamask\",name:\"MetaMask\",icon:TOe,connector:D,enabled:!0},{id:\"phantom\",name:\"Phantom\",icon:ROe,connector:G,enabled:!0},{id:\"rabby\",name:\"Rabby\",icon:IOe,connector:W,enabled:T.rabby===!0},{id:\"trust\",name:\"Trust Wallet\",icon:OOe,connector:J,enabled:T.trust===!0},{id:\"frame\",name:\"Frame\",icon:AOe,connector:ne,enabled:T.frame===!0}].filter(Z=>Z.enabled);return(0,Hi.jsx)(COe,{isOpen:e,onClose:n,\"aria-label\":\"Connect Wallet\",children:(0,Hi.jsxs)(\"div\",{\"data-testid\":\"ockModalOverlay\",className:ge(mt.lineDefault,mt.radius,dn.default,\"w-[22rem] p-6 pb-4\",\"relative flex flex-col items-center gap-4\",t),children:[(0,Hi.jsx)(\"button\",{type:\"button\",onClick:n,className:ge(Ht.default,mt.radius,mt.default,\"absolute top-4 right-4\",\"flex items-center justify-center p-1\",\"transition-colors duration-200\"),\"aria-label\":\"Close modal\",children:(0,Hi.jsx)(\"div\",{className:ge(\"flex h-4 w-4 items-center justify-center\"),children:(0,Hi.jsx)(xT,{})})}),(g||b)&&(0,Hi.jsxs)(\"div\",{className:\"flex w-full flex-col items-center gap-2 py-3\",children:[g&&(0,Hi.jsx)(\"div\",{className:ge(mt.radius,\"h-14 w-14 overflow-hidden\"),children:(0,Hi.jsx)(\"img\",{src:g,alt:`${b||\"App\"} icon`,className:\"h-full w-full object-cover\"})}),b&&(0,Hi.jsx)(\"h2\",{className:ge(Xe.headline,it.foreground,\"text-center\"),children:b})]}),(0,Hi.jsxs)(\"div\",{className:\"flex w-full flex-col gap-3\",children:[R&&(0,Hi.jsxs)(\"button\",{type:\"button\",onClick:L,className:ge(mt.radius,Xe.body,Ht.alternate,it.foreground,\"flex items-center justify-between px-4 py-3 text-left\"),children:[\"Sign up\",(0,Hi.jsx)(\"div\",{className:\"h-4 w-4\",children:UW})]}),(0,Hi.jsxs)(\"div\",{className:\"relative\",children:[R&&(0,Hi.jsx)(\"div\",{className:\"absolute inset-0 flex items-center\",children:(0,Hi.jsx)(\"div\",{className:ge(mt.lineDefault,\"w-full border-[0.5px]\")})}),(0,Hi.jsx)(\"div\",{className:\"relative flex justify-center\",children:(0,Hi.jsx)(\"span\",{className:ge(dn.default,it.foregroundMuted,Xe.legal,\"px-2\"),children:R?\"or continue with an existing wallet\":\"Connect your wallet\"})})]}),ie.map(Z=>(0,Hi.jsxs)(\"button\",{type:\"button\",onClick:Z.connector,className:ge(mt.radius,dn.default,Xe.body,Ht.alternate,it.foreground,\"flex items-center justify-between px-4 py-3 text-left\"),children:[Z.name,(0,Hi.jsx)(\"div\",{className:\"-mr-0.5 flex h-4 w-4 items-center justify-center\",children:Z.icon})]},Z.id))]}),(0,Hi.jsxs)(\"div\",{className:ge(it.foregroundMuted,Xe.legal,\"flex flex-col items-center justify-center gap-1 px-4\",\"mt-4 text-center\"),children:[(0,Hi.jsx)(\"span\",{className:\"font-normal text-[10px] leading-[13px]\",children:\"By connecting a wallet, you agree to our\"}),(0,Hi.jsxs)(\"span\",{className:\"font-normal text-[10px] leading-[13px]\",children:[C&&(0,Hi.jsx)(\"a\",{href:C,className:ge(it.primary,\"hover:underline\"),target:\"_blank\",rel:\"noopener noreferrer\",tabIndex:0,children:\"Terms of Service\"}),\" \",C&&E&&\"and\",\" \",E&&(0,Hi.jsx)(\"a\",{href:E,className:ge(it.primary,\"hover:underline\"),target:\"_blank\",rel:\"noopener noreferrer\",tabIndex:0,children:\"Privacy Policy\"}),\".\"]})]})]})})}p();var UOe=he(De(),1);p();var lV=he(et(),1),Ygt={sm:\"(max-width: 640px)\",md:\"(min-width: 641px) and (max-width: 768px)\",lg:\"(min-width: 769px) and (max-width: 1023px)\",xl:\"(min-width: 1024px) and (max-width: 1279px)\",\"2xl\":\"(min-width: 1280px)\"};function uV(){let[t,e]=(0,lV.useState)(void 0);return(0,lV.useEffect)(()=>{let n=()=>{let o=Object.entries(Ygt);for(let[i,a]of o)if(window.matchMedia(a).matches)return i;return\"md\"};e(n());let r=()=>{e(n())};return window.addEventListener(\"resize\",r),()=>window.removeEventListener(\"resize\",r)},[]),t}var ma=he(et(),1);p();function POe(t,e){return t?{container:e?\"fade-out slide-out-to-bottom-1.5 animate-out fill-mode-forwards ease-in-out\":\"fade-out slide-out-to-top-1.5 animate-out fill-mode-forwards ease-in-out\",content:\"\"}:{container:e?\"fade-in slide-in-from-bottom-1.5 animate-in duration-300 ease-out\":\"fade-in slide-in-from-top-1.5 animate-in duration-300 ease-out\",content:e?\"fade-in slide-in-from-bottom-2.5 animate-in fill-mode-forwards duration-300 ease-out\":\"fade-in slide-in-from-top-2.5 animate-in fill-mode-forwards duration-300 ease-out\"}}p();p();p();Si();var MOe={name:\"ETH\",address:\"\",symbol:\"ETH\",decimals:18,image:\"https://wallet-api-production.s3.amazonaws.com/uploads/tokens/eth_288.png\",chainId:Yn.id},sSn={name:\"ETH\",address:\"\",symbol:\"ETH\",decimals:18,image:\"https://wallet-api-production.s3.amazonaws.com/uploads/tokens/eth_288.png\",chainId:xs.id},NOe={name:\"USDC\",address:\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",symbol:\"USDC\",decimals:6,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/44/2b/442b80bd16af0c0d9b22e03a16753823fe826e5bfd457292b55fa0ba8c1ba213-ZWUzYjJmZGUtMDYxNy00NDcyLTg0NjQtMWI4OGEwYjBiODE2\",chainId:Yn.id},aSn={name:\"USDC\",address:\"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",symbol:\"USDC\",decimals:6,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/44/2b/442b80bd16af0c0d9b22e03a16753823fe826e5bfd457292b55fa0ba8c1ba213-ZWUzYjJmZGUtMDYxNy00NDcyLTg0NjQtMWI4OGEwYjBiODE2\",chainId:xs.id},cSn={name:\"DEGEN\",address:\"0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed\",symbol:\"DEGEN\",decimals:18,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/3b/bf/3bbf118b5e6dc2f9e7fc607a6e7526647b4ba8f0bea87125f971446d57b296d2-MDNmNjY0MmEtNGFiZi00N2I0LWIwMTItMDUyMzg2ZDZhMWNm\",chainId:Yn.id},lSn={name:\"DAI\",address:\"0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb\",symbol:\"DAI\",decimals:18,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/92/13/9213e31b84c98a693f4c624580fdbe6e4c1cb550efbba15aa9ea68fd25ffb90c-ZTE1NmNjMGUtZGVkYi00ZDliLWI2N2QtNTY2ZWRjMmYwZmMw\",chainId:Yn.id},uSn={name:\"WETH\",address:\"0x4200000000000000000000000000000000000006\",symbol:\"WETH\",decimals:18,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/47/bc/47bc3593c2dec7c846b66b7ba5f6fa6bd69ec34f8ebb931f2a43072e5aaac7a8-YmUwNmRjZDUtMjczYy00NDFiLWJhZDUtMzgwNjFmYWM0Njkx\",chainId:Yn.id},dSn={name:\"LBTC\",address:\"0xecAc9C5F704e954931349Da37F60E39f515c11c1\",symbol:\"LBTC\",decimals:8,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/a3/40/a340085995bc54eddbcb66bab87833a7089edd1513847c39fc1799cab9207db4-Zjk2YzQ2MmQtMTY2OS00YWQyLWFkMGQtMjQ3OGYzNzljMWY2\",chainId:Yn.id},fSn={name:\"cbBTC\",address:\"0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\",symbol:\"cbBTC\",decimals:8,image:\"https://go.wallet.coinbase.com/static/CBBTCMedium.png\",chainId:Yn.id},hSn={name:\"eUSD\",address:\"0xCfA3Ef56d303AE4fAabA0592388F19d7C3399FB4\",symbol:\"eUSD\",decimals:18,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/bf/a4/bfa445583916854508ae5d88f9cca19cd5a0910d8c4d7cd9385eb40a597017d7-MDFhM2E0YmQtZGU3NS00Yzk3LWFlMzAtMzA1Y2UyYzU2ZGEy\",chainId:Yn.id},pSn={name:\"EURC\",address:\"0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42\",symbol:\"EURC\",decimals:6,image:\"https://d3r81g40ycuhqg.cloudfront.net/wallet/wais/54/f4/54f4216472dd25b1ffb5caf32cc0d81f645c84be166cd713f759a80f05a1418f-M2YxNTczYTItNjk3YS00N2FiLThkZjktYzBiYzExZTk1ZTFj\",chainId:Yn.id};var LOe=400,BOe=352,DOe=[MOe,NOe];function FOe(t){if(typeof window>\"u\")return{showAbove:!1,alignRight:!1};let e=window.innerHeight-t.bottom,n=window.innerWidth-t.left;return{showAbove:e<LOe,alignRight:n<BOe}}var Qgt={},jOe=(0,ma.createContext)(Qgt);function dse({children:t,isSponsored:e}){let{chain:n}=lo(),[r,o]=(0,ma.useState)(!1),[i,a]=(0,ma.useState)(!1),[c,u]=(0,ma.useState)(!1),[d,h]=(0,ma.useState)(!1),[m,g]=(0,ma.useState)(!1),b=(0,ma.useRef)(null),{address:E}=Jn(),C=uV(),[T,R]=(0,ma.useState)(null),[L,D]=(0,ma.useState)(!1),G=(0,ma.useMemo)(()=>POe(c,d),[c,d]),W=(0,ma.useCallback)(()=>{i&&u(!0)},[i]);(0,ma.useEffect)(()=>{if(i&&b?.current){let ne=b.current.getBoundingClientRect(),ie=FOe(ne);h(ie.showAbove),g(ie.alignRight)}},[i]);let J=(0,ma.useMemo)(()=>({address:E,chain:n,breakpoint:C,isConnectModalOpen:r,setIsConnectModalOpen:o,isSubComponentOpen:i,setIsSubComponentOpen:a,isSubComponentClosing:c,setIsSubComponentClosing:u,handleClose:W,connectRef:b,showSubComponentAbove:d,alignSubComponentRight:m,activeFeature:T,setActiveFeature:R,isActiveFeatureClosing:L,setIsActiveFeatureClosing:D,animations:G,isSponsored:e}),[E,n,C,r,i,c,W,d,m,T,L,G,e]);return(0,UOe.jsx)(jOe.Provider,{value:J,children:t})}function Ko(){return(0,ma.useContext)(jOe)}var Jgt=(0,Pl.jsxs)(Pl.Fragment,{children:[(0,Pl.jsx)(Ld,{className:\"h-6 w-6\"}),(0,Pl.jsx)(Df,{})]});function Eg({children:t,className:e,text:n=\"Connect Wallet\",onConnect:r,disconnectedLabel:o}){var i,a;let{config:c={wallet:{display:void 0}}}=lo(),{setIsConnectModalOpen:u,isSubComponentOpen:d,setIsSubComponentOpen:h,handleClose:m}=Ko(),{address:g,status:b,connector:E}=Jn(),{connectors:C,connect:T,status:R}=U9(),{sendAnalytics:L}=zi(),[D,G]=(0,Ks.useState)(!1),[W,J]=(0,Ks.useState)(!1),{connectWalletText:ne}=(0,Ks.useMemo)(()=>({connectWalletText:Ks.Children.toArray(t).find(Nd(iV))}),[t]),ie=(0,Ks.useMemo)(()=>Ks.Children.map(t,B=>(0,Ks.isValidElement)(B)&&B.type===iV?null:B),[t]),Z=E||C[0],ae=R===\"pending\"||b===\"connecting\",V=(0,Ks.useCallback)(()=>{d?m?.():h(!0)},[d,m,h]),$=(0,Ks.useCallback)(()=>{J(!1),u?.(!1)},[u]),F=(0,Ks.useCallback)(()=>{J(!0),u?.(!0),G(!0)},[u]),_=(0,Ks.useCallback)(B=>{L(N1.ConnectInitiated,{component:B})},[L]),O=(0,Ks.useCallback)(B=>{let j=Z?.name;L(N1.ConnectSuccess,{address:B??\"\",walletProvider:j})},[L,Z]),z=(0,Ks.useCallback)((B,j)=>{let q=Z?.name;L(N1.ConnectError,{error:B,metadata:{connector:q,component:j}})},[L,Z]);(0,Ks.useEffect)(()=>{D&&b===\"connected\"&&r&&(r(),G(!1))},[b,D,r]),(0,Ks.useEffect)(()=>{b===\"connected\"&&g&&Z&&O(g)},[b,g,Z,O]);let N=(0,Ks.useCallback)(()=>{var B;if(((B=c?.wallet)==null?void 0:B.display)===\"modal\"){F(),G(!0),_(\"WalletModal\");return}_(\"ConnectWallet\"),T({connector:Z},{onSuccess:()=>{r?.(),O(g)},onError:j=>{z(j.message,\"ConnectWallet\")}})},[(i=c?.wallet)==null?void 0:i.display,g,T,Z,z,_,O,F,r]);return b===\"disconnected\"?(0,Pl.jsxs)(\"div\",{className:\"flex\",\"data-testid\":\"ockConnectWallet_Container\",children:[(0,Pl.jsx)(vOe,{className:e,connectWalletText:ne||o,onClick:N,text:n}),((a=c?.wallet)==null?void 0:a.display)===\"modal\"&&(0,Pl.jsx)(use,{isOpen:W,onClose:$})]}):ae?(0,Pl.jsx)(\"div\",{className:\"flex\",\"data-testid\":\"ockConnectWallet_Container\",children:(0,Pl.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockConnectAccountButtonInner\",className:ge(Ht.primary,Xe.headline,it.inverse,\"inline-flex min-w-[153px] items-center justify-center rounded-xl px-4 py-3\",Ht.disabled,e),disabled:!0,children:(0,Pl.jsx)(jh,{})})}):(0,Pl.jsx)(IW,{address:g,children:(0,Pl.jsx)(\"div\",{className:\"flex gap-4\",\"data-testid\":\"ockConnectWallet_Container\",children:(0,Pl.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockConnectWallet_Connected\",className:ge(Ht.secondary,mt.radius,it.foreground,\"px-4 py-3\",d&&\"ock-bg-secondary-active hover:ock-bg-secondary-active\",e),onClick:V,children:(0,Pl.jsx)(\"div\",{className:\"flex items-center justify-center gap-2\",children:ie||Jgt})})})})}p();var VOe=he(et(),1);p();p();var zOe=he(et(),1);p();function kT({chainId:t}){let{isConnected:e}=Jn(),{data:n,error:r}=eJ({query:{enabled:e}});return(0,zOe.useMemo)(()=>r||!n||!n[t]?{}:n[t],[n,t,r])}var Xgt=\"coinbaseWalletSDK\";function HOe(){var t;let{chain:e}=lo(),{connector:n}=Jn(),r=kT({chainId:e.id});return n?.id===Xgt&&((t=r.atomicBatch)==null?void 0:t.supported)===!0}p();var eyt=\"https://keys.coinbase.com/fund\";function fse(){let t=window.location.href,e=document.title;return`${eyt}?dappName=${encodeURIComponent(e)}&dappUrl=${encodeURIComponent(t)}&version=${encodeURIComponent(C3)}&source=onchainkit`}p();p();var QP=\"https://pay.coinbase.com\",dV=`${QP}/buy`,qOe=720,WOe=460,_T=\"https://api.developer.coinbase.com/onramp/v1\",hse=3e3;function xk({projectId:t,originComponentName:e,...n}){let r=new URL(dV);t!==void 0&&r.searchParams.append(\"appId\",t);for(let o of Object.keys(n)){let i=n[o];i!==void 0&&([\"string\",\"number\",\"boolean\"].includes(typeof i)?r.searchParams.append(o,i.toString()):r.searchParams.append(o,JSON.stringify(i)))}return e?r.searchParams.append(\"sdkVersion\",`onchainkit@${C3}:${e}`):r.searchParams.append(\"sdkVersion\",`onchainkit@${C3}`),r.searchParams.sort(),r.toString()}function pse({fiatCurrency:t,originComponentName:e}){let{projectId:n,chain:r}=lo(),{address:o,chain:i}=Jn(),a=HOe(),c=i||r;return(0,VOe.useMemo)(()=>{if(a)return fse();if(!(n===null||o===void 0))return xk({projectId:n,addresses:{[o]:[c.name.toLowerCase()]},fiatCurrency:t,originComponentName:e})},[a,n,o,c,t,e])}p();p();var tyt={sm:{width:\"24.67vw\",height:\"30.83vw\"},md:{width:\"29vw\",height:\"36.25vw\"},lg:{width:\"35vw\",height:\"43.75vw\"}},$Oe=t=>{let{width:e,height:n}=tyt[t],r=280,o=350,i=g=>g/100*window.innerWidth,a=Math.max(r,Math.round(i(Number.parseFloat(e)))),c=Math.max(o,Math.round(i(Number.parseFloat(n)))),u=Math.round(window.innerWidth*.9),d=Math.round(window.innerHeight*.9),h=Math.min(a,u),m=Math.min(c,d);return{width:h,height:m}};function mse(t,e){return e?.includes(dV)?{height:qOe,width:WOe}:$Oe(t)}function JP({className:t,disabled:e=!1,fundingUrl:n,hideIcon:r=!1,hideText:o=!1,openIn:i=\"popup\",popupSize:a=\"md\",rel:c,target:u,text:d=\"Fund\",successText:h=\"Success\",errorText:m=\"Something went wrong\",state:g=\"default\",fiatCurrency:b=\"USD\",onPopupClose:E,onClick:C}){let T=ji(),R=pse({fiatCurrency:b,originComponentName:\"FundButton\"}),{address:L}=Jn(),D=n??R,G=e||!D,W=!L,{startPopupMonitor:J}=Z9e(E),{sendAnalytics:ne}=zi(),ie=(0,u2.useCallback)(()=>{ne(Pu.FundInitiated,{currency:b})},[ne,b]),Z=(0,u2.useCallback)(z=>{ne(Pu.FundFailure,{error:z,metadata:{currency:b}})},[ne,b]),ae=(0,u2.useCallback)(z=>{if(z.preventDefault(),D){ie(),C?.();let{height:N,width:B}=mse(a,D),j=Iie({url:D,height:N,width:B,target:u});j?J(j):Z(\"Failed to open funding popup\")}},[D,a,u,C,J,ie,Z]),V=(0,u2.useMemo)(()=>g===\"error\"?dn.error:Ht.primary,[g]),$=ge(T,V,\"px-4 py-3 inline-flex items-center justify-center space-x-2\",{[Ht.disabled]:G},Xe.headline,mt.radius,it.inverse,t),F=(0,u2.useMemo)(()=>{if(r)return null;switch(g){case\"loading\":return\"\";case\"success\":return(0,Ff.jsx)(nT,{fill:\"#F9FAFB\"});case\"error\":return(0,Ff.jsx)(TW,{fill:\"#F9FAFB\"});default:return(0,Ff.jsx)(Y9e,{})}},[g,r]),_=(0,u2.useMemo)(()=>{switch(g){case\"loading\":return\"\";case\"success\":return h;case\"error\":return m;default:return d}},[g,h,m,d]),O=(0,u2.useMemo)(()=>g===\"loading\"?(0,Ff.jsx)(jh,{}):(0,Ff.jsxs)(Ff.Fragment,{children:[F&&(0,Ff.jsx)(\"span\",{\"data-testid\":\"ockFundButtonIcon\",className:\"flex h-6 items-center\",children:F}),o||(0,Ff.jsx)(\"span\",{\"data-testid\":\"ockFundButtonTextContent\",children:_})]}),[g,F,_,o]);return i===\"tab\"?(0,Ff.jsx)(\"a\",{className:$,href:D,target:u??\"_blank\",rel:c,children:O}):W?(0,Ff.jsx)(Eg,{className:ge(\"w-full\",t)}):(0,Ff.jsx)(\"button\",{className:$,onClick:ae,type:\"button\",disabled:G,\"data-testid\":\"ockFundButton\",children:O})}p();var Bu=he(De(),1);p();var TT=he(et(),1);p();var YOe=he(De(),1),Gs=he(et(),1);p();p();var fV=he(et(),1);function CT(t){let[e,n]=(0,fV.useState)(t),r=(0,fV.useCallback)(o=>{n(i=>{let a=i.statusName===\"error\"?(({error:c,code:u,message:d,...h})=>h)(i.statusData):i.statusData;return{statusName:o.statusName,statusData:{...a,...o.statusData}}})},[]);return[e,r]}var hV=he(et(),1),KOe=({onError:t,onSuccess:e,onStatus:n})=>{let[r,o]=CT({statusName:\"init\",statusData:null});return(0,hV.useEffect)(()=>{r.statusName===\"error\"&&t?.(r.statusData),r.statusName===\"transactionSuccess\"&&e?.(r.statusData),n?.(r)},[t,n,e,r,r.statusData,r.statusName]),(0,hV.useMemo)(()=>({lifecycleStatus:r,updateLifecycleStatus:o}),[r,o])};p();var pV=he(et(),1);p();p();function L3(t){return typeof t==\"string\"?t:Array.isArray(t)?t.map(e=>L3(e)):t&&t.constructor===Object?Object.keys(t).reduce((e,n)=>{let r=nyt(n);return e[r]=L3(t[n]),e},{}):t}function nyt(t){return t.replace(/_([a-z])/g,(e,n)=>n.toUpperCase())}p();var AT=()=>{if(!bh.apiKey)throw new Error(\"API Key Unset: Please set the API Key by providing it in the `OnchainKitProvider` or by manually calling `setOnchainKitConfig`. For more information, visit: https://portal.cdp.coinbase.com/products/onchainkit\");return bh.apiKey};async function gse({purchaseCurrency:t,purchaseNetwork:e,paymentCurrency:n,paymentMethod:r,paymentAmount:o,country:i,subdivision:a,apiKey:c}){let u=c||AT(),h=await(await fetch(`${_T}/buy/quote`,{method:\"POST\",body:JSON.stringify({purchase_currency:t,purchase_network:e,payment_currency:n,payment_method:r,payment_amount:o,country:i,subdivision:a}),headers:{Authorization:`Bearer ${u}`}})).json();return L3(h)}var mV=({asset:t,currency:e,country:n,subdivision:r,setExchangeRate:o,onError:i})=>{let a=(0,pV.useCallback)(async()=>{try{let c=await gse({purchaseCurrency:t,paymentCurrency:e,paymentAmount:\"100\",paymentMethod:\"CARD\",country:n,subdivision:r});o(Number(c.purchaseAmount.value)/Number(c.paymentSubtotal.value))}catch(c){c instanceof Error?(console.error(\"Error fetching exchange rate:\",c),i?.({errorType:\"handled_error\",code:\"EXCHANGE_RATE_ERROR\",debugMessage:c.message})):(console.error(\"Unknown error fetching exchange rate:\",c),i?.({errorType:\"unknown_error\",code:\"EXCHANGE_RATE_ERROR\",debugMessage:JSON.stringify(c)}))}},[t,n,r,e,i,o]);return(0,pV.useMemo)(()=>({fetchExchangeRate:a}),[a])};p();var gV=he(et(),1);p();var ryt=t=>[t.some(n=>n.id===\"ACH_BANK_ACCOUNT\")&&\"ACH\",t.some(n=>n.id===\"CARD\")&&\"debit\",\"cash\",\"crypto balance\"].filter(Boolean).join(\", \"),oyt=({limits:t})=>({id:\"\",name:\"Coinbase\",description:ryt(t),icon:\"coinbaseLogo\",minAmount:Math.min(...t.map(e=>Number(e.min))),maxAmount:Math.max(...t.map(e=>Number(e.max)))}),iyt=t=>[{id:\"APPLE_PAY\",name:\"Apple Pay\",icon:\"apple\"},{id:\"CARD\",name:\"Debit card\",icon:\"creditCard\"}].map(n=>{let r=t.limits.find(o=>o.id===n.id);return{...n,description:\"Up to $500/week. No sign up required.\",minAmount:Number(r?.min)||2,maxAmount:Number(r?.max)||500}}),GOe=(t,e,n)=>{let r=t.paymentCurrencies.find(a=>a.id===e);if(!r)return[];let o=oyt(r),i=[];return n===\"US\"&&e===\"USD\"&&(i=iyt(r)),[o,...i]};p();async function yse({country:t,subdivision:e,apiKey:n}){let r=n||AT(),o=`?country=${t}`;e&&(o=`${o}&subdivision=${e}`);let a=await(await fetch(`${_T}/buy/options${o}`,{method:\"GET\",headers:{Authorization:`Bearer ${r}`}})).json();return L3(a)}var ZOe=({country:t,subdivision:e,currency:n,setPaymentMethods:r,setIsPaymentMethodsLoading:o,onError:i})=>{let a=(0,gV.useCallback)(async()=>{o(!0);try{let c=await yse({country:t,subdivision:e}),u=GOe(c,n,t);u.length===0&&(console.error(\"No payment methods found for the selected country and currency. See docs for more information: https://docs.cdp.coinbase.com/onramp/docs/api-configurations\"),i?.({errorType:\"handled_error\",code:\"NO_PAYMENT_METHODS\",debugMessage:\"No payment methods found for the selected country and currency. See docs for more information: https://docs.cdp.coinbase.com/onramp/docs/api-configurations\"})),r(u)}catch(c){c instanceof Error&&(console.error(\"Error fetching payment options:\",c),i?.({errorType:\"handled_error\",code:\"PAYMENT_METHODS_ERROR\",debugMessage:c.message}))}finally{o(!1)}},[t,e,n,r,o,i]);(0,gV.useEffect)(()=>{a()},[])};var QOe=(0,Gs.createContext)(void 0);function bse({children:t,asset:e,currency:n=\"USD\",headerText:r=`Buy ${e.toUpperCase()}`,buttonText:o,country:i,subdivision:a,inputType:c,onError:u,onStatus:d,onSuccess:h,presetAmountInputs:m}){let[g,b]=(0,Gs.useState)(),[E,C]=(0,Gs.useState)(c||\"fiat\"),[T,R]=(0,Gs.useState)(\"\"),[L,D]=(0,Gs.useState)(\"\"),[G,W]=(0,Gs.useState)(0),[J,ne]=(0,Gs.useState)(!0),[ie,Z]=(0,Gs.useState)(\"default\"),[ae,V]=(0,Gs.useState)([]),[$,F]=(0,Gs.useState)(!0),{lifecycleStatus:_,updateLifecycleStatus:O}=KOe({onError:u,onSuccess:h,onStatus:d}),{fetchExchangeRate:z}=mV({asset:e,currency:n,country:i,subdivision:a,setExchangeRate:W,onError:u}),{sendAnalytics:N}=zi(),B=(0,Gs.useCallback)((X,ee)=>{N(Pu.FundAmountChanged,{amount:X,currency:ee})},[N]),j=(0,Gs.useCallback)(X=>{N(Pu.FundOptionSelected,{option:X})},[N]),q=(0,Gs.useCallback)(X=>{let ee=Number.parseFloat(X);Number.isNaN(ee)||B(ee,n),R(X)},[n,B]),H=(0,Gs.useCallback)(X=>{j(X.id),b(X)},[j]),I=(0,Gs.useCallback)(async()=>{ne(!0),await z(),ne(!1)},[z]);(0,Gs.useEffect)(()=>{I()},[]),ZOe({country:i,subdivision:a,currency:n,setPaymentMethods:V,setIsPaymentMethodsLoading:F,onError:u});let U=Vc({asset:e,currency:n,selectedPaymentMethod:g,setSelectedPaymentMethod:H,fundAmountFiat:T,setFundAmountFiat:q,fundAmountCrypto:L,setFundAmountCrypto:D,selectedInputType:E,setSelectedInputType:C,exchangeRate:G,setExchangeRate:W,exchangeRateLoading:J,setExchangeRateLoading:ne,submitButtonState:ie,setSubmitButtonState:Z,paymentMethods:ae,setPaymentMethods:V,isPaymentMethodsLoading:$,setIsPaymentMethodsLoading:F,headerText:r,buttonText:o,country:i,subdivision:a,lifecycleStatus:_,updateLifecycleStatus:O,presetAmountInputs:m,onError:u});return(0,YOe.jsx)(QOe.Provider,{value:U,children:t})}function Ml(){let t=(0,Gs.useContext)(QOe);if(!t)throw new Error(\"useFundContext must be used within a FundCardProvider\");return t}p();p();function JOe({onMessage:t,allowedOrigin:e=QP,onValidateOrigin:n=()=>Promise.resolve(!0)}){let r=o=>{if(!syt({event:o,allowedOrigin:e}))return;let{eventName:i,data:a}=JSON.parse(o.data);i===\"event\"&&(async()=>await n(o.origin)&&t(a))()};return window.addEventListener(\"message\",r),()=>{window.removeEventListener(\"message\",r)}}function syt({event:t,allowedOrigin:e}){return!e||t.origin===e}function vse({onEvent:t,onExit:e,onSuccess:n,host:r=QP}){return JOe({allowedOrigin:r,onMessage:i=>{let a=i;a.eventName===\"success\"&&n?.(a.data),a.eventName===\"exit\"&&e?.(a.error),t?.(a)}})}var XOe=()=>{let{setSubmitButtonState:t,updateLifecycleStatus:e}=Ml(),n=(0,TT.useCallback)(i=>{i.eventName===\"transition_view\"?e({statusName:\"transactionPending\",statusData:void 0}):i.eventName===\"error\"&&(e({statusName:\"error\",statusData:i.error}),t(\"error\"),setTimeout(()=>{t(\"default\")},hse))},[e,t]),r=(0,TT.useCallback)(i=>{e({statusName:\"transactionSuccess\",statusData:i}),t(\"success\"),setTimeout(()=>{t(\"default\")},hse)},[e,t]),o=(0,TT.useCallback)(()=>{t(\"default\"),e({statusName:\"exit\",statusData:void 0})},[e,t]);(0,TT.useEffect)(()=>{let i=vse({onEvent:n,onExit:o,onSuccess:r});return()=>{i()}},[])};p();var sPe=he(De(),1);p();var j1=he(De(),1);p();var yV=he(et(),1),ayt={baseFontSize:3.75,minScale:.01};function ePe(t,e,n,r,o,i={}){let{baseFontSize:a,minScale:c}={...ayt,...i},u=(0,yV.useCallback)(()=>{let d=t.current,h=e.current,m=n.current,g=r.current,b=o.current;if(!d||!h||!m||!g||!b)return;g.style.fontSize=`${a}rem`,m.style.fontSize=`${a}rem`;let E=g.clientWidth,C=d.clientWidth-b.clientWidth;if(m.style.width=`${E}px`,E>C){let T=C/E,R=Math.max(T,c);h.style.transform=`scale(${R})`,h.style.transformOrigin=\"left center\"}else h.style.transform=\"scale(1)\"},[a,c,t,e,n,r,o]);return(0,yV.useEffect)(()=>{let d=t.current;if(!d)return;let h=new ResizeObserver(u);return h.observe(d),()=>{h.disconnect()}},[t,u]),u}var Om=he(et(),1);p();p();var Sg=(t,e)=>{let n=String(t),r=n.indexOf(\".\"),o=n;return r!==-1&&n.length-r-1>e&&(o=n.substring(0,r+e+1)),o};var RT=he(et(),1),bV=({setFiatAmount:t,setCryptoAmount:e,selectedInputType:n,exchangeRate:r})=>{let o=(0,RT.useCallback)(c=>{let u=Sg(c,2);t(u);let d=String(Number(u)*Number(r)),h=Sg(d,8);e(d===\"0\"?\"\":h)},[r,t,e]),i=(0,RT.useCallback)(c=>{let u=Sg(c,8);e(u);let d=String(Number(u)/Number(r)),h=Sg(d,2);t(h===\"0\"?\"\":h)},[r,t,e]),a=(0,RT.useCallback)((c,u)=>{n===\"fiat\"?o(c):i(c),u?.(c)},[o,i,n]);return(0,RT.useMemo)(()=>({handleChange:a,handleFiatChange:o,handleCryptoChange:i}),[a,o,i])};p();function vV(t){return t===\"\"?!0:/^[0-9]*\\\\.?[0-9]*$/.test(t)}p();var nPe=he(De(),1),wV=he(et(),1);p();var IT=he(et(),1),tPe=(t,e)=>{let n=(0,IT.useRef)(t);return(0,IT.useLayoutEffect)(()=>{n.current=t}),(0,IT.useMemo)(()=>{let r,o=(i,a,...c)=>{clearTimeout(r),r=setTimeout(()=>{i(...c)},a)};return(...i)=>o(n.current,e,...i)},[e])};var Ek=(0,wV.forwardRef)(({\"aria-label\":t,className:e,delayMs:n=0,disabled:r=!1,onBlur:o,onChange:i,onFocus:a,placeholder:c,setValue:u,inputMode:d,value:h,inputValidator:m=()=>!0},g)=>{let b=tPe(C=>{i(C)},n),E=(0,wV.useCallback)(C=>{let T=C.target.value;m(T)&&(u?.(T),n>0?b(T):i(T))},[i,b,n,u,m]);return(0,nPe.jsx)(\"input\",{\"aria-label\":t,\"data-testid\":\"ockTextInput_Input\",ref:g,type:\"text\",className:e,inputMode:d,placeholder:c,value:h,onBlur:o,onChange:E,onFocus:a,disabled:r,autoComplete:\"off\",\"data-1p-ignore\":!0})});Ek.displayName=\"TextInput\";p();var rPe=he(De(),1);var oPe=he(et(),1),wse=(0,oPe.forwardRef)(({label:t,className:e},n)=>(0,rPe.jsx)(\"span\",{ref:n,className:ge(Xe.body,it.disabled,\"flex items-center justify-center bg-transparent\",\"text-6xl leading-none outline-none\",e),\"data-testid\":\"ockCurrencySpan\",children:t}));wse.displayName=\"CurrencyLabel\";function xV({fiatAmount:t,cryptoAmount:e,asset:n,selectedInputType:r,currency:o,setFiatAmount:i,setCryptoAmount:a,exchangeRate:c,delayMs:u,className:d,textClassName:h}){let m=(0,Om.useRef)(null),g=(0,Om.useRef)(null),b=(0,Om.useRef)(null),E=(0,Om.useRef)(null),C=(0,Om.useRef)(null),T=r===\"fiat\"?o:n,R=r===\"fiat\"?t:e,L=ePe(m,g,b,E,C),{handleChange:D}=bV({setFiatAmount:i,setCryptoAmount:a,selectedInputType:r,exchangeRate:c}),G=(0,Om.useCallback)(ne=>{D(ne,()=>{b.current&&b.current.focus()})},[D]);(0,Om.useEffect)(()=>{L()},[R,L]);let W=(0,Om.useRef)(r);(0,Om.useEffect)(()=>{W.current!==r&&(W.current=r,J())},[r]);let J=()=>{b.current&&b.current.focus()};return(0,j1.jsxs)(\"div\",{ref:m,\"data-testid\":\"ockAmountInputContainer\",className:ge(\"relative h-24 cursor-text\",d),children:[(0,j1.jsx)(\"div\",{className:\"absolute inset-x-0 top-6 bottom-4\",children:(0,j1.jsx)(\"div\",{className:\"relative flex h-14\",children:(0,j1.jsxs)(\"div\",{ref:g,className:\"flex flex-shrink-0 items-center\",children:[(0,j1.jsx)(Ek,{className:ge(Xe.body,\"border-none bg-transparent\",\"text-6xl leading-none outline-none\",\"[appearance:textfield]\",\"[&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none\",\"[&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\",h),value:R,onChange:G,delayMs:u,inputValidator:vV,ref:b,inputMode:\"decimal\",placeholder:\"0\"}),(0,j1.jsx)(\"div\",{className:\"ml-1\",children:(0,j1.jsx)(wse,{ref:C,label:T,className:h})})]})})}),(0,j1.jsx)(\"span\",{\"data-testid\":\"ockHiddenSpan\",ref:E,className:ge(Xe.body,\"border-none bg-transparent\",\"text-6xl leading-none outline-none\",\"pointer-events-none absolute whitespace-nowrap opacity-0\",\"left-[-99999px]\"),children:R?`${R}.`:\"0.\"})]})}p();var d2=he(et(),1),iPe=(t,e)=>{let n=(0,d2.useRef)(0),r=(0,d2.useRef)(),o=(0,d2.useRef)(),i=(0,d2.useRef)(t);return i.current=t,(0,d2.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]),(0,d2.useCallback)((...a)=>{let c=Date.now(),u=c-n.current;u>=e?(i.current(...a),n.current=c):r.current?o.current=a:r.current||(o.current=a,r.current=setTimeout(()=>{o.current&&(i.current(...o.current),n.current=Date.now()),r.current=void 0},e-u))},[e])};var aPe=he(et(),1);var cyt=5e3,XP=({className:t})=>{let{fundAmountFiat:e,fundAmountCrypto:n,asset:r,selectedInputType:o,currency:i,exchangeRate:a,setFundAmountFiat:c,setFundAmountCrypto:u,country:d,subdivision:h,setExchangeRate:m,onError:g}=Ml(),{fetchExchangeRate:b}=mV({asset:r,currency:i,country:d,subdivision:h,setExchangeRate:m,onError:g}),E=iPe(b,cyt),{sendAnalytics:C}=zi(),T=(0,aPe.useCallback)(R=>{c(R),E(),C(Pu.FundAmountChanged,{amount:Number(R),currency:i})},[i,C,c,E]);return(0,sPe.jsx)(xV,{fiatAmount:e,cryptoAmount:n,asset:r,selectedInputType:o,currency:i,className:t,setFiatAmount:T,setCryptoAmount:u,exchangeRate:String(a)})};p();var yPe=he(De(),1);p();var D3=he(De(),1);var tM=he(et(),1);p();p();var f2=he(De(),1),cPe=(0,f2.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 -29.75 165.5 165.5\",preserveAspectRatio:\"xMidYMid meet\",id:\"Artwork\",\"data-testid\":\"ock-applePaySvg\",width:\"24\",height:\"24\",children:[(0,f2.jsx)(\"title\",{children:\"Apple Pay\"}),(0,f2.jsx)(\"path\",{id:\"XMLID_4_\",d:\"M150.7 0h-139c-1 0-2.1.1-3.1.3-1 .2-2 .5-3 1-.9.4-1.8 1.1-2.5 1.8S1.7 4.7 1.3 5.6c-.5.9-.8 1.9-1 3-.2 1-.2 2.1-.3 3.1v82.5c0 1 .1 2.1.3 3.1.2 1 .5 2 1 3 .5.9 1.1 1.8 1.8 2.5s1.6 1.4 2.5 1.8c.9.5 1.9.8 3 1 1 .2 2.1.2 3.1.3h142.1c1 0 2.1-.1 3.1-.3 1-.2 2-.5 3-1 .9-.5 1.8-1.1 2.5-1.8s1.4-1.6 1.8-2.5c.5-.9.8-1.9 1-3 .2-1 .2-2.1.3-3.1v-1.4-78-1.7-1.4c0-1-.1-2.1-.3-3.1-.2-1-.5-2-1-3-.5-.9-1.1-1.8-1.8-2.5s-1.6-1.4-2.5-1.8c-.9-.5-1.9-.8-3-1-1-.2-2.1-.2-3.1-.3H150.7z\"}),(0,f2.jsx)(\"path\",{id:\"XMLID_3_\",fill:\"#fff\",d:\"M150.7 3.5H153.8c.8 0 1.7.1 2.6.2.8.1 1.4.3 2 .6.6.3 1.1.7 1.6 1.2s.9 1 1.2 1.6c.3.6.5 1.2.6 2 .2.9.2 1.8.2 2.6v82.5c0 .8-.1 1.7-.2 2.6-.1.7-.3 1.4-.6 2-.3.6-.7 1.1-1.2 1.6s-1 .9-1.6 1.2c-.6.3-1.2.5-2 .6-.9.2-1.8.2-2.6.2H11.7c-.7 0-1.7-.1-2.6-.2-.7-.1-1.4-.3-2-.7-.6-.3-1.1-.7-1.6-1.2s-.9-1-1.2-1.6c-.3-.6-.5-1.2-.6-2-.2-.9-.2-1.8-.2-2.6v-81-1.4c0-.8.1-1.7.2-2.6.1-.7.3-1.4.6-2 .3-.6.7-1.1 1.2-1.6s1-.9 1.6-1.2c.6-.3 1.2-.5 2-.6.9-.2 1.8-.2 2.6-.2h139\"}),(0,f2.jsx)(\"path\",{d:\"M45.2 35.6c1.4-1.8 2.4-4.2 2.1-6.6-2.1.1-4.6 1.4-6.1 3.1-1.3 1.5-2.5 4-2.2 6.3 2.4.3 4.7-1 6.2-2.8M47.3 39c-3.4-.2-6.3 1.9-7.9 1.9-1.6 0-4.1-1.8-6.8-1.8-3.5.1-6.7 2-8.5 5.2-3.6 6.3-1 15.6 2.6 20.7 1.7 2.5 3.8 5.3 6.5 5.2 2.6-.1 3.6-1.7 6.7-1.7s4 1.7 6.8 1.6c2.8-.1 4.6-2.5 6.3-5.1 2-2.9 2.8-5.7 2.8-5.8-.1-.1-5.5-2.1-5.5-8.3-.1-5.2 4.2-7.7 4.4-7.8-2.3-3.6-6.1-4-7.4-4.1\"}),(0,f2.jsx)(\"g\",{children:(0,f2.jsx)(\"path\",{d:\"M76.7 31.9c7.4 0 12.5 5.1 12.5 12.4 0 7.4-5.2 12.5-12.7 12.5h-8.1v12.9h-5.9V31.9h14.2zm-8.3 20h6.7c5.1 0 8-2.8 8-7.5 0-4.8-2.9-7.5-8-7.5h-6.8v15zM90.7 62c0-4.8 3.7-7.8 10.3-8.2l7.6-.4v-2.1c0-3.1-2.1-4.9-5.5-4.9-3.3 0-5.3 1.6-5.8 4h-5.4c.3-5 4.6-8.7 11.4-8.7 6.7 0 11 3.5 11 9.1v19h-5.4v-4.5h-.1c-1.6 3.1-5.1 5-8.7 5-5.6 0-9.4-3.4-9.4-8.3zm17.9-2.5v-2.2l-6.8.4c-3.4.2-5.3 1.7-5.3 4.1 0 2.4 2 4 5 4 4 0 7.1-2.7 7.1-6.3zM119.3 80v-4.6c.4.1 1.4.1 1.8.1 2.6 0 4-1.1 4.9-3.9 0-.1.5-1.7.5-1.7l-10-27.6h6.1l7 22.5h.1l7-22.5h6l-10.3 29.1c-2.4 6.7-5.1 8.8-10.8 8.8-.4-.1-1.8-.1-2.3-.2z\"})})]});var EV=he(et(),1);p();var OT=he(De(),1);var lPe=(0,OT.jsxs)(\"svg\",{\"data-testid\":\"ock-appleSvg\",role:\"img\",\"aria-label\":\"ock-appleSvg\",width:\"14\",height:\"16\",viewBox:\"0 0 14 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,OT.jsx)(\"title\",{children:\"Apple\"}),(0,OT.jsx)(\"path\",{d:\"M10.0788 0C10.1161 0 10.1533 0 10.1926 0C10.284 1.12836 9.85329 1.97146 9.32986 2.58201C8.81627 3.18834 8.11298 3.77641 6.97549 3.68718C6.89961 2.57498 7.331 1.79441 7.85373 1.18527C8.33851 0.617575 9.22729 0.112414 10.0788 0Z\",className:Kt.foreground}),(0,OT.jsx)(\"path\",{d:\"M13.5228 11.7446C13.5228 11.7558 13.5228 11.7657 13.5228 11.7762C13.2031 12.7444 12.7471 13.5741 12.1907 14.3442C11.6827 15.0432 11.0602 15.984 9.9487 15.984C8.98826 15.984 8.35031 15.3664 7.36598 15.3496C6.32475 15.3327 5.75214 15.866 4.80013 16.0002C4.69123 16.0002 4.58233 16.0002 4.47554 16.0002C3.77646 15.899 3.21228 15.3454 2.80127 14.8465C1.58931 13.3725 0.652757 11.4685 0.478516 9.0319C0.478516 8.79302 0.478516 8.55485 0.478516 8.31597C0.552287 6.57215 1.39961 5.15432 2.52586 4.46719C3.12025 4.10185 3.93735 3.7906 4.84721 3.92971C5.23714 3.99014 5.63551 4.12363 5.98469 4.25571C6.31561 4.38288 6.72944 4.60841 7.12148 4.59647C7.38706 4.58874 7.65123 4.45033 7.91892 4.35267C8.70301 4.06953 9.47164 3.74493 10.4848 3.89739C11.7024 4.08147 12.5665 4.62246 13.1005 5.45714C12.0705 6.11265 11.2562 7.10049 11.3953 8.7874C11.519 10.3197 12.4099 11.2162 13.5228 11.7446Z\",className:Kt.foreground})]});p();var eM=he(De(),1);var uPe=(0,eM.jsxs)(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 16 17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:ge(Kt.foreground),\"data-testid\":\"coinbaseLogoSvg\",children:[(0,eM.jsx)(\"title\",{children:\"Coinbase Pay Onramp\"}),(0,eM.jsx)(\"path\",{d:\"M7.93154 12.5C5.74045 12.5 3.96577 10.6354 3.96577 8.33333C3.96577 6.03125 5.74045 4.16667 7.93154 4.16667C9.8946 4.16667 11.5239 5.67014 11.8378 7.63889H15.8333C15.4962 3.36111 12.089 0 7.93154 0C3.55267 0 0 3.73264 0 8.33333C0 12.934 3.55267 16.6667 7.93154 16.6667C12.089 16.6667 15.4962 13.3056 15.8333 9.02778H11.8378C11.5239 10.9965 9.8946 12.5 7.93154 12.5Z\",fill:\"#0052FF\"})]});p();var xse=he(De(),1),dPe=(0,xse.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-coinbasePaySvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,xse.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10.0145 14.1666C7.82346 14.1666 6.04878 12.302 6.04878 9.99996C6.04878 7.69788 7.82346 5.83329 10.0145 5.83329C11.9776 5.83329 13.6069 7.33677 13.9208 9.30552H17.9163C17.5793 5.02774 14.172 1.66663 10.0145 1.66663C5.63568 1.66663 2.08301 5.39926 2.08301 9.99996C2.08301 14.6007 5.63568 18.3333 10.0145 18.3333C14.172 18.3333 17.5793 14.9722 17.9163 10.6944H13.9208C13.6069 12.6632 11.9776 14.1666 10.0145 14.1666Z\",fill:\"#f9fafb\"})});p();var PT=he(De(),1);var fPe=(0,PT.jsxs)(\"svg\",{\"data-testid\":\"ock-creditCardSvg\",role:\"img\",\"aria-label\":\"ock-creditCardSvg\",width:\"14\",height:\"16\",viewBox:\"0 0 14 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,PT.jsx)(\"title\",{children:\"Credit Card\"}),(0,PT.jsx)(\"path\",{d:\"M0.478516 2.33325V12.9999H13.5228V2.33325H0.478516ZM12.164 3.99992V5.33325H1.83729V3.99992H12.164ZM1.83729 11.3333V7.66659H12.164V11.3333H1.83729Z\",className:Kt.foreground}),(0,PT.jsx)(\"path\",{d:\"M2.65256 8.66659H7.00064V9.66659H2.65256V8.66659Z\",className:Kt.foreground})]});p();var Ese=he(De(),1);var hPe=(0,Ese.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-fundWalletSvg\",width:\"18\",height:\"18\",viewBox:\"0 0 18 18\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,Ese.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M13.5 4.5C13.5 6.15685 14.8431 7.5 16.5 7.5V10.5C14.8431 10.5 13.5 11.8431 13.5 13.5H4.5C4.5 11.8431 3.15685 10.5 1.5 10.5L1.5 13.5V7.5C3.15685 7.5 4.5 6.15685 4.5 4.5H13.5ZM0 3V15H18V3H0ZM11.25 9C11.25 7.75736 10.2426 6.75 9 6.75C7.75736 6.75 6.75 7.75736 6.75 9C6.75 10.2426 7.75736 11.25 9 11.25C10.2426 11.25 11.25 10.2426 11.25 9Z\",fill:\"#0A0B0D\",className:Kt.foreground})});p();var Sse=he(De(),1);var pPe=(0,Sse.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-swapSettingsSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 19 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,Sse.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.92071 5.89742e-08C8.00371 5.89742e-08 7.22171 0.663 7.07071 1.567L6.89271 2.639C6.87271 2.759 6.77771 2.899 6.59571 2.987C6.25306 3.15171 5.92344 3.34226 5.60971 3.557C5.44371 3.672 5.27571 3.683 5.15971 3.64L4.14271 3.258C3.72695 3.10224 3.26941 3.09906 2.85152 3.24904C2.43364 3.39901 2.08254 3.69241 1.86071 4.077L0.938708 5.674C0.716797 6.05836 0.638423 6.50897 0.717525 6.94569C0.796628 7.3824 1.02808 7.7769 1.37071 8.059L2.21071 8.751C2.30571 8.829 2.38071 8.98 2.36471 9.181C2.33621 9.56013 2.33621 9.94087 2.36471 10.32C2.37971 10.52 2.30571 10.672 2.21171 10.75L1.37071 11.442C1.02808 11.7241 0.796628 12.1186 0.717525 12.5553C0.638423 12.992 0.716797 13.4426 0.938708 13.827L1.86071 15.424C2.08269 15.8084 2.43387 16.1016 2.85173 16.2514C3.2696 16.4012 3.72706 16.3978 4.14271 16.242L5.16171 15.86C5.27671 15.817 5.44471 15.829 5.61171 15.942C5.92371 16.156 6.25271 16.347 6.59671 16.512C6.77871 16.6 6.87371 16.74 6.89371 16.862L7.07171 17.933C7.22271 18.837 8.00471 19.5 8.92171 19.5H10.7657C11.6817 19.5 12.4647 18.837 12.6157 17.933L12.7937 16.861C12.8137 16.741 12.9077 16.601 13.0907 16.512C13.4347 16.347 13.7637 16.156 14.0757 15.942C14.2427 15.828 14.4107 15.817 14.5257 15.86L15.5457 16.242C15.9612 16.3972 16.4183 16.4001 16.8357 16.2502C17.2532 16.1002 17.6039 15.8071 17.8257 15.423L18.7487 13.826C18.9706 13.4416 19.049 12.991 18.9699 12.5543C18.8908 12.1176 18.6593 11.7231 18.3167 11.441L17.4767 10.749C17.3817 10.671 17.3067 10.52 17.3227 10.319C17.3511 9.93987 17.3511 9.55913 17.3227 9.18C17.3067 8.98 17.3817 8.828 17.4757 8.75L18.3157 8.058C19.0237 7.476 19.2067 6.468 18.7487 5.673L17.8267 4.076C17.6047 3.69159 17.2535 3.3984 16.8357 3.24861C16.4178 3.09883 15.9604 3.10215 15.5447 3.258L14.5247 3.64C14.4107 3.683 14.2427 3.671 14.0757 3.557C13.7623 3.3423 13.433 3.15175 13.0907 2.987C12.9077 2.9 12.8137 2.76 12.7937 2.639L12.6147 1.567C12.5418 1.12906 12.3158 0.731216 11.977 0.444267C11.6383 0.157318 11.2087 -0.00011124 10.7647 5.89742e-08H8.92171H8.92071ZM9.84271 13.5C10.8373 13.5 11.7911 13.1049 12.4944 12.4017C13.1976 11.6984 13.5927 10.7446 13.5927 9.75C13.5927 8.75544 13.1976 7.80161 12.4944 7.09835C11.7911 6.39509 10.8373 6 9.84271 6C8.84815 6 7.89432 6.39509 7.19106 7.09835C6.4878 7.80161 6.09271 8.75544 6.09271 9.75C6.09271 10.7446 6.4878 11.6984 7.19106 12.4017C7.89432 13.1049 8.84815 13.5 9.84271 13.5Z\",fill:\"#6B7280\",className:Kt.foreground})});p();var B3=he(De(),1);var MT=(0,B3.jsxs)(\"svg\",{role:\"img\",\"aria-label\":\"ock-toggleSvg\",width:\"16\",height:\"17\",viewBox:\"0 0 16 17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"data-testid\":\"ock-toggleSvg\",children:[(0,B3.jsx)(\"g\",{clipPath:\"url(#clip0_2077_4627)\",children:(0,B3.jsx)(\"path\",{d:\"M14.5659 4.93434L13.4345 6.06571L11.8002 4.43139L11.8002 10.75L10.2002 10.75L10.2002 4.43139L8.56592 6.06571L7.43455 4.93434L11.0002 1.36865L14.5659 4.93434ZM8.56592 12.0657L5.00023 15.6314L1.43455 12.0657L2.56592 10.9343L4.20023 12.5687L4.20023 6.25002L5.80023 6.25002L5.80023 12.5687L7.43455 10.9343L8.56592 12.0657Z\",className:Kt.foreground})}),(0,B3.jsx)(\"defs\",{children:(0,B3.jsx)(\"clipPath\",{id:\"clip0_2077_4627\",children:(0,B3.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(0 0.5)\"})})})]});p();var kse=he(De(),1);var mPe=(0,kse.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-walletSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,kse.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 10C0 15.5222 4.47778 20 10 20C15.5222 20 20 15.5222 20 10C20 4.47778 15.5222 0 10 0C4.47778 0 0 4.47778 0 10ZM7.44444 6.77778C7.075 6.77778 6.77778 7.075 6.77778 7.44444V12.5556C6.77778 12.925 7.075 13.2222 7.44444 13.2222H12.5556C12.925 13.2222 13.2222 12.925 13.2222 12.5556V7.44444C13.2222 7.075 12.925 6.77778 12.5556 6.77778H7.44444Z\",className:Kt.foreground})});var h2=({icon:t})=>(0,EV.useMemo)(()=>{if(t===void 0)return null;switch(t){case\"coinbasePay\":return dPe;case\"coinbaseLogo\":return uPe;case\"fundWallet\":return hPe;case\"swapSettings\":return pPe;case\"wallet\":return mPe;case\"toggle\":return MT;case\"applePay\":return cPe;case\"apple\":return lPe;case\"creditCard\":return fPe}if((0,EV.isValidElement)(t))return t},[t]);p();var p2=({amount:t,currency:e=\"USD\",locale:n,minimumFractionDigits:r=2,maximumFractionDigits:o=2})=>{let i=Number(t);return Number.isNaN(i)&&(i=0),new Intl.NumberFormat(n,{style:\"currency\",currency:e,minimumFractionDigits:r,maximumFractionDigits:o}).format(i)};p();var gPe=he(De(),1);function z1({className:t}){return(0,gPe.jsx)(\"div\",{className:ge(\"animate-pulse bg-opacity-50\",dn.alternate,mt.radius,t),\"data-testid\":\"ockSkeleton\"})}function SV({selectedInputType:t,setSelectedInputType:e,asset:n,fiatAmount:r,cryptoAmount:o,exchangeRate:i,exchangeRateLoading:a,currency:c,loadingDisplay:u=(0,D3.jsx)(z1,{className:\"h-[1.625rem]\"}),className:d}){let h=h2({icon:\"toggle\"}),m=(0,tM.useCallback)(()=>{e(t===\"fiat\"?\"crypto\":\"fiat\")},[t,e]),g=(0,tM.useCallback)(E=>`${Sg(E||\"0\",8)} ${n}`,[n]),b=(0,tM.useMemo)(()=>(0,D3.jsx)(\"span\",{\"data-testid\":\"ockAmountLine\",className:ge(Xe.label1),children:t===\"fiat\"?g(o):p2({amount:r,currency:c,minimumFractionDigits:0})}),[o,r,t,g,c]);return a||!i?u:(0,D3.jsxs)(\"div\",{className:ge(\"flex items-center\",d),children:[(0,D3.jsx)(\"button\",{type:\"button\",\"aria-label\":\"amount type switch\",className:ge(Ht.default,\"mr-1 rounded-full p-1 opacity-50 transition-opacity hover:opacity-100\"),\"data-testid\":\"ockAmountTypeSwitch\",onClick:m,children:(0,D3.jsx)(\"div\",{className:\"h-[1.125rem] w-[1.125rem]\",children:h})}),(0,D3.jsx)(\"div\",{className:\"w-full truncate\",children:b})]})}var nM=({className:t})=>{let{selectedInputType:e,setSelectedInputType:n,asset:r,fundAmountFiat:o,fundAmountCrypto:i,exchangeRate:a,exchangeRateLoading:c,currency:u}=Ml();return(0,yPe.jsx)(SV,{selectedInputType:e,setSelectedInputType:n,asset:r,fiatAmount:o,cryptoAmount:i,exchangeRate:a,exchangeRateLoading:c,currency:u,className:t})};p();var bPe=he(De(),1);function _se({className:t}){let{headerText:e}=Ml();return(0,bPe.jsx)(\"div\",{className:ge(Xe.headline,t),\"data-testid\":\"ockFundCardHeader\",children:e})}p();var U3=he(De(),1);p();function vPe(){return/iPhone|iPad|iPod/.test(navigator.userAgent)||/Safari/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/Edg/.test(navigator.userAgent)}p();var kV=he(et(),1);function _V(t,e){let n=(0,kV.useCallback)(r=>{var o;if(!t.current)return;let i=!t.current.contains(r.target),a=(o=r.composedPath)==null?void 0:o.call(r);!a?.some(u=>u instanceof HTMLElement&&u.hasAttribute(\"data-portal-origin\"))&&i&&e()},[e,t]);(0,kV.useEffect)(()=>(document.addEventListener(\"click\",n,{capture:!0}),()=>{document.removeEventListener(\"click\",n,{capture:!0})}),[n])}var Lu=he(et(),1);p();var F3=he(De(),1),AV=he(et(),1);p();var wPe=he(De(),1);function CV({className:t,paymentMethod:e}){let{icon:n}=e,r=h2({icon:n});return(0,wPe.jsx)(\"div\",{\"data-testid\":\"ockFundCardPaymentMethodImage__iconContainer\",className:ge(\"flex items-center justify-center overflow-hidden rounded-[50%]\",t),children:r})}var Cse=(0,AV.memo)(({paymentMethod:t,onClick:e,hideImage:n,hideDescription:r,disabled:o,disabledReason:i,testId:a})=>{let{sendAnalytics:c}=zi(),u=(0,AV.useCallback)(()=>{o||(e?.(t),c(Pu.FundOptionSelected,{option:t.id}))},[o,e,t,c]);return(0,F3.jsx)(\"button\",{\"data-testid\":a,type:\"button\",className:ge(Ht.default,mt.radius,dn.default,\"flex w-full items-center justify-between px-4 py-2\",{[Ht.disabled]:o}),onClick:u,disabled:o,title:i,children:(0,F3.jsxs)(\"span\",{className:\"flex items-center gap-3\",children:[!n&&(0,F3.jsx)(CV,{paymentMethod:t,className:ge(\"h-4 w-4\",{[Ht.disabled]:o})}),(0,F3.jsxs)(\"span\",{className:\"flex flex-col items-start\",children:[(0,F3.jsx)(\"span\",{className:ge(Xe.headline),children:t.name}),!r&&(0,F3.jsx)(\"span\",{className:ge(Xe.label2,it.foregroundMuted,\"font-normal\"),children:i||t.description})]})]})})});Cse.displayName=\"FundCardPaymentMethodSelectRow\";p();var Sk=he(De(),1),xPe=he(et(),1);p();var Ase=he(De(),1);var TV=(0,Ase.jsx)(\"svg\",{\"data-testid\":\"ock-caretUpSvg\",role:\"img\",\"aria-label\":\"ock-caretUpSvg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,Ase.jsx)(\"path\",{d:\"M3.05329 10.9866L7.99996 6.03997L12.9466 10.9866L14.1266 9.80663L7.99996 3.67997L1.87329 9.80663L3.05329 10.9866Z\",className:Kt.foreground})});var Tse=(0,xPe.forwardRef)(({onClick:t,paymentMethod:e,isOpen:n,className:r},o)=>(0,Sk.jsxs)(\"button\",{type:\"button\",className:ge(Ht.default,mt.radius,mt.lineDefault,\"flex h-12 w-full items-center gap-2 px-3 py-1\",r),onClick:t,ref:o,\"data-testid\":\"ockFundCardPaymentMethodSelectorToggle\",children:[(0,Sk.jsx)(\"div\",{className:\"w-4\",children:(0,Sk.jsx)(CV,{paymentMethod:e,className:\"h-4 w-4\"})}),(0,Sk.jsx)(\"span\",{className:ge(Xe.headline,it.foreground,\"flex w-full\"),\"data-testid\":\"ockFundCardPaymentMethodSelectorToggle__paymentMethodName\",children:e.name}),(0,Sk.jsx)(\"span\",{className:ge(\"rotate-90 transition-transform duration-200\",n&&\"rotate-180\"),children:TV})]}));Tse.displayName=\"FundCardPaymentMethodSelectorToggle\";function rM({className:t}){let[e,n]=(0,Lu.useState)(!1),{selectedPaymentMethod:r,setSelectedPaymentMethod:o,paymentMethods:i,fundAmountFiat:a,isPaymentMethodsLoading:c,currency:u}=Ml(),{sendAnalytics:d}=zi(),h=(0,Lu.useMemo)(()=>i.filter(G=>G.id!==\"APPLE_PAY\"||vPe()),[i]),m=(0,Lu.useCallback)(G=>{let W=Number(a);if(G.minAmount&&W<G.minAmount)return`Minimum amount of ${p2({amount:G.minAmount,currency:u,minimumFractionDigits:0})} required`;if(G.maxAmount&&W>G.maxAmount)return`Maximum amount allowed is ${p2({amount:G.maxAmount,currency:u,minimumFractionDigits:0})}`},[a,u]),g=(0,Lu.useCallback)(G=>a?!!m(G):!1,[a,m]);(0,Lu.useEffect)(()=>{if(r&&g(r)){let G=i.find(W=>W.id===\"\");G&&o(G)}},[r,i,o,g]);let b=(0,Lu.useCallback)(G=>{g(G)||(d(Pu.FundOptionSelected,{option:G.id}),o(G),n(!1))},[o,g,d]),E=(0,Lu.useCallback)(()=>{n(!e)},[e]),C=(0,Lu.useRef)(null),T=(0,Lu.useRef)(null),R=(0,Lu.useRef)(null);_V(T,()=>{e&&n(!1)});let L=(0,Lu.useCallback)(G=>{G.key===\"Escape\"&&n(!1)},[]),D=r||h[0];return(0,U3.jsxs)(\"div\",{className:ge(\"relative py-4\",t),ref:T,\"data-testid\":\"ockFundCardPaymentMethodDropdownContainer\",onKeyUp:L,children:[c||!D?(0,U3.jsx)(z1,{className:\"h-12 w-full\"}):(0,U3.jsx)(Tse,{ref:R,onClick:E,isOpen:e,paymentMethod:D}),e&&(0,U3.jsx)(\"div\",{ref:C,\"data-testid\":\"ockFundCardPaymentMethodDropdown\",className:ge(mt.radius,mt.lineDefault,\"ock-scrollbar absolute z-10 mt-2 flex w-full flex-col overflow-y-hidden\"),children:(0,U3.jsx)(\"div\",{className:ge(dn.default,\"overflow-y-auto p-2\"),children:h.map(G=>{let W=g(G);return(0,U3.jsx)(Cse,{testId:`ockFundCardPaymentMethodSelectRow__${G.id}`,paymentMethod:G,onClick:b,disabled:W,disabledReason:m(G)},G.name)})})})]})}p();var Rse=he(De(),1);p();var EPe=he(De(),1);var oM=he(et(),1);function SPe({presetAmountInput:t,currency:e,onClick:n}){let{sendAnalytics:r}=zi(),o=(0,oM.useMemo)(()=>p2({amount:t,currency:e,minimumFractionDigits:0}),[t,e]),i=(0,oM.useCallback)(()=>{r(Pu.FundAmountChanged,{amount:Number(t),currency:e}),n(t)},[t,e,n,r]),a=(0,oM.useCallback)(c=>{(c.key===\"Enter\"||c.key===\" \")&&(c.preventDefault(),r(Pu.FundAmountChanged,{amount:Number(t),currency:e}),n(t))},[t,e,n,r]);return t?(0,EPe.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockPresetAmountInput\",className:ge(Xe.body,it.foreground,mt.radius,mt.lineDefault,\"flex-1\",\"p-1\",\"overflow-hidden\",\"whitespace-nowrap\",\"text-ellipsis\",\"hover:bg-[var(--ock-bg-default-hover)]\",\"focus:outline-none focus:ring-2\"),title:o,onClick:i,onKeyDown:a,children:o}):null}function iM(){let{presetAmountInputs:t,currency:e,selectedInputType:n,exchangeRate:r,setFundAmountFiat:o,setFundAmountCrypto:i}=Ml(),{handleFiatChange:a}=bV({setFiatAmount:o,setCryptoAmount:i,selectedInputType:n,exchangeRate:String(r)});return t?(0,Rse.jsx)(\"div\",{\"data-testid\":\"ockPresetAmountInputList\",className:\"flex w-full flex-wrap items-center justify-between gap-2 pt-8\",children:t.map((c,u)=>(0,Rse.jsx)(SPe,{presetAmountInput:c,onClick:a,currency:e},u))}):null}p();var CPe=he(De(),1),sM=he(et(),1);p();var kPe=he(et(),1);var _Pe=()=>{let{projectId:t,chain:e}=lo(),{address:n,chain:r}=Jn(),{selectedPaymentMethod:o,selectedInputType:i,fundAmountFiat:a,fundAmountCrypto:c,asset:u,currency:d}=Ml(),h=r||e;return(0,kPe.useMemo)(()=>{if(t===null||n===void 0)return;let m=i===\"fiat\"?a:c;return xk({projectId:t,assets:[u],presetFiatAmount:i===\"fiat\"?Number(m):void 0,presetCryptoAmount:i===\"crypto\"?Number(m):void 0,defaultPaymentMethod:o?.id,addresses:{[n]:[h.name.toLowerCase()]},fiatCurrency:d,originComponentName:\"FundCard\"})},[u,a,c,o,i,t,n,h,d])};function aM(){let{fundAmountFiat:t,fundAmountCrypto:e,submitButtonState:n,setSubmitButtonState:r,buttonText:o,currency:i,updateLifecycleStatus:a}=Ml(),c=_Pe(),u=(0,sM.useCallback)(()=>r(\"loading\"),[r]),d=(0,sM.useCallback)(()=>{a({statusName:\"exit\",statusData:void 0}),r(\"default\")},[a,r]),h=(0,sM.useMemo)(()=>(!t||Number(e)===0)&&(!e||Number(t)===0),[e,t]);return(0,CPe.jsx)(JP,{disabled:h,hideIcon:n===\"default\",text:o,className:\"w-full\",fundingUrl:c,state:n,onClick:u,onPopupClose:d,fiatCurrency:i})}function Ise({assetSymbol:t,buttonText:e=\"Buy\",headerText:n,country:r=\"US\",subdivision:o,currency:i=\"USD\",presetAmountInputs:a,children:c=(0,Bu.jsx)(uyt,{}),className:u,onError:d,onStatus:h,onSuccess:m}){let g=ji();return(0,Bu.jsx)(bse,{asset:t,headerText:n,buttonText:e,country:r,subdivision:o,currency:i,onError:d,onStatus:h,onSuccess:m,presetAmountInputs:a,children:(0,Bu.jsx)(\"div\",{className:ge(g,dn.default,it.foreground,\"flex w-full flex-col p-6\",Xe.headline,mt.radius,mt.lineDefault,u),children:(0,Bu.jsx)(lyt,{children:c})})})}function lyt({children:t}){return XOe(),(0,Bu.jsx)(\"form\",{className:\"w-full\",\"data-testid\":\"ockFundCardForm\",children:t})}function uyt(){return(0,Bu.jsxs)(Bu.Fragment,{children:[(0,Bu.jsx)(_se,{}),(0,Bu.jsx)(XP,{}),(0,Bu.jsx)(nM,{}),(0,Bu.jsx)(iM,{}),(0,Bu.jsx)(rM,{}),(0,Bu.jsx)(aM,{})]})}p();p();p();p();var cM=he(De(),1);p();async function RV({copyValue:t,onSuccess:e,onError:n}){try{await navigator.clipboard.writeText(t),e?.()}catch(r){n?.(r)}}var APe=he(et(),1);function j3({address:t=null,className:e,isSliced:n=!0,hasCopyAddressOnClick:r=!0}){let[o,i]=(0,APe.useState)(\"Copy\"),{address:a}=Lf(),c=t??a;if(!c)return console.error(\"Address: an Ethereum address must be provided to the Identity or Address component.\"),null;let u=n?vk(c):c;if(!r)return(0,cM.jsx)(\"span\",{\"data-testid\":\"ockAddress\",className:ge(it.foregroundMuted,Xe.label2,e),children:u});let d=async()=>{await RV({copyValue:c,onSuccess:()=>{i(\"Copied\"),setTimeout(()=>i(\"Copy\"),2e3)},onError:m=>{console.error(\"Failed to copy address:\",m),i(\"Failed to copy\"),setTimeout(()=>i(\"Copy\"),2e3)}})},h=m=>{(m.key===\"Enter\"||m.key===\" \")&&(m.preventDefault(),d())};return(0,cM.jsxs)(\"span\",{\"data-testid\":\"ockAddress\",className:ge(it.foregroundMuted,Xe.label2,e,\"group relative cursor-pointer\"),onClick:d,onKeyDown:h,tabIndex:0,role:\"button\",\"aria-label\":`Copy address ${c}`,children:[u,(0,cM.jsx)(\"button\",{type:\"button\",className:ge(Ht.alternate,Xe.legal,it.foreground,mt.default,mt.radius,\"absolute top-full left-[0%] z-10 mt-0.5 px-1.5 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"),\"aria-live\":\"polite\",children:o})]})}p();var DPe=he(De(),1);p();function m2(t,e){var n;if(t===\"0\")return t;let r=Number.parseFloat(t),o=(n=Number(r))==null?void 0:n.toFixed(e).replace(/0+$/,\"\");return r>0&&Number.parseFloat(o)===0?\"0\":o}p();var BPe=he(et(),1);bo();p();p();var TPe=\"SWAP_ERROR\",RPe=\"SWAP_QUOTE_ERROR\",IPe=\"SWAP_BALANCE_ERROR\",IV=\"SWAP_QUOTE_LOW_LIQUIDITY_ERROR\",OPe=\"0x000000000022D473030F116dDEE9F6B43aC78BA3\",OV=\"TOO_MANY_REQUESTS_ERROR\",PPe=\"UNCAUGHT_SWAP_QUOTE_ERROR\",MPe=\"UNCAUGHT_SWAP_ERROR\",NPe=\"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD\",LPe=\"USER_REJECTED\",PV=\"UNSUPPORTED_AMOUNT_REFERENCE_ERROR\",Kc=(t=>(t.BALANCE_ERROR=\"Error fetching token balance\",t.CONFIRM_IN_WALLET=\"Confirm in wallet\",t.FETCHING_QUOTE=\"Fetching quote...\",t.FETCHING_BALANCE=\"Fetching balance...\",t.INCOMPLETE_FIELD=\"Complete the fields to continue\",t.INSUFFICIENT_BALANCE=\"Insufficient balance\",t.LOW_LIQUIDITY=\"Insufficient liquidity for this trade.\",t.SWAP_IN_PROGRESS=\"Swap in progress...\",t.TOO_MANY_REQUESTS=\"Too many requests. Please try again later.\",t.USER_REJECTED=\"User rejected the transaction\",t.UNSUPPORTED_AMOUNT_REFERENCE=\"useAggregator does not support amountReference: to, please use useAggregator: false\",t))(Kc||{});function H1(t,e){return e===-32001?OV:e===-32602?IV:t===\"uncaught-swap\"?MPe:t===\"uncaught-quote\"?PPe:t===\"quote\"?RPe:t===\"balance\"?IPe:TPe}var dyt=18;function MV(t){let e=XQ({address:t,query:{...Mu}});return(0,BPe.useMemo)(()=>{var n,r,o,i;let a;if(e?.error&&(a={code:H1(\"balance\"),error:(n=e?.error)==null?void 0:n.message,message:\"\"}),!((r=e?.data)!=null&&r.value)&&((o=e?.data)==null?void 0:o.value)!==0n)return{convertedBalance:\"\",roundedBalance:\"\",error:a,response:e};let c=vs((i=e?.data)==null?void 0:i.value,dyt),u=m2(c,8);return{convertedBalance:c,error:a,response:e,roundedBalance:u}},[e])}function lM({address:t,className:e}){let{address:n}=Lf();if(!n&&!t)return console.error(\"Address: an Ethereum address must be provided to the Identity or EthBalance component.\"),null;let{convertedBalance:r,error:o}=MV(t??n);return!r||o?null:(0,DPe.jsxs)(\"span\",{\"data-testid\":\"ockEthBalance\",className:ge(Xe.label2,it.foregroundMuted,e),children:[m2(r,4),\" ETH\"]})}p();var Ose=he(De(),1);p();var z3=he(De(),1);var NT=he(et(),1);p();var dM=he(De(),1);p();p();Si();var FPe=async({ensName:t})=>{let e=Bf(li),n=aT(t),r=async u=>{try{return await e.getEnsText({name:n,key:u})||null}catch(d){return console.warn(`Failed to fetch ENS text record for ${u}:`,d),null}},[o,i,a,c]=await Promise.all([r(\"com.twitter\"),r(\"com.github\"),r(\"xyz.farcaster\"),r(\"url\")]);return{twitter:o,github:i,farcaster:a,website:c}};Si();var UPe=({ensName:t,chain:e=li},n)=>{let r=[\"useSocials\",t,e.id];return pd({queryKey:r,queryFn:()=>FPe({ensName:t}),...Mu,gcTime:n?.cacheTime,...n})};p();var uM=he(De(),1);var fyt={twitter:{href:t=>`https://x.com/${t}`,icon:gOe},github:{href:t=>`https://github.com/${t}`,icon:mOe},farcaster:{href:t=>`https://warpcast.com/${t.split(\"/\").pop()}`,icon:yOe},website:{href:t=>t,icon:bOe}};function jPe({platform:t,value:e}){let n=fyt[t];return(0,uM.jsxs)(\"a\",{href:n.href(e),target:\"_blank\",rel:\"noopener noreferrer\",className:ge(Ht.default,mt.radius,mt.default,\"flex items-center justify-center p-2\"),\"data-testid\":`ockSocials_${t.charAt(0).toUpperCase()+t.slice(1)}`,children:[(0,uM.jsx)(\"span\",{className:\"sr-only\",children:t}),(0,uM.jsx)(\"div\",{className:ge(\"flex h-4 w-4 items-center justify-center\"),children:n.icon})]})}function NV({address:t,chain:e,className:n}){let{address:r,chain:o}=Lf(),i=t??r,a=e??o;if(!i)return console.error(\"Socials: an Ethereum address must be provided to the Socials component.\"),null;let{data:c,isLoading:u}=R3({address:i,chain:a}),{data:d,isLoading:h}=UPe({ensName:c??\"\",chain:a},{enabled:!!c});return u||h?(0,dM.jsx)(\"span\",{className:n}):!d||Object.values(d).every(m=>!m)?null:(0,dM.jsx)(\"div\",{className:ge(mt.default,\"mt-2 w-full pl-1\",n),children:(0,dM.jsx)(\"div\",{className:\"left-4 flex space-x-2\",children:Object.entries(d).map(([m,g])=>g&&(0,dM.jsx)(jPe,{platform:m,value:g},m))})})}function zPe({children:t,className:e,hasCopyAddressOnClick:n}){let r=ji(),{avatar:o,name:i,address:a,ethBalance:c,socials:u}=(0,NT.useMemo)(()=>{let d=NT.Children.toArray(t),h=d.find(Nd(j3));return{avatar:d.find(Nd(Ld)),name:d.find(Nd(Df)),address:h?(0,NT.cloneElement)(h,{hasCopyAddressOnClick:n}):void 0,ethBalance:d.find(Nd(lM)),socials:d.find(Nd(NV))}},[t,n]);return(0,z3.jsxs)(\"div\",{className:ge(r,dn.default,\"flex flex-col px-4 py-1\",e),\"data-testid\":\"ockIdentityLayout_container\",children:[(0,z3.jsxs)(\"div\",{className:\"flex items-center space-x-3\",children:[(0,z3.jsx)(\"div\",{className:\"flex-shrink-0\",children:o}),(0,z3.jsxs)(\"div\",{className:\"flex flex-col\",children:[i,a&&!c&&a,!a&&c&&c,a&&c&&(0,z3.jsxs)(\"div\",{className:\"flex items-center gap-1\",children:[a,(0,z3.jsx)(\"span\",{className:it.foregroundMuted,children:\"\\\\xB7\"}),c]})]})]}),u]})}function LV({address:t,chain:e,children:n,className:r,hasCopyAddressOnClick:o,schemaId:i}){let{chain:a}=lo(),c=e??a,{address:u}=Jn();return!u&&!t?null:(0,Ose.jsx)(IW,{address:t||u,schemaId:i,chain:c,children:(0,Ose.jsx)(zPe,{className:r,hasCopyAddressOnClick:o,children:n})})}p();var HPe=he(De(),1);p();p();p();p();p();p();p();p();var qf=he(De(),1);p();var $Pe=he(De(),1);var Pm=he(et(),1);p();function WPe({draggableRef:t,position:e,minGapToEdge:n=10}){var r;let o=(r=t.current)==null?void 0:r.getBoundingClientRect();if(!o||typeof window>\"u\")return e;let i=window.innerWidth,a=window.innerHeight,c=Math.min(Math.max(n,e.x),i-o.width-n),u=Math.min(Math.max(n,e.y),a-o.height-n);return{x:c,y:u}}p();var LT=he(et(),1);function VPe(t,e,n){let r=(0,LT.useCallback)(a=>a.right<=window.innerWidth&&a.bottom<=window.innerHeight&&a.left>=0&&a.top>=0,[]),o=(0,LT.useCallback)((a,c)=>{let u=window.innerWidth,d=window.innerHeight,h,m;return a.right>u?h=u-a.width-10:a.left<0?h=10:h=c.x,a.bottom>d?m=d-a.height-10:a.top<0?m=10:m=c.y,{x:h,y:m}},[]),i=(0,LT.useCallback)(()=>{if(!t.current)return;let c=t.current.getBoundingClientRect(),u=o(c,e);n(d=>r(c)?d:u)},[t,e,o,n,r]);(0,LT.useEffect)(()=>(window.addEventListener(\"resize\",i),()=>window.removeEventListener(\"resize\",i)),[i])}function KPe({children:t,gridSize:e=1,startingPosition:n={x:20,y:20},snapToGrid:r=!1,disabled:o=!1}){let[i,a]=(0,Pm.useState)(n),[c,u]=(0,Pm.useState)({x:0,y:0}),[d,h]=(0,Pm.useState)({x:0,y:0}),[m,g]=(0,Pm.useState)(!1),b=(0,Pm.useRef)(null),E=(0,Pm.useCallback)(T=>Math.round(T/e)*e,[e]),C=(0,Pm.useCallback)(T=>{o||(g(!0),h({x:T.clientX,y:T.clientY}),u({x:T.clientX-i.x,y:T.clientY-i.y}))},[i,o]);return(0,Pm.useEffect)(()=>{if(!m)return;let T=L=>{let D=WPe({draggableRef:b,position:{x:L.clientX-c.x,y:L.clientY-c.y}});a(D)},R=L=>{if(Math.hypot(L.clientX-d.x,L.clientY-d.y)>2){L.preventDefault(),L.stopPropagation();let G=W=>{W.preventDefault(),W.stopPropagation(),document.removeEventListener(\"click\",G,!0)};document.addEventListener(\"click\",G,!0)}a(G=>({x:r?E(G.x):G.x,y:r?E(G.y):G.y})),g(!1)};return document.addEventListener(\"pointermove\",T),document.addEventListener(\"pointerup\",R),()=>{document.removeEventListener(\"pointermove\",T),document.removeEventListener(\"pointerup\",R)}},[m,c,r,E,d]),VPe(b,i,a),(0,$Pe.jsx)(\"div\",{ref:b,\"data-testid\":\"ockDraggable\",className:ge(\"fixed touch-none select-none\",\"cursor-grab active:cursor-grabbing\"),style:{left:`${i.x}px`,top:`${i.y}px`},onPointerDown:C,children:t})}p();var BV=he(et(),1);function BT(){let[t,e]=(0,BV.useState)(!1);return(0,BV.useEffect)(()=>{e(!0)},[]),t}var J1=he(et(),1);p();p();function Pse(){return typeof window>\"u\"?{x:100,y:100}:{x:window.innerWidth-56-16,y:window.innerHeight-56-16}}function GPe({draggable:t,draggableStartingPosition:e}){return t?{draggable:t,draggableStartingPosition:e??Pse()}:{draggable:t}}p();var _g=he(De(),1);p();var zh=he(De(),1),DV=he(et(),1);p();p();p();var ZPe=\"cdp_getTokensForAddresses\",YPe=\"cdp_getPriceQuote\";p();p();var QPe=()=>{if(!bh.rpcUrl&&!bh.apiKey)throw new Error(\"API Key Unset: You can use the Coinbase Developer Platform RPC by providing an API key in `OnchainKitProvider` or by manually calling `setOnchainKitConfig`: https://portal.cdp.coinbase.com/products/onchainkit\");return bh.rpcUrl||`https://api.developer.coinbase.com/rpc/v1/${bh.chain.name.replace(\" \",\"-\").toLowerCase()}/${bh.apiKey}`};function myt(t,e){return{id:1,jsonrpc:A9e,method:t,params:e}}async function gyt(t){var e;let n={...SW},r=await lk.getClientMeta().catch(()=>null);return r&&(n[\"OnchainKit-Client-Fid\"]=((e=r.clientFid)==null?void 0:e.toString())??\"\",n[\"OnchainKit-Mode\"]=r.mode),t?Object.values(no).includes(t)?{...n,[Eie]:t}:{...n,[Eie]:no.API}:n}async function H3(t,e,n){try{let r=myt(t,e),o=QPe();return await(await fetch(o,{body:JSON.stringify(r),headers:await gyt(n),method:C9e})).json()}catch(r){throw console.log(`sendRequest: error sending request: ${r.message}`),r}}async function JPe(t,e=no.API){let{addresses:n}=t;try{let r=await H3(ZPe,[{addresses:n}],e);return r.error?{code:`${r.error.code}`,error:\"Error fetching portfolio token balances\",message:r.error.message}:r.result}catch(r){return{code:\"uncaught-portfolio\",error:\"Something went wrong\",message:`Error fetching portfolio token balances: ${r}`}}}p();function q3(t){return t!==null&&typeof t==\"object\"&&\"error\"in t}function Bd({address:t,enabled:e=!0},n=no.Hook){return pd({queryKey:[\"usePortfolio\",t],queryFn:async()=>{let r=await JPe({addresses:[t]},n);if(q3(r))throw new Error(r.message);return r.portfolios.length===0?{address:t,portfolioBalanceUsd:0,tokenBalances:[]}:r.portfolios[0]},retry:!1,enabled:!!t&&e,refetchOnWindowFocus:!0,staleTime:1e3*60*5,refetchOnMount:!0,refetchInterval:1e3*60*15,refetchIntervalInBackground:!0})}function fM({classNames:t}){let{address:e,chain:n,animations:r}=Ko(),[o,i]=(0,DV.useState)(\"Copy\"),a=(0,DV.useCallback)(async()=>{try{await navigator.clipboard.writeText(String(e)),i(\"Copied\"),setTimeout(()=>i(\"Copy\"),2e3)}catch(c){console.error(\"Failed to copy address:\",c),i(\"Failed to copy\"),setTimeout(()=>i(\"Copy\"),2e3)}},[e]);return!e||!n?(0,zh.jsx)(\"div\",{className:\"mt-1 h-28 w-10 px-4 py-3\"}):(0,zh.jsxs)(\"div\",{\"data-testid\":\"ockWalletAdvanced_AddressDetails\",className:ge(\"mt-2 flex w-88 flex-col items-center justify-center px-4 py-3\",it.foreground,Xe.body,r.content,t?.container),children:[(0,zh.jsx)(Ld,{address:e,chain:n,className:ge(\"pointer-events-none h-10 w-10\",t?.avatar)}),(0,zh.jsxs)(\"div\",{className:\"group relative mt-2 text-base\",children:[(0,zh.jsx)(\"button\",{type:\"button\",onClick:a,\"data-testid\":\"ockWalletAdvanced_NameButton\",children:(0,zh.jsx)(Df,{address:e,chain:n,className:ge(\"hover:text-[var(--ock-text-foreground-muted)] active:text-[var(--ock-text-primary)]\",t?.nameButton)})}),(0,zh.jsx)(\"button\",{type:\"button\",onClick:a,className:ge(Ht.alternate,Xe.legal,it.foreground,mt.default,mt.radius,Nu.tooltip,\"absolute top-full right-0 mt-0.5 px-1.5 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"),\"aria-live\":\"polite\",\"data-testid\":\"ockWalletAdvanced_NameTooltip\",children:o})]}),(0,zh.jsx)(yyt,{className:t?.fiatBalance})]})}function yyt({className:t}){let{address:e}=Jn(),{data:n,isFetching:r}=Bd({address:e},no.Wallet),o=n?.portfolioBalanceInUsd,i=new Intl.NumberFormat(\"en-US\",{style:\"currency\",currency:\"USD\"}).format(Number(o));return r?(0,zh.jsx)(\"div\",{className:\"mt-1 h-8 w-full\",children:(0,zh.jsx)(jh,{})}):o==null?null:(0,zh.jsx)(\"div\",{className:ge(Xe.title1,\"mt-1 font-normal\",t),\"data-testid\":\"ockWalletAdvanced_AddressBalance\",children:i})}p();var Nm=he(De(),1);var U9n=he(et(),1);p();var FV=he(De(),1),eMe=he(et(),1);p();function byt(t){let e=0;for(let n=0;n<t.length;n++)e=t.charCodeAt(n)+((e<<5)-e);return e}function vyt(t){let e=Math.abs(t)%360,n=Math.abs(t>>8)%31+50,r=Math.abs(t>>16)%21+40;return`hsl(${e}, ${n}%, ${r}%)`}function XPe(t){let e=byt(`${t}`);return vyt(e)}function q1({className:t,size:e=24,token:n}){let{image:r,name:o}=n,i=(0,eMe.useMemo)(()=>({image:{width:`${e}px`,height:`${e}px`,minWidth:`${e}px`,minHeight:`${e}px`},placeholderImage:{background:XPe(o),width:`${e}px`,height:`${e}px`,minWidth:`${e}px`,minHeight:`${e}px`}}),[e,o]);return r?(0,FV.jsx)(\"img\",{className:ge(\"overflow-hidden rounded-[50%]\",t),alt:\"token-image\",\"data-testid\":\"ockTokenImage_Image\",style:i.image,src:r}):(0,FV.jsx)(\"div\",{className:ge(\"overflow-hidden rounded-full\",t),\"data-testid\":\"ockTokenImage_NoImage\",style:i.image,children:(0,FV.jsx)(\"div\",{style:i.placeholderImage})})}p();var g2=he(De(),1),nMe=he(et(),1);p();function tMe(t,e={}){if(t===void 0)return\"\";let{locale:n,minimumFractionDigits:r,maximumFractionDigits:o}=e;return Number(t).toLocaleString(n,{minimumFractionDigits:r,maximumFractionDigits:o})}var rMe=(0,nMe.memo)(function({className:e,token:n,amount:r,onClick:o,hideImage:i,hideSymbol:a}){let c=ji();return(0,g2.jsxs)(\"button\",{\"data-testid\":\"ockTokenRow_Container\",type:\"button\",className:ge(c,Ht.default,\"flex w-full items-center justify-between px-2 py-1\",e),onClick:()=>o?.(n),children:[(0,g2.jsxs)(\"span\",{className:\"flex max-w-full items-center gap-3\",children:[!i&&(0,g2.jsx)(q1,{token:n,size:28}),(0,g2.jsxs)(\"span\",{className:\"flex min-w-0 flex-col items-start\",children:[(0,g2.jsx)(\"span\",{className:ge(Xe.headline,\"max-w-full overflow-hidden text-ellipsis whitespace-nowrap text-left\"),children:n.name.trim()}),!a&&(0,g2.jsx)(\"span\",{className:ge(Xe.body,it.foregroundMuted),children:n.symbol})]})]}),(0,g2.jsx)(\"span\",{\"data-testid\":\"ockTokenRow_Amount\",className:ge(Xe.body,it.foregroundMuted),children:tMe(r,{minimumFractionDigits:2,maximumFractionDigits:Number(r)<1?5:2})})]})});p();var Mse=he(De(),1);var _9n=(0,Mse.jsx)(\"svg\",{role:\"img\",\"aria-label\":\"ock-searchIconSvg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,Mse.jsx)(\"path\",{d:\"M16 14.23L11.89 10.12C12.59 9.09 13 7.84 13 6.5C13 2.91 10.09 0 6.5 0C2.91 0 0 2.91 0 6.5C0 10.09 2.91 13 6.5 13C7.84 13 9.09 12.59 10.13 11.89L14.23 16L16 14.23ZM6.5 10.5C4.29 10.5 2.5 8.71 2.5 6.5C2.5 4.29 4.29 2.5 6.5 2.5C8.71 2.5 10.5 4.29 10.5 6.5C10.5 8.71 8.71 10.5 6.5 10.5Z\",className:Kt.foreground})});var W9n=he(I0(),1);p();var Mm=he(De(),1),iMe=he(et(),1);p();var Nse=he(De(),1);var oMe=(0,Nse.jsx)(\"svg\",{\"data-testid\":\"ock-caretDownSvg\",role:\"img\",\"aria-label\":\"ock-caretDownSvg\",width:\"16\",height:\"17\",viewBox:\"0 0 16 17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,Nse.jsx)(\"path\",{d:\"M12.95 4.85999L8.00001 9.80999L3.05001 4.85999L1.64001 6.27999L8.00001 12.64L14.36 6.27999L12.95 4.85999Z\",className:Kt.foreground})});var sMe=(0,iMe.forwardRef)(function({onClick:e,token:n,isOpen:r,className:o},i){return(0,Mm.jsxs)(\"button\",{type:\"button\",\"data-testid\":\"ockTokenSelectButton_Button\",className:ge(Ht.default,Ht.shadow,mt.radius,mt.lineDefault,\"flex w-fit items-center gap-2 px-3 py-1\",o),onClick:e,ref:i,children:[n?(0,Mm.jsxs)(Mm.Fragment,{children:[(0,Mm.jsx)(\"div\",{className:\"w-4\",children:(0,Mm.jsx)(q1,{token:n,size:16})}),(0,Mm.jsx)(\"span\",{className:ge(Xe.headline,it.foreground),\"data-testid\":\"ockTokenSelectButton_Symbol\",children:n.symbol})]}):(0,Mm.jsx)(\"span\",{className:Xe.headline,children:\"Select token\"}),(0,Mm.jsxs)(\"div\",{className:\"relative flex items-center justify-center\",children:[(0,Mm.jsx)(\"div\",{className:\"absolute top-0 left-0 h-4 w-4\"}),r?TV:oMe]})]})});bo();function hM({classNames:t}){let{address:e}=Jn(),{animations:n}=Ko(),{data:r,isFetching:o}=Bd({address:e},no.Wallet),i=r?.tokenBalances;return o||!i||i.length===0?(0,Nm.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvanced_LoadingPlaceholder\",className:\"mx-auto my-2 h-44 w-80 px-4 py-3\"}):(0,Nm.jsx)(\"div\",{className:ge(\"flex flex-col items-center gap-4\",\"my-2 h-44 max-h-44\",\"scrollbar-hidden w-88 overflow-y-auto px-4 py-3\",n.content,t?.container),\"data-testid\":\"ockWalletAdvanced_TokenHoldings\",children:i.map((a,c)=>(0,Nm.jsx)(wyt,{token:{address:a.address,chainId:a.chainId,decimals:a.decimals,image:a.image,name:a.name,symbol:a.symbol},balance:Number(vs(BigInt(a.cryptoBalance),a.decimals)),valueInFiat:Number(a.fiatBalance),classNames:t?.tokenDetails},`${a.address}-${c}`))})}function wyt({token:t,balance:e,valueInFiat:n,classNames:r,tokenImageSize:o=32}){var i;let a=new Intl.NumberFormat(\"en-US\",{minimumFractionDigits:2,maximumFractionDigits:5}).format(e),c=new Intl.NumberFormat(\"en-US\",{style:\"currency\",currency:\"USD\"}).format(n);return(0,Nm.jsxs)(\"div\",{className:ge(\"flex w-full flex-row items-center justify-between\",r?.container),children:[(0,Nm.jsxs)(\"div\",{\"data-testid\":\"ockWalletAdvanced_TokenDetails_TokenImage\",className:ge(\"flex flex-row items-center gap-2\",r?.tokenImage),children:[(0,Nm.jsx)(q1,{token:t,size:o}),(0,Nm.jsxs)(\"div\",{className:\"flex flex-col\",children:[(0,Nm.jsx)(\"span\",{className:ge(Xe.label1,it.foreground,\"max-w-52 overflow-hidden text-ellipsis whitespace-nowrap text-left\",r?.tokenName),children:(i=t.name)==null?void 0:i.trim()}),(0,Nm.jsx)(\"span\",{className:ge(Xe.legal,it.foregroundMuted,r?.tokenBalance),children:`${a} ${t.symbol}`})]})]}),(0,Nm.jsx)(\"span\",{className:ge(Xe.label2,it.foregroundMuted,r?.fiatValue),children:c})]})}p();var W1=he(De(),1);p();var pM=he(De(),1);var aMe=(0,pM.jsxs)(\"svg\",{\"data-testid\":\"ock-addSvg\",role:\"img\",\"aria-label\":\"ock-addSvg\",width:\"13\",height:\"12\",viewBox:\"0 0 13 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,pM.jsx)(\"title\",{children:\"Add\"}),(0,pM.jsx)(\"path\",{d:\"M7.125 0H5.875V5.37501L0.5 5.37501L0.5 6.62501H5.875V12H7.125V6.62501H12.5V5.37501H7.125V0Z\",className:Kt.foreground})]});p();var mM=he(De(),1);var cMe=(0,mM.jsxs)(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,mM.jsx)(\"title\",{children:\"Arrow Up Right\"}),(0,mM.jsx)(\"path\",{d:\"M2.44196 2.25H8.93304L1 10.183L1.88388 11.0669L9.81695 3.13386V9.625H11.067V1H2.44196V2.25Z\",className:Kt.foreground})]});var gM=he(et(),1);function yM({classNames:t}){let{address:e,chain:n,setActiveFeature:r,animations:o}=Ko(),{projectId:i}=lo(),{sendAnalytics:a}=zi(),{isFetching:c}=Bd({address:e},no.Wallet),u=(0,gM.useCallback)(g=>{a(N1.OptionSelected,{option:g})},[a]),d=(0,gM.useCallback)(()=>{if(u(a2.Buy),!i||!e||!n?.name)return;let g=new URL(\"https://pay.coinbase.com/buy/select-asset\"),b=new URLSearchParams({appId:i,destinationWallets:JSON.stringify([{address:e,blockchains:[n.name.toLowerCase()]}]),defaultAsset:\"USDC\",defaultPaymentMethod:\"CRYPTO_ACCOUNT\",presetFiatAmount:\"25\"});window.open(`${g}?${b}`,\"popup\",\"width=400,height=600,scrollbars=yes\")},[e,n?.name,i,u]),h=(0,gM.useCallback)(()=>{u(a2.Send),r(\"send\")},[u,r]),m=(0,gM.useCallback)(()=>{u(a2.Swap),r(\"swap\")},[r,u]);return c?(0,W1.jsx)(z1,{className:\"mx-auto my-3 h-16 w-80 px-4 py-3\"}):(0,W1.jsxs)(\"div\",{\"data-testid\":\"ockWalletAdvanced_TransactionActions\",className:ge(\"my-3 flex w-88 flex-row justify-between gap-2 px-4 py-3\",o.content,t?.container),children:[(0,W1.jsx)(Lse,{icon:aMe,label:\"Buy\",action:d,classNames:t?.leftAction}),(0,W1.jsx)(Lse,{icon:cMe,label:\"Send\",action:h,classNames:t?.middleAction}),(0,W1.jsx)(Lse,{icon:MT,label:\"Swap\",action:m,classNames:t?.rightAction})]})}function Lse({icon:t,label:e,action:n,classNames:r}){return(0,W1.jsxs)(\"button\",{type:\"button\",className:ge(\"flex flex-col items-center justify-center gap-2 pt-2.5 pb-2\",\"h-16 flex-1\",mt.radius,Ht.alternate,r?.container),onClick:n,\"aria-label\":e,children:[(0,W1.jsx)(\"span\",{className:ge(\"flex h-4 w-4 flex-col items-center justify-center\",r?.icon),children:t}),(0,W1.jsx)(\"span\",{className:ge(Xe.label2,it.foreground,\"flex flex-col justify-center\",r?.label),children:e})]})}p();var Hh=he(De(),1);p();var lMe=he(De(),1);function Lm({children:t,className:e,onClick:n,ariaLabel:r}){return(0,lMe.jsx)(\"button\",{type:\"button\",onClick:n,\"data-testid\":\"ockPressableIconButton\",\"aria-label\":r,className:ge(Ht.default,mt.radiusInner,mt.default,\"flex items-center justify-center\",e),children:t})}p();var Uf=he(De(),1);var uMe=(0,Uf.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 155 155\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:Kt.foreground,children:[(0,Uf.jsx)(\"title\",{children:\"BaseScan\"}),(0,Uf.jsxs)(\"g\",{clipPath:\"url(#clip0_13027_2497)\",children:[(0,Uf.jsx)(\"mask\",{id:\"mask0_13027_2497\",maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"155\",height:\"155\",children:(0,Uf.jsx)(\"path\",{d:\"M155 0H0V155H155V0Z\",fill:\"white\"})}),(0,Uf.jsxs)(\"g\",{mask:\"url(#mask0_13027_2497)\",children:[(0,Uf.jsx)(\"path\",{d:\"M32.6921 73.9892C32.6923 73.1255 32.8626 72.2709 33.1934 71.4736C33.5243 70.6763 34.009 69.9526 34.6198 69.344C35.2306 68.7349 35.9555 68.2524 36.7528 67.9249C37.5501 67.5974 38.4041 67.4309 39.2658 67.4352L50.165 67.4708C51.9029 67.4708 53.5694 68.1625 54.7982 69.3935C56.0269 70.6244 56.7173 72.2938 56.7173 74.035V115.321C57.9442 114.956 59.5201 114.567 61.2447 114.161C62.4425 113.879 63.51 113.2 64.2735 112.234C65.0377 111.268 65.4532 110.071 65.4532 108.838V57.6245C65.4532 55.8834 66.1432 54.2137 67.3723 52.9825C68.6009 51.7513 70.2673 51.0594 72.0054 51.059H82.926C84.6642 51.0594 86.3306 51.7513 87.5591 52.9825C88.7883 54.2137 89.4782 55.8834 89.4782 57.6245V105.156C89.4782 105.156 92.2127 104.048 94.8761 102.921C95.8652 102.502 96.7096 101.801 97.3036 100.904C97.8977 100.007 98.2143 98.955 98.2155 97.8785V41.2141C98.2155 39.4734 98.9055 37.804 100.134 36.573C101.363 35.342 103.029 34.6503 104.767 34.65H115.687C117.425 34.65 119.092 35.3415 120.32 36.5726C121.549 37.8036 122.239 39.4732 122.239 41.2141V87.8759C131.708 81.0016 141.303 72.7341 148.917 62.793C150.021 61.3498 150.752 59.6554 151.044 57.8606C151.336 56.0659 151.18 54.2266 150.59 52.5069C147.066 42.3477 141.463 33.0375 134.141 25.172C126.819 17.3065 117.938 11.059 108.067 6.82926C98.1968 2.59956 87.5531 0.480761 76.8183 0.608476C66.0835 0.736197 55.4931 3.10763 45.7254 7.57097C35.9578 12.0344 27.2278 18.4914 20.0941 26.5289C12.9603 34.5663 7.58002 44.0072 4.29747 54.2474C1.01488 64.4878 -0.0977017 75.3016 1.03092 85.9972C2.15954 96.6928 5.50451 107.035 10.8518 116.361C11.7833 117.97 13.1537 119.279 14.8021 120.135C16.4504 120.99 18.3083 121.356 20.1573 121.191C22.223 121.01 24.7949 120.752 27.8528 120.391C29.1839 120.24 30.4129 119.604 31.3056 118.603C32.1982 117.602 32.6923 116.307 32.6933 114.965V73.9892\",fill:\"white\"}),(0,Uf.jsx)(\"path\",{d:\"M32.6921 73.9892C32.6923 73.1255 32.8626 72.2709 33.1934 71.4736C33.5243 70.6763 34.009 69.9526 34.6198 69.344C35.2306 68.7349 35.9555 68.2524 36.7528 67.9249C37.5501 67.5974 38.4041 67.4309 39.2658 67.4352L50.165 67.4708C51.9029 67.4708 53.5694 68.1625 54.7982 69.3935C56.0269 70.6244 56.7173 72.2938 56.7173 74.035V115.321C57.9442 114.956 59.5201 114.567 61.2447 114.161C62.4425 113.879 63.51 113.2 64.2735 112.234C65.0377 111.268 65.4532 110.071 65.4532 108.838V57.6245C65.4532 55.8834 66.1432 54.2137 67.3723 52.9825C68.6009 51.7513 70.2673 51.0594 72.0054 51.059H82.926C84.6642 51.0594 86.3306 51.7513 87.5591 52.9825C88.7883 54.2137 89.4782 55.8834 89.4782 57.6245V105.156C89.4782 105.156 92.2127 104.048 94.8761 102.921C95.8652 102.502 96.7096 101.801 97.3036 100.904C97.8977 100.007 98.2143 98.955 98.2155 97.8785V41.2141C98.2155 39.4734 98.9055 37.804 100.134 36.573C101.363 35.342 103.029 34.6503 104.767 34.65H115.687C117.425 34.65 119.092 35.3415 120.32 36.5726C121.549 37.8036 122.239 39.4732 122.239 41.2141V87.8759C131.708 81.0016 141.303 72.7341 148.917 62.793C150.021 61.3498 150.752 59.6554 151.044 57.8606C151.336 56.0659 151.18 54.2266 150.59 52.5069C147.066 42.3477 141.463 33.0375 134.141 25.172C126.819 17.3065 117.938 11.059 108.067 6.82926C98.1968 2.59956 87.5531 0.480761 76.8183 0.608476C66.0835 0.736197 55.4931 3.10763 45.7254 7.57097C35.9578 12.0344 27.2278 18.4914 20.0941 26.5289C12.9603 34.5663 7.58002 44.0072 4.29747 54.2474C1.01488 64.4878 -0.0977017 75.3016 1.03092 85.9972C2.15954 96.6928 5.50451 107.035 10.8518 116.361C11.7833 117.97 13.1537 119.279 14.8021 120.135C16.4504 120.99 18.3083 121.356 20.1573 121.191C22.223 121.01 24.7949 120.752 27.8528 120.391C29.1839 120.24 30.4129 119.604 31.3056 118.603C32.1982 117.602 32.6923 116.307 32.6933 114.965V73.9892\",stroke:\"white\"}),(0,Uf.jsx)(\"path\",{d:\"M32.4531 140.209C43.9644 148.599 57.5682 153.635 71.7594 154.759C85.9501 155.884 100.175 153.054 112.86 146.581C125.545 140.109 136.195 130.248 143.632 118.088C151.07 105.927 155.004 91.9428 155 77.6816C155 75.9024 154.918 74.1419 154.8 72.3911C126.608 114.514 74.5543 134.207 32.4557 140.203\",fill:\"#C0D0DB\"})]})]}),(0,Uf.jsx)(\"defs\",{children:(0,Uf.jsx)(\"clipPath\",{id:\"clip0_13027_2497\",children:(0,Uf.jsx)(\"rect\",{width:\"155\",height:\"155\",fill:\"white\"})})})]});p();var DT=he(De(),1);var UV=(0,DT.jsxs)(\"svg\",{role:\"img\",\"aria-label\":\"ock-disconnect-svg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 16 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,DT.jsx)(\"title\",{children:\"Disconnect\"}),(0,DT.jsx)(\"path\",{d:\"M11.0668 0.91803L11.0668 2.93852L2.02049 2.93852L2.02049 15.0615L11.0668 15.0615L11.0668 17.082L-7.06549e-07 17.082L0 0.918029L11.0668 0.91803Z\",className:Kt.foreground}),(0,DT.jsx)(\"path\",{d:\"M12.3273 12.8963L16.0002 9.02606L12.346 4.95902L10.843 6.30941L12.3623 8.00032L5.53321 8.00032L5.53321 10.0208L12.2706 10.0208L10.8617 11.5054L12.3273 12.8963Z\",className:Kt.foreground})]});p();var jf=he(De(),1);var dMe=(0,jf.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 28 28\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,jf.jsx)(\"title\",{children:\"QR Code\"}),(0,jf.jsx)(\"rect\",{width:\"28\",height:\"28\",rx:\"8\",className:dn.default}),(0,jf.jsx)(\"path\",{d:\"M10 10H11.5V11.5H10V10Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M8 13.5H13.5V8H8V13.5ZM9.25 9.25H12.25V12.25H9.25V9.25Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M18 10H16.5V11.5H18V10Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M14.5 8V13.5H20V8H14.5ZM18.75 12.25H15.75V9.25H18.75V12.25Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M10 16.5H11.5V18H10V16.5Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M8 20H13.5V14.5H8V20ZM9.25 15.75H12.25V18.75H9.25V15.75Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M18 16.75H18.75V14.5H20V18H16.75V15.75H15.75V20H14.5V14.5H18V16.75Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M18 18.75H16.75V20H18V18.75Z\",className:Kt.foreground}),(0,jf.jsx)(\"path\",{d:\"M18.75 18.75H20V20H18.75V18.75Z\",className:Kt.foreground})]});p();var bM=he(De(),1);var fMe=(0,bM.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 32 32\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,bM.jsx)(\"title\",{children:\"Refresh\"}),(0,bM.jsx)(\"path\",{d:\"M15.9852 5.32694C10.0942 5.32694 5.31852 10.1026 5.31852 15.9936C5.31852 21.8846 10.0942 26.6603 15.9852 26.6603C21.4247 26.6603 25.9132 22.5887 26.5693 17.3269H29.2527C28.5837 24.0647 22.899 29.3269 15.9852 29.3269C8.62139 29.3269 2.65186 23.3574 2.65186 15.9936C2.65186 8.62982 8.62139 2.66028 15.9852 2.66028C20.3471 2.66028 24.2197 4.7548 26.6523 7.99294L29.3184 5.3269V13.3269H21.3184L24.7428 9.90246C22.8156 7.13675 19.6117 5.32694 15.9852 5.32694Z\",className:Kt.foreground})]});var kk=he(et(),1);function vM({classNames:t}){let{address:e}=Jn(),{handleClose:n,setActiveFeature:r,animations:o}=Ko(),{disconnect:i,connectors:a}=j9(),{sendAnalytics:c}=zi(),{refetch:u}=Bd({address:e},no.Wallet),d=(0,kk.useCallback)(C=>{c(N1.OptionSelected,{option:C})},[c]),h=(0,kk.useCallback)(C=>{c(N1.Disconnect,{component:\"WalletAdvanced\",walletProvider:C})},[c]),m=(0,kk.useCallback)(()=>{d(a2.Explorer),window.open(`https://basescan.org/address/${e}`,\"_blank\")},[e,d]),g=(0,kk.useCallback)(()=>{var C;let T=((C=a[0])==null?void 0:C.name)||\"unknown\";h(T),n();for(let R of a)i({connector:R})},[i,a,n,h]),b=(0,kk.useCallback)(()=>{d(a2.QR),r(\"qr\")},[r,d]),E=(0,kk.useCallback)(async()=>{d(a2.Refresh),await u()},[u,d]);return(0,Hh.jsxs)(\"div\",{\"data-testid\":\"ockWalletAdvanced_WalletActions\",className:ge(\"flex w-88 items-center justify-between px-4 py-3\",o.content,t?.container),children:[(0,Hh.jsxs)(\"div\",{className:\"flex items-center\",children:[(0,Hh.jsx)(Lm,{ariaLabel:\"Open transaction history\",onClick:m,children:(0,Hh.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvanced_TransactionsButton\",className:ge(\"h-7 w-7 scale-110 p-2\",t?.baseScanIcon),children:uMe})}),(0,Hh.jsx)(Lm,{ariaLabel:\"Show QR code\",onClick:b,children:(0,Hh.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvanced_QrButton\",className:ge(\"h-7 w-7 scale-110\",t?.qrIcon),children:dMe})})]}),(0,Hh.jsxs)(\"div\",{className:\"flex items-center\",children:[(0,Hh.jsx)(Lm,{ariaLabel:\"Disconnect wallet\",onClick:g,children:(0,Hh.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvanced_DisconnectButton\",className:ge(\"h-7 w-7 scale-110 p-2\",t?.disconnectIcon),children:UV})}),(0,Hh.jsx)(Lm,{ariaLabel:\"Refresh portfolio data\",onClick:E,children:(0,Hh.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvanced_RefreshButton\",className:ge(\"h-7 w-7 scale-110 p-2\",t?.refreshIcon),children:fMe})})]})]})}p();var Wh=he(De(),1);p();var wM=he(De(),1);var hMe=he(I0(),1);function pMe({children:t,className:e,isOpen:n,onClose:r,triggerRef:o,\"aria-label\":i,\"aria-labelledby\":a,\"aria-describedby\":c}){let u=ji();if(!n)return null;let d=(0,wM.jsx)(\"div\",{\"data-portal-origin\":\"true\",children:(0,wM.jsx)(D1,{active:n,children:(0,wM.jsx)(B1,{onDismiss:r,triggerRef:o,preventTriggerEvents:!!o,children:(0,wM.jsx)(\"div\",{\"aria-describedby\":c,\"aria-label\":i,\"aria-labelledby\":a,\"data-testid\":\"ockBottomSheet\",role:\"dialog\",className:ge(u,dn.default,Nu.modal,\"fixed right-0 bottom-0 left-0\",\"transform rounded-t-3xl p-2 transition-transform\",\"fade-in slide-in-from-bottom-1/2 animate-in\",e),children:t})})})});return(0,hMe.createPortal)(d,document.body)}var UM=he(et(),1);p();var Dm=he(De(),1);p();var mMe=he(De(),1);var gMe=he(et(),1);function jV({label:t,copyValue:e,onSuccess:n,onError:r,className:o,\"aria-label\":i}){let a=(0,gMe.useCallback)(()=>RV({copyValue:e,onSuccess:n,onError:r}),[e,n,r]);return(0,mMe.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockCopyButton\",className:o,onClick:a,onKeyDown:a,\"aria-label\":i,children:t})}p();var zf=he(De(),1),o$=he(et(),1);p();var yMe=\"#ffffff\",bMe={x:0,y:0},vMe={x:1,y:0};var Bse={default:\"blue\",base:\"baseBlue\",cyberpunk:\"pink\",hacker:\"black\"},Dse={default:\"default\",base:\"blue\",cyberpunk:\"magenta\",hacker:\"black\"},Fse={blue:{startColor:\"#266EFF\",endColor:\"#45E1E5\"},pink:{startColor:\"#EE5A67\",endColor:\"#CE46BD\"},black:{startColor:\"#a1a1aa\",endColor:\"#27272a\"},baseBlue:{startColor:\"#0052ff\",endColor:\"#b2cbff\"}},wMe={default:[[\"#0F27FF\",\"39.06%\"],[\"#6100FF\",\"76.56%\"],[\"#201F1D\",\"100%\"]],blue:[[\"#0F6FFF\",\"39.06%\"],[\"#0F27FF\",\"76.56%\"],[\"#201F1D\",\"100%\"]],magenta:[[\"#CF00F1\",\"36.46%\"],[\"#7900F1\",\"68.58%\"],[\"#201F1D\",\"100%\"]],black:[[\"#d4d4d8\",\"36.46%\"],[\"#201F1D\",\"68.58%\"],[\"#201F1D\",\"100%\"]]};p();var y2=he(De(),1),SMe=he(et(),1);p();var xMe=he(et(),1),Use=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],jse=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];function xyt(t,e,n,r){return Math.sqrt((r-e)**2+(n-t)**2)}function Eyt(t,e,n){var r,o,i,a,c,u;return!!((r=Use[t])!=null&&r[e]||(o=Use[t-n+FT])!=null&&o[e]||(i=Use[t])!=null&&i[e-n+FT]||(a=jse[t])!=null&&a[e]||(c=jse[t-n+FT])!=null&&c[e]||(u=jse[t])!=null&&u[e-n+FT])}function Syt(t,e,{hasLogo:n,logoSize:r,logoMargin:o,logoBorderRadius:i,matrixLength:a,dotSize:c}){if(!n)return!1;let d=(r+o*2)/c,h=Math.floor(a/2);if(i>=r/2){let b=d/2;return xyt(e,t,h,h)-.5<=b}let g=Math.ceil(d/2);return t<=h+g&&t>=h-g&&e<=h+g&&e>=h-g}function kyt(t,e,n){return`\\n    M ${t-n} ${e}\\n    A ${n} ${n} 0 1 1 ${t+n} ${e}\\n    A ${n} ${n} 0 1 1 ${t-n} ${e}`}var FT=7;function EMe({matrix:t,size:e,logoSize:n,logoMargin:r,logoBorderRadius:o,hasLogo:i}){return(0,xMe.useMemo)(()=>{let c=e/t.length,u=\"\",d=t.length,h=e/d;return t.forEach((m,g)=>{m.forEach((b,E)=>{if(!(Eyt(g,E,d)||Syt(g,E,{hasLogo:i,logoSize:n,logoMargin:r,logoBorderRadius:o,matrixLength:d,dotSize:h}))&&b){let C=c*E+c/2,T=c*g+c/2;u+=kyt(C,T,c/2)}})}),u},[i,o,r,n,t,e])}function kMe(t,e,n,r,o){let i=t/e,a=i*FT,c=i*2,u=i+1;return(0,SMe.useMemo)(()=>(0,y2.jsxs)(\"g\",{children:[(0,y2.jsx)(\"rect\",{x:0,y:0,rx:9.5,ry:9.5,width:a,height:a,fill:r,id:`Corner-top-left-${o}`}),(0,y2.jsx)(\"rect\",{x:0,y:t-a,rx:9.5,ry:9.5,width:a,height:a,fill:r,id:`Corner-bottom-left-${o}`}),(0,y2.jsx)(\"rect\",{x:t-a,y:0,rx:9.5,ry:9.5,width:a,height:a,fill:r,id:`Corner-top-right-${o}`}),(0,y2.jsx)(\"circle\",{cx:a/2,cy:a/2,r:c,stroke:n,strokeWidth:u,fill:\"none\"}),(0,y2.jsx)(\"circle\",{cx:a/2,cy:t-a/2,r:c,stroke:n,strokeWidth:u,fill:\"none\"}),(0,y2.jsx)(\"circle\",{cx:t-a/2,cy:a/2,r:c,stroke:n,strokeWidth:u,fill:\"none\"})]}),[n,c,u,r,a,t,o])}p();var V1=he(De(),1),VV=he(et(),1),zse=he(AMe(),1);var _yt=zse.default.renderToString(aV),Cyt=`data:image/svg+xml;charset=utf-8,${encodeURIComponent(_yt)}`;function TMe({size:t,logo:e=Cyt,logoSize:n,logoBackgroundColor:r,logoMargin:o,logoBorderRadius:i}){return(0,VV.useMemo)(()=>{let c=VV.default.isValidElement(e)?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(zse.default.renderToString(e))}`:e,u=(t-n-o*2)/2,d=n+o*2;return(0,V1.jsxs)(\"g\",{transform:`translate(${u}, ${u})`,children:[(0,V1.jsx)(\"defs\",{children:(0,V1.jsx)(\"clipPath\",{id:\"clip-logo\",children:(0,V1.jsx)(\"rect\",{width:n,height:n,rx:i,ry:i})})}),(0,V1.jsx)(\"g\",{children:(0,V1.jsx)(\"rect\",{width:d,height:d,rx:i,ry:i,fill:r})}),(0,V1.jsx)(\"g\",{transform:`translate(${o}, ${o})`,children:(0,V1.jsx)(\"image\",{\"data-testid\":\"qr-code-logo\",width:n,height:n,preserveAspectRatio:\"xMidYMid slice\",href:String(c),clipPath:\"url(#clip-logo)\"})})]})},[e,r,i,o,n,t])}p();var RNe=he(TNe(),1),INe=he(et(),1);function ONe(t,e){return(0,INe.useMemo)(()=>{if(!e)return[];let r=`ethereum:${e}`,o=Array.from(RNe.default.create(r,{errorCorrectionLevel:t}).modules.data),i=Math.sqrt(o.length);return o.reduce((a,c,u)=>(u%i===0?a.push([c]):a[a.length-1].push(c),a),[])},[t,e])}function r$(t){return`${t*100}%`}function PNe({value:t,size:e=237,backgroundColor:n=\"#ffffff\",logo:r,logoSize:o=50,logoBackgroundColor:i=yMe,logoMargin:a=5,logoBorderRadius:c=10,quietZone:u=12,quietZoneBorderRadius:d=10,ecl:h=\"Q\",gradientType:m=\"radial\"}){let g=e*.55,b=e/2,E=(0,o$.useId)(),T=ji().split(\"-\")[0],R=m===\"radial\",L=R?`url(#radialGrad-${E})`:\"#000000\",D=R?n:`url(#linearGrad-${E})`,G=Bse[T]??Bse.default,W=[Fse[G].startColor,Fse[G].endColor],J=Dse[T]??Dse.default,ne=wMe[J],ie=ONe(h,t),Z=kMe(e,ie.length,D,L,E),{x:ae,y:V}=bMe,{x:$,y:F}=vMe,_=(0,o$.useMemo)(()=>[-u,-u,e+u*2,e+u*2].join(\" \"),[u,e]),O=TMe({size:e,logo:r,logoSize:o,logoBackgroundColor:i,logoMargin:a,logoBorderRadius:c}),z=EMe({matrix:ie,size:e,logoSize:o,logoMargin:a,logoBorderRadius:c,hasLogo:!!r});return!z||!t?null:(0,zf.jsxs)(\"svg\",{viewBox:_,width:e,height:e,children:[(0,zf.jsx)(\"title\",{children:\"QR Code\"}),(0,zf.jsx)(\"defs\",{children:R?(0,zf.jsx)(\"radialGradient\",{id:`radialGrad-${E}`,\"data-testid\":\"radialGrad\",rx:g,ry:g,cx:b,cy:b,gradientUnits:\"userSpaceOnUse\",children:ne.map(([N,B])=>(0,zf.jsx)(\"stop\",{offset:B,stopColor:N,stopOpacity:1},`${N}${B}`))}):(0,zf.jsxs)(\"linearGradient\",{id:`linearGrad-${E}`,\"data-testid\":\"linearGrad\",x1:r$(ae),y1:r$(V),x2:r$($),y2:r$(F),gradientUnits:\"userSpaceOnUse\",children:[(0,zf.jsx)(\"stop\",{offset:\"0\",stopColor:W[0]}),(0,zf.jsx)(\"stop\",{offset:\"1\",stopColor:W[1]})]})}),(0,zf.jsx)(\"g\",{children:(0,zf.jsx)(\"rect\",{rx:d,ry:d,x:-u,y:-u,width:e+u*2,height:e+u*2,fill:n,stroke:D,strokeWidth:2})}),(0,zf.jsxs)(\"g\",{children:[(0,zf.jsx)(\"path\",{d:z,fill:L,strokeLinecap:\"butt\",stroke:L,strokeWidth:0,opacity:.6}),Z,O]})]})}p();var RM=he(De(),1);var VT=(0,RM.jsxs)(\"svg\",{width:\"12\",height:\"13\",viewBox:\"0 0 12 13\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,RM.jsx)(\"title\",{children:\"Back Arrow\"}),(0,RM.jsx)(\"path\",{d:\"M5.54479 12.077L6.46623 11.2323L2.42062 6.81894H11.9999V5.56894H2.50874L6.88374 1.19394L5.99985 0.310059L0.134766 6.17515L5.54479 12.077Z\",className:Kt.foreground})]});p();var $T=he(De(),1);var MNe=(0,$T.jsxs)(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,$T.jsx)(\"title\",{children:\"Copy\"}),(0,$T.jsx)(\"path\",{d:\"M0.666016 0H9.33268V9.33333H0.666016V0ZM1.99935 1.33333V8H7.99935V1.33333H1.99935Z\",className:Kt.foreground}),(0,$T.jsx)(\"path\",{d:\"M10.666 3.33333H11.9993V12H4.66602V10.6667H10.666V3.33333Z\",className:Kt.foreground})]});var kg=he(et(),1);function dae({classNames:t}){let{address:e,setActiveFeature:n,isActiveFeatureClosing:r,setIsActiveFeatureClosing:o}=Ko(),[i,a]=(0,kg.useState)(\"Copy\"),[c,u]=(0,kg.useState)(\"Copy address\"),d=(0,kg.useCallback)(()=>{o(!0)},[o]),h=(0,kg.useCallback)(()=>{r&&(n(null),o(!1))},[r,n,o]),m=(0,kg.useCallback)(()=>{setTimeout(()=>{a(\"Copy\"),u(\"Copy address\")},2e3)},[]),g=(0,kg.useCallback)(()=>{u(\"Address copied\"),m()},[m]),b=(0,kg.useCallback)(()=>{u(\"Failed to copy address\"),m()},[m]),E=(0,kg.useCallback)(()=>{a(\"Copied\"),m()},[m]),C=(0,kg.useCallback)(()=>{a(\"Failed to copy\"),m()},[m]);return(0,Dm.jsxs)(\"div\",{\"data-testid\":\"ockWalletAdvancedQrReceive\",className:ge(mt.radius,it.foreground,Xe.headline,\"flex flex-col items-center justify-between\",\"h-120 w-88 px-4 pt-3 pb-4\",r?\"fade-out slide-out-to-left-5 animate-out fill-mode-forwards ease-in-out\":\"fade-in slide-in-from-left-5 linear animate-in duration-150\",t?.container),onAnimationEnd:h,children:[(0,Dm.jsxs)(\"div\",{className:ge(\"flex h-[34px] w-full flex-row items-center justify-between\",t?.header),children:[(0,Dm.jsx)(Lm,{ariaLabel:\"Back button\",onClick:d,children:(0,Dm.jsx)(\"div\",{className:\"p-2\",children:VT})}),(0,Dm.jsx)(\"span\",{children:\"Scan to receive\"}),(0,Dm.jsxs)(\"div\",{className:\"group relative\",children:[(0,Dm.jsx)(jV,{label:MNe,copyValue:e??\"\",onSuccess:E,onError:C,className:ge(Ht.default,mt.radiusInner,mt.default,\"flex items-center justify-center p-2\"),\"aria-label\":\"Copy your address by clicking the icon\"}),(0,Dm.jsx)(jV,{label:i,copyValue:e??\"\",onSuccess:E,onError:C,className:ge(Ht.alternate,Xe.legal,it.foreground,mt.default,mt.radius,Nu.dropdown,\"absolute top-full right-0 mt-0.5 px-1.5 py-0.5 opacity-0 transition-opacity group-hover:opacity-100\"),\"aria-label\":\"Copy your address by clicking the tooltip\"})]})]}),(0,Dm.jsx)(PNe,{value:e}),(0,Dm.jsx)(jV,{copyValue:e??\"\",label:c,className:ge(mt.radius,Ht.alternate,\"w-full p-3\",t?.copyButton),onSuccess:g,onError:b,\"aria-label\":\"Copy your address by clicking the button\"})]})}p();var Du=he(De(),1);p();var Ll=he(De(),1);p();var qh=he(De(),1),x2=he(et(),1);p();var IM=he(De(),1);function NNe({token:t,onClick:e,className:n,isPressable:r=!0}){let o=ji();return(0,IM.jsxs)(\"button\",{type:\"button\",\"data-testid\":\"ockTokenChip_Button\",className:ge(o,r?[Ht.secondary,Ht.shadow]:[dn.secondary,\"cursor-default\"],\"flex w-fit shrink-0 items-center gap-2 rounded-lg py-1 pr-3 pl-1 \",n),onClick:()=>e?.(t),children:[(0,IM.jsx)(q1,{token:t,size:24}),(0,IM.jsx)(\"span\",{className:Xe.headline,children:t.symbol})]})}p();var G3=he(De(),1),Rk=he(et(),1);p();var OM=he(De(),1);p();function LNe({align:t,contentRect:e,triggerRect:n}){if(!n||!e)return 0;switch(t){case\"start\":return n.left;case\"center\":return n.left+(n.width-e.width)/2;case\"end\":return n.right-e.width}}var KT=he(et(),1),BNe=he(I0(),1);function DNe({align:t=\"start\",children:e,isOpen:n,offset:r=8,onClose:o,trigger:i,\"aria-label\":a}){let c=ji(),u=(0,KT.useRef)(null),d=(0,KT.useCallback)(()=>{if(!i?.current||!u.current)return;let m=i.current.getBoundingClientRect(),g=u.current.getBoundingClientRect();if(!m||!g)return;let b=LNe({triggerRect:m,contentRect:g,align:t});u.current.style.top=`${m.bottom+r}px`,u.current.style.left=`${b}px`},[i,r,t]);if((0,KT.useEffect)(()=>{if(n)return d(),window.addEventListener(\"resize\",d),window.addEventListener(\"scroll\",d),()=>{window.removeEventListener(\"resize\",d),window.removeEventListener(\"scroll\",d)}},[n,d]),!n)return null;let h=(0,OM.jsx)(\"div\",{className:ge(c,Nu.dropdown,\"pointer-events-none fixed\"),\"data-portal-origin\":\"true\",children:(0,OM.jsx)(D1,{active:n,children:(0,OM.jsx)(B1,{onDismiss:o,triggerRef:i,children:(0,OM.jsx)(\"div\",{ref:u,className:ge(\"pointer-events-auto fixed\"),role:\"listbox\",\"data-testid\":\"ockDropdownMenu\",\"aria-label\":a,children:e})})})});return(0,BNe.createPortal)(h,document.body)}function FNe({options:t,setToken:e,token:n}){let[r,o]=(0,Rk.useState)(!1),i=(0,Rk.useRef)(null),a=(0,Rk.useCallback)(()=>{o(!1)},[]),c=(0,Rk.useCallback)(()=>{o(u=>!u)},[]);return(0,G3.jsxs)(\"div\",{className:\"relative max-w-fit shrink-0\",children:[(0,G3.jsx)(sMe,{ref:i,onClick:c,isOpen:r,token:n}),(0,G3.jsx)(DNe,{trigger:i,isOpen:r,onClose:a,align:\"end\",children:(0,G3.jsx)(\"div\",{\"data-testid\":\"ockTokenSelectDropdown_List\",className:ge(mt.radius,it.foreground,\"flex max-h-80 w-[200px] flex-col overflow-y-hidden\",\"ock-scrollbar\"),children:(0,G3.jsx)(\"div\",{className:\"overflow-y-auto\",children:t.map(u=>(0,G3.jsx)(rMe,{className:ge(dn.inverse,\"px-4 py-2\"),token:u,onClick:()=>{e(u),o(!1)}},u.name+u.address))})})})]})}p();function UNe(t){if(!/\\\\d+\\\\.?\\\\d*e[+-]*\\\\d+/i.test(t))return t;let[e,n]=t.toLowerCase().split(\"e\"),r=Number.parseInt(n),[o,i=\"\"]=e.split(\".\"),a=o+i,c=o.length+r;return c<=0?`0.${\"0\".repeat(Math.abs(c))}${a}`:c>=a.length?a+\"0\".repeat(c-a.length):`${a.slice(0,c)}.${a.slice(c)}`}p();var oLe=he(De(),1);var Nl=he(et(),1);Si();p();p();var jNe=\"cdp_getSwapQuote\",zNe=\"cdp_getSwapTrade\";p();p();p();function HNe(t,e){let[n,r=\"\"]=t.split(\".\"),i=r.padEnd(e,\"0\").slice(0,e);return(BigInt(n+i)*BigInt(10)**BigInt(e-i.length)).toString()}p();function qNe(t,e){if(t.includes(\".\")){let[c,u]=t.split(\".\"),d=u.padEnd(e,\"0\");return c+d}let n=BigInt(t),r=BigInt(10)**BigInt(e),o=(n/r).toString(),a=(n%r).toString().padStart(e,\"0\").replace(/0+$/,\"\");return a?`${o}.${a}`:o}function WNe(t,e=!0,n=18){let r;return e?r=qNe(t,n):r=HNe(t,n),r}function i$(t){let{from:e,to:n,amount:r,amountReference:o,isAmountInDecimals:i}=t,{fromAddress:a}=t,c=o===\"from\"?e.decimals:n.decimals;return typeof r!=\"string\"||r.trim()===\"\"?{code:\"INVALID_INPUT\",error:\"Invalid input: amount must be a non-empty string\",message:\"\"}:!Number.isInteger(c)||c<0?{code:\"INVALID_INPUT\",error:\"Invalid input: decimals must be a non-negative integer\",message:\"\"}:/^(?:0|[1-9]\\\\d*|\\\\.\\\\d+)(?:\\\\.\\\\d*)?$/.test(r)?{fromAddress:a,from:e.address||\"ETH\",to:n.address||\"ETH\",amount:i?r:WNe(r,!1,c),amountReference:o||\"from\"}:{code:\"INVALID_INPUT\",error:\"Invalid input: amount must be a non-negative number string\",message:\"\"}}p();function fae(t,e){let{data:n,gas:r,to:o,value:i}=t;return{chainId:Number(e),data:n,gas:BigInt(r),to:o,value:BigInt(i)}}async function VNe(t,e=no.API){var n;let o=i$({...{amountReference:\"from\",isAmountInDecimals:!1},...t});if(\"error\"in o)return o;if(t.useAggregator&&t.amountReference===\"to\")return console.error(Kc.UNSUPPORTED_AMOUNT_REFERENCE),{code:PV,error:Kc.UNSUPPORTED_AMOUNT_REFERENCE,message:\"\"};if(t.useAggregator||(o={v2Enabled:!0,...o}),t.maxSlippage){let i=t.maxSlippage;t.useAggregator&&(i=(Number(t.maxSlippage)*10).toString()),o={slippagePercentage:i,...o}}try{let i=await H3(zNe,[o],e);if(i.error)return{code:H1(\"swap\",(n=i.error)==null?void 0:n.code),error:i.error.message,message:\"\"};let a=i.result;return{approveTransaction:a.approveTx?fae(a.approveTx,a.chainId):void 0,fee:a.fee,quote:a.quote,transaction:fae(a.tx,a.chainId),warning:a.quote.warning}}catch{return{code:H1(\"uncaught-swap\"),error:\"Something went wrong\",message:\"\"}}}p();async function $Ne(t,e=no.API){var n;let o=i$({...{amountReference:\"from\",isAmountInDecimals:!1},...t});if(\"error\"in o)return o;if(t.useAggregator&&t.amountReference===\"to\")return console.error(Kc.UNSUPPORTED_AMOUNT_REFERENCE),{code:PV,error:Kc.UNSUPPORTED_AMOUNT_REFERENCE,message:\"\"};if(t.useAggregator||(o={v2Enabled:!0,...o}),t.maxSlippage){let i=t.maxSlippage;t.useAggregator&&(i=(Number(t.maxSlippage)*10).toString()),o={slippagePercentage:i,...o}}try{let i=await H3(jNe,[o],e);return i.error?{code:H1(\"quote\",(n=i.error)==null?void 0:n.code),error:i.error.message,message:\"\"}:i.result}catch{return{code:H1(\"uncaught-quote\"),error:\"Something went wrong\",message:\"\"}}}p();function KNe(t,e){return(Number(t)/10**e).toString()}p();var v2=\"Something went wrong. Please try again.\";p();function Z3(t){var e,n;return!!(((e=t?.cause)==null?void 0:e.name)===\"UserRejectedRequestError\"||(n=t?.shortMessage)!=null&&n.includes(\"User rejected the request.\"))}p();var GNe=he(et(),1);p();p();function PM(t){return t===\"CONFIRMED\"?\"success\":t===\"PENDING\"?\"pending\":t}function s$(t){return typeof t==\"string\"?t:t.id}function ZNe({accountConfig:t,lifecycleStatus:e,updateLifecycleStatus:n}){var r;let o=e.statusName===\"transactionApproved\"?(r=e.statusData)==null?void 0:r.callsId:void 0,{data:i}=F9({id:o||\"\",query:{refetchInterval:a=>{var c;return PM((c=a.state.data)==null?void 0:c.status)===\"success\"?!1:1e3},enabled:o!==void 0}});return(0,GNe.useCallback)(async()=>{if(PM(i?.status)===\"success\"&&i?.receipts){let a=await Xp(t,{confirmations:1,hash:i.receipts[i.receipts.length-1].transactionHash});n({statusName:\"success\",statusData:{transactionReceipt:a}})}},[t,i,n])}p();var w2=he(et(),1);p();p();var YNe=he(et(),1);bo();function hae(t,e){let n=MF({abi:f9,address:e?.address,functionName:\"balanceOf\",args:t?[t]:[],query:{enabled:!!e?.address&&!!t}});return(0,YNe.useMemo)(()=>{var r;let o;if(n?.error&&(o={code:H1(\"balance\"),error:(r=n?.error)==null?void 0:r.shortMessage,message:\"\"}),n?.data!==0n&&!n?.data||!e)return{convertedBalance:\"\",status:n.status,error:o,roundedBalance:\"\",response:n,refetch:n.refetch};let i=vs(n?.data,e?.decimals);return{convertedBalance:i,status:n.status,error:o,response:n,roundedBalance:m2(i,8),refetch:n.refetch}},[e,n])}function QNe({address:t,fromToken:e,toToken:n}){let{convertedBalance:r,error:o,response:i}=MV(t),{convertedBalance:a,error:c,response:u}=hae(t,e),{convertedBalance:d,error:h,response:m}=hae(t,n),g=e?.symbol===\"ETH\",b=n?.symbol===\"ETH\";return Vc({fromBalanceString:g?r:a,fromTokenBalanceError:g?o:c,fromTokenResponse:g?i:u,toBalanceString:b?r:d,toTokenBalanceError:b?o:h,toTokenResponse:b?i:m})}var JNe=t=>{let[e,n]=(0,w2.useState)(\"\"),[r,o]=(0,w2.useState)(\"\"),[i,a]=(0,w2.useState)(),[c,u]=(0,w2.useState)(\"\"),[d,h]=(0,w2.useState)(\"\"),[m,g]=(0,w2.useState)(),[b,E]=(0,w2.useState)(!1),[C,T]=(0,w2.useState)(!1),{fromBalanceString:R,fromTokenBalanceError:L,toBalanceString:D,toTokenBalanceError:G,fromTokenResponse:W,toTokenResponse:J}=QNe({address:t,fromToken:i,toToken:m}),ne=Vc({balance:R,balanceResponse:W,amount:e,setAmount:n,amountUSD:r,setAmountUSD:o,token:i,setToken:a,loading:C,setLoading:T,error:L}),ie=Vc({balance:D,balanceResponse:J,amount:c,amountUSD:d,setAmountUSD:h,setAmount:u,token:m,setToken:g,loading:b,setLoading:E,error:G});return{from:ne,to:ie}};p();var XNe=he(et(),1),eLe=({from:t,to:e})=>(0,XNe.useCallback)(async()=>{var n,r;await Promise.all([(n=t.balanceResponse)==null?void 0:n.refetch(),(r=e.balanceResponse)==null?void 0:r.refetch(),t.setAmount(\"\"),t.setAmountUSD(\"\"),e.setAmount(\"\"),e.setAmountUSD(\"\")])},[t,e]);p();function pae(t){return t!==null&&typeof t==\"object\"&&\"error\"in t}p();bo();Si();p();p();async function tLe({config:t,sendTransactionAsync:e,transactions:n,updateLifecycleStatus:r}){let o;for(let{transaction:i,transactionType:a}of n){r({statusName:\"transactionPending\"});let c=await e(i);r({statusName:\"transactionApproved\",statusData:{transactionHash:c,transactionType:a}}),o=await Xp(t,{hash:c,confirmations:1})}o&&r({statusName:\"success\",statusData:{transactionReceipt:o}})}async function nLe({config:t,isSponsored:e,paymaster:n,sendCallsAsync:r,sendTransactionAsync:o,updateLifecycleStatus:i,walletCapabilities:a,transactions:c}){var u;if((u=a[uk.AtomicBatch])!=null&&u.supported){i({statusName:\"transactionPending\"});let d=await r({calls:c.map(({transaction:h})=>h),capabilities:e?{paymasterService:{url:n}}:{}});i({statusName:\"transactionApproved\",statusData:{callsId:s$(d),transactionType:\"Batched\"}})}else await tLe({config:t,sendTransactionAsync:o,transactions:c,updateLifecycleStatus:i})}async function rLe({chainId:t,config:e,isSponsored:n,paymaster:r,sendCallsAsync:o,sendTransactionAsync:i,swapTransaction:a,switchChainAsync:c,updateLifecycleStatus:u,useAggregator:d,walletCapabilities:h}){let{transaction:m,approveTransaction:g,quote:b}=a,E=[];if(g?.data&&(E.push({transaction:{to:g.to,value:g.value,data:g.data},transactionType:\"ERC20\"}),!d)){let C=P5([\"function approve(address token, address spender, uint160 amount, uint48 expiration) external\"]),T=yo({abi:C,functionName:\"approve\",args:[b.from.address,NPe,BigInt(b.fromAmount),2e13]});E.push({transaction:{to:OPe,value:0n,data:T},transactionType:\"Permit2\"})}E.push({transaction:{to:m.to,value:m.value,data:m.data},transactionType:\"Swap\"}),t!==Yn.id&&await c({chainId:Yn.id}),await nLe({config:e,isSponsored:n,paymaster:r,sendCallsAsync:o,sendTransactionAsync:i,transactions:E,updateLifecycleStatus:u,walletCapabilities:h})}var iLe={},sLe=(0,Nl.createContext)(iLe);function Fm(){let t=(0,Nl.useContext)(sLe);if(t===iLe)throw new Error(\"useSwapContext must be used within a Swap component\");return t}function aLe({children:t,config:e={maxSlippage:3},experimental:n,isSponsored:r,onError:o,onStatus:i,onSuccess:a}){var c,u;let{config:{paymaster:d}={paymaster:void 0}}=lo(),{address:h,chainId:m}=Jn(),{switchChainAsync:g}=L6(),{useAggregator:b}=n,E=Qn(),C=kT({chainId:Yn.id}),[T,R]=CT({statusName:\"init\",statusData:{isMissingRequiredField:!0,maxSlippage:e.maxSlippage}}),[L,D]=(0,Nl.useState)(!1),[G,W]=(0,Nl.useState)(\"\"),[J,ne]=(0,Nl.useState)(!1),{from:ie,to:Z}=JNe(h),{sendTransactionAsync:ae}=H9(),{sendCallsAsync:V}=z9(),$=eLe({from:ie,to:Z}),F=ZNe({accountConfig:E,lifecycleStatus:T,updateLifecycleStatus:R}),{sendAnalytics:_}=zi();(0,Nl.useEffect)(()=>{var j,q,H,I;T.statusName===\"error\"&&(o?.(T.statusData),_(c2.SwapFailure,{error:T.statusData.error,metadata:T.statusData})),T.statusName===\"success\"&&(a?.(T.statusData.transactionReceipt),W((j=T.statusData)==null?void 0:j.transactionReceipt.transactionHash),ne(!0),D(!0),_(c2.SwapSuccess,{paymaster:!!d,transactionHash:(q=T.statusData.transactionReceipt)==null?void 0:q.transactionHash,address:h||\"\",amount:Number(ie.amount),from:((H=ie.token)==null?void 0:H.symbol)||\"\",to:((I=Z.token)==null?void 0:I.symbol)||\"\"})),i?.(T)},[o,i,a,T,T.statusData,T.statusName,_,d,ie.amount,(c=ie.token)==null?void 0:c.symbol,(u=Z.token)==null?void 0:u.symbol,h]),(0,Nl.useEffect)(()=>{T.statusName===\"init\"&&J&&(ne(!1),$())},[J,T.statusName,$]),(0,Nl.useEffect)(()=>{T.statusName===\"transactionApproved\"&&T.statusData.transactionType===\"Batched\"&&F()},[F,T,T.statusData,T.statusName]),(0,Nl.useEffect)(()=>{T.statusName===\"success\"&&J&&R({statusName:\"init\",statusData:{isMissingRequiredField:!0,maxSlippage:e.maxSlippage}})},[e.maxSlippage,J,T.statusName,R]);let O=(0,Nl.useCallback)(()=>{var j,q;ie.setAmount(Z.amount),Z.setAmount(ie.amount),(j=ie.setToken)==null||j.call(ie,Z.token),(q=Z.setToken)==null||q.call(Z,ie.token),R({statusName:\"amountChange\",statusData:{amountFrom:ie.amount,amountTo:Z.amount,tokenFrom:ie.token,tokenTo:Z.token,isMissingRequiredField:!ie.token||!Z.token||!ie.amount||!Z.amount}})},[ie,Z,R]),z=(0,Nl.useCallback)(async(j,q,H,I)=>{let U=j===\"from\"?ie:Z,X=j===\"from\"?Z:ie;if(U.token=H??U.token,X.token=I??X.token,U.token===void 0||X.token===void 0){R({statusName:\"amountChange\",statusData:{amountFrom:ie.amount,amountTo:Z.amount,tokenFrom:ie.token,tokenTo:Z.token,isMissingRequiredField:!0}});return}if(q===\"\"||q===\".\"||Number.parseFloat(q)===0){X.setAmount(\"\"),X.setAmountUSD(\"\"),U.setAmountUSD(\"\");return}X.setLoading(!0),R({statusName:\"amountChange\",statusData:{amountFrom:j===\"from\"?q:\"\",amountTo:j===\"to\"?q:\"\",tokenFrom:ie.token,tokenTo:Z.token,isMissingRequiredField:!0}});try{let ee=T.statusData.maxSlippage,se=await $Ne({amount:q,amountReference:\"from\",from:U.token,maxSlippage:String(ee),to:X.token,useAggregator:b},no.Swap);if(pae(se)){R({statusName:\"error\",statusData:{code:se.code,error:se.error,message:\"\"}});return}let pe=KNe(se.toAmount,se.to.decimals);X.setAmountUSD(se.toAmountUSD),X.setAmount(pe),U.setAmountUSD(se.fromAmountUSD),R({statusName:\"amountChange\",statusData:{amountFrom:j===\"from\"?q:pe,amountTo:j===\"to\"?q:pe,tokenFrom:ie.token,tokenTo:Z.token,isMissingRequiredField:!pe}})}catch(ee){R({statusName:\"error\",statusData:{code:\"TmSPc01\",error:JSON.stringify(ee),message:\"\"}})}finally{X.setLoading(!1)}},[ie,Z,T,R,b]),N=(0,Nl.useCallback)(async()=>{if(!(!h||!ie.token||!Z.token||!ie.amount))try{_(c2.SwapInitiated,{amount:Number(ie.amount)});let j=T.statusData.maxSlippage,q=await VNe({amount:ie.amount,fromAddress:h,from:ie.token,maxSlippage:String(j),to:Z.token,useAggregator:b},no.Swap);if(pae(q)){R({statusName:\"error\",statusData:{code:q.code,error:q.error,message:q.message}});return}await rLe({chainId:m,config:E,isSponsored:r,paymaster:d||\"\",sendCallsAsync:V,sendTransactionAsync:ae,swapTransaction:q,switchChainAsync:g,updateLifecycleStatus:R,useAggregator:b,walletCapabilities:C})}catch(j){let q=Z3(j)?\"Request denied.\":v2;R({statusName:\"error\",statusData:{code:\"TmSPc02\",error:JSON.stringify(j),message:q}})}},[E,h,m,ie.amount,ie.token,r,T,d,V,ae,g,Z.token,R,b,C,_]),B=Vc({address:h,config:e,from:ie,handleAmountChange:z,handleToggle:O,handleSubmit:N,lifecycleStatus:T,updateLifecycleStatus:R,to:Z,isToastVisible:L,setIsToastVisible:D,setTransactionHash:W,transactionHash:G});return(0,oLe.jsx)(sLe.Provider,{value:B,children:t})}function GT({className:t,delayMs:e=1e3,label:n,token:r,type:o,swappableTokens:i}){let{address:a,to:c,from:u,handleAmountChange:d}=Fm(),{sendAnalytics:h}=zi(),m=Vc(o===\"from\"?u:c),g=Vc(o===\"from\"?c:u),{setToken:b,setAmount:E,balance:C,amount:T,amountUSD:R}=m;(0,x2.useEffect)(()=>{r&&b?.(r)},[r,b]);let L=(0,x2.useCallback)(()=>{C&&(E(C),d(o,C))},[C,E,d,o]),D=(0,x2.useCallback)(Z=>{d(o,Z)},[d,o]),G=(0,x2.useCallback)(Z=>{h(c2.TokenSelected,{token:Z.symbol})},[h]),W=(0,x2.useCallback)(Z=>{b?.(Z),d(o,T,Z),G(Z)},[T,b,d,G,o]),J=(0,x2.useMemo)(()=>i?.filter(({symbol:Z})=>{var ae;return Z!==((ae=g.token)==null?void 0:ae.symbol)})??[],[i,g.token]),ne=o===\"from\"&&Number(C)<Number(T),ie=Z=>!Z||Z===\"0\"?null:`~$${Number(m2(Z,2)).toFixed(2)}`;return(0,qh.jsxs)(\"div\",{className:ge(dn.secondary,mt.radius,\"my-0.5 box-border flex h-[148px] w-full flex-col items-start p-4\",t),\"data-testid\":\"ockSwapAmountInput_Container\",children:[(0,qh.jsx)(\"div\",{className:ge(Xe.label2,it.foregroundMuted,\"flex w-full items-center justify-between\"),children:n}),(0,qh.jsxs)(\"div\",{className:\"flex w-full items-center justify-between\",children:[(0,qh.jsx)(Ek,{className:ge(\"mr-2 w-full border-[none] bg-transparent font-display text-[2.5rem]\",\"leading-none outline-none\",ne&&a?it.error:it.foreground),placeholder:\"0.0\",delayMs:e,value:UNe(T),setValue:E,disabled:m.loading,onChange:D,inputValidator:vV}),J.length>0?(0,qh.jsx)(FNe,{token:m.token,setToken:W,options:J}):m.token&&(0,qh.jsx)(NNe,{className:Ht.inverse,token:m.token})]}),(0,qh.jsxs)(\"div\",{className:\"mt-4 flex w-full items-center justify-between\",children:[(0,qh.jsx)(\"div\",{className:ge(Xe.label2,it.foregroundMuted),children:ie(R)}),(0,qh.jsxs)(\"div\",{className:ge(Xe.label2,it.foregroundMuted,\"flex grow items-center justify-end\"),children:[C&&(0,qh.jsx)(\"span\",{children:`Balance: ${m2(C,8)}`}),o===\"from\"&&a&&(0,qh.jsx)(\"button\",{type:\"button\",className:ge(Xe.label1,it.primary,\"flex cursor-pointer items-center justify-center px-2 py-1\"),\"data-testid\":\"ockSwapAmountInput_MaxButton\",onClick:L,children:\"Max\"})]})]})]})}p();var MM=he(De(),1);function a$({className:t,label:e=\"Swap\",disabled:n=!1}){var r,o;let{address:i,to:a,from:c,lifecycleStatus:{statusName:u},handleSubmit:d}=Fm(),h=a.loading||c.loading||u===\"transactionPending\"||u===\"transactionApproved\",m=!c.amount||!c.token||!a.amount||!a.token||n||h,g=((r=a.token)==null?void 0:r.address)===((o=c.token)==null?void 0:o.address);return!m&&!i?(0,MM.jsx)(Eg,{className:ge(\"mt-4 w-full\",t)}):(0,MM.jsx)(\"button\",{type:\"button\",className:ge(dn.primary,mt.radius,\"w-full rounded-xl\",\"mt-4 px-4 py-3\",m&&Ht.disabled,Xe.headline,t),onClick:()=>d(),disabled:m||g,\"data-testid\":\"ockSwapButton_Button\",children:h?(0,MM.jsx)(jh,{}):(0,MM.jsx)(\"span\",{className:ge(Xe.headline,it.inverse),children:e})})}p();var uLe=he(De(),1);p();p();function cLe(t){return t.code===OV?Kc.TOO_MANY_REQUESTS:t.code===IV?Kc.LOW_LIQUIDITY:t.code===LPe?Kc.USER_REJECTED:t.message}function lLe({address:t,from:e,lifecycleStatus:n,to:r}){return n.statusName===\"error\"?cLe(n.statusData):e.error||r.error?Kc.BALANCE_ERROR:t&&Number(e.balance)<Number(e.amount)?Kc.INSUFFICIENT_BALANCE:n.statusName===\"transactionPending\"?Kc.CONFIRM_IN_WALLET:n.statusName===\"transactionApproved\"?Kc.SWAP_IN_PROGRESS:r.loading||e.loading?Kc.FETCHING_QUOTE:n.statusData.isMissingRequiredField?Kc.INCOMPLETE_FIELD:\"\"}function c$({className:t}){let{address:e,to:n,from:r,lifecycleStatus:o}=Fm(),i=lLe({address:e,from:r,lifecycleStatus:o,to:n});return(0,uLe.jsx)(\"div\",{className:ge(\"flex h-7 pt-2\",Xe.label2,it.foregroundMuted,t),\"data-testid\":\"ockSwapMessage_Message\",children:i})}p();var Za=he(De(),1);p();var NM=he(De(),1);var ZT=he(et(),1),dLe=he(I0(),1);function S1t(t,e,n,r){let o=0,i=0;switch(n){case\"top\":o=t.top-e.height-r;break;case\"bottom\":o=t.bottom+r;break;case\"left\":i=t.left-e.width-r;break;case\"right\":i=t.right+r;break}return{top:o,left:i}}function k1t(t,e,n,r,o){let{top:i,left:a}=n,c=i,u=a,d=o===\"top\"||o===\"bottom\";switch(r){case\"start\":d?u=t.left:c=t.top;break;case\"center\":d?u=t.left+(t.width-e.width)/2:c=t.top+(t.height-e.height)/2;break;case\"end\":d?u=t.right-e.width:c=t.bottom-e.height;break}return{top:c,left:u}}function fLe({children:t,anchor:e,isOpen:n,onClose:r,position:o=\"bottom\",align:i=\"center\",offset:a=8,trigger:c,\"aria-label\":u,\"aria-labelledby\":d,\"aria-describedby\":h}){let m=(0,ZT.useRef)(null),g=ji(),b=(0,ZT.useCallback)(()=>{var C;if(!e||!m.current)return;let T=e.getBoundingClientRect(),R=(C=m.current)==null?void 0:C.getBoundingClientRect();if(!T||!R)return;let L=S1t(T,R,o,a),D=k1t(T,R,L,i,o);m.current.style.top=`${D.top}px`,m.current.style.left=`${D.left}px`},[e,o,a,i]);if((0,ZT.useEffect)(()=>{if(n)return b(),window.addEventListener(\"resize\",b),window.addEventListener(\"scroll\",b),()=>{window.removeEventListener(\"resize\",b),window.removeEventListener(\"scroll\",b)}},[n,b]),!n)return null;let E=(0,NM.jsx)(\"div\",{className:ge(g,Nu.dropdown,\"pointer-events-none fixed\"),\"data-portal-origin\":\"true\",children:(0,NM.jsx)(D1,{active:n,children:(0,NM.jsx)(B1,{onDismiss:r,triggerRef:c,children:(0,NM.jsx)(\"div\",{\"aria-label\":u,\"aria-labelledby\":d,\"aria-describedby\":h,className:ge(\"pointer-events-auto fixed\"),\"data-testid\":\"ockPopover\",ref:m,role:\"dialog\",children:t})})})});return(0,dLe.createPortal)(E,document.body)}var Y3=he(et(),1);p();var hLe=he(De(),1);function l$({children:t,className:e}){return(0,hLe.jsx)(\"p\",{className:ge(Xe.legal,it.foregroundMuted,\"mb-2\",e),children:t})}p();var $1=he(De(),1);var Ok=he(et(),1);var Ik={AUTO:\"Auto\",CUSTOM:\"Custom\"};function u$({className:t}){let{sendAnalytics:e}=zi(),{config:{maxSlippage:n},updateLifecycleStatus:r,lifecycleStatus:o}=Fm(),[i,a]=(0,Ok.useState)(o.statusData.maxSlippage===n?Ik.AUTO:Ik.CUSTOM),c=(0,Ok.useCallback)((m,g)=>{e(c2.SlippageChanged,{previousSlippage:m,slippage:g})},[e]),u=(0,Ok.useCallback)(m=>{let g=o.statusData.maxSlippage;m!==g&&(c(g,m),r({statusName:\"slippageChange\",statusData:{maxSlippage:m}}))},[o.statusData.maxSlippage,r,c]),d=(0,Ok.useCallback)(m=>{let g=m.target.value,b=Number.parseFloat(g),E=!Number.isNaN(b);u(E?b:0)},[u]),h=(0,Ok.useCallback)(m=>{a(m),m===Ik.AUTO&&u(n)},[n,u]);return(0,$1.jsxs)(\"section\",{className:ge(dn.default,mt.defaultActive,mt.radius,\"flex items-center gap-2 flex-grow max-sm:pt-4\",t),children:[(0,$1.jsxs)(\"fieldset\",{className:ge(dn.default,mt.defaultActive,mt.radius,\"flex h-9 flex-1 rounded-xl border p-1\"),children:[(0,$1.jsx)(\"legend\",{className:\"sr-only\",children:\"Slippage Setting\"}),Object.values(Ik).map(m=>(0,$1.jsx)(\"button\",{type:\"button\",className:ge(Ht.default,it.foreground,Xe.label1,mt.radiusInner,\"flex-1 px-3 py-1 transition-colors\",i===m?ge(dn.inverse,it.primary,Ht.shadow):it.foregroundMuted),onClick:()=>h(m),children:m},m))]}),(0,$1.jsxs)(\"div\",{className:ge(dn.default,mt.defaultActive,mt.radius,\"flex h-9 w-24 items-center justify-between border px-2 py-1\",i===Ik.AUTO&&\"opacity-50\"),children:[(0,$1.jsx)(\"label\",{htmlFor:\"slippage-input\",className:\"sr-only\",children:\"Slippage Percentage\"}),(0,$1.jsx)(\"input\",{id:\"slippage-input\",type:\"text\",value:o.statusData.maxSlippage,onChange:d,disabled:i===Ik.AUTO,className:ge(it.foreground,Xe.label2,\"w-full flex-grow bg-transparent pl-1 font-normal leading-6 focus:outline-none\",i===Ik.AUTO&&\"cursor-not-allowed\")}),(0,$1.jsx)(\"span\",{className:ge(dn.default,it.foreground,Xe.label2,\"ml-1 flex-shrink-0 font-normal leading-6\"),children:\"%\"})]})]})}p();var pLe=he(De(),1);function mLe({children:t,className:e}){return(0,pLe.jsx)(\"div\",{className:ge(dn.default,mt.radius,mt.lineDefault,\"right-0 z-10 w-[21.75rem] px-3 py-3\",e),\"data-testid\":\"ockSwapSettingsLayout_container\",children:t})}p();var E2=he(De(),1);function gLe({children:t,className:e}){return(0,E2.jsxs)(\"div\",{className:ge(dn.default,mt.default,Ht.shadow,\"right-0 z-10 h-full w-full rounded-t-lg px-3 pt-2 pb-3\",e),\"data-testid\":\"ockSwapSettingsLayout_container\",children:[(0,E2.jsx)(\"div\",{className:ge(dn.alternate,\"mx-auto mb-2 h-1 w-4 rounded-[6.25rem]\")}),(0,E2.jsx)(\"div\",{className:\"mb-4 flex items-center justify-center\",children:(0,E2.jsx)(\"h2\",{className:ge(it.foreground,\"font-bold text-sm\"),children:\"Settings\"})}),(0,E2.jsx)(\"div\",{className:\"flex flex-col\",children:t}),(0,E2.jsx)(\"div\",{className:\"mt-4 flex justify-center\",children:(0,E2.jsx)(\"div\",{className:ge(dn.inverse,\"h-1 w-28 shrink-0 rounded-[0.43931rem]\")})})]})}p();var yLe=he(De(),1);function d$({children:t,className:e}){return(0,yLe.jsx)(\"h3\",{className:ge(Xe.headline,it.foreground,\"mb-2 text-base\",e),children:t})}var _1t=(0,Za.jsxs)(Za.Fragment,{children:[(0,Za.jsx)(d$,{children:\"Max. slippage\"}),(0,Za.jsx)(l$,{children:\"Your swap will revert if the prices change by more than the selected percentage.\"}),(0,Za.jsx)(u$,{})]});function f$({children:t=_1t,className:e,icon:n=\"swapSettings\",text:r=\"\"}){let o=uV(),[i,a]=(0,Y3.useState)(!1),c=(0,Y3.useRef)(null),u=(0,Y3.useRef)(null),d=(0,Y3.useCallback)(g=>{g.stopPropagation(),a(b=>!b)},[]),h=(0,Y3.useCallback)(()=>{a(!1)},[]),m=h2({icon:n});return(0,Za.jsxs)(\"div\",{className:ge(\"flex w-auto items-center justify-end space-x-1 pb-4\",e),\"data-testid\":\"ockSwapSettings_Settings\",children:[r&&(0,Za.jsx)(\"span\",{className:ge(Xe.body),children:r}),(0,Za.jsxs)(\"div\",{className:ge(\"relative\",i&&\"group\"),ref:c,children:[(0,Za.jsx)(\"button\",{ref:u,type:\"button\",\"aria-label\":\"Toggle swap settings\",className:ge(Ht.default,\"rounded-full p-2 opacity-50 transition-opacity hover:opacity-100\"),onClick:d,children:(0,Za.jsx)(\"div\",{className:\"h-[1.125rem] w-[1.125rem]\",children:m})}),o===\"sm\"?(0,Za.jsx)(D1,{active:i,children:(0,Za.jsx)(B1,{onDismiss:h,triggerRef:u,preventTriggerEvents:!0,children:(0,Za.jsx)(\"div\",{className:ge(dn.inverse,Ht.shadow,\"fixed inset-x-0 z-50 transition-[bottom] duration-300 ease-in-out\",i?\"bottom-0\":\"-bottom-[12.875rem]\",\"h-[12.875rem] rounded-t-lg\",e),\"data-testid\":\"ockSwapSettingsSlippageLayoutBottomSheet_container\",children:(0,Za.jsx)(gLe,{className:e,children:t})})})}):(0,Za.jsx)(fLe,{isOpen:i,onClose:h,anchor:c.current,position:\"bottom\",align:\"end\",trigger:u,children:(0,Za.jsx)(\"div\",{className:ge(mt.radius,dn.default,Ht.shadow,\"absolute right-0 z-10 mt-1 w-[21.75rem] rounded-lg\"),\"data-testid\":\"ockSwapSettingsDropdown\",children:(0,Za.jsx)(mLe,{children:t})})})]})]})}p();var G1=he(De(),1),wLe=he(et(),1);p();Si();var C1t={[xs.id]:\"https://sepolia.basescan.org\",[Yn.id]:\"https://basescan.org\",[$G.id]:\"https://arbiscan.io\",[KG.id]:\"https://sepolia.arbiscan.io\",[KR.id]:\"https://optimistic.etherscan.io\",[uZ.id]:\"https://sepolia-optimism.etherscan.io/\",[dZ.id]:\"https://polygonscan.com\",[fZ.id]:\"https://mumbai.polygonscan.com\",[li.id]:\"https://etherscan.io\",[ZR.id]:\"https://sepolia.etherscan.io\"};function K1(t){return t?C1t[t]??\"https://basescan.org\":\"https://basescan.org\"}p();var Pk=he(De(),1),vLe=he(et(),1);p();function bLe(t){return t===\"bottom-right\"?\"bottom-5 left-3/4\":t===\"top-right\"?\"top-[100px] left-3/4\":t===\"top-center\"?\"top-[100px] left-2/4\":\"bottom-5 left-2/4\"}var A1t={\"top-center\":\"animate-enterDown\",\"top-right\":\"animate-enterRight\",\"bottom-center\":\"animate-enterUp\",\"bottom-right\":\"animate-enterRight\"};function h$({className:t,durationMs:e=5e3,startTimeout:n=!0,position:r=\"bottom-center\",animation:o,isVisible:i,onClose:a,children:c}){let u=bLe(r),d=o??A1t[r];return(0,vLe.useEffect)(()=>{if(n){let h=setTimeout(()=>{i&&a()},e);return()=>{h&&clearTimeout(h)}}},[e,i,a,n]),i?(0,Pk.jsx)(\"div\",{className:ge(\"-translate-x-2/4 fixed z-20\",u),\"data-testid\":\"ockToastContainer\",children:(0,Pk.jsxs)(\"div\",{className:ge(dn.default,\"flex items-center justify-between rounded-lg\",\"p-2 shadow-[0px_8px_24px_0px_rgba(0,0,0,0.12)]\",d,t),\"data-testid\":\"ockToast\",children:[(0,Pk.jsx)(\"div\",{className:\"flex items-center gap-4 p-2\",children:c}),(0,Pk.jsx)(\"button\",{className:\"p-2\",onClick:a,type:\"button\",\"data-testid\":\"ockCloseButton\",children:(0,Pk.jsx)(xT,{})})]})}):null}function p$({className:t,durationMs:e=5e3,position:n=\"bottom-center\"}){let{isToastVisible:r,setIsToastVisible:o,setTransactionHash:i,transactionHash:a}=Fm(),{chainId:c}=Jn(),u=K1(c),d=(0,wLe.useCallback)(()=>{o(!1),i(\"\")},[o,i]);return r?(0,G1.jsxs)(h$,{position:n,className:t,durationMs:e,isVisible:r,onClose:d,children:[(0,G1.jsx)(\"div\",{className:ge(Xe.label2),children:(0,G1.jsx)(nT,{})}),(0,G1.jsx)(\"div\",{className:ge(Xe.label1,\"text-nowrap\"),children:(0,G1.jsx)(\"p\",{className:it.foreground,children:\"Successful\"})}),(0,G1.jsx)(\"div\",{className:ge(Xe.label1,\"text-nowrap\"),children:(0,G1.jsx)(\"a\",{href:`${u}/tx/${a}`,target:\"_blank\",rel:\"noreferrer\",children:(0,G1.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"View transaction\"})})})]}):null}p();var xLe=he(De(),1);function m$({className:t}){let{handleToggle:e}=Fm();return(0,xLe.jsx)(\"button\",{type:\"button\",className:ge(Ht.alternate,mt.default,\"-my-6 relative mx-auto\",\"flex h-12 w-12 items-center justify-center\",\"rounded-lg border-4 border-solid\",t),\"data-testid\":\"SwapTokensButton\",onClick:e,children:MT})}function T1t({to:t,from:e,disabled:n}){return(0,Ll.jsxs)(Ll.Fragment,{children:[(0,Ll.jsx)(f$,{}),(0,Ll.jsx)(GT,{label:\"Sell\",swappableTokens:e,token:e?.[0],type:\"from\"}),(0,Ll.jsx)(m$,{}),(0,Ll.jsx)(GT,{label:\"Buy\",swappableTokens:t,token:t?.[0],type:\"to\"}),(0,Ll.jsx)(a$,{disabled:n}),(0,Ll.jsx)(c$,{}),(0,Ll.jsx)(p$,{})]})}function ELe({children:t,config:e={maxSlippage:3},className:n,disabled:r,to:o,from:i,experimental:a={useAggregator:!1},isSponsored:c=!1,onError:u,onStatus:d,onSuccess:h,title:m=\"Swap\",headerLeftContent:g}){let b=ji();return BT()?(0,Ll.jsx)(aLe,{config:e,experimental:a,isSponsored:c,onError:u,onStatus:d,onSuccess:h,children:(0,Ll.jsxs)(\"div\",{className:ge(b,dn.default,mt.radius,it.foreground,\"relative flex w-full max-w-[500px] flex-col px-6 pt-6 pb-4\",n),\"data-testid\":\"ockSwap_Container\",children:[(0,Ll.jsxs)(\"div\",{className:\"absolute flex w-1/2 items-center justify-between\",children:[g,(0,Ll.jsx)(\"h3\",{className:ge(Xe.title3,\"text-center\"),\"data-testid\":\"ockSwap_Title\",children:m})]}),t??(0,Ll.jsx)(T1t,{to:o,from:i,disabled:r})]})}):null}var gae=he(et(),1);function yae({config:t,classNames:e,disabled:n,experimental:r,from:o,isSponsored:i=!1,onError:a,onStatus:c,onSuccess:u,title:d,to:h}){var m,g,b,E;let{setActiveFeature:C,isActiveFeatureClosing:T,setIsActiveFeatureClosing:R}=Ko(),L=(0,gae.useCallback)(()=>{R(!0)},[R]),D=(0,gae.useCallback)(()=>{T&&(C(null),R(!1))},[T,C,R]),G=(0,Du.jsx)(Lm,{ariaLabel:\"Back button\",onClick:L,children:(0,Du.jsx)(\"div\",{className:\"p-2\",children:VT})});return(0,Du.jsx)(\"div\",{className:ge(\"h-full\",mt.radius,T?\"fade-out slide-out-to-right-5 animate-out fill-mode-forwards ease-in-out\":\"fade-in slide-in-from-right-5 linear animate-in duration-150\",\"relative w-88 h-120\",e?.container),onAnimationEnd:D,\"data-testid\":\"ockWalletAdvancedSwap\",children:(0,Du.jsxs)(ELe,{className:ge(\"w-full px-4 pt-3 pb-4\",e?.container),onStatus:c,onSuccess:u,onError:a,config:t,isSponsored:i,title:d,experimental:r,headerLeftContent:G,children:[(0,Du.jsxs)(f$,{className:ge(\"w-auto\",(m=e?.settings)==null?void 0:m.container),children:[(0,Du.jsx)(d$,{className:(g=e?.settings)==null?void 0:g.slippageTitle,children:\"Max. slippage\"}),(0,Du.jsx)(l$,{className:(b=e?.settings)==null?void 0:b.slippageDescription,children:\"Your swap will revert if the prices change by more than the selected percentage.\"}),(0,Du.jsx)(u$,{className:(E=e?.settings)==null?void 0:E.slippageInput})]}),(0,Du.jsx)(GT,{label:\"Sell\",swappableTokens:o,type:\"from\",className:e?.fromAmountInput}),(0,Du.jsx)(m$,{className:e?.toggleButton}),(0,Du.jsx)(GT,{label:\"Buy\",swappableTokens:h,type:\"to\",className:e?.toAmountInput}),(0,Du.jsx)(a$,{disabled:n,className:e?.swapButton}),(0,Du.jsx)(c$,{className:e?.message}),(0,Du.jsx)(p$,{className:e?.toast})]})})}p();var ga=he(De(),1);p();p();var LM=he(De(),1);p();var g$=he(De(),1);p();var TLe=he(De(),1);p();p();async function SLe(t,e=no.API){let n=R1t(t);if(\"error\"in n)return n;try{let r=await H3(YPe,[n],e);return r.error?{code:String(r.error.code),error:\"Error fetching price quote\",message:r.error.message}:r.result}catch(r){return{code:\"UNCAUGHT_PRICE_QUOTE_ERROR\",error:\"Something went wrong\",message:`Error fetching price quote: ${r}`}}}function R1t(t){let{tokens:e}=t;return!e||e.length===0?{code:\"INVALID_INPUT\",error:\"Invalid input: tokens must be an array of at least one token\",message:\"Tokens must be an array of at least one token\"}:t}function kLe(t,e=no.Hook){let{token:n,queryOptions:r}=t;return pd({queryKey:[\"getPriceQuote\",n],queryFn:async()=>{if(!n)return{priceQuotes:[]};let o=await SLe({tokens:[n]},e);if(q3(o))throw o;return o},...Mu,...r})}var yc=he(et(),1);bo();p();var XDn=he(De(),1),S2=he(et(),1);Si();p();p();var _Le=t=>t.endsWith(\".base.eth\")||t.endsWith(\".basetest.eth\")?!1:!!(t.endsWith(\".eth\")||t.endsWith(\".test.eth\"));bo();Si();async function CLe(t){if(Kr(t,{strict:!1}))return t;if(pk(t)||_Le(t)){let e=await mk({name:t,chain:pk(t)?Yn:li});if(e)return e}return null}function ALe(){let[t,e]=(0,S2.useState)({phase:\"input\",input:\"\",address:null,displayValue:null}),n=(0,S2.useCallback)(a=>{e(c=>({...c,input:a}))},[]),r=(0,S2.useCallback)(a=>{CLe(a).then(c=>{if(!c){e({phase:\"input\",input:a,address:null,displayValue:null});return}e({phase:\"validated\",input:a,address:c,displayValue:null})})},[]),o=(0,S2.useCallback)(async a=>{e(a)},[]),i=(0,S2.useCallback)(()=>{t.phase===\"selected\"?e({phase:\"validated\",input:t.input,address:t.address,displayValue:null}):e({...t,displayValue:null})},[t]);return(0,S2.useEffect)(()=>{t.phase===\"selected\"&&zP({address:t.address,chain:Yn}).then(a=>{e({phase:t.phase,input:t.input,address:t.address,displayValue:a??vk(t.address)})}).catch(()=>e({phase:t.phase,input:t.input,address:t.address,displayValue:vk(t.address)}))},[t.phase,t.address,t.input]),{recipientState:t,updateRecipientInput:n,validateRecipientInput:r,selectRecipient:o,deselectRecipient:i}}var RLe={},ILe=(0,yc.createContext)(RLe);function Fu(){let t=(0,yc.useContext)(ILe);if(t===RLe)throw new Error(\"useSendContext must be used within a SendProvider\");return t}function OLe({children:t}){var e;let[n,r]=(0,yc.useState)(null),[o,i]=(0,yc.useState)(\"crypto\"),[a,c]=(0,yc.useState)(null),[u,d]=(0,yc.useState)(null),{recipientState:h,updateRecipientInput:m,validateRecipientInput:g,selectRecipient:b,deselectRecipient:E}=ALe(),[C,T]=CT({statusName:\"init\",statusData:{isMissingRequiredField:!0}}),R=(0,yc.useMemo)(()=>n?o===\"fiat\"?Number(a)<=n.fiatBalance:Number(u)<=Number(vs(BigInt(n.cryptoBalance),n.decimals)):!1,[o,n,u,a]),{address:L}=Jn(),{data:D}=Bd({address:L},no.Wallet),G=(e=D?.tokenBalances)==null?void 0:e.find(O=>O.address===\"\"),W=G?Number(vs(BigInt(G.cryptoBalance),G.decimals)):0,J=W!==void 0;(0,yc.useEffect)(()=>{if(!W||W===0){T({statusName:\"fundingWallet\",statusData:{isMissingRequiredField:!0}});return}T({statusName:\"selectingAddress\",statusData:{isMissingRequiredField:!0}})},[W,T]);let{isLoading:ne,data:ie}=kLe({token:n?.address===\"\"?\"ETH\":n?.address},no.Wallet),Z=(0,yc.useMemo)(()=>!ie||q3(ie)||ie.priceQuotes.length===0?0:1/Number(ie.priceQuotes[0].price),[ie]),ae=(0,yc.useCallback)(O=>{r(O),T({statusName:\"amountChange\",statusData:{isMissingRequiredField:!0,sufficientBalance:!1}})},[T]),V=(0,yc.useCallback)(()=>{r(null),c(null),d(null),T({statusName:\"selectingToken\",statusData:{isMissingRequiredField:!0}})},[T]),$=(0,yc.useCallback)(O=>{c(O),T({statusName:\"amountChange\",statusData:{isMissingRequiredField:!0,sufficientBalance:R}})},[T,R]),F=(0,yc.useCallback)(O=>{let z=Sg(O,8);d(z),T({statusName:\"amountChange\",statusData:{isMissingRequiredField:!0,sufficientBalance:R}})},[T,R]),_=Vc({isInitialized:J,lifecycleStatus:C,updateLifecycleStatus:T,ethBalance:W,recipientState:h,updateRecipientInput:m,validateRecipientInput:g,selectRecipient:b,deselectRecipient:E,selectedToken:n,handleTokenSelection:ae,handleResetTokenSelection:V,fiatAmount:a,handleFiatAmountChange:$,cryptoAmount:u,handleCryptoAmountChange:F,exchangeRate:Z,exchangeRateLoading:ne,selectedInputType:o,setSelectedInputType:i});return(0,TLe.jsx)(ILe.Provider,{value:_,children:t})}var I1t=(0,g$.jsx)(\"div\",{\"data-testid\":\"ockSendAmountInputTypeSwitch_ErrorDisplay\",className:ge(Xe.caption,it.foregroundMuted,\"h-[1.625rem]\"),children:\"Exchange rate unavailable\"});function PLe({errorDisplay:t,className:e}){let{selectedToken:n,fiatAmount:r,cryptoAmount:o,exchangeRate:i,exchangeRateLoading:a,selectedInputType:c,setSelectedInputType:u}=Fu();return a?(0,g$.jsx)(z1,{className:\"h-[1.625rem]\"}):i?(0,g$.jsx)(SV,{asset:n?.symbol??\"\",fiatAmount:r??\"\",cryptoAmount:o??\"\",exchangeRate:i,exchangeRateLoading:!1,currency:\"USD\",selectedInputType:c,setSelectedInputType:u,className:e}):t||I1t}function MLe({className:t,textClassName:e}){let{selectedToken:n,cryptoAmount:r,handleCryptoAmountChange:o,fiatAmount:i,handleFiatAmountChange:a,selectedInputType:c,exchangeRate:u}=Fu();return(0,LM.jsxs)(\"div\",{className:\"flex h-full w-full flex-col justify-center\",children:[(0,LM.jsx)(xV,{fiatAmount:i??\"\",cryptoAmount:r??\"\",asset:n?.symbol??\"\",currency:\"USD\",selectedInputType:c,setFiatAmount:a,setCryptoAmount:o,exchangeRate:String(u),className:t,textClassName:e}),(0,LM.jsx)(PLe,{})]})}p();var X3=he(De(),1);p();var Z1=he(De(),1);p();var bae=he(De(),1),Q3=he(et(),1);p();function NLe({errorMessage:t,hasReceipt:e,isInProgress:n,transactionHash:r,transactionId:o}){let i=o||r;return e||t?!1:!!(n||i)}p();var qLe=he(De(),1),Ti=he(et(),1);p();function LLe({setLifecycleStatus:t,transactionId:e}){var n,r;try{let{data:o}=F9({id:e,query:{refetchInterval:a=>{var c;return PM((c=a.state.data)==null?void 0:c.status)===\"success\"?!1:1e3},enabled:!!e}}),i=(r=(n=o?.receipts)==null?void 0:n[0])==null?void 0:r.transactionHash;return{status:o?.status,transactionHash:i}}catch(o){return t({statusName:\"error\",statusData:{code:\"TmUCSh01\",error:JSON.stringify(o),message:\"\"}}),{status:\"error\",transactionHash:void 0}}}p();function BLe({setLifecycleStatus:t,transactionHashList:e}){let{status:n,sendTransactionAsync:r,data:o,reset:i}=H9({mutation:{onError:a=>{let c=Z3(a)?\"Request denied.\":v2;t({statusName:\"error\",statusData:{code:\"TmUSCh01\",error:a.message,message:c}})},onSuccess:a=>{t({statusName:\"transactionLegacyExecuted\",statusData:{transactionHashList:[...e,a]}})}}});return{status:n,sendCallAsync:r,data:o,reset:i}}p();function DLe({setLifecycleStatus:t,setTransactionId:e}){let{status:n,sendCallsAsync:r,data:o,reset:i}=z9({mutation:{onError:a=>{let c=Z3(a)?\"Request denied.\":v2;t({statusName:\"error\",statusData:{code:\"TmUSCSh01\",error:a.message,message:c}})},onSuccess:a=>{e(s$(a))}}});return{status:n,sendCallsAsync:r,data:o,reset:i}}p();var jLe=he(et(),1);p();p();function y$(t){return\"abi\"in t}var FLe=async({capabilities:t,sendCallsAsync:e,transactions:n})=>{if(!n)return;let r=n?.map(o=>{if(y$(o)){let{address:i,...a}=o;return{...a,to:i}}return o});await e({calls:r,capabilities:t})};p();bo();var ULe=async({config:t,sendCallAsync:e,transactions:n})=>{let r=n?.map(o=>y$(o)?{data:yo({abi:o?.abi,functionName:o?.functionName,args:o?.args}),to:o?.address}:o);for(let o of r){let i=await e(o);i&&await Xp(t,{hash:i,confirmations:1})}};var zLe=({capabilities:t,sendCallAsync:e,sendCallsAsync:n,walletCapabilities:r})=>{let o=Qn();return(0,jLe.useCallback)(async i=>{var a;if(!i)return;let c=await Promise.resolve(i);(a=r[uk.AtomicBatch])!=null&&a.supported?await FLe({capabilities:t,sendCallsAsync:n,transactions:c}):await ULe({config:o,sendCallAsync:e,transactions:c})},[n,e,t,r,o])};p();var HLe=t=>{var e;return((e=t?.paymasterService)==null?void 0:e.url)||null};var WLe={},VLe=(0,Ti.createContext)(WLe);function Uu(){let t=(0,Ti.useContext)(VLe);if(t===WLe)throw new Error(\"useTransactionContext must be used within a Transaction component\");return t}function $Le({calls:t,capabilities:e,chainId:n,children:r,contracts:o,isSponsored:i,onError:a,onStatus:c,onSuccess:u,resetAfter:d}){let h=Jn(),m=Qn(),{config:{paymaster:g}={paymaster:void 0}}=lo(),[b,E]=(0,Ti.useState)(\"\"),[C,T]=(0,Ti.useState)(\"\"),[R,L]=(0,Ti.useState)(!1),[D,G]=(0,Ti.useState)({statusName:\"init\",statusData:null}),[W,J]=(0,Ti.useState)(\"\"),[ne,ie]=(0,Ti.useState)(),[Z,ae]=(0,Ti.useState)([]),V=t||o,$=kT({chainId:n}),{switchChainAsync:F}=L6();if(!o&&!t)throw new Error(\"Transaction: calls or contracts must be provided as a prop to the Transaction component.\");if(t&&o)throw new Error(\"Transaction: Only one of contracts or calls can be provided as a prop to the Transaction component.\");let{status:_,sendCallsAsync:O,reset:z}=DLe({setLifecycleStatus:G,setTransactionId:J}),{status:N,sendCallAsync:B,data:j,reset:q}=BLe({setLifecycleStatus:G,transactionHashList:Z}),H=(0,Ti.useMemo)(()=>{var Ge;return(Ge=$[uk.AtomicBatch])!=null&&Ge.supported?_:N},[N,_,$]),I=(0,Ti.useMemo)(()=>i&&g?{paymasterService:{url:g},...e}:e,[i,g,e]),U=zLe({capabilities:I,sendCallAsync:B,sendCallsAsync:O,walletCapabilities:$}),{transactionHash:X,status:ee}=LLe({setLifecycleStatus:G,transactionId:W}),{data:se}=nJ({hash:j||X}),{sendAnalytics:pe}=zi(),ye=(0,Ti.useCallback)((Ge,ht)=>{pe(Ge,ht)},[pe]);(0,Ti.useEffect)(()=>{E(\"\"),D.statusName===\"error\"&&(E(D.statusData.message),T(D.statusData.code),a?.(D.statusData)),D.statusName===\"transactionLegacyExecuted\"&&ae(D.statusData.transactionHashList),D.statusName===\"success\"&&u?.({transactionReceipts:D.statusData.transactionReceipts}),c?.(D)},[a,c,u,D,D.statusData,D.statusName]),(0,Ti.useEffect)(()=>{H===\"pending\"&&G({statusName:\"transactionPending\",statusData:null})},[H]),(0,Ti.useEffect)(()=>{if(se&&(G({statusName:\"success\",statusData:{transactionReceipts:[se]}}),d)){let Ge=setTimeout(()=>{E(\"\"),T(\"\"),L(!1),J(\"\"),ae([]),ie(void 0),z(),q()},d);return()=>clearTimeout(Ge)}},[se,d,z,q]);let xe=(0,Ti.useCallback)(async()=>{let Ge=[];for(let ht of Z)try{let Ct=await Xp(m,{hash:ht,chainId:n});Ge.push(Ct)}catch(Ct){G({statusName:\"error\",statusData:{code:\"TmTPc01\",error:JSON.stringify(Ct),message:v2}})}G({statusName:\"success\",statusData:{transactionReceipts:Ge}})},[n,m,Z]);(0,Ti.useEffect)(()=>{!V||Z.length!==ne||ne<2||xe()},[V,ne,Z,xe]);let _e=(0,Ti.useCallback)(async Ge=>{Ge&&h.chainId!==Ge&&await F({chainId:Ge})},[h.chainId,F]),Me=(0,Ti.useCallback)(async()=>{G({statusName:\"buildingTransaction\",statusData:null});try{ye(ZA.TransactionInitiated,{address:h.address});let Ge=await(typeof V==\"function\"?V():Promise.resolve(V));return ie(Ge?.length),Ge}catch(Ge){ye(ZA.TransactionFailure,{error:Ge.message,metadata:{code:C}}),G({statusName:\"error\",statusData:{code:\"TmTPc04\",error:JSON.stringify(Ge),message:\"Error building transactions\"}});return}},[V,ye,h.address,C]),qe=(0,Ti.useCallback)(async()=>{E(\"\"),L(!0);try{await _e(n);let Ge=await Me();await U(Ge)}catch(Ge){let ht=Z3(Ge)?\"Request denied.\":v2;G({statusName:\"error\",statusData:{code:\"TmTPc03\",error:JSON.stringify(Ge),message:ht}})}},[Me,n,U,_e]),wt=Vc({chainId:n,errorCode:C,errorMessage:b,isLoading:ee===\"PENDING\",isToastVisible:R,lifecycleStatus:D,onSubmit:qe,paymasterUrl:HLe(I),receipt:se,setIsToastVisible:L,setLifecycleStatus:G,setTransactionId:J,transactions:V,transactionId:W,transactionHash:j||X,transactionCount:ne});return(0,Ti.useEffect)(()=>{se&&(se.status===\"success\"?ye(ZA.TransactionSuccess,{paymaster:!!(i&&g),address:h.address,transactionHash:se.transactionHash}):ye(ZA.TransactionFailure,{error:\"Transaction failed\",metadata:{code:C}}))},[se,ye,i,g,h.address,C]),(0,qLe.jsx)(VLe.Provider,{value:wt,children:r})}function b$({className:t,disabled:e=!1,text:n=\"Transact\",errorOverride:r,successOverride:o,pendingOverride:i}){var a,c;let{chainId:u,errorMessage:d,isLoading:h,lifecycleStatus:m,onSubmit:g,receipt:b,transactions:E,transactionCount:C,transactionHash:T,transactionId:R}=Uu(),{address:L}=Jn(),D=u??xl(),G=m.statusName===\"transactionLegacyExecuted\"&&C!==((c=(a=m?.statusData)==null?void 0:a.transactionHashList)==null?void 0:c.length),W=m.statusName===\"buildingTransaction\"||m.statusName===\"transactionPending\"||G||h,ie=!b&&(W||(!E||!L)||(!!R||!!T)||e),Z=NLe({errorMessage:d,hasReceipt:!!b,isInProgress:W,transactionHash:T,transactionId:R}),{errorText:ae,successText:V,pendingContent:$}=(0,Q3.useMemo)(()=>{let B=o?.text??\"View transaction\",j=r?.text??\"Try again\",q=i?.text??(0,bae.jsx)(jh,{});return{successText:B,errorText:j,pendingContent:q}},[r,i,o]),F=(0,Q3.useCallback)(()=>{if(b&&R&&T&&u&&L){let j=new URL(\"https://wallet.coinbase.com/assets/transactions\");return j.searchParams.set(\"contentParams[txHash]\",T),j.searchParams.set(\"contentParams[chainId]\",JSON.stringify(u)),j.searchParams.set(\"contentParams[fromAddress]\",L),window.open(j,\"_blank\",\"noopener,noreferrer\")}let B=K1(D);return window.open(`${B}/tx/${T}`,\"_blank\",\"noopener,noreferrer\")},[L,u,b,R,T,D]),_=(0,Q3.useCallback)(()=>{var B;if(o?.onClick&&b)return(B=o?.onClick)==null?void 0:B.call(o,b);F()},[F,o,b]),O=(0,Q3.useCallback)(()=>{var B;return r?.onClick?(B=r?.onClick)==null?void 0:B.call(r):g()},[r,g]),z=(0,Q3.useMemo)(()=>b?V:d?ae:Z?$:n,[Z,d,ae,n,$,b,V]),N=(0,Q3.useCallback)(()=>{b?_():d?O():g()},[d,O,g,b,_]);return(0,bae.jsx)(\"button\",{className:ge(Ht.primary,mt.radius,\"w-full rounded-xl\",\"px-4 py-3 font-medium leading-6\",ie&&Ht.disabled,Xe.headline,it.inverse,t),onClick:N,type:\"button\",disabled:ie,\"data-testid\":\"ockTransactionButton_Button\",children:z})}p();var k2=he(De(),1),nBe=he(et(),1);p();var ZLe=he(De(),1);p();var Mk=he(De(),1),KLe=he(et(),1);function GLe(){let{chainId:t,errorMessage:e,onSubmit:n,transactionHash:r,transactionId:o}=Uu(),i=t??xl(),{showCallsStatus:a}=q9();return(0,KLe.useMemo)(()=>{let c=K1(i),u=null;return r&&(u=(0,Mk.jsx)(\"a\",{href:`${c}/tx/${r}`,target:\"_blank\",rel:\"noreferrer\",children:(0,Mk.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"View transaction\"})})),o&&(u=(0,Mk.jsx)(\"button\",{onClick:()=>a({id:o}),type:\"button\",children:(0,Mk.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"View transaction\"})})),e&&(u=(0,Mk.jsx)(\"button\",{type:\"button\",onClick:n,children:(0,Mk.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"Try again\"})})),{actionElement:u}},[i,e,n,a,r,o])}function YLe({className:t}){let{actionElement:e}=GLe();return(0,ZLe.jsx)(\"div\",{className:ge(Xe.label1,\"text-nowrap\",t),children:e})}p();var BM=he(De(),1),QLe=he(et(),1);function JLe({className:t}){let{errorMessage:e,isLoading:n,receipt:r,transactionHash:o,transactionId:i}=Uu(),a=n||!!i||!!o,c=(0,QLe.useMemo)(()=>r?(0,BM.jsx)(nT,{}):e?(0,BM.jsx)(TW,{}):a?(0,BM.jsx)(jh,{className:\"px-1.5 py-1.5\"}):null,[a,e,r]);return c?(0,BM.jsx)(\"div\",{className:ge(Xe.label2,t),children:c}):null}p();var vae=he(De(),1);p();var XLe=he(et(),1);function eBe(){let{errorMessage:t,isLoading:e,lifecycleStatus:n,receipt:r,transactionHash:o,transactionId:i}=Uu(),a=e||!!i||!!o,c=n.statusName===\"buildingTransaction\";return(0,XLe.useMemo)(()=>{let u=\"\",d=it.foregroundMuted;return c&&(u=\"Building transaction\"),a&&(u=\"Transaction in progress\"),r&&(u=\"Successful\"),t&&(u=\"Something went wrong\",d=it.error),{label:u,labelClassName:d}},[t,c,a,r])}function tBe({className:t}){let{label:e}=eBe();return(0,vae.jsx)(\"div\",{className:ge(Xe.label1,\"text-nowrap\",t),children:(0,vae.jsx)(\"p\",{className:it.foreground,children:e})})}function rBe({children:t,className:e,durationMs:n=5e3,position:r=\"bottom-center\"}){let{errorMessage:o,isLoading:i,isToastVisible:a,receipt:c,setIsToastVisible:u,transactionHash:d,transactionId:h}=Uu(),m=(0,nBe.useCallback)(()=>{u(!1)},[u]);return!a||!c&&!i&&!d&&!o&&!h?null:(0,k2.jsx)(h$,{position:r,className:e,durationMs:n,isVisible:a,onClose:m,startTimeout:!!c||!!o,children:t??(0,k2.jsxs)(k2.Fragment,{children:[(0,k2.jsx)(JLe,{}),(0,k2.jsx)(tBe,{}),(0,k2.jsx)(YLe,{})]})})}function oBe({calls:t,capabilities:e,chainId:n,className:r,children:o,contracts:i,disabled:a=!1,isSponsored:c,onError:u,onStatus:d,onSuccess:h,resetAfter:m}){let g=BT(),b=ji(),{chain:E}=lo();if(!g)return(0,Z1.jsx)(\"div\",{className:ge(b,\"flex w-full flex-col gap-2\",r)});let C=n||E.id;return(0,Z1.jsx)($Le,{calls:t,capabilities:e,chainId:C,contracts:i,isSponsored:c,onError:u,onStatus:d,onSuccess:h,resetAfter:m,children:(0,Z1.jsx)(\"div\",{className:ge(b,\"flex w-full flex-col gap-2\",r),children:o??(0,Z1.jsxs)(Z1.Fragment,{children:[(0,Z1.jsx)(b$,{disabled:a}),(0,Z1.jsx)(rBe,{})]})})})}p();var J3=he(De(),1);p();var aBe=he(De(),1);p();var DM=he(De(),1),iBe=he(et(),1);function sBe(){let{chainId:t,receipt:e,transactionHash:n,transactionId:r}=Uu(),o=t??xl(),{showCallsStatus:i}=q9();return(0,iBe.useMemo)(()=>{let a=K1(o),c=null;return n&&(c=(0,DM.jsx)(\"a\",{href:`${a}/tx/${n}`,target:\"_blank\",rel:\"noreferrer\",children:(0,DM.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"View transaction\"})})),r&&(c=(0,DM.jsx)(\"button\",{onClick:()=>i({id:r}),type:\"button\",children:(0,DM.jsx)(\"span\",{className:ge(Xe.label1,it.primary),children:\"View transaction\"})})),e&&(c=null),{actionElement:c}},[o,e,i,n,r])}function v$({className:t}){let{actionElement:e}=sBe();return(0,aBe.jsx)(\"div\",{className:ge(Xe.label2,\"min-w-[70px]\",t),children:e})}p();var wae=he(De(),1);p();var cBe=he(et(),1);function lBe(){let{errorMessage:t,isLoading:e,receipt:n,lifecycleStatus:r,transactionHash:o,transactionId:i}=Uu(),a=e||!!i||!!o,c=r.statusName===\"transactionPending\",u=r.statusName===\"buildingTransaction\";return(0,cBe.useMemo)(()=>{let d=\"\",h=it.foregroundMuted;return u&&(d=\"Building transaction...\"),c&&(d=\"Confirm in wallet.\"),a&&(d=\"Transaction in progress...\"),n&&(d=\"Successful\"),t&&(d=t,h=it.error),{label:d,labelClassName:h}},[t,u,a,c,n])}function w$({className:t}){let{label:e,labelClassName:n}=lBe();return(0,wae.jsx)(\"div\",{className:ge(Xe.label2,t),children:(0,wae.jsx)(\"p\",{className:n,children:e})})}function uBe({children:t,className:e}){return(0,J3.jsx)(\"div\",{className:ge(\"flex justify-between\",e),children:t??(0,J3.jsxs)(J3.Fragment,{children:[(0,J3.jsx)(w$,{}),(0,J3.jsx)(v$,{})]})})}var xae=he(et(),1);bo();Si();p();function dBe({transactionId:t,transactionHash:e,senderChain:n,address:r,onComplete:o}){return i=>{let a=n?.id??xl();if(i&&t&&e&&n?.id&&r){let c=new URL(\"https://wallet.coinbase.com/assets/transactions\");c.searchParams.set(\"contentParams[txHash]\",e),c.searchParams.set(\"contentParams[chainId]\",JSON.stringify(n?.id)),c.searchParams.set(\"contentParams[fromAddress]\",r),window.open(c,\"_blank\",\"noopener,noreferrer\")}else{let c=K1(a);window.open(`${c}/tx/${e}`,\"_blank\",\"noopener,noreferrer\")}o?.()}}p();p();bo();function fBe({recipientAddress:t,tokenAddress:e,amount:n}){if(!e)return{to:t,data:\"0x\",value:n};try{let r=yo({abi:f9,functionName:\"transfer\",args:[t,n]});return{to:e,data:r}}catch(r){return{code:\"AmBSeTx01\",error:r instanceof Error?r.message:String(r),message:\"Could not build transfer transaction\"}}}bo();function hBe({recipientAddress:t,token:e,amount:n}){if(!t||!e||!e.decimals||!n)return{calldata:null,error:{code:\"SemBSeTx01\",error:\"Invalid transaction parameters\",message:\"Could not build send transaction\"}};if(!e.address&&e.symbol!==\"ETH\")return{calldata:null,error:{code:\"SemBSeTx02\",error:\"No token address provided for non-ETH token\",message:\"Could not build send transaction\"}};try{let r=AC(n,e.decimals),o=fBe({recipientAddress:t,tokenAddress:e.address||null,amount:r});return q3(o)?{calldata:null,error:o}:{calldata:o,error:null}}catch(r){return{calldata:null,error:{code:\"SemBSeTx03\",error:r instanceof Error?r.message:\"Unknown error\",message:\"Could not build send transaction\"}}}}function pBe(){let{chain:t,isSponsored:e}=Ko(),{recipientState:n,cryptoAmount:r,selectedToken:o,updateLifecycleStatus:i}=Fu(),{calldata:a,error:c}=hBe({recipientAddress:n.address,token:o,amount:r}),u=!!c||!M1t({inputAmount:r??\"\",balance:BigInt(o?.cryptoBalance??0),selectedToken:o??void 0}),d=P1t(r,o),h=(0,xae.useCallback)(m=>{[\"transactionPending\",\"transactionLegacyExecuted\",\"success\",\"error\"].includes(m.statusName)&&i(m)},[i]);return(0,X3.jsxs)(oBe,{isSponsored:e,chainId:t?.id??Yn.id,calls:a?[a]:[],onStatus:h,children:[(0,X3.jsx)(O1t,{label:d,senderChain:t,disabled:u}),(0,X3.jsxs)(uBe,{children:[(0,X3.jsx)(w$,{}),(0,X3.jsx)(v$,{})]})]})}function O1t({label:t,senderChain:e,disabled:n}){let{address:r,setActiveFeature:o}=Ko(),{transactionHash:i,transactionId:a}=Uu(),c=(0,xae.useCallback)(()=>{o(null)},[o]),u={onClick:dBe({transactionId:a,transactionHash:i,senderChain:e??void 0,address:r??void 0,onComplete:c})};return(0,X3.jsx)(b$,{text:t,successOverride:u,disabled:n})}function P1t(t,e){return t?e?AC(t,e.decimals)>e.cryptoBalance?\"Insufficient balance\":\"Continue\":\"Select token\":\"Input amount\"}function M1t({inputAmount:t,balance:e,selectedToken:n}){if(!t||!n||!e)return!1;let r=AC(t,n.decimals);return r>0n&&r<=e}p();var Y1=he(De(),1),Mzn=he(et(),1);var Zzn=he(I0(),1);function mBe({onError:t,onStatus:e,onSuccess:n,classNames:r}){return(0,Y1.jsxs)(\"div\",{className:ge(\"flex flex-col items-center justify-between\",r?.container),\"data-testid\":\"ockSendFundWallet\",children:[(0,Y1.jsx)(\"div\",{className:ge(Xe.label2,it.foregroundMuted,r?.subtitle),children:\"Insufficient ETH balance to send transaction. Fund your wallet to continue.\"}),(0,Y1.jsxs)(Ise,{assetSymbol:\"ETH\",country:\"US\",currency:\"USD\",presetAmountInputs:[\"2\",\"5\",\"10\"],onError:t,onStatus:e,onSuccess:n,className:ge(\"mt-3 w-88 border-none py-0\",r?.fundCard),children:[(0,Y1.jsx)(XP,{}),(0,Y1.jsx)(nM,{}),(0,Y1.jsx)(iM,{}),(0,Y1.jsx)(rM,{}),(0,Y1.jsx)(aM,{})]})]})}p();var _2=he(De(),1);var Eae=he(et(),1);function gBe({label:t=\"Send\",classNames:e}){let{setActiveFeature:n}=Ko(),{recipientState:r,selectedToken:o,handleResetTokenSelection:i,deselectRecipient:a}=Fu(),c=(0,Eae.useCallback)(()=>{o?i():r.address&&a()},[r.address,o,i,a]),u=(0,Eae.useCallback)(()=>{n(null)},[n]);return(0,_2.jsxs)(\"div\",{\"data-testid\":\"ockSendHeader\",className:ge(\"mb-4 grid grid-cols-3 items-center\",e?.container),children:[(0,_2.jsx)(\"div\",{\"data-testid\":\"ockSendHeader_back\",className:\"justify-self-start\",children:r.phase===\"selected\"&&(0,_2.jsx)(Lm,{onClick:c,className:ge(\"h-7 w-7 scale-110 p-2\",e?.back),children:VT})}),(0,_2.jsx)(\"div\",{\"data-testid\":\"ockSendHeader_label\",className:ge(Xe.headline,\"justify-self-center\",e?.label),children:t}),(0,_2.jsx)(\"div\",{\"data-testid\":\"ockSendHeader_close\",className:\"justify-self-end\",children:(0,_2.jsx)(Lm,{onClick:u,className:ge(\"h-7 w-7 scale-110 p-2\",e?.close),children:(0,_2.jsx)(xT,{})})})]})}p();var Nk=he(De(),1);var kHn=he(et(),1);var THn=he(I0(),1);p();var Gc=he(De(),1);var Sae=he(et(),1);bo();function kae({token:t,onClick:e,onActionPress:n,actionText:r=\"Max\",classNames:o,\"aria-label\":i,...a}){return e?(0,Gc.jsxs)(\"div\",{className:\"relative\",children:[(0,Gc.jsx)(\"button\",{type:\"button\",\"aria-label\":i??`${t.name} token balance`,onClick:()=>e(t),className:ge(\"flex w-full items-center justify-start gap-4 px-2 py-1\",o?.container),\"data-testid\":\"ockTokenBalanceButton\",children:(0,Gc.jsx)(yBe,{token:t,classNames:o,onActionPress:n,...a})}),n&&(0,Gc.jsx)(bBe,{actionText:r,onActionPress:n,className:o?.action})]}):(0,Gc.jsxs)(\"div\",{className:ge(\"flex w-full items-center justify-start gap-4 px-2 py-1\",o?.container),\"data-testid\":\"ockTokenBalance\",children:[(0,Gc.jsx)(yBe,{token:t,...a,classNames:o}),n&&(0,Gc.jsx)(bBe,{actionText:r,onActionPress:n,className:o?.action})]})}function yBe({token:t,subtitle:e,showImage:n=!0,onActionPress:r,tokenSize:o=40,classNames:i}){var a;let c=(0,Sae.useMemo)(()=>p2({amount:t.fiatBalance,currency:\"USD\"}),[t.fiatBalance]),u=(0,Sae.useMemo)(()=>Sg(vs(BigInt(t.cryptoBalance),t.decimals),3),[t.cryptoBalance,t.decimals]);return(0,Gc.jsxs)(\"div\",{className:\"grid w-full grid-cols-[2.5rem_1fr_auto] items-center gap-3\",children:[(0,Gc.jsx)(\"div\",{className:\"h-10 w-10\",children:n&&(0,Gc.jsx)(q1,{token:t,size:o})}),(0,Gc.jsxs)(\"div\",{className:\"flex min-w-0 flex-col text-left\",children:[(0,Gc.jsx)(\"span\",{className:ge(Xe.headline,it.foreground,\"overflow-hidden text-ellipsis whitespace-nowrap\",i?.tokenName),children:(a=t.name)==null?void 0:a.trim()}),(0,Gc.jsx)(\"span\",{className:ge(Xe.label2,it.foregroundMuted,i?.tokenValue),children:`${u} ${t.symbol} ${e??\"\"}`})]}),(0,Gc.jsx)(\"div\",{className:\"text-right\",children:!r&&(0,Gc.jsx)(\"span\",{className:ge(Xe.label2,it.foregroundMuted,\"whitespace-nowrap\",i?.fiatValue),children:c})})]})}function bBe({actionText:t,onActionPress:e,className:n}){return(0,Gc.jsx)(\"button\",{type:\"button\",\"data-testid\":\"ockTokenBalanceAction\",\"aria-label\":t,onClick:e,className:ge(Xe.label2,it.primary,mt.radius,\"cursor-pointer p-0.5 font-bold\",\"border border-transparent hover:border-[--ock-line-primary]\",\"-translate-y-1/2 absolute top-1/2 right-2\",n),children:t})}bo();function _ae({classNames:t}){let{address:e}=Jn(),{data:n}=Bd({address:e},no.Wallet),r=n?.tokenBalances,{selectedToken:o,handleTokenSelection:i,handleResetTokenSelection:a,setSelectedInputType:c,handleCryptoAmountChange:u,handleFiatAmountChange:d}=Fu();return o?(0,Nk.jsx)(kae,{token:o,showImage:!0,subtitle:\"available\",onClick:a,onActionPress:()=>{c(\"crypto\"),d(String(o.fiatBalance)),u(String(vs(BigInt(o.cryptoBalance),o.decimals)))},classNames:{container:ge(Ht.alternate,mt.radius,t?.container),...t}}):(0,Nk.jsxs)(\"div\",{className:\"mt-4 flex max-h-80 flex-col gap-2\",children:[(0,Nk.jsx)(\"span\",{className:ge(Xe.caption,it.foregroundMuted,\"uppercase\"),children:\"Select a token\"}),(0,Nk.jsx)(\"div\",{className:\"scrollbar-hidden overflow-y-auto\",children:r?.map(h=>(0,Nk.jsx)(kae,{token:h,onClick:i,subtitle:\"\",classNames:{container:ge(Ht.default,mt.radius,t?.container),...t}},h.address))})]})}p();var FM=he(De(),1);function vBe({classNames:t}){let{recipientState:e,updateRecipientInput:n,validateRecipientInput:r,deselectRecipient:o}=Fu();return(0,FM.jsxs)(\"div\",{\"data-testid\":\"ockSendAddressInput\",className:ge(mt.lineDefault,mt.radius,\"w-full\",\"flex items-center gap-2\",\"px-4 py-3\",t?.container),children:[(0,FM.jsx)(\"span\",{className:ge(it.foreground,t?.label),children:\"To\"}),(0,FM.jsx)(Ek,{inputMode:\"text\",placeholder:\"Basename, ENS, or Address\",value:e.displayValue??e.input,setValue:n,onChange:r,onFocus:o,\"aria-label\":\"Input Receiver Address\",className:ge(dn.default,\"w-full outline-none\",t?.input)})]})}p();var Q1=he(De(),1);var wBe=he(et(),1);function xBe({classNames:t}){let{chain:e}=Ko(),{recipientState:n,selectRecipient:r}=Fu(),o=(0,wBe.useCallback)(async()=>{r({phase:\"selected\",input:n.input,address:n.address,displayValue:n.displayValue})},[n.input,n.address,n.displayValue,r]);return!n.address||!e?null:(0,Q1.jsx)(\"button\",{\"data-testid\":\"ockSendAddressSelector_button\",type:\"button\",onClick:o,className:\"w-full text-left\",children:(0,Q1.jsx)(\"div\",{\"data-testid\":\"ockSendAddressSelector_container\",className:ge(dn.default,mt.radius,Ht.default,\"items-left flex min-w-[300px]\",\"mt-2 p-2\",t?.container),children:(0,Q1.jsxs)(\"div\",{className:\"flex items-center space-x-3\",children:[(0,Q1.jsx)(\"div\",{className:\"flex-shrink-0\",children:(0,Q1.jsx)(Ld,{address:n.address,chain:e,className:t?.avatar})}),(0,Q1.jsxs)(\"div\",{className:\"flex flex-col\",children:[(0,Q1.jsx)(Df,{address:n.address,chain:e,className:t?.name}),(0,Q1.jsx)(j3,{address:n.address,hasCopyAddressOnClick:!1,className:t?.address})]})]})})})}function EBe({children:t=(0,ga.jsx)(L1t,{}),className:e}){return(0,ga.jsx)(OLe,{children:(0,ga.jsx)(\"div\",{\"data-testid\":\"ockSend\",className:ge(dn.default,mt.radius,mt.lineDefault,it.foreground,\"h-120 w-88\",\"flex flex-col\",\"p-4\",e),children:t})})}function L1t(){let{ethBalance:t,isInitialized:e,recipientState:n,selectedToken:r}=Fu(),o=(t??0)>1e-6;return e?(0,ga.jsxs)(ga.Fragment,{children:[(0,ga.jsx)(gBe,{}),o?(0,ga.jsxs)(\"div\",{className:\"flex h-full flex-col justify-between gap-4\",children:[(0,ga.jsxs)(\"div\",{children:[(0,ga.jsx)(vBe,{}),n.phase===\"validated\"&&(0,ga.jsx)(xBe,{}),n.phase===\"selected\"&&!r&&(0,ga.jsx)(_ae,{})]}),n.phase===\"selected\"&&r&&(0,ga.jsxs)(ga.Fragment,{children:[(0,ga.jsx)(MLe,{}),(0,ga.jsx)(_ae,{}),(0,ga.jsx)(pBe,{})]})]}):(0,ga.jsx)(mBe,{})]}):(0,ga.jsx)(z1,{className:\"h-full w-full\"})}function E$({children:t,swappableTokens:e,classNames:n}){let{isSubComponentOpen:r,setIsSubComponentOpen:o,isSubComponentClosing:i,setIsSubComponentClosing:a,connectRef:c,breakpoint:u,activeFeature:d,animations:h}=Ko(),{address:m}=Jn(),{data:g}=Bd({address:m,enabled:!!d},no.Wallet),b=g?.tokenBalances,E=(0,UM.useCallback)(()=>{o(!1)},[o]),C=(0,UM.useCallback)(()=>{i&&(o(!1),a(!1))},[i,o,a]),T=(0,UM.useMemo)(()=>d===\"send\"?(0,Wh.jsx)(x$,{children:(0,Wh.jsx)(EBe,{className:\"border-none\"})}):d===\"qr\"?(0,Wh.jsx)(x$,{children:(0,Wh.jsx)(dae,{classNames:n?.qr})}):d===\"swap\"?(0,Wh.jsx)(x$,{children:(0,Wh.jsx)(yae,{title:(0,Wh.jsx)(\"div\",{className:ge(Xe.headline,\"w-full text-center text-base\"),children:\"Swap\"}),to:e??DOe,from:b?.map(R=>({address:R.address,chainId:R.chainId,symbol:R.symbol,decimals:R.decimals,image:R.image,name:R.name}))??[],classNames:n?.swap})}):(0,Wh.jsx)(x$,{children:t}),[d,e,b,t,n]);return u===\"sm\"?(0,Wh.jsx)(pMe,{isOpen:r,triggerRef:c,onClose:E,className:n?.container,children:(0,Wh.jsx)(\"div\",{className:\"flex h-full w-full flex-col items-center justify-center\",children:T})}):(0,Wh.jsx)(\"div\",{\"data-testid\":\"ockWalletDropdownContent\",className:ge(dn.default,mt.radius,mt.lineDefault,Nu.dropdown,\"my-1.5 h-auto w-full\",\"flex justify-center\",\"overflow-hidden\",h.container,n?.container),onAnimationEnd:C,children:T})}function x$({children:t,className:e}){return(0,Wh.jsx)(\"div\",{className:ge(\"flex flex-col justify-between\",\"min-w-80 max-h-120\",e),children:t})}var B1t=(0,_g.jsxs)(_g.Fragment,{children:[(0,_g.jsx)(vM,{}),(0,_g.jsx)(fM,{}),(0,_g.jsx)(yM,{}),(0,_g.jsx)(hM,{})]});function S$({children:t,classNames:e,swappableTokens:n}){let{isSubComponentOpen:r,showSubComponentAbove:o,alignSubComponentRight:i}=Ko();return r?(0,_g.jsx)(\"div\",{\"data-testid\":\"ockWalletAdvancedContainer\",className:ge(\"absolute\",o?\"bottom-full\":\"top-full\",i?\"right-0\":\"left-0\"),children:(0,_g.jsx)(E$,{classNames:e,swappableTokens:n,children:t||B1t})}):null}p();var Hf=he(De(),1);var iWn=he(et(),1);p();var jM=he(De(),1),SBe=he(et(),1);function zM({className:t,text:e=\"Disconnect\"}){let{disconnect:n,connectors:r}=j9(),o=(0,SBe.useCallback)(()=>{r.map(i=>n({connector:i}))},[n,r]);return(0,jM.jsxs)(\"button\",{type:\"button\",className:ge(Ht.default,it.foreground,\"relative flex w-full items-center px-4 pt-3 pb-4\",t),onClick:o,children:[(0,jM.jsx)(\"div\",{className:\"absolute left-4 flex h-[1.125rem] w-[1.125rem] items-center justify-center\",children:UV}),(0,jM.jsx)(\"span\",{className:ge(Xe.body,\"pl-6\"),children:e})]})}p();var HM=he(De(),1);function Cae({children:t,className:e,icon:n,href:r,rel:o,target:i}){let a=h2({icon:n});return(0,HM.jsxs)(\"a\",{className:ge(Ht.default,it.foreground,\"relative flex items-center px-4 py-3\",e),href:r,target:i,rel:o,children:[(0,HM.jsx)(\"div\",{className:\"-translate-y-1/2 absolute top-1/2 left-4 flex h-[1.125rem] w-[1.125rem] items-center justify-center\",children:a}),(0,HM.jsx)(\"span\",{className:ge(Xe.body,\"pl-6\"),children:t})]})}var D1t=(0,Hf.jsxs)(Hf.Fragment,{children:[(0,Hf.jsxs)(LV,{className:\"px-4 pt-3 pb-2\",children:[(0,Hf.jsx)(Ld,{}),(0,Hf.jsx)(Df,{}),(0,Hf.jsx)(j3,{className:it.foregroundMuted}),(0,Hf.jsx)(lM,{})]},\"wallet-dd-identity\"),(0,Hf.jsx)(Cae,{icon:\"wallet\",href:\"https://keys.coinbase.com\",target:\"_blank\",children:\"Wallet\"},\"wallet-dd-link\"),(0,Hf.jsx)(zM,{},\"wallet-dd-disconnect\")]});function eE({children:t,className:e,classNames:n,swappableTokens:r}){let{address:o,breakpoint:i,isSubComponentOpen:a,showSubComponentAbove:c,alignSubComponentRight:u}=Ko();return!o||!i||!a?null:(0,Hf.jsx)(\"div\",{\"data-testid\":\"ockWalletDropdown\",className:ge(\"absolute\",c?\"bottom-full\":\"top-full\",u?\"right-0\":\"left-0\",e),children:(0,Hf.jsx)(E$,{classNames:n,swappableTokens:r,children:t||D1t})})}var kBe=(0,qf.jsxs)(qf.Fragment,{children:[(0,qf.jsx)(Eg,{}),(0,qf.jsx)(eE,{})]});function YT({children:t,className:e,draggable:n,draggableStartingPosition:r,isSponsored:o}){let i=ji();return BT()?(0,qf.jsx)(dse,{isSponsored:o,children:(0,qf.jsx)(F1t,{className:ge(i,e),...GPe({draggable:n,draggableStartingPosition:r}),children:t})}):null}function F1t({children:t,className:e,draggable:n,draggableStartingPosition:r}){let{isSubComponentOpen:o,isConnectModalOpen:i,handleClose:a,connectRef:c,breakpoint:u}=Ko(),d=(0,J1.useRef)(null);_V(d,a);let{dropdown:h,advanced:m}=(0,J1.useMemo)(()=>{let E=J1.Children.toArray(t);return{dropdown:E.find(Nd(eE)),advanced:E.find(Nd(S$))}},[t]),g=(0,J1.useMemo)(()=>J1.Children.map(t,E=>(0,J1.isValidElement)(E)&&E.type===S$&&h?null:E),[h,t]);h&&m&&console.error(\"Defaulted to WalletDropdown. Wallet cannot have both WalletDropdown and WalletAdvanced as children.\");let b=i||u===\"sm\"&&o;return n?(0,qf.jsx)(\"div\",{ref:d,className:ge(\"relative w-fit shrink-0\",e),children:(0,qf.jsx)(KPe,{startingPosition:r,disabled:b,children:(0,qf.jsx)(\"div\",{ref:c,children:g||kBe})})}):(0,qf.jsx)(\"div\",{ref:d,className:ge(\"relative w-fit shrink-0\",e),children:(0,qf.jsx)(\"div\",{ref:c,children:g||kBe})})}p();var U1t=he(De(),1);p();var _Be=he(De(),1),qWn=he(et(),1);p();var QT=he(De(),1);var j1t=(0,QT.jsxs)(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 18 18\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:Kt.foreground,children:[(0,QT.jsx)(\"title\",{children:\"Portfolio\"}),(0,QT.jsx)(\"path\",{d:\"M2.7125 0.875H15.875V4.625H2.7125C1.7 4.625 0.875 3.8 0.875 2.7875V2.7125C0.875 1.7 1.7 0.875 2.7125 0.875Z\",fill:\"currentColor\"}),(0,QT.jsx)(\"path\",{d:\"M0.875 5.875V14.5C0.875 15.95 2.05 17.125 3.5 17.125H17.125V5.875H0.875ZM13.375 12.125C12.6875 12.125 12.125 11.5625 12.125 10.875C12.125 10.1875 12.6875 9.625 13.375 9.625C14.0625 9.625 14.625 10.1875 14.625 10.875C14.625 11.5625 14.0625 12.125 13.375 12.125Z\",fill:\"currentColor\"})]});p();var Aae=he(De(),1);p();var k$=he(De(),1);var z1t=(0,k$.jsx)(\"svg\",{\"data-testid\":\"ock-basenameSvg\",role:\"img\",\"aria-label\":\"ock-basenameSvg\",width:\"100%\",height:\"100%\",viewBox:\"0 0 20 20\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"none\",className:\"h-full w-full\",children:(0,k$.jsx)(\"g\",{id:\"Icons/User\",children:(0,k$.jsx)(\"path\",{id:\"Vector\",d:\"M10 20C4.47715 20 0 15.5228 0 10C0 4.47715 4.47715 0 10 0C15.5228 0 20 4.47715 20 10C20 15.5228 15.5228 20 10 20ZM12.832 6.9987C12.832 5.43461 11.5641 4.16666 10 4.16666C8.43594 4.16666 7.168 5.43461 7.168 6.9987C7.168 8.56279 8.43594 9.83073 10 9.83073C11.5641 9.83073 12.832 8.56279 12.832 6.9987ZM5.67266 11.6810L4.76738 14.0938C6.10704 15.4238 7.95093 16.2465 9.98699 16.2500L10.0130 16.2500C12.0491 16.2465 13.8930 15.4238 15.2326 14.0938L14.3273 11.6810C14.0026 10.8125 13.1794 10.2385 12.2581 10.2159C12.2279 10.2385 11.2310 10.9635 10.0000 10.9635C8.76903 10.9635 7.77215 10.2385 7.74194 10.2159C6.82059 10.2310 5.9974 10.8125 5.67266 11.6810Z\",className:Kt.foreground})})});p();var CBe=he(De(),1),ABe=he(et(),1);p();var TBe=he(De(),1);p();p();var ju=he(et());bo();Si();p();p();p();p();p();var JT={84532:{usdcAddress:\"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",usdcName:\"USDC\"},8453:{usdcAddress:\"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",usdcName:\"USD Coin\"},43113:{usdcAddress:\"0x5425890298aed601595a70AB815c96711a31Bc65\",usdcName:\"USD Coin\"},43114:{usdcAddress:\"0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E\",usdcName:\"USD Coin\"},4689:{usdcAddress:\"0xcdf79194c6c285077a58da47641d4dbe51f63542\",usdcName:\"Bridged USDC\"}};p();var _$={TransferWithAuthorization:[{name:\"from\",type:\"address\"},{name:\"to\",type:\"address\"},{name:\"value\",type:\"uint256\"},{name:\"validAfter\",type:\"uint256\"},{name:\"validBefore\",type:\"uint256\"},{name:\"nonce\",type:\"bytes32\"}]};p();var Lk=[{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"owner\",type:\"address\"},{indexed:!0,internalType:\"address\",name:\"spender\",type:\"address\"},{indexed:!1,internalType:\"uint256\",name:\"value\",type:\"uint256\"}],name:\"Approval\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"authorizer\",type:\"address\"},{indexed:!0,internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"}],name:\"AuthorizationCanceled\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"authorizer\",type:\"address\"},{indexed:!0,internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"}],name:\"AuthorizationUsed\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"_account\",type:\"address\"}],name:\"Blacklisted\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newBlacklister\",type:\"address\"}],name:\"BlacklisterChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"burner\",type:\"address\"},{indexed:!1,internalType:\"uint256\",name:\"amount\",type:\"uint256\"}],name:\"Burn\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newMasterMinter\",type:\"address\"}],name:\"MasterMinterChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"minter\",type:\"address\"},{indexed:!0,internalType:\"address\",name:\"to\",type:\"address\"},{indexed:!1,internalType:\"uint256\",name:\"amount\",type:\"uint256\"}],name:\"Mint\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"minter\",type:\"address\"},{indexed:!1,internalType:\"uint256\",name:\"minterAllowedAmount\",type:\"uint256\"}],name:\"MinterConfigured\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"oldMinter\",type:\"address\"}],name:\"MinterRemoved\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!1,internalType:\"address\",name:\"previousOwner\",type:\"address\"},{indexed:!1,internalType:\"address\",name:\"newOwner\",type:\"address\"}],name:\"OwnershipTransferred\",type:\"event\"},{anonymous:!1,inputs:[],name:\"Pause\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newAddress\",type:\"address\"}],name:\"PauserChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"newRescuer\",type:\"address\"}],name:\"RescuerChanged\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"from\",type:\"address\"},{indexed:!0,internalType:\"address\",name:\"to\",type:\"address\"},{indexed:!1,internalType:\"uint256\",name:\"value\",type:\"uint256\"}],name:\"Transfer\",type:\"event\"},{anonymous:!1,inputs:[{indexed:!0,internalType:\"address\",name:\"_account\",type:\"address\"}],name:\"UnBlacklisted\",type:\"event\"},{anonymous:!1,inputs:[],name:\"Unpause\",type:\"event\"},{inputs:[],name:\"CANCEL_AUTHORIZATION_TYPEHASH\",outputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"DOMAIN_SEPARATOR\",outputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"PERMIT_TYPEHASH\",outputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"RECEIVE_WITH_AUTHORIZATION_TYPEHASH\",outputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"TRANSFER_WITH_AUTHORIZATION_TYPEHASH\",outputs:[{internalType:\"bytes32\",name:\"\",type:\"bytes32\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"owner\",type:\"address\"},{internalType:\"address\",name:\"spender\",type:\"address\"}],name:\"allowance\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"spender\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"}],name:\"approve\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"authorizer\",type:\"address\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"}],name:\"authorizationState\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"account\",type:\"address\"}],name:\"balanceOf\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_account\",type:\"address\"}],name:\"blacklist\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"blacklister\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"uint256\",name:\"_amount\",type:\"uint256\"}],name:\"burn\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"authorizer\",type:\"address\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"uint8\",name:\"v\",type:\"uint8\"},{internalType:\"bytes32\",name:\"r\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"s\",type:\"bytes32\"}],name:\"cancelAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"authorizer\",type:\"address\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"bytes\",name:\"signature\",type:\"bytes\"}],name:\"cancelAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"minter\",type:\"address\"},{internalType:\"uint256\",name:\"minterAllowedAmount\",type:\"uint256\"}],name:\"configureMinter\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"currency\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"decimals\",outputs:[{internalType:\"uint8\",name:\"\",type:\"uint8\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"spender\",type:\"address\"},{internalType:\"uint256\",name:\"decrement\",type:\"uint256\"}],name:\"decreaseAllowance\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"spender\",type:\"address\"},{internalType:\"uint256\",name:\"increment\",type:\"uint256\"}],name:\"increaseAllowance\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"string\",name:\"tokenName\",type:\"string\"},{internalType:\"string\",name:\"tokenSymbol\",type:\"string\"},{internalType:\"string\",name:\"tokenCurrency\",type:\"string\"},{internalType:\"uint8\",name:\"tokenDecimals\",type:\"uint8\"},{internalType:\"address\",name:\"newMasterMinter\",type:\"address\"},{internalType:\"address\",name:\"newPauser\",type:\"address\"},{internalType:\"address\",name:\"newBlacklister\",type:\"address\"},{internalType:\"address\",name:\"newOwner\",type:\"address\"}],name:\"initialize\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"string\",name:\"newName\",type:\"string\"}],name:\"initializeV2\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"lostAndFound\",type:\"address\"}],name:\"initializeV2_1\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address[]\",name:\"accountsToBlacklist\",type:\"address[]\"},{internalType:\"string\",name:\"newSymbol\",type:\"string\"}],name:\"initializeV2_2\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_account\",type:\"address\"}],name:\"isBlacklisted\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"account\",type:\"address\"}],name:\"isMinter\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"masterMinter\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_to\",type:\"address\"},{internalType:\"uint256\",name:\"_amount\",type:\"uint256\"}],name:\"mint\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"minter\",type:\"address\"}],name:\"minterAllowance\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"name\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"owner\",type:\"address\"}],name:\"nonces\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"owner\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"pause\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"paused\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"pauser\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"owner\",type:\"address\"},{internalType:\"address\",name:\"spender\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"deadline\",type:\"uint256\"},{internalType:\"bytes\",name:\"signature\",type:\"bytes\"}],name:\"permit\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"owner\",type:\"address\"},{internalType:\"address\",name:\"spender\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"deadline\",type:\"uint256\"},{internalType:\"uint8\",name:\"v\",type:\"uint8\"},{internalType:\"bytes32\",name:\"r\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"s\",type:\"bytes32\"}],name:\"permit\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"from\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"validAfter\",type:\"uint256\"},{internalType:\"uint256\",name:\"validBefore\",type:\"uint256\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"bytes\",name:\"signature\",type:\"bytes\"}],name:\"receiveWithAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"from\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"validAfter\",type:\"uint256\"},{internalType:\"uint256\",name:\"validBefore\",type:\"uint256\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"uint8\",name:\"v\",type:\"uint8\"},{internalType:\"bytes32\",name:\"r\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"s\",type:\"bytes32\"}],name:\"receiveWithAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"minter\",type:\"address\"}],name:\"removeMinter\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"contract IERC20\",name:\"tokenContract\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"amount\",type:\"uint256\"}],name:\"rescueERC20\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"rescuer\",outputs:[{internalType:\"address\",name:\"\",type:\"address\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"symbol\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"view\",type:\"function\"},{inputs:[],name:\"totalSupply\",outputs:[{internalType:\"uint256\",name:\"\",type:\"uint256\"}],stateMutability:\"view\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"}],name:\"transfer\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"from\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"}],name:\"transferFrom\",outputs:[{internalType:\"bool\",name:\"\",type:\"bool\"}],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"newOwner\",type:\"address\"}],name:\"transferOwnership\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"from\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"validAfter\",type:\"uint256\"},{internalType:\"uint256\",name:\"validBefore\",type:\"uint256\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"bytes\",name:\"signature\",type:\"bytes\"}],name:\"transferWithAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"from\",type:\"address\"},{internalType:\"address\",name:\"to\",type:\"address\"},{internalType:\"uint256\",name:\"value\",type:\"uint256\"},{internalType:\"uint256\",name:\"validAfter\",type:\"uint256\"},{internalType:\"uint256\",name:\"validBefore\",type:\"uint256\"},{internalType:\"bytes32\",name:\"nonce\",type:\"bytes32\"},{internalType:\"uint8\",name:\"v\",type:\"uint8\"},{internalType:\"bytes32\",name:\"r\",type:\"bytes32\"},{internalType:\"bytes32\",name:\"s\",type:\"bytes32\"}],name:\"transferWithAuthorization\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_account\",type:\"address\"}],name:\"unBlacklist\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"unpause\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_newBlacklister\",type:\"address\"}],name:\"updateBlacklister\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_newMasterMinter\",type:\"address\"}],name:\"updateMasterMinter\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"_newPauser\",type:\"address\"}],name:\"updatePauser\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[{internalType:\"address\",name:\"newRescuer\",type:\"address\"}],name:\"updateRescuer\",outputs:[],stateMutability:\"nonpayable\",type:\"function\"},{inputs:[],name:\"version\",outputs:[{internalType:\"string\",name:\"\",type:\"string\"}],stateMutability:\"pure\",type:\"function\"}];p();function C$(t){return typeof t==\"object\"&&t!==null&&\"chain\"in t&&\"transport\"in t}function RBe(t){let e=t;return typeof t==\"object\"&&t!==null&&typeof e.address==\"string\"&&typeof e.type==\"string\"&&typeof e.sign==\"function\"&&typeof e.signMessage==\"function\"&&typeof e.signTypedData==\"function\"&&typeof e.signTransaction==\"function\"}p();bo();p();p();p();p();p();function Tae(t){return typeof globalThis<\"u\"&&typeof globalThis.btoa==\"function\"?globalThis.btoa(t):globalThis.Buffer.from(t).toString(\"base64\")}function A$(t){return typeof globalThis<\"u\"&&typeof globalThis.atob==\"function\"?globalThis.atob(t):globalThis.Buffer.from(t,\"base64\").toString(\"utf-8\")}p();p();p();var q1t=st.union([st.string().transform(t=>t.replace(/[^0-9.-]+/g,\"\")),st.number()]).pipe(st.coerce.number().min(1e-4).max(999999999));p();var qM=st.enum([\"base-sepolia\",\"base\",\"avalanche-fuji\",\"avalanche\",\"iotex\"]),T$=[\"base-sepolia\",\"base\",\"avalanche-fuji\",\"avalanche\",\"iotex\"],R$=new Map([[\"base-sepolia\",84532],[\"base\",8453],[\"avalanche-fuji\",43113],[\"avalanche\",43114],[\"iotex\",4689]]),tKn=Object.fromEntries(T$.map(t=>[R$.get(t),t]));p();p();function Bk(t){if(R$.has(t))return R$.get(t);throw new Error(`Unsupported network: ${t}`)}p();p();p();p();var W1t=18,IBe=/^0x[0-9a-fA-F]{40}$/,WM=/^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$/,V1t=/^0x[0-9a-fA-F]{64}$/,$1t=/^0x[0-9a-fA-F]+$/,Rae=[\"exact\"],OBe=[1],PBe=[\"insufficient_funds\",\"invalid_exact_evm_payload_authorization_valid_after\",\"invalid_exact_evm_payload_authorization_valid_before\",\"invalid_exact_evm_payload_authorization_value\",\"invalid_exact_evm_payload_signature\",\"invalid_exact_evm_payload_recipient_mismatch\",\"invalid_network\",\"invalid_payload\",\"invalid_payment_requirements\",\"invalid_scheme\",\"unsupported_scheme\",\"invalid_x402_version\",\"invalid_transaction_state\",\"unexpected_verify_error\",\"unexpected_settle_error\"],I$=t=>Number.isInteger(Number(t))&&Number(t)>=0,K1t=t=>e=>e.length<=t,MBe=st.object({scheme:st.enum(Rae),network:qM,maxAmountRequired:st.string().refine(I$),resource:st.string().url(),description:st.string(),mimeType:st.string(),outputSchema:st.record(st.any()).optional(),payTo:st.string().regex(WM),maxTimeoutSeconds:st.number().int(),asset:st.string().regex(WM),extra:st.record(st.any()).optional()}),G1t=st.object({from:st.string().regex(IBe),to:st.string().regex(IBe),value:st.string().refine(I$).refine(K1t(W1t)),validAfter:st.string().refine(I$),validBefore:st.string().refine(I$),nonce:st.string().regex(V1t)}),Z1t=st.object({signature:st.string().regex($1t),authorization:G1t}),NBe=st.object({x402Version:st.number().refine(t=>OBe.includes(t)),scheme:st.enum(Rae),network:qM,payload:Z1t}),bKn=st.object({isValid:st.boolean(),invalidReason:st.enum(PBe).optional(),payer:st.string().regex(WM).optional()}),vKn=st.object({success:st.boolean(),errorReason:st.enum(PBe).optional(),payer:st.string().regex(WM).optional(),transaction:st.string().regex(WM),network:qM}),Y1t=st.object({x402Version:st.number().refine(t=>OBe.includes(t)),scheme:st.enum(Rae),network:qM}),wKn=st.object({kinds:st.array(Y1t)});p();var AKn=st.object({paymentHeader:st.string(),paymentRequirements:MBe});p();p();function Q1t(t){return JT[t.chain.id.toString()].usdcAddress}function P$(t){return JT[t.toString()]}var O$=null;async function LBe(t){return O$!==null||(O$=await t.readContract({address:Q1t(t),abi:Lk,functionName:\"version\"})),O$}async function Iae(t,e){let n=t.chain.id,r=P$(n);return r?await t.readContract({address:r.usdcAddress,abi:Lk,functionName:\"balanceOf\",args:[e]}):0n}p();async function BBe(t,e,n){return await t.readContract({address:e,abi:Lk,functionName:\"balanceOf\",args:[n]})}async function DBe(t,{from:e,to:n,value:r,validAfter:o,validBefore:i,nonce:a},{asset:c,network:u,extra:d}){let h=Bk(u),m=d?.name,g=d?.version,b={types:_$,domain:{name:m,version:g,chainId:h,verifyingContract:Fr(c)},primaryType:\"TransferWithAuthorization\",message:{from:Fr(e),to:Fr(n),value:r,validAfter:o,validBefore:i,nonce:a}};if(C$(t))return{signature:await t.signTypedData(b)};if(RBe(t)&&t.signTypedData)return{signature:await t.signTypedData(b)};throw new Error(\"Invalid wallet client provided does not support signTypedData\")}function FBe(){let t=typeof globalThis.crypto<\"u\"&&typeof globalThis.crypto.getRandomValues==\"function\"?globalThis.crypto:nUe(\"crypto\").webcrypto;return Uo(t.getRandomValues(new Uint8Array(32)))}p();function M$(t){let e={...t,payload:{...t.payload,authorization:Object.fromEntries(Object.entries(t.payload.authorization).map(([n,r])=>[n,typeof r==\"bigint\"?r.toString():r]))}};return Tae(JSON.stringify(e))}function J1t(t){let e=A$(t),n=JSON.parse(e),r={...n,payload:{signature:n.payload.signature,authorization:{...n.payload.authorization,value:n.payload.authorization.value,validAfter:n.payload.authorization.validAfter,validBefore:n.payload.authorization.validBefore}}};return NBe.parse(r)}function Oae(t,e,n){let r=FBe(),o=BigInt(Math.floor(Date.now()/1e3)-600).toString(),i=BigInt(Math.floor(Date.now()/1e3+n.maxTimeoutSeconds)).toString();return{x402Version:e,scheme:n.scheme,network:n.network,payload:{signature:void 0,authorization:{from:t,to:n.payTo,value:n.maxAmountRequired,validAfter:o.toString(),validBefore:i.toString(),nonce:r}}}}async function Pae(t,e,n){let{signature:r}=await DBe(t,n.payload.authorization,e);return{...n,payload:{...n.payload,signature:r}}}async function UBe(t,e,n){let r=C$(t)?t.account.address:t.address,o=Oae(r,e,n);return Pae(t,n,o)}async function jBe(t,e,n){let r=await UBe(t,e,n);return M$(r)}p();p();function zBe(t,e,n){t.sort((i,a)=>i.network===\"base\"&&a.network!==\"base\"?-1:i.network!==\"base\"&&a.network===\"base\"?1:0);let r=t.filter(i=>{let a=!n||i.scheme===n,c=!e||e==i.network;return a&&c}),o=r.filter(i=>i.asset===P$(Bk(i.network))?.usdcAddress);return o.length>0?o[0]:r.length>0?r[0]:t[0]}p();p();var Dk={};ld(Dk,{SCHEME:()=>N$,evm:()=>Mae});p();var Mae={};ld(Mae,{createPayment:()=>UBe,createPaymentHeader:()=>jBe,decodePayment:()=>J1t,encodePayment:()=>M$,preparePaymentHeader:()=>Oae,settle:()=>X1t,signPaymentHeader:()=>Pae,verify:()=>HBe});p();p();bo();async function HBe(t,e,n){if(e.scheme!==N$||n.scheme!==N$)return{isValid:!1,invalidReason:\"unsupported_scheme\",payer:e.payload.authorization.from};let r,o,i,a;try{o=Bk(e.network),r=n.extra?.name??JT[o.toString()].usdcName,i=n.asset,a=n.extra?.version??await LBe(t)}catch{return{isValid:!1,invalidReason:\"invalid_network\",payer:e.payload.authorization.from}}let c={types:_$,primaryType:\"TransferWithAuthorization\",domain:{name:r,version:a,chainId:o,verifyingContract:i},message:{from:e.payload.authorization.from,to:e.payload.authorization.to,value:e.payload.authorization.value,validAfter:e.payload.authorization.validAfter,validBefore:e.payload.authorization.validBefore,nonce:e.payload.authorization.nonce}};return await t.verifyTypedData({address:e.payload.authorization.from,...c,signature:e.payload.signature})?Fr(e.payload.authorization.to)!==Fr(n.payTo)?{isValid:!1,invalidReason:\"invalid_exact_evm_payload_recipient_mismatch\",payer:e.payload.authorization.from}:BigInt(e.payload.authorization.validBefore)<BigInt(Math.floor(Date.now()/1e3)+6)?{isValid:!1,invalidReason:\"invalid_exact_evm_payload_authorization_valid_before\",payer:e.payload.authorization.from}:BigInt(e.payload.authorization.validAfter)>BigInt(Math.floor(Date.now()/1e3))?{isValid:!1,invalidReason:\"invalid_exact_evm_payload_authorization_valid_after\",payer:e.payload.authorization.from}:await BBe(t,i,e.payload.authorization.from)<BigInt(n.maxAmountRequired)?{isValid:!1,invalidReason:\"insufficient_funds\",payer:e.payload.authorization.from}:BigInt(e.payload.authorization.value)<BigInt(n.maxAmountRequired)?{isValid:!1,invalidReason:\"invalid_exact_evm_payload_authorization_value\",payer:e.payload.authorization.from}:{isValid:!0,invalidReason:void 0,payer:e.payload.authorization.from}:{isValid:!1,invalidReason:\"invalid_exact_evm_payload_signature\",payer:e.payload.authorization.from}}async function X1t(t,e,n){let r=await HBe(t,e,n);if(!r.isValid)return{success:!1,network:e.network,transaction:\"\",errorReason:r.invalidReason??\"invalid_scheme\",payer:e.payload.authorization.from};let{signature:o}=oQ(e.payload.signature),i=await t.writeContract({address:n.asset,abi:Lk,functionName:\"transferWithAuthorization\",args:[e.payload.authorization.from,e.payload.authorization.to,BigInt(e.payload.authorization.value),BigInt(e.payload.authorization.validAfter),BigInt(e.payload.authorization.validBefore),e.payload.authorization.nonce,o],chain:t.chain});return(await t.waitForTransactionReceipt({hash:i})).status!==\"success\"?{success:!1,errorReason:\"invalid_transaction_state\",transaction:i,network:e.network,payer:e.payload.authorization.from}:{success:!0,transaction:i,network:e.network,payer:e.payload.authorization.from}}var N$=\"exact\";p();var Nae=he(De());function qBe({className:t=\"\"}){return(0,Nae.jsx)(\"div\",{className:`inline-flex items-center justify-center ${t}`,children:(0,Nae.jsx)(\"div\",{className:\"animate-spin border-2 border-gray-200 border-t-gray-400 rounded-full w-4 h-4\",style:{animation:\"spin 1s linear infinite\",borderTopWidth:\"2px\"}})})}p();var tE=he(et());p();function Lae(t){if(t===null||typeof t!=\"object\")return t;if(t instanceof Date)return new Date(t.getTime());if(Array.isArray(t))return t.map(n=>Lae(n));let e={};for(let n in t)n===\"__proto__\"||n===\"constructor\"||n===\"prototype\"||Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=Lae(t[n]));return e}function WBe(t){let e=Lae(t);if(window.x402?.amount)try{let n=Math.round(window.x402.amount*1e6);e.maxAmountRequired=n.toString()}catch(n){console.error(\"Failed to parse amount:\",n)}return(!e.maxAmountRequired||!/^\\\\d+$/.test(e.maxAmountRequired))&&(e.maxAmountRequired=\"10000\"),e}var VBe=async t=>{let e=window.x402?.sessionTokenEndpoint;return e?(await(await fetch(e,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({addresses:[{address:t,blockchains:[\"base\"]}],assets:[\"USDC\"]})})).json()).token:void 0};var ebt=5*60*1e3;function $Be(t){let[e,n]=(0,tE.useState)(),[r,o]=(0,tE.useState)(null),i=(0,tE.useCallback)(()=>r?Date.now()-r>ebt:!0,[r]),a=(0,tE.useCallback)(async()=>{if(t&&(!e||i())){let c=await VBe(t);n(c),o(Date.now())}},[t,e,i]);return(0,tE.useEffect)(()=>{t?a():(n(void 0),o(null))},[t,a]),{sessionToken:e}}var ur=he(De());function KBe(){let{address:t,isConnected:e,chainId:n}=Jn(),{switchChainAsync:r}=L6(),{data:o}=tJ(),{sessionToken:i}=$Be(t),[a,c]=(0,ju.useState)(\"\"),[u,d]=(0,ju.useState)(null),[h,m]=(0,ju.useState)(!1),[g,b]=(0,ju.useState)(\"\"),[E,C]=(0,ju.useState)(!0),T=window.x402,R=T.amount||0,L=T.testnet??!0,D=L?xs:Yn,G=L?\"Base Sepolia\":\"Base\",W=L?\"base-sepolia\":\"base\",J=!!(!L&&e&&T.sessionTokenEndpoint);(0,ju.useEffect)(()=>{t&&($(),Z())},[t]);let ne=M9({chain:D,transport:Eh()}).extend(NC),ie=T?zBe([T.paymentRequirements].flat(),W,\"exact\"):null;(0,ju.useEffect)(()=>{e&&D.id===n?(d(!0),c(\"\")):e&&D.id!==n?(d(!1),c(`On the wrong network. Please switch to ${G}.`)):(d(null),c(\"\"))},[D.id,n,e]);let Z=(0,ju.useCallback)(async()=>{if(!t)return;let _=await Iae(ne,t),O=vs(_,6);b(O)},[t,ne]),ae=(0,ju.useMemo)(()=>{if(i)return xk({presetFiatAmount:2,fiatCurrency:\"USD\",sessionToken:i})},[i]),V=(0,ju.useCallback)(async _=>{let O=_.headers.get(\"content-type\");if(O&&O.includes(\"text/html\"))document.documentElement.innerHTML=await _.text();else{let z=await _.blob(),N=window.URL.createObjectURL(z);window.location.href=N}},[]),$=(0,ju.useCallback)(async()=>{if(!u)try{c(\"\"),await r({chainId:D.id}),await new Promise(_=>setTimeout(_,100))}catch(_){c(_ instanceof Error?_.message:\"Failed to switch network\")}},[r,D,u]),F=(0,ju.useCallback)(async()=>{if(!t||!T||!ie)return;if(await $(),!o){c(\"Wallet client not available. Please reconnect your wallet.\");return}let _=o.extend(NC);m(!0);try{if(c(\"Checking USDC balance...\"),await Iae(ne,t)===0n)throw new Error(`Insufficient balance. Make sure you have USDC on ${G}`);c(\"Creating payment signature...\");let z=WBe(ie),N=await Dk.evm.createPayment(_,1,z),B=Dk.evm.encodePayment(N);c(\"Requesting content with payment...\");let j=await fetch(T.currentUrl,{headers:{\"X-PAYMENT\":B,\"Access-Control-Expose-Headers\":\"X-PAYMENT-RESPONSE\"}});if(j.ok)await V(j);else if(j.status===402){let q=await j.json().catch(()=>({}));if(q&&typeof q.x402Version==\"number\"){let H=await Dk.evm.createPayment(_,q.x402Version,z);H.x402Version=q.x402Version;let I=Dk.evm.encodePayment(H),U=await fetch(T.currentUrl,{headers:{\"X-PAYMENT\":I,\"Access-Control-Expose-Headers\":\"X-PAYMENT-RESPONSE\"}});if(U.ok){await V(U);return}else throw new Error(`Payment retry failed: ${U.statusText}`)}else throw new Error(`Payment failed: ${j.statusText}`)}else throw new Error(`Request failed: ${j.status} ${j.statusText}`)}catch(O){c(O instanceof Error?O.message:\"Payment failed\")}finally{m(!1)}},[t,T,ie,ne,D,$]);return!T||!ie?(0,ur.jsx)(\"div\",{className:\"container\",children:(0,ur.jsxs)(\"div\",{className:\"header\",children:[(0,ur.jsx)(\"h1\",{className:\"title\",children:\"Payment Required\"}),(0,ur.jsx)(\"p\",{className:\"subtitle\",children:\"Loading payment details...\"})]})}):(0,ur.jsxs)(\"div\",{className:\"container gap-8\",children:[(0,ur.jsxs)(\"div\",{className:\"header\",children:[(0,ur.jsx)(\"h1\",{className:\"title\",children:\"Payment Required\"}),(0,ur.jsxs)(\"p\",{children:[ie.description&&`${ie.description}.`,\" To access this content, please pay $\",R,\" \",G,\" USDC.\"]}),L&&(0,ur.jsxs)(\"p\",{className:\"instructions\",children:[\"Need Base Sepolia USDC?\",\" \",(0,ur.jsxs)(\"a\",{href:\"https://faucet.circle.com/\",target:\"_blank\",rel:\"noopener noreferrer\",children:[\"Get some \",(0,ur.jsx)(\"u\",{children:\"here\"}),\".\"]})]})]}),(0,ur.jsxs)(\"div\",{className:\"content w-full\",children:[(0,ur.jsxs)(YT,{className:\"w-full\",children:[(0,ur.jsxs)(Eg,{className:\"w-full py-3\",disconnectedLabel:\"Connect wallet\",children:[(0,ur.jsx)(Ld,{className:\"h-5 w-5 opacity-80\"}),(0,ur.jsx)(Df,{className:\"opacity-80 text-sm\"})]}),(0,ur.jsx)(eE,{children:(0,ur.jsx)(zM,{className:\"opacity-80\"})})]}),e&&(0,ur.jsxs)(\"div\",{id:\"payment-section\",children:[(0,ur.jsxs)(\"div\",{className:\"payment-details\",children:[(0,ur.jsxs)(\"div\",{className:\"payment-row\",children:[(0,ur.jsx)(\"span\",{className:\"payment-label\",children:\"Wallet:\"}),(0,ur.jsx)(\"span\",{className:\"payment-value\",children:t?`${t.slice(0,6)}...${t.slice(-4)}`:\"Loading...\"})]}),(0,ur.jsxs)(\"div\",{className:\"payment-row\",children:[(0,ur.jsx)(\"span\",{className:\"payment-label\",children:\"Available balance:\"}),(0,ur.jsx)(\"span\",{className:\"payment-value\",children:(0,ur.jsx)(\"button\",{className:\"balance-button\",onClick:()=>C(_=>!_),children:g&&!E?`$${g} USDC`:\"\\\\u2022\\\\u2022\\\\u2022\\\\u2022\\\\u2022 USDC\"})})]}),(0,ur.jsxs)(\"div\",{className:\"payment-row\",children:[(0,ur.jsx)(\"span\",{className:\"payment-label\",children:\"Amount:\"}),(0,ur.jsxs)(\"span\",{className:\"payment-value\",children:[\"$\",R,\" USDC\"]})]}),(0,ur.jsxs)(\"div\",{className:\"payment-row\",children:[(0,ur.jsx)(\"span\",{className:\"payment-label\",children:\"Network:\"}),(0,ur.jsx)(\"span\",{className:\"payment-value\",children:G})]})]}),u?(0,ur.jsxs)(\"div\",{className:\"cta-container\",children:[J&&(0,ur.jsx)(JP,{fundingUrl:ae,text:\"Get more USDC\",hideIcon:!0,className:\"button button-positive\"}),(0,ur.jsx)(\"button\",{className:\"button button-primary\",onClick:F,disabled:h,children:h?(0,ur.jsx)(qBe,{}):\"Pay now\"})]}):(0,ur.jsxs)(\"button\",{className:\"button button-primary\",onClick:$,children:[\"Switch to \",G]})]}),a&&(0,ur.jsx)(\"div\",{className:\"status\",children:a})]})]})}var Bae=he(De());window.addEventListener(\"load\",()=>{let t=document.getElementById(\"root\");if(!t){console.error(\"Root element not found\");return}(0,GBe.createRoot)(t).render((0,Bae.jsx)(B9e,{children:(0,Bae.jsx)(KBe,{})}))});})();\\n/*! Bundled license information:\\n\\nieee754/index.js:\\n  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)\\n\\nbuffer/index.js:\\n  (*!\\n   * The buffer module from node.js, for the browser.\\n   *\\n   * @author   Feross Aboukhadijeh <https://feross.org>\\n   * @license  MIT\\n   *)\\n\\nscheduler/cjs/scheduler.development.js:\\n  (**\\n   * @license React\\n   * scheduler.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\\nreact/cjs/react.development.js:\\n  (**\\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\\nreact-dom/cjs/react-dom.development.js:\\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\\nreact-dom/cjs/react-dom-client.development.js:\\n  (**\\n   * @license React\\n   * react-dom-client.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@noble/hashes/esm/utils.js:\\n@noble/hashes/utils.js:\\n  (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)\\n\\nreact/cjs/react-jsx-runtime.development.js:\\n  (**\\n   * @license React\\n   * react-jsx-runtime.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@noble/curves/esm/utils.js:\\n@noble/curves/esm/abstract/modular.js:\\n@noble/curves/esm/abstract/curve.js:\\n@noble/curves/esm/abstract/weierstrass.js:\\n@noble/curves/esm/_shortw_utils.js:\\n@noble/curves/esm/secp256k1.js:\\n@noble/curves/esm/abstract/edwards.js:\\n@noble/curves/esm/ed25519.js:\\n  (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)\\n\\nuse-sync-external-store/cjs/use-sync-external-store-shim.development.js:\\n  (**\\n   * @license React\\n   * use-sync-external-store-shim.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\\nuse-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js:\\n  (**\\n   * @license React\\n   * use-sync-external-store-shim/with-selector.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\\nsafe-buffer/index.js:\\n  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)\\n\\neventemitter2/lib/eventemitter2.js:\\n  (*!\\n   * EventEmitter2\\n   * https://github.com/hij1nx/EventEmitter2\\n   *\\n   * Copyright (c) 2013 hij1nx\\n   * Licensed under the MIT license.\\n   *)\\n\\n@solana/buffer-layout/lib/Layout.js:\\n  (**\\n   * Support for translating between Uint8Array instances and JavaScript\\n   * native types.\\n   *\\n   * {@link module:Layout~Layout|Layout} is the basis of a class\\n   * hierarchy that associates property names with sequences of encoded\\n   * bytes.\\n   *\\n   * Layouts are supported for these scalar (numeric) types:\\n   * * {@link module:Layout~UInt|Unsigned integers in little-endian\\n   *   format} with {@link module:Layout.u8|8-bit}, {@link\\n   *   module:Layout.u16|16-bit}, {@link module:Layout.u24|24-bit},\\n   *   {@link module:Layout.u32|32-bit}, {@link\\n   *   module:Layout.u40|40-bit}, and {@link module:Layout.u48|48-bit}\\n   *   representation ranges;\\n   * * {@link module:Layout~UIntBE|Unsigned integers in big-endian\\n   *   format} with {@link module:Layout.u16be|16-bit}, {@link\\n   *   module:Layout.u24be|24-bit}, {@link module:Layout.u32be|32-bit},\\n   *   {@link module:Layout.u40be|40-bit}, and {@link\\n   *   module:Layout.u48be|48-bit} representation ranges;\\n   * * {@link module:Layout~Int|Signed integers in little-endian\\n   *   format} with {@link module:Layout.s8|8-bit}, {@link\\n   *   module:Layout.s16|16-bit}, {@link module:Layout.s24|24-bit},\\n   *   {@link module:Layout.s32|32-bit}, {@link\\n   *   module:Layout.s40|40-bit}, and {@link module:Layout.s48|48-bit}\\n   *   representation ranges;\\n   * * {@link module:Layout~IntBE|Signed integers in big-endian format}\\n   *   with {@link module:Layout.s16be|16-bit}, {@link\\n   *   module:Layout.s24be|24-bit}, {@link module:Layout.s32be|32-bit},\\n   *   {@link module:Layout.s40be|40-bit}, and {@link\\n   *   module:Layout.s48be|48-bit} representation ranges;\\n   * * 64-bit integral values that decode to an exact (if magnitude is\\n   *   less than 2^53) or nearby integral Number in {@link\\n   *   module:Layout.nu64|unsigned little-endian}, {@link\\n   *   module:Layout.nu64be|unsigned big-endian}, {@link\\n   *   module:Layout.ns64|signed little-endian}, and {@link\\n   *   module:Layout.ns64be|unsigned big-endian} encodings;\\n   * * 32-bit floating point values with {@link\\n   *   module:Layout.f32|little-endian} and {@link\\n   *   module:Layout.f32be|big-endian} representations;\\n   * * 64-bit floating point values with {@link\\n   *   module:Layout.f64|little-endian} and {@link\\n   *   module:Layout.f64be|big-endian} representations;\\n   * * {@link module:Layout.const|Constants} that take no space in the\\n   *   encoded expression.\\n   *\\n   * and for these aggregate types:\\n   * * {@link module:Layout.seq|Sequence}s of instances of a {@link\\n   *   module:Layout~Layout|Layout}, with JavaScript representation as\\n   *   an Array and constant or data-dependent {@link\\n   *   module:Layout~Sequence#count|length};\\n   * * {@link module:Layout.struct|Structure}s that aggregate a\\n   *   heterogeneous sequence of {@link module:Layout~Layout|Layout}\\n   *   instances, with JavaScript representation as an Object;\\n   * * {@link module:Layout.union|Union}s that support multiple {@link\\n   *   module:Layout~VariantLayout|variant layouts} over a fixed\\n   *   (padded) or variable (not padded) span of bytes, using an\\n   *   unsigned integer at the start of the data or a separate {@link\\n   *   module:Layout.unionLayoutDiscriminator|layout element} to\\n   *   determine which layout to use when interpreting the buffer\\n   *   contents;\\n   * * {@link module:Layout.bits|BitStructure}s that contain a sequence\\n   *   of individual {@link\\n   *   module:Layout~BitStructure#addField|BitField}s packed into an 8,\\n   *   16, 24, or 32-bit unsigned integer starting at the least- or\\n   *   most-significant bit;\\n   * * {@link module:Layout.cstr|C strings} of varying length;\\n   * * {@link module:Layout.blob|Blobs} of fixed- or variable-{@link\\n   *   module:Layout~Blob#length|length} raw data.\\n   *\\n   * All {@link module:Layout~Layout|Layout} instances are immutable\\n   * after construction, to prevent internal state from becoming\\n   * inconsistent.\\n   *\\n   * @local Layout\\n   * @local ExternalLayout\\n   * @local GreedyCount\\n   * @local OffsetLayout\\n   * @local UInt\\n   * @local UIntBE\\n   * @local Int\\n   * @local IntBE\\n   * @local NearUInt64\\n   * @local NearUInt64BE\\n   * @local NearInt64\\n   * @local NearInt64BE\\n   * @local Float\\n   * @local FloatBE\\n   * @local Double\\n   * @local DoubleBE\\n   * @local Sequence\\n   * @local Structure\\n   * @local UnionDiscriminator\\n   * @local UnionLayoutDiscriminator\\n   * @local Union\\n   * @local VariantLayout\\n   * @local BitStructure\\n   * @local BitField\\n   * @local Boolean\\n   * @local Blob\\n   * @local CString\\n   * @local Constant\\n   * @local bindConstructorLayout\\n   * @module Layout\\n   * @license MIT\\n   * @author Peter A. Bigot\\n   * @see {@link https://github.com/pabigot/buffer-layout|buffer-layout on GitHub}\\n   *)\\n\\nreact-dom/cjs/react-dom-server-legacy.browser.development.js:\\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\\nreact-dom/cjs/react-dom-server.browser.development.js:\\n  (**\\n   * @license React\\n   * react-dom-server.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\\ncomlink/dist/esm/comlink.mjs:\\n  (**\\n   * @license\\n   * Copyright 2019 Google LLC\\n   * SPDX-License-Identifier: Apache-2.0\\n   *)\\n*/\\n</script></body></html>';\n","import { PAYWALL_TEMPLATE } from \"../paywall/gen/template\";\nimport { config } from \"../types/shared/evm/config\";\nimport { PaymentRequirements } from \"../types/verify\";\n\ninterface PaywallOptions {\n  amount: number;\n  paymentRequirements: PaymentRequirements[];\n  currentUrl: string;\n  testnet: boolean;\n  cdpClientKey?: string;\n  appName?: string;\n  appLogo?: string;\n  sessionTokenEndpoint?: string;\n}\n\n/**\n * Escapes a string for safe injection into JavaScript string literals\n *\n * @param str - The string to escape\n * @returns The escaped string\n */\nfunction escapeString(str: string): string {\n  return str\n    .replace(/\\\\/g, \"\\\\\\\\\")\n    .replace(/\"/g, '\\\\\"')\n    .replace(/'/g, \"\\\\'\")\n    .replace(/\\n/g, \"\\\\n\")\n    .replace(/\\r/g, \"\\\\r\")\n    .replace(/\\t/g, \"\\\\t\");\n}\n\n/**\n * Generates an HTML paywall page that allows users to pay for content access\n *\n * @param options - The options for generating the paywall\n * @param options.amount - The amount to be paid in USD\n * @param options.paymentRequirements - The payment requirements for the content\n * @param options.currentUrl - The URL of the content being accessed\n * @param options.testnet - Whether to use testnet or mainnet\n * @param options.cdpClientKey - CDP client API key for OnchainKit\n * @param options.appName - The name of the application to display in the wallet connection modal\n * @param options.appLogo - The logo of the application to display in the wallet connection modal\n * @param options.sessionTokenEndpoint - The API endpoint for generating session tokens for Onramp authentication\n * @returns An HTML string containing the paywall page\n */\nexport function getPaywallHtml({\n  amount,\n  testnet,\n  paymentRequirements,\n  currentUrl,\n  cdpClientKey,\n  appName,\n  appLogo,\n  sessionTokenEndpoint,\n}: PaywallOptions): string {\n  const logOnTestnet = testnet\n    ? \"console.log('Payment requirements initialized:', window.x402);\"\n    : \"\";\n\n  // Create the configuration script to inject with proper escaping\n  const configScript = `\n  <script>\n    window.x402 = {\n      amount: ${amount},\n      paymentRequirements: ${JSON.stringify(paymentRequirements)},\n      testnet: ${testnet},\n      currentUrl: \"${escapeString(currentUrl)}\",\n      config: {\n        chainConfig: ${JSON.stringify(config)},\n      },\n      cdpClientKey: \"${escapeString(cdpClientKey || \"\")}\",\n      appName: \"${escapeString(appName || \"\")}\",\n      appLogo: \"${escapeString(appLogo || \"\")}\",\n      sessionTokenEndpoint: \"${escapeString(sessionTokenEndpoint || \"\")}\",\n    };\n    ${logOnTestnet}\n  </script>`;\n\n  // Inject the configuration script into the head\n  return PAYWALL_TEMPLATE.replace(\"</head>\", `${configScript}\\n</head>`);\n}\n","/**\n * Encodes a string to base64 format\n *\n * @param data - The string to be encoded to base64\n * @returns The base64 encoded string\n */\nexport function safeBase64Encode(data: string): string {\n  if (typeof globalThis !== \"undefined\" && typeof globalThis.btoa === \"function\") {\n    return globalThis.btoa(data);\n  }\n  return Buffer.from(data).toString(\"base64\");\n}\n\n/**\n * Decodes a base64 string back to its original format\n *\n * @param data - The base64 encoded string to be decoded\n * @returns The decoded string in UTF-8 format\n */\nexport function safeBase64Decode(data: string): string {\n  if (typeof globalThis !== \"undefined\" && typeof globalThis.atob === \"function\") {\n    return globalThis.atob(data);\n  }\n  return Buffer.from(data, \"base64\").toString(\"utf-8\");\n}\n","import { EvmNetworkToChainId, Network } from \"../types/shared\";\n\n/**\n * Converts a network name to its corresponding chain ID\n *\n * @param network - The network name to convert to a chain ID\n * @returns The chain ID for the specified network\n * @throws Error if the network is not supported\n */\nexport function getNetworkId(network: Network): number {\n  if (EvmNetworkToChainId.has(network)) {\n    return EvmNetworkToChainId.get(network)!;\n  }\n  // TODO: Solana\n  throw new Error(`Unsupported network: ${network}`);\n}\n","import { Address, Hex } from \"viem\";\nimport {\n  moneySchema,\n  Network,\n  Price,\n  RouteConfig,\n  RoutePattern,\n  ERC20TokenAmount,\n  PaymentRequirements,\n  PaymentPayload,\n} from \"../types\";\nimport { RoutesConfig } from \"../types\";\nimport { safeBase64Decode } from \"./base64\";\nimport { getUsdcChainConfigForChain } from \"./evm\";\nimport { getNetworkId } from \"./network\";\n\n/**\n * Computes the route patterns for the given routes config\n *\n * @param routes - The routes config to compute the patterns for\n * @returns The route patterns\n */\nexport function computeRoutePatterns(routes: RoutesConfig): RoutePattern[] {\n  const normalizedRoutes = Object.fromEntries(\n    Object.entries(routes).map(([pattern, value]) => [\n      pattern,\n      typeof value === \"string\" || typeof value === \"number\"\n        ? ({ price: value, network: \"base-sepolia\" } as RouteConfig)\n        : (value as RouteConfig),\n    ]),\n  );\n\n  return Object.entries(normalizedRoutes).map(([pattern, routeConfig]) => {\n    // Split pattern into verb and path, defaulting to \"*\" for verb if not specified\n    const [verb, path] = pattern.includes(\" \") ? pattern.split(/\\s+/) : [\"*\", pattern];\n    if (!path) {\n      throw new Error(`Invalid route pattern: ${pattern}`);\n    }\n    return {\n      verb: verb.toUpperCase(),\n      pattern: new RegExp(\n        `^${\n          path\n            // First escape all special regex characters except * and []\n            .replace(/[$()+.?^{|}]/g, \"\\\\$&\")\n            // Then handle our special pattern characters\n            .replace(/\\*/g, \".*?\") // Make wildcard non-greedy and optional\n            .replace(/\\[([^\\]]+)\\]/g, \"[^/]+\") // Convert [param] to regex capture\n            .replace(/\\//g, \"\\\\/\") // Escape slashes\n        }$`,\n        \"i\",\n      ),\n      config: routeConfig,\n    };\n  });\n}\n\n/**\n * Finds the matching route pattern for the given path and method\n *\n * @param routePatterns - The route patterns to search through\n * @param path - The path to match against\n * @param method - The HTTP method to match against\n * @returns The matching route pattern or undefined if no match is found\n */\nexport function findMatchingRoute(\n  routePatterns: RoutePattern[],\n  path: string,\n  method: string,\n): RoutePattern | undefined {\n  // Normalize the path:\n  // 1. Remove query parameters and hash fragments\n  // 2. Replace backslashes with forward slashes\n  // 3. Replace multiple consecutive slashes with a single slash\n  // 4. Keep trailing slash if path is not root\n  let normalizedPath: string;\n  try {\n    // First split off query parameters and hash fragments\n    const pathWithoutQuery = path.split(/[?#]/)[0];\n\n    // Then decode the path - this needs to happen before any normalization\n    // so encoded characters are properly handled\n    const decodedPath = decodeURIComponent(pathWithoutQuery);\n\n    // Normalize the path (just clean up slashes)\n    normalizedPath = decodedPath\n      .replace(/\\\\/g, \"/\") // replace backslashes\n      .replace(/\\/+/g, \"/\") // collapse slashes\n      .replace(/(.+?)\\/+$/, \"$1\"); // trim trailing slashes\n  } catch {\n    // If decoding fails (e.g., invalid % encoding), return undefined\n    return undefined;\n  }\n\n  // Find matching route pattern\n  const matchingRoutes = routePatterns.filter(({ pattern, verb }) => {\n    const matchesPath = pattern.test(normalizedPath);\n    const upperMethod = method.toUpperCase();\n    const matchesVerb = verb === \"*\" || upperMethod === verb;\n\n    const result = matchesPath && matchesVerb;\n    return result;\n  });\n\n  if (matchingRoutes.length === 0) {\n    return undefined;\n  }\n\n  // Use the most specific route (longest path pattern)\n  const matchingRoute = matchingRoutes.reduce((a, b) =>\n    b.pattern.source.length > a.pattern.source.length ? b : a,\n  );\n\n  return matchingRoute;\n}\n\n/**\n * Gets the default asset (USDC) for the given network\n *\n * @param network - The network to get the default asset for\n * @returns The default asset\n */\nexport function getDefaultAsset(network: Network) {\n  const chainId = getNetworkId(network);\n  const usdc = getUsdcChainConfigForChain(chainId);\n  if (!usdc) {\n    throw new Error(`Unable to get default asset on ${network}`);\n  }\n  return {\n    address: usdc.usdcAddress,\n    decimals: 6,\n    eip712: {\n      name: usdc.usdcName,\n      version: \"2\",\n    },\n  };\n}\n\n/**\n * Parses the amount from the given price\n *\n * @param price - The price to parse\n * @param network - The network to get the default asset for\n * @returns The parsed amount or an error message\n */\nexport function processPriceToAtomicAmount(\n  price: Price,\n  network: Network,\n): { maxAmountRequired: string; asset: ERC20TokenAmount[\"asset\"] } | { error: string } {\n  // Handle USDC amount (string) or token amount (ERC20TokenAmount)\n  let maxAmountRequired: string;\n  let asset: ERC20TokenAmount[\"asset\"];\n\n  if (typeof price === \"string\" || typeof price === \"number\") {\n    // USDC amount in dollars\n    const parsedAmount = moneySchema.safeParse(price);\n    if (!parsedAmount.success) {\n      return {\n        error: `Invalid price (price: ${price}). Must be in the form \"$3.10\", 0.10, \"0.001\", ${parsedAmount.error}`,\n      };\n    }\n    const parsedUsdAmount = parsedAmount.data;\n    asset = getDefaultAsset(network);\n    maxAmountRequired = (parsedUsdAmount * 10 ** asset.decimals).toString();\n  } else {\n    // Token amount in atomic units\n    maxAmountRequired = price.amount;\n    asset = price.asset;\n  }\n\n  return {\n    maxAmountRequired,\n    asset,\n  };\n}\n\n/**\n * Finds the matching payment requirements for the given payment\n *\n * @param paymentRequirements - The payment requirements to search through\n * @param payment - The payment to match against\n * @returns The matching payment requirements or undefined if no match is found\n */\nexport function findMatchingPaymentRequirements(\n  paymentRequirements: PaymentRequirements[],\n  payment: PaymentPayload,\n) {\n  return paymentRequirements.find(\n    value => value.scheme === payment.scheme && value.network === payment.network,\n  );\n}\n\n/**\n * Decodes the X-PAYMENT-RESPONSE header\n *\n * @param header - The X-PAYMENT-RESPONSE header to decode\n * @returns The decoded payment response\n */\nexport function decodeXPaymentResponse(header: string) {\n  const decoded = safeBase64Decode(header);\n  return JSON.parse(decoded) as {\n    success: boolean;\n    transaction: Hex;\n    network: Network;\n    payer: Address;\n  };\n}\n","import { safeBase64Encode, safeBase64Decode } from \"../../../../shared\";\nimport { PaymentPayload, PaymentPayloadSchema } from \"../../../../types/verify\";\n\n/**\n * Encodes a payment payload into a base64 string, ensuring bigint values are properly stringified\n *\n * @param payment - The payment payload to encode\n * @returns A base64 encoded string representation of the payment payload\n */\nexport function encodePayment(payment: PaymentPayload): string {\n  const safe = {\n    ...payment,\n    payload: {\n      ...payment.payload,\n      authorization: Object.fromEntries(\n        Object.entries(payment.payload.authorization).map(([key, value]) => [\n          key,\n          typeof value === \"bigint\" ? (value as bigint).toString() : value,\n        ]),\n      ),\n    },\n  };\n  return safeBase64Encode(JSON.stringify(safe));\n}\n\n/**\n * Decodes a base64 encoded payment string back into a PaymentPayload object\n *\n * @param payment - The base64 encoded payment string to decode\n * @returns The decoded and validated PaymentPayload object\n */\nexport function decodePayment(payment: string): PaymentPayload {\n  const decoded = safeBase64Decode(payment);\n  const parsed = JSON.parse(decoded);\n\n  const obj = {\n    ...parsed,\n    payload: {\n      signature: parsed.payload.signature,\n      authorization: {\n        ...parsed.payload.authorization,\n        value: parsed.payload.authorization.value,\n        validAfter: parsed.payload.authorization.validAfter,\n        validBefore: parsed.payload.authorization.validBefore,\n      },\n    },\n  };\n\n  const validated = PaymentPayloadSchema.parse(obj);\n  return validated;\n}\n","import { Chain, getAddress, Hex, LocalAccount, toHex, Transport } from \"viem\";\nimport { getNetworkId } from \"../../../shared\";\nimport {\n  authorizationTypes,\n  isAccount,\n  isSignerWallet,\n  SignerWallet,\n} from \"../../../types/shared/evm\";\nimport { ExactEvmPayloadAuthorization, PaymentRequirements } from \"../../../types/verify\";\n\n/**\n * Signs an EIP-3009 authorization for USDC transfer\n *\n * @param walletClient - The wallet client that will sign the authorization\n * @param params - The authorization parameters containing transfer details\n * @param params.from - The address tokens will be transferred from\n * @param params.to - The address tokens will be transferred to\n * @param params.value - The amount of USDC tokens to transfer (in base units)\n * @param params.validAfter - Unix timestamp after which the authorization becomes valid\n * @param params.validBefore - Unix timestamp before which the authorization is valid\n * @param params.nonce - Random 32-byte nonce to prevent replay attacks\n * @param paymentRequirements - The payment requirements containing asset and network information\n * @param paymentRequirements.asset - The address of the USDC contract\n * @param paymentRequirements.network - The network where the USDC contract exists\n * @param paymentRequirements.extra - The extra information containing the name and version of the ERC20 contract\n * @returns The signature for the authorization\n */\nexport async function signAuthorization<transport extends Transport, chain extends Chain>(\n  walletClient: SignerWallet<chain, transport> | LocalAccount,\n  { from, to, value, validAfter, validBefore, nonce }: ExactEvmPayloadAuthorization,\n  { asset, network, extra }: PaymentRequirements,\n): Promise<{ signature: Hex }> {\n  const chainId = getNetworkId(network);\n  const name = extra?.name;\n  const version = extra?.version;\n\n  const data = {\n    types: authorizationTypes,\n    domain: {\n      name,\n      version,\n      chainId,\n      verifyingContract: getAddress(asset),\n    },\n    primaryType: \"TransferWithAuthorization\" as const,\n    message: {\n      from: getAddress(from),\n      to: getAddress(to),\n      value,\n      validAfter,\n      validBefore,\n      nonce: nonce,\n    },\n  };\n\n  if (isSignerWallet(walletClient)) {\n    const signature = await walletClient.signTypedData(data);\n    return {\n      signature,\n    };\n  } else if (isAccount(walletClient) && walletClient.signTypedData) {\n    const signature = await walletClient.signTypedData(data);\n    return {\n      signature,\n    };\n  } else {\n    throw new Error(\"Invalid wallet client provided does not support signTypedData\");\n  }\n}\n\n/**\n * Generates a random 32-byte nonce for use in authorization signatures\n *\n * @returns A random 32-byte nonce as a hex string\n */\nexport function createNonce(): Hex {\n  const cryptoObj =\n    typeof globalThis.crypto !== \"undefined\" &&\n    typeof globalThis.crypto.getRandomValues === \"function\"\n      ? globalThis.crypto\n      : // Dynamic require is needed to support node.js\n        // eslint-disable-next-line @typescript-eslint/no-require-imports\n        require(\"crypto\").webcrypto;\n  return toHex(cryptoObj.getRandomValues(new Uint8Array(32)));\n}\n","import { Address, Chain, LocalAccount, Transport } from \"viem\";\nimport { isSignerWallet, SignerWallet } from \"../../../types/shared/evm\";\nimport { PaymentPayload, PaymentRequirements, UnsignedPaymentPayload } from \"../../../types/verify\";\nimport { createNonce, signAuthorization } from \"./sign\";\nimport { encodePayment } from \"./utils/paymentUtils\";\n\n/**\n * Prepares an unsigned payment header with the given sender address and payment requirements.\n *\n * @param from - The sender's address from which the payment will be made\n * @param x402Version - The version of the X402 protocol to use\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @returns An unsigned payment payload containing authorization details\n */\nexport function preparePaymentHeader(\n  from: Address,\n  x402Version: number,\n  paymentRequirements: PaymentRequirements,\n): UnsignedPaymentPayload {\n  const nonce = createNonce();\n\n  const validAfter = BigInt(\n    Math.floor(Date.now() / 1000) - 600, // 10 minutes before\n  ).toString();\n  const validBefore = BigInt(\n    Math.floor(Date.now() / 1000 + paymentRequirements.maxTimeoutSeconds),\n  ).toString();\n\n  return {\n    x402Version,\n    scheme: paymentRequirements.scheme,\n    network: paymentRequirements.network,\n    payload: {\n      signature: undefined,\n      authorization: {\n        from,\n        to: paymentRequirements.payTo as Address,\n        value: paymentRequirements.maxAmountRequired,\n        validAfter: validAfter.toString(),\n        validBefore: validBefore.toString(),\n        nonce,\n      },\n    },\n  };\n}\n\n/**\n * Signs a payment header using the provided client and payment requirements.\n *\n * @param client - The signer wallet instance used to sign the payment header\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @param unsignedPaymentHeader - The unsigned payment payload to be signed\n * @returns A promise that resolves to the signed payment payload\n */\nexport async function signPaymentHeader<transport extends Transport, chain extends Chain>(\n  client: SignerWallet<chain, transport> | LocalAccount,\n  paymentRequirements: PaymentRequirements,\n  unsignedPaymentHeader: UnsignedPaymentPayload,\n): Promise<PaymentPayload> {\n  const { signature } = await signAuthorization(\n    client,\n    unsignedPaymentHeader.payload.authorization,\n    paymentRequirements,\n  );\n\n  return {\n    ...unsignedPaymentHeader,\n    payload: {\n      ...unsignedPaymentHeader.payload,\n      signature,\n    },\n  };\n}\n\n/**\n * Creates a complete payment payload by preparing and signing a payment header.\n *\n * @param client - The signer wallet instance used to create and sign the payment\n * @param x402Version - The version of the X402 protocol to use\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @returns A promise that resolves to the complete signed payment payload\n */\nexport async function createPayment<transport extends Transport, chain extends Chain>(\n  client: SignerWallet<chain, transport> | LocalAccount,\n  x402Version: number,\n  paymentRequirements: PaymentRequirements,\n): Promise<PaymentPayload> {\n  const from = isSignerWallet(client) ? client.account!.address : client.address;\n  const unsignedPaymentHeader = preparePaymentHeader(from, x402Version, paymentRequirements);\n  return signPaymentHeader(client, paymentRequirements, unsignedPaymentHeader);\n}\n\n/**\n * Creates and encodes a payment header for the given client and payment requirements.\n *\n * @param client - The signer wallet instance used to create the payment header\n * @param x402Version - The version of the X402 protocol to use\n * @param paymentRequirements - The payment requirements containing scheme and network information\n * @returns A promise that resolves to the encoded payment header string\n */\nexport async function createPaymentHeader(\n  client: SignerWallet | LocalAccount,\n  x402Version: number,\n  paymentRequirements: PaymentRequirements,\n): Promise<string> {\n  const payment = await createPayment(client, x402Version, paymentRequirements);\n  return encodePayment(payment);\n}\n","export * as evm from \"./evm\";\n\nexport const SCHEME = \"exact\";\n","export * from \"./client\";\nexport * from \"./facilitator\";\nexport * from \"./utils/paymentUtils\";\n","import { Account, Address, Chain, getAddress, Hex, parseErc6492Signature, Transport } from \"viem\";\nimport { getNetworkId } from \"../../../shared\";\nimport { getVersion, getERC20Balance } from \"../../../shared/evm\";\nimport {\n  usdcABI as abi,\n  authorizationTypes,\n  config,\n  ConnectedClient,\n  SignerWallet,\n} from \"../../../types/shared/evm\";\nimport {\n  PaymentPayload,\n  PaymentRequirements,\n  SettleResponse,\n  VerifyResponse,\n} from \"../../../types/verify\";\nimport { SCHEME } from \"../../exact\";\n\n/**\n * Verifies a payment payload against the required payment details\n *\n * This function performs several verification steps:\n * - Verifies protocol version compatibility\n * - Validates the permit signature\n * - Confirms USDC contract address is correct for the chain\n * - Checks permit deadline is sufficiently in the future\n * - Verifies client has sufficient USDC balance\n * - Ensures payment amount meets required minimum\n *\n * @param client - The public client used for blockchain interactions\n * @param payload - The signed payment payload containing transfer parameters and signature\n * @param paymentRequirements - The payment requirements that the payload must satisfy\n * @returns A ValidPaymentRequest indicating if the payment is valid and any invalidation reason\n */\nexport async function verify<\n  transport extends Transport,\n  chain extends Chain,\n  account extends Account | undefined,\n>(\n  client: ConnectedClient<transport, chain, account>,\n  payload: PaymentPayload,\n  paymentRequirements: PaymentRequirements,\n): Promise<VerifyResponse> {\n  /* TODO: work with security team on brainstorming more verification steps\n  verification steps:\n    - ✅ verify payload version\n    - ✅ verify usdc address is correct for the chain\n    - ✅ verify permit signature\n    - ✅ verify deadline\n    - verify nonce is current\n    - ✅ verify client has enough funds to cover paymentRequirements.maxAmountRequired\n    - ✅ verify value in payload is enough to cover paymentRequirements.maxAmountRequired\n    - check min amount is above some threshold we think is reasonable for covering gas\n    - verify resource is not already paid for (next version)\n    */\n\n  // Verify payload version\n  if (payload.scheme !== SCHEME || paymentRequirements.scheme !== SCHEME) {\n    return {\n      isValid: false,\n      invalidReason: `unsupported_scheme`,\n      payer: payload.payload.authorization.from,\n    };\n  }\n\n  let name: string;\n  let chainId: number;\n  let erc20Address: Address;\n  let version: string;\n  try {\n    chainId = getNetworkId(payload.network);\n    name = paymentRequirements.extra?.name ?? config[chainId.toString()].usdcName;\n    erc20Address = paymentRequirements.asset as Address;\n    version = paymentRequirements.extra?.version ?? (await getVersion(client));\n  } catch {\n    return {\n      isValid: false,\n      invalidReason: `invalid_network`,\n      payer: payload.payload.authorization.from,\n    };\n  }\n  // Verify permit signature is recoverable for the owner address\n  const permitTypedData = {\n    types: authorizationTypes,\n    primaryType: \"TransferWithAuthorization\" as const,\n    domain: {\n      name,\n      version,\n      chainId,\n      verifyingContract: erc20Address,\n    },\n    message: {\n      from: payload.payload.authorization.from,\n      to: payload.payload.authorization.to,\n      value: payload.payload.authorization.value,\n      validAfter: payload.payload.authorization.validAfter,\n      validBefore: payload.payload.authorization.validBefore,\n      nonce: payload.payload.authorization.nonce,\n    },\n  };\n  const recoveredAddress = await client.verifyTypedData({\n    address: payload.payload.authorization.from as Address,\n    ...permitTypedData,\n    signature: payload.payload.signature as Hex,\n  });\n  if (!recoveredAddress) {\n    return {\n      isValid: false,\n      invalidReason: \"invalid_exact_evm_payload_signature\", //\"Invalid permit signature\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n\n  // Verify that payment was made to the correct address\n  if (getAddress(payload.payload.authorization.to) !== getAddress(paymentRequirements.payTo)) {\n    return {\n      isValid: false,\n      invalidReason: \"invalid_exact_evm_payload_recipient_mismatch\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n\n  // Verify deadline is not yet expired\n  // Pad 3 block to account for round tripping\n  if (\n    BigInt(payload.payload.authorization.validBefore) < BigInt(Math.floor(Date.now() / 1000) + 6)\n  ) {\n    return {\n      isValid: false,\n      invalidReason: \"invalid_exact_evm_payload_authorization_valid_before\", //\"Deadline on permit isn't far enough in the future\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n  // Verify deadline is not yet valid\n  if (BigInt(payload.payload.authorization.validAfter) > BigInt(Math.floor(Date.now() / 1000))) {\n    return {\n      isValid: false,\n      invalidReason: \"invalid_exact_evm_payload_authorization_valid_after\", //\"Deadline on permit is in the future\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n  // Verify client has enough funds to cover paymentRequirements.maxAmountRequired\n  const balance = await getERC20Balance(\n    client,\n    erc20Address,\n    payload.payload.authorization.from as Address,\n  );\n  if (balance < BigInt(paymentRequirements.maxAmountRequired)) {\n    return {\n      isValid: false,\n      invalidReason: \"insufficient_funds\", //\"Client does not have enough funds\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n  // Verify value in payload is enough to cover paymentRequirements.maxAmountRequired\n  if (BigInt(payload.payload.authorization.value) < BigInt(paymentRequirements.maxAmountRequired)) {\n    return {\n      isValid: false,\n      invalidReason: \"invalid_exact_evm_payload_authorization_value\", //\"Value in payload is not enough to cover paymentRequirements.maxAmountRequired\",\n      payer: payload.payload.authorization.from,\n    };\n  }\n  return {\n    isValid: true,\n    invalidReason: undefined,\n    payer: payload.payload.authorization.from,\n  };\n}\n\n/**\n * Settles a payment by executing a USDC transferWithAuthorization transaction\n *\n * This function executes the actual USDC transfer using the signed authorization from the user.\n * The facilitator wallet submits the transaction but does not need to hold or transfer any tokens itself.\n *\n * @param wallet - The facilitator wallet that will submit the transaction\n * @param paymentPayload - The signed payment payload containing the transfer parameters and signature\n * @param paymentRequirements - The original payment details that were used to create the payload\n * @returns A PaymentExecutionResponse containing the transaction status and hash\n */\nexport async function settle<transport extends Transport, chain extends Chain>(\n  wallet: SignerWallet<chain, transport>,\n  paymentPayload: PaymentPayload,\n  paymentRequirements: PaymentRequirements,\n): Promise<SettleResponse> {\n  // re-verify to ensure the payment is still valid\n  const valid = await verify(wallet, paymentPayload, paymentRequirements);\n\n  if (!valid.isValid) {\n    return {\n      success: false,\n      network: paymentPayload.network,\n      transaction: \"\",\n      errorReason: valid.invalidReason ?? \"invalid_scheme\", //`Payment is no longer valid: ${valid.invalidReason}`,\n      payer: paymentPayload.payload.authorization.from,\n    };\n  }\n\n  // Returns the original signature (no-op) if the signature is not a 6492 signature\n  const { signature } = parseErc6492Signature(paymentPayload.payload.signature as Hex);\n\n  const tx = await wallet.writeContract({\n    address: paymentRequirements.asset as Address,\n    abi,\n    functionName: \"transferWithAuthorization\" as const,\n    args: [\n      paymentPayload.payload.authorization.from as Address,\n      paymentPayload.payload.authorization.to as Address,\n      BigInt(paymentPayload.payload.authorization.value),\n      BigInt(paymentPayload.payload.authorization.validAfter),\n      BigInt(paymentPayload.payload.authorization.validBefore),\n      paymentPayload.payload.authorization.nonce as Hex,\n      signature,\n    ],\n    chain: wallet.chain as Chain,\n  });\n\n  const receipt = await wallet.waitForTransactionReceipt({ hash: tx });\n\n  if (receipt.status !== \"success\") {\n    return {\n      success: false,\n      errorReason: \"invalid_transaction_state\", //`Transaction failed`,\n      transaction: tx,\n      network: paymentPayload.network,\n      payer: paymentPayload.payload.authorization.from,\n    };\n  }\n\n  return {\n    success: true,\n    transaction: tx,\n    network: paymentPayload.network,\n    payer: paymentPayload.payload.authorization.from,\n  };\n}\n","/**\n * x402 Payment utilities for Dreams Router\n */\n\nimport type { Account } from 'viem';\nimport type { DreamsRouterPaymentConfig } from '../types';\nimport type { X402PaymentRequirements } from './x402-types';\n\nimport { exact } from 'x402/schemes';\n\nconst CONFIG = {\n  usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n  serviceWallet: '0xb308ed39d67D0d4BAe5BC2FAEF60c66BBb6AE429',\n  amount: '100000',\n  network: 'base-sepolia' as const,\n  validityDuration: 600,\n  networks: {\n    'base-sepolia': 84532,\n    base: 8453,\n  },\n};\n\n/**\n * Creates EIP-712 typed data for X402 payment (no signing)\n */\nexport function createX402PaymentData(\n  address: string,\n  config: DreamsRouterPaymentConfig = {}\n) {\n  const usdcAddress = CONFIG.usdcAddress;\n  const serviceWallet = CONFIG.serviceWallet;\n  const amount = config.amount || CONFIG.amount;\n  const requestedNetwork = config.network || CONFIG.network;\n  const network: 'base' | 'base-sepolia' = (() => {\n    if (requestedNetwork === 'base' || requestedNetwork === 'base-sepolia') {\n      return requestedNetwork;\n    }\n    throw new Error(\n      `Unsupported EVM network for x402: ${String(requestedNetwork)}`\n    );\n  })();\n  const validityDuration = config.validityDuration || CONFIG.validityDuration;\n\n  const now = Math.floor(Date.now() / 1000);\n\n  const authorization = {\n    from: address as `0x${string}`,\n    to: serviceWallet as `0x${string}`,\n    value: BigInt(amount),\n    // Backdate window start to tolerate clock skew\n    validAfter: BigInt(Math.max(0, now - 120)),\n    validBefore: BigInt(now + validityDuration),\n    nonce:\n      '0x' +\n      Array.from({ length: 64 }, () =>\n        Math.floor(Math.random() * 16).toString(16)\n      ).join(''),\n  };\n\n  const eip712Data = {\n    types: {\n      EIP712Domain: [\n        { name: 'name', type: 'string' },\n        { name: 'version', type: 'string' },\n        { name: 'chainId', type: 'uint256' },\n        { name: 'verifyingContract', type: 'address' },\n      ],\n      TransferWithAuthorization: [\n        { name: 'from', type: 'address' },\n        { name: 'to', type: 'address' },\n        { name: 'value', type: 'uint256' },\n        { name: 'validAfter', type: 'uint256' },\n        { name: 'validBefore', type: 'uint256' },\n        { name: 'nonce', type: 'bytes32' },\n      ],\n    },\n    domain: {\n      name: network === 'base-sepolia' ? 'USDC' : 'USD Coin',\n      version: '2',\n      chainId: CONFIG.networks[network as keyof typeof CONFIG.networks],\n      verifyingContract: usdcAddress as `0x${string}`,\n    },\n    primaryType: 'TransferWithAuthorization' as const,\n    message: authorization,\n  };\n\n  return { eip712Data, authorization, network } as const;\n}\n\n/**\n * Generates X402 payment for browser/wagmi environments\n */\nexport async function generateX402PaymentBrowser(\n  address: string,\n  signTypedDataAsync: (data: any) => Promise<string>,\n  config: DreamsRouterPaymentConfig = {}\n): Promise<string | null> {\n  try {\n    const { eip712Data, authorization, network } = createX402PaymentData(\n      address,\n      config\n    );\n\n    const signature = await signTypedDataAsync(eip712Data);\n\n    const signedPaymentHeader = {\n      x402Version: 1,\n      scheme: 'exact' as const,\n      network,\n      payload: {\n        authorization: {\n          from: authorization.from,\n          to: authorization.to,\n          value: authorization.value.toString(),\n          validAfter: authorization.validAfter.toString(),\n          validBefore: authorization.validBefore.toString(),\n          nonce: authorization.nonce as `0x${string}`,\n        },\n        signature,\n      },\n    };\n\n    const encodedPayment = exact.evm.encodePayment(signedPaymentHeader);\n    return encodedPayment;\n  } catch (error) {\n    console.error('Failed to generate x402 payment:', error);\n\n    // Provide helpful error messages\n    if (error instanceof Error) {\n      if (error.message.includes('viem')) {\n        throw new Error(\n          'Dreams Router x402 payments require viem. Install with: npm install viem'\n        );\n      }\n      if (error.message.includes('x402')) {\n        throw new Error(\n          'Dreams Router x402 payments require x402. Install with: npm install x402'\n        );\n      }\n    }\n\n    return null;\n  }\n}\n\nexport async function generateX402Payment(\n  account: Account,\n  config: DreamsRouterPaymentConfig\n): Promise<string | null> {\n  try {\n    const { eip712Data, authorization, network } = createX402PaymentData(\n      account.address,\n      config\n    );\n\n    // Use the account to sign the typed data\n    if (!account.signTypedData) {\n      throw new Error(\n        'Account does not support typed data signing. Required for X402 payments.'\n      );\n    }\n    const signature = await account.signTypedData(eip712Data as any);\n\n    const signedPaymentHeader = {\n      x402Version: 1,\n      scheme: 'exact' as const,\n      network,\n      payload: {\n        authorization: {\n          from: authorization.from,\n          to: authorization.to,\n          value: authorization.value.toString(),\n          validAfter: authorization.validAfter.toString(),\n          validBefore: authorization.validBefore.toString(),\n          nonce: authorization.nonce as `0x${string}`,\n        },\n        signature,\n      },\n    };\n\n    const encodedPayment = exact.evm.encodePayment(signedPaymentHeader);\n    return encodedPayment;\n  } catch (error) {\n    console.error('Failed to generate x402 payment:', error);\n\n    // Provide helpful error messages\n    if (error instanceof Error) {\n      if (error.message.includes('viem')) {\n        throw new Error(\n          'Dreams Router x402 payments require viem. Install with: npm install viem'\n        );\n      }\n      if (error.message.includes('x402')) {\n        throw new Error(\n          'Dreams Router x402 payments require x402. Install with: npm install x402'\n        );\n      }\n    }\n\n    return null;\n  }\n}\n\n/**\n * Generate an EVM x402 payment header directly from server-provided requirements.\n */\nexport async function generateX402PaymentFromRequirement(\n  account: Account,\n  requirement: X402PaymentRequirements,\n  config: Pick<DreamsRouterPaymentConfig, 'validityDuration'> = {}\n): Promise<string | null> {\n  try {\n    const now = Math.floor(Date.now() / 1000);\n    const skew = 120; // 2 minutes\n    const validityDuration = config.validityDuration || 600;\n\n    const [chainId, evmNetwork] = (() => {\n      switch (requirement.network) {\n        case 'base':\n          return [8453, 'base' as const];\n        case 'base-sepolia':\n          return [84532, 'base-sepolia' as const];\n        default:\n          throw new Error(\n            `Unsupported EVM network for x402: ${requirement.network}`\n          );\n      }\n    })();\n\n    // Convert amount to atomic units (USDC has 6 decimals)\n    const amountAtomic = (() => {\n      const raw = requirement.maxAmountRequired;\n      if (typeof raw === 'number') return Math.ceil(raw * 1_000_000).toString();\n      if (typeof raw === 'string' && raw.includes('.')) {\n        return Math.ceil(parseFloat(raw) * 1_000_000).toString();\n      }\n      return String(raw);\n    })();\n\n    const authorization = {\n      from: account.address as `0x${string}`,\n      to: requirement.payTo as `0x${string}`,\n      value: BigInt(amountAtomic),\n      validAfter: BigInt(Math.max(0, now - skew)),\n      validBefore: BigInt(now + validityDuration),\n      nonce: ('0x' +\n        Array.from({ length: 64 }, () =>\n          Math.floor(Math.random() * 16).toString(16)\n        ).join('')) as `0x${string}`,\n    };\n\n    const tokenName = (requirement as any)?.extra?.name || 'USD Coin';\n    const tokenVersion = (requirement as any)?.extra?.version || '2';\n    const eip712Data = {\n      types: {\n        EIP712Domain: [\n          { name: 'name', type: 'string' },\n          { name: 'version', type: 'string' },\n          { name: 'chainId', type: 'uint256' },\n          { name: 'verifyingContract', type: 'address' },\n        ],\n        TransferWithAuthorization: [\n          { name: 'from', type: 'address' },\n          { name: 'to', type: 'address' },\n          { name: 'value', type: 'uint256' },\n          { name: 'validAfter', type: 'uint256' },\n          { name: 'validBefore', type: 'uint256' },\n          { name: 'nonce', type: 'bytes32' },\n        ],\n      },\n      domain: {\n        name: tokenName,\n        version: tokenVersion,\n        chainId,\n        verifyingContract: requirement.asset as `0x${string}`,\n      },\n      primaryType: 'TransferWithAuthorization' as const,\n      message: authorization,\n    } as const;\n\n    if (!account.signTypedData) {\n      throw new Error(\n        'Account does not support typed data signing. Required for X402 payments.'\n      );\n    }\n    const signature = await account.signTypedData(eip712Data as any);\n\n    const signedPaymentHeader = {\n      x402Version: 1,\n      scheme: 'exact' as const,\n      network: evmNetwork,\n      payload: {\n        authorization: {\n          from: authorization.from,\n          to: authorization.to,\n          value: authorization.value.toString(),\n          validAfter: authorization.validAfter.toString(),\n          validBefore: authorization.validBefore.toString(),\n          nonce: authorization.nonce,\n        },\n        signature,\n      },\n    };\n\n    const encodedPayment = exact.evm.encodePayment(signedPaymentHeader);\n    return encodedPayment;\n  } catch (error) {\n    console.error('Failed to generate x402 payment from requirement:', error);\n    return null;\n  }\n}\n\n/**\n * Auto x402 provider - handles the complete flow automatically\n * 1. Makes initial request\n * 2. If 402 received, extracts payment requirements\n * 3. Creates x402 payment with provided account\n * 4. Retries request with x402 payment\n */\nexport async function autoX402Provider(\n  account: Account,\n  url: string,\n  requestInit: RequestInit,\n  config: Pick<DreamsRouterPaymentConfig, 'validityDuration'> = {}\n): Promise<Response> {\n  // 1. Make initial request to get payment requirements\n  const initialResponse = await fetch(url, requestInit);\n\n  // If not 402, return as-is\n  if (initialResponse.status !== 402) {\n    return initialResponse;\n  }\n\n  // 2. Extract payment requirements from 402 response\n  const paymentRequiredHeader =\n    initialResponse.headers.get('x-payment-required');\n  if (!paymentRequiredHeader) {\n    throw new Error('402 response missing x-payment-required header');\n  }\n\n  let requirement: X402PaymentRequirements;\n  try {\n    requirement = JSON.parse(paymentRequiredHeader);\n  } catch (error) {\n    throw new Error('Invalid x-payment-required header format');\n  }\n\n  // Check if it's Solana network (not supported by this function)\n  if (requirement.network.startsWith('solana')) {\n    throw new Error(\n      `EVM account cannot pay on Solana network: ${requirement.network}`\n    );\n  }\n\n  // 3. Generate x402 payment from requirements\n  const x402Payment = await generateX402PaymentFromRequirement(\n    account,\n    requirement,\n    config\n  );\n\n  if (!x402Payment) {\n    throw new Error('Failed to generate x402 payment');\n  }\n\n  // 4. Retry request with x402 payment header\n  const headers = new Headers(requestInit.headers);\n  headers.set('x-payment', x402Payment);\n\n  const retryResponse = await fetch(url, {\n    ...requestInit,\n    headers,\n  });\n\n  return retryResponse;\n}\n\n/**\n * Simple wrapper for chat completions with auto x402\n */\nexport async function chatCompletionsWithX402(\n  account: Account,\n  baseUrl: string,\n  body: any,\n  config: Pick<DreamsRouterPaymentConfig, 'validityDuration'> & {\n    preferredNetwork?: 'base' | 'base-sepolia';\n  } = {}\n): Promise<Response> {\n  const headers: Record<string, string> = {\n    'Content-Type': 'application/json',\n  };\n\n  // Set preferred network if specified\n  if (config.preferredNetwork) {\n    headers['x-payment-network'] = config.preferredNetwork;\n  }\n\n  return autoX402Provider(\n    account,\n    `${baseUrl}/v1/chat/completions`,\n    {\n      method: 'POST',\n      headers,\n      body: JSON.stringify(body),\n    },\n    config\n  );\n}\n","/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport {\n  abytes as abytes_,\n  bytesToHex as bytesToHex_,\n  concatBytes as concatBytes_,\n  hexToBytes as hexToBytes_,\n  isBytes as isBytes_,\n} from '@noble/hashes/utils.js';\nexport {\n  abytes,\n  anumber,\n  bytesToHex,\n  bytesToUtf8,\n  concatBytes,\n  hexToBytes,\n  isBytes,\n  randomBytes,\n  utf8ToBytes,\n} from '@noble/hashes/utils.js';\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n  (message: Uint8Array | string): Uint8Array;\n  blockLen: number;\n  outputLen: number;\n  create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function abool(title: string, value: boolean): void {\n  if (typeof value !== 'boolean') throw new Error(title + ' boolean expected, got ' + value);\n}\n\n// tmp name until v2\nexport function _abool2(value: boolean, title: string = ''): boolean {\n  if (typeof value !== 'boolean') {\n    const prefix = title && `\"${title}\"`;\n    throw new Error(prefix + 'expected boolean, got type=' + typeof value);\n  }\n  return value;\n}\n\n// tmp name until v2\n/** Asserts something is Uint8Array. */\nexport function _abytes2(value: Uint8Array, length?: number, title: string = ''): Uint8Array {\n  const bytes = isBytes_(value);\n  const len = value?.length;\n  const needsLen = length !== undefined;\n  if (!bytes || (needsLen && len !== length)) {\n    const prefix = title && `\"${title}\" `;\n    const ofLen = needsLen ? ` of length ${length}` : '';\n    const got = bytes ? `length=${len}` : `type=${typeof value}`;\n    throw new Error(prefix + 'expected Uint8Array' + ofLen + ', got ' + got);\n  }\n  return value;\n}\n\n// Used in weierstrass, der\nexport function numberToHexUnpadded(num: number | bigint): string {\n  const hex = num.toString(16);\n  return hex.length & 1 ? '0' + hex : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n  if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n  return hex === '' ? _0n : BigInt('0x' + hex); // Big Endian\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n  return hexToNumber(bytesToHex_(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n  abytes_(bytes);\n  return hexToNumber(bytesToHex_(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n  return hexToBytes_(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n  return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n  return hexToBytes_(numberToHexUnpadded(n));\n}\n\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'secret key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nexport function ensureBytes(title: string, hex: Hex, expectedLength?: number): Uint8Array {\n  let res: Uint8Array;\n  if (typeof hex === 'string') {\n    try {\n      res = hexToBytes_(hex);\n    } catch (e) {\n      throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n    }\n  } else if (isBytes_(hex)) {\n    // Uint8Array.from() instead of hash.slice() because node.js Buffer\n    // is instance of Uint8Array, and its slice() creates **mutable** copy\n    res = Uint8Array.from(hex);\n  } else {\n    throw new Error(title + ' must be hex string or Uint8Array');\n  }\n  const len = res.length;\n  if (typeof expectedLength === 'number' && len !== expectedLength)\n    throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n  return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array): boolean {\n  if (a.length !== b.length) return false;\n  let diff = 0;\n  for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n  return diff === 0;\n}\n/**\n * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer,\n * and Buffer#slice creates mutable copy. Never use Buffers!\n */\nexport function copyBytes(bytes: Uint8Array): Uint8Array {\n  return Uint8Array.from(bytes);\n}\n\n/**\n * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols\n * Should be safe to use for things expected to be ASCII.\n * Returns exact same result as utf8ToBytes for ASCII or throws.\n */\nexport function asciiToBytes(ascii: string): Uint8Array {\n  return Uint8Array.from(ascii, (c, i) => {\n    const charCode = c.charCodeAt(0);\n    if (c.length !== 1 || charCode > 127) {\n      throw new Error(\n        `string contains non-ASCII character \"${ascii[i]}\" with code ${charCode} at position ${i}`\n      );\n    }\n    return charCode;\n  });\n}\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\n// export const utf8ToBytes: typeof utf8ToBytes_ = utf8ToBytes_;\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\n// export const bytesToUtf8: typeof bytesToUtf8_ = bytesToUtf8_;\n\n// Is positive bigint\nconst isPosBig = (n: bigint) => typeof n === 'bigint' && _0n <= n;\n\nexport function inRange(n: bigint, min: bigint, max: bigint): boolean {\n  return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nexport function aInRange(title: string, n: bigint, min: bigint, max: bigint): void {\n  // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n  // consider P=256n, min=0n, max=P\n  // - a for min=0 would require -1:          `inRange('x', x, -1n, P)`\n  // - b would commonly require subtraction:  `inRange('x', x, 0n, P - 1n)`\n  // - our way is the cleanest:               `inRange('x', x, 0n, P)\n  if (!inRange(n, min, max))\n    throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nexport function bitLen(n: bigint): number {\n  let len;\n  for (len = 0; n > _0n; n >>= _1n, len += 1);\n  return len;\n}\n\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nexport function bitGet(n: bigint, pos: number): bigint {\n  return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean): bigint {\n  return n | ((value ? _1n : _0n) << BigInt(pos));\n}\n\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nexport const bitMask = (n: number): bigint => (_1n << BigInt(n)) - _1n;\n\n// DRBG\n\ntype Pred<T> = (v: Uint8Array) => T | undefined;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n *   const drbg = createHmacDRBG<Key>(32, 32, hmac);\n *   drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg<T>(\n  hashLen: number,\n  qByteLen: number,\n  hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred<T>) => T {\n  if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n  if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n  if (typeof hmacFn !== 'function') throw new Error('hmacFn must be a function');\n  // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n  const u8n = (len: number) => new Uint8Array(len); // creates Uint8Array\n  const u8of = (byte: number) => Uint8Array.of(byte); // another shortcut\n  let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n  let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n  let i = 0; // Iterations counter, will throw when over 1000\n  const reset = () => {\n    v.fill(1);\n    k.fill(0);\n    i = 0;\n  };\n  const h = (...b: Uint8Array[]) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n  const reseed = (seed = u8n(0)) => {\n    // HMAC-DRBG reseed() function. Steps D-G\n    k = h(u8of(0x00), seed); // k = hmac(k || v || 0x00 || seed)\n    v = h(); // v = hmac(k || v)\n    if (seed.length === 0) return;\n    k = h(u8of(0x01), seed); // k = hmac(k || v || 0x01 || seed)\n    v = h(); // v = hmac(k || v)\n  };\n  const gen = () => {\n    // HMAC-DRBG generate() function\n    if (i++ >= 1000) throw new Error('drbg: tried 1000 values');\n    let len = 0;\n    const out: Uint8Array[] = [];\n    while (len < qByteLen) {\n      v = h();\n      const sl = v.slice();\n      out.push(sl);\n      len += v.length;\n    }\n    return concatBytes_(...out);\n  };\n  const genUntil = (seed: Uint8Array, pred: Pred<T>): T => {\n    reset();\n    reseed(seed); // Steps D-G\n    let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n    while (!(res = pred(gen()))) reseed();\n    reset();\n    return res;\n  };\n  return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n  bigint: (val: any): boolean => typeof val === 'bigint',\n  function: (val: any): boolean => typeof val === 'function',\n  boolean: (val: any): boolean => typeof val === 'boolean',\n  string: (val: any): boolean => typeof val === 'string',\n  stringOrUint8Array: (val: any): boolean => typeof val === 'string' || isBytes_(val),\n  isSafeInteger: (val: any): boolean => Number.isSafeInteger(val),\n  array: (val: any): boolean => Array.isArray(val),\n  field: (val: any, object: any): any => (object as any).Fp.isValid(val),\n  hash: (val: any): boolean => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap<T extends Record<string, any>> = { [K in keyof T]?: Validator };\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\n\nexport function validateObject<T extends Record<string, any>>(\n  object: T,\n  validators: ValMap<T>,\n  optValidators: ValMap<T> = {}\n): T {\n  const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n    const checkVal = validatorFns[type];\n    if (typeof checkVal !== 'function') throw new Error('invalid validator function');\n\n    const val = object[fieldName as keyof typeof object];\n    if (isOptional && val === undefined) return;\n    if (!checkVal(val, object)) {\n      throw new Error(\n        'param ' + String(fieldName) + ' is invalid. Expected ' + type + ', got ' + val\n      );\n    }\n  };\n  for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n  for (const [fieldName, type] of Object.entries(optValidators)) checkField(fieldName, type!, true);\n  return object;\n}\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\nexport function isHash(val: CHash): boolean {\n  return typeof val === 'function' && Number.isSafeInteger(val.outputLen);\n}\nexport function _validateObject(\n  object: Record<string, any>,\n  fields: Record<string, string>,\n  optFields: Record<string, string> = {}\n): void {\n  if (!object || typeof object !== 'object') throw new Error('expected valid options object');\n  type Item = keyof typeof object;\n  function checkField(fieldName: Item, expectedType: string, isOpt: boolean) {\n    const val = object[fieldName];\n    if (isOpt && val === undefined) return;\n    const current = typeof val;\n    if (current !== expectedType || val === null)\n      throw new Error(`param \"${fieldName}\" is invalid: expected ${expectedType}, got ${current}`);\n  }\n  Object.entries(fields).forEach(([k, v]) => checkField(k, v, false));\n  Object.entries(optFields).forEach(([k, v]) => checkField(k, v, true));\n}\n\n/**\n * throws not implemented error\n */\nexport const notImplemented = (): never => {\n  throw new Error('not implemented');\n};\n\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nexport function memoized<T extends object, R, O extends any[]>(\n  fn: (arg: T, ...args: O) => R\n): (arg: T, ...args: O) => R {\n  const map = new WeakMap<T, R>();\n  return (arg: T, ...args: O): R => {\n    const val = map.get(arg);\n    if (val !== undefined) return val;\n    const computed = fn(arg, ...args);\n    map.set(arg, computed);\n    return computed;\n  };\n}\n","/**\n * Utils for modular division and fields.\n * Field over 11 is a finite (Galois) field is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport {\n  _validateObject,\n  anumber,\n  bitMask,\n  bytesToNumberBE,\n  bytesToNumberLE,\n  ensureBytes,\n  numberToBytesBE,\n  numberToBytesLE,\n} from '../utils.ts';\n\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _7n = /* @__PURE__ */ BigInt(7);\n// prettier-ignore\nconst _8n = /* @__PURE__ */ BigInt(8), _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ BigInt(16);\n\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\n  const result = a % b;\n  return result >= _0n ? result : b + result;\n}\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\nexport function pow(num: bigint, power: bigint, modulo: bigint): bigint {\n  return FpPow(Field(modulo), num, power);\n}\n\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n  let res = x;\n  while (power-- > _0n) {\n    res *= res;\n    res %= modulo;\n  }\n  return res;\n}\n\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nexport function invert(number: bigint, modulo: bigint): bigint {\n  if (number === _0n) throw new Error('invert: expected non-zero number');\n  if (modulo <= _0n) throw new Error('invert: expected positive modulus, got ' + modulo);\n  // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n  let a = mod(number, modulo);\n  let b = modulo;\n  // prettier-ignore\n  let x = _0n, y = _1n, u = _1n, v = _0n;\n  while (a !== _0n) {\n    // JIT applies optimization if those two lines follow each other\n    const q = b / a;\n    const r = b % a;\n    const m = x - u * q;\n    const n = y - v * q;\n    // prettier-ignore\n    b = a, a = r, x = u, y = v, u = m, v = n;\n  }\n  const gcd = b;\n  if (gcd !== _1n) throw new Error('invert: does not exist');\n  return mod(x, modulo);\n}\n\nfunction assertIsSquare<T>(Fp: IField<T>, root: T, n: T): void {\n  if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n}\n\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4<T>(Fp: IField<T>, n: T) {\n  const p1div4 = (Fp.ORDER + _1n) / _4n;\n  const root = Fp.pow(n, p1div4);\n  assertIsSquare(Fp, root, n);\n  return root;\n}\n\nfunction sqrt5mod8<T>(Fp: IField<T>, n: T) {\n  const p5div8 = (Fp.ORDER - _5n) / _8n;\n  const n2 = Fp.mul(n, _2n);\n  const v = Fp.pow(n2, p5div8);\n  const nv = Fp.mul(n, v);\n  const i = Fp.mul(Fp.mul(nv, _2n), v);\n  const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n  assertIsSquare(Fp, root, n);\n  return root;\n}\n\n// Based on RFC9380, Kong algorithm\n// prettier-ignore\nfunction sqrt9mod16(P: bigint): <T>(Fp: IField<T>, n: T) => T {\n  const Fp_ = Field(P);\n  const tn = tonelliShanks(P);\n  const c1 = tn(Fp_, Fp_.neg(Fp_.ONE));//  1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n  const c2 = tn(Fp_, c1);              //  2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n  const c3 = tn(Fp_, Fp_.neg(c1));     //  3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n  const c4 = (P + _7n) / _16n;         //  4. c4 = (q + 7) / 16        # Integer arithmetic\n  return <T>(Fp: IField<T>, n: T) => {\n    let tv1 = Fp.pow(n, c4);           //  1. tv1 = x^c4\n    let tv2 = Fp.mul(tv1, c1);         //  2. tv2 = c1 * tv1\n    const tv3 = Fp.mul(tv1, c2);       //  3. tv3 = c2 * tv1\n    const tv4 = Fp.mul(tv1, c3);       //  4. tv4 = c3 * tv1\n    const e1 = Fp.eql(Fp.sqr(tv2), n); //  5.  e1 = (tv2^2) == x\n    const e2 = Fp.eql(Fp.sqr(tv3), n); //  6.  e2 = (tv3^2) == x\n    tv1 = Fp.cmov(tv1, tv2, e1);       //  7. tv1 = CMOV(tv1, tv2, e1)  # Select tv2 if (tv2^2) == x\n    tv2 = Fp.cmov(tv4, tv3, e2);       //  8. tv2 = CMOV(tv4, tv3, e2)  # Select tv3 if (tv3^2) == x\n    const e3 = Fp.eql(Fp.sqr(tv2), n); //  9.  e3 = (tv2^2) == x\n    const root = Fp.cmov(tv1, tv2, e3);// 10.  z = CMOV(tv1, tv2, e3)   # Select sqrt from tv1 & tv2\n    assertIsSquare(Fp, root, n);\n    return root;\n  };\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint): <T>(Fp: IField<T>, n: T) => T {\n  // Initialization (precomputation).\n  // Caching initialization could boost perf by 7%.\n  if (P < _3n) throw new Error('sqrt is not defined for small field');\n  // Factor P - 1 = Q * 2^S, where Q is odd\n  let Q = P - _1n;\n  let S = 0;\n  while (Q % _2n === _0n) {\n    Q /= _2n;\n    S++;\n  }\n\n  // Find the first quadratic non-residue Z >= 2\n  let Z = _2n;\n  const _Fp = Field(P);\n  while (FpLegendre(_Fp, Z) === 1) {\n    // Basic primality test for P. After x iterations, chance of\n    // not finding quadratic non-residue is 2^x, so 2^1000.\n    if (Z++ > 1000) throw new Error('Cannot find square root: probably non-prime P');\n  }\n  // Fast-path; usually done before Z, but we do \"primality test\".\n  if (S === 1) return sqrt3mod4;\n\n  // Slow-path\n  // TODO: test on Fp2 and others\n  let cc = _Fp.pow(Z, Q); // c = z^Q\n  const Q1div2 = (Q + _1n) / _2n;\n  return function tonelliSlow<T>(Fp: IField<T>, n: T): T {\n    if (Fp.is0(n)) return n;\n    // Check if n is a quadratic residue using Legendre symbol\n    if (FpLegendre(Fp, n) !== 1) throw new Error('Cannot find square root');\n\n    // Initialize variables for the main loop\n    let M = S;\n    let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n    let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n    let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n\n    // Main loop\n    // while t != 1\n    while (!Fp.eql(t, Fp.ONE)) {\n      if (Fp.is0(t)) return Fp.ZERO; // if t=0 return R=0\n      let i = 1;\n\n      // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P)\n      let t_tmp = Fp.sqr(t); // t^(2^1)\n      while (!Fp.eql(t_tmp, Fp.ONE)) {\n        i++;\n        t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n        if (i === M) throw new Error('Cannot find square root');\n      }\n\n      // Calculate the exponent for b: 2^(M - i - 1)\n      const exponent = _1n << BigInt(M - i - 1); // bigint is important\n      const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n\n      // Update variables\n      M = i;\n      c = Fp.sqr(b); // c = b^2\n      t = Fp.mul(t, c); // t = (t * b^2)\n      R = Fp.mul(R, b); // R = R*b\n    }\n    return R;\n  };\n}\n\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P ≡ 3 (mod 4)\n * 2. P ≡ 5 (mod 8)\n * 3. P ≡ 9 (mod 16)\n * 4. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nexport function FpSqrt(P: bigint): <T>(Fp: IField<T>, n: T) => T {\n  // P ≡ 3 (mod 4) => √n = n^((P+1)/4)\n  if (P % _4n === _3n) return sqrt3mod4;\n  // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n  if (P % _8n === _5n) return sqrt5mod8;\n  // P ≡ 9 (mod 16) => Kong algorithm, page 11 of https://eprint.iacr.org/2012/685.pdf (algorithm 4)\n  if (P % _16n === _9n) return sqrt9mod16(P);\n  // Tonelli-Shanks algorithm\n  return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint): boolean =>\n  (mod(num, modulo) & _1n) === _1n;\n\n/** Field is not always over prime: for example, Fp2 has ORDER(q)=p^m. */\nexport interface IField<T> {\n  ORDER: bigint;\n  isLE: boolean;\n  BYTES: number;\n  BITS: number;\n  MASK: bigint;\n  ZERO: T;\n  ONE: T;\n  // 1-arg\n  create: (num: T) => T;\n  isValid: (num: T) => boolean;\n  is0: (num: T) => boolean;\n  isValidNot0: (num: T) => boolean;\n  neg(num: T): T;\n  inv(num: T): T;\n  sqrt(num: T): T;\n  sqr(num: T): T;\n  // 2-args\n  eql(lhs: T, rhs: T): boolean;\n  add(lhs: T, rhs: T): T;\n  sub(lhs: T, rhs: T): T;\n  mul(lhs: T, rhs: T | bigint): T;\n  pow(lhs: T, power: bigint): T;\n  div(lhs: T, rhs: T | bigint): T;\n  // N for NonNormalized (for now)\n  addN(lhs: T, rhs: T): T;\n  subN(lhs: T, rhs: T): T;\n  mulN(lhs: T, rhs: T | bigint): T;\n  sqrN(num: T): T;\n\n  // Optional\n  // Should be same as sgn0 function in\n  // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n  // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n  isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n  allowedLengths?: number[];\n  // legendre?(num: T): T;\n  invertBatch: (lst: T[]) => T[];\n  toBytes(num: T): Uint8Array;\n  fromBytes(bytes: Uint8Array, skipValidation?: boolean): T;\n  // If c is False, CMOV returns a, otherwise it returns b.\n  cmov(a: T, b: T, c: boolean): T;\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n  'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n  'eql', 'add', 'sub', 'mul', 'pow', 'div',\n  'addN', 'subN', 'mulN', 'sqrN'\n] as const;\nexport function validateField<T>(field: IField<T>): IField<T> {\n  const initial = {\n    ORDER: 'bigint',\n    MASK: 'bigint',\n    BYTES: 'number',\n    BITS: 'number',\n  } as Record<string, string>;\n  const opts = FIELD_FIELDS.reduce((map, val: string) => {\n    map[val] = 'function';\n    return map;\n  }, initial);\n  _validateObject(field, opts);\n  // const max = 16384;\n  // if (field.BYTES < 1 || field.BYTES > max) throw new Error('invalid field');\n  // if (field.BITS < 1 || field.BITS > 8 * max) throw new Error('invalid field');\n  return field;\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow<T>(Fp: IField<T>, num: T, power: bigint): T {\n  if (power < _0n) throw new Error('invalid exponent, negatives unsupported');\n  if (power === _0n) return Fp.ONE;\n  if (power === _1n) return num;\n  let p = Fp.ONE;\n  let d = num;\n  while (power > _0n) {\n    if (power & _1n) p = Fp.mul(p, d);\n    d = Fp.sqr(d);\n    power >>= _1n;\n  }\n  return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nexport function FpInvertBatch<T>(Fp: IField<T>, nums: T[], passZero = false): T[] {\n  const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n  // Walk from first to last, multiply them by each other MOD p\n  const multipliedAcc = nums.reduce((acc, num, i) => {\n    if (Fp.is0(num)) return acc;\n    inverted[i] = acc;\n    return Fp.mul(acc, num);\n  }, Fp.ONE);\n  // Invert last element\n  const invertedAcc = Fp.inv(multipliedAcc);\n  // Walk from last to first, multiply them by inverted each other MOD p\n  nums.reduceRight((acc, num, i) => {\n    if (Fp.is0(num)) return acc;\n    inverted[i] = Fp.mul(acc, inverted[i]);\n    return Fp.mul(acc, num);\n  }, invertedAcc);\n  return inverted;\n}\n\n// TODO: remove\nexport function FpDiv<T>(Fp: IField<T>, lhs: T, rhs: T | bigint): T {\n  return Fp.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, Fp.ORDER) : Fp.inv(rhs));\n}\n\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) ≡ 1    if a is a square (mod p), quadratic residue\n * * (a | p) ≡ -1   if a is not a square (mod p), quadratic non residue\n * * (a | p) ≡ 0    if a ≡ 0 (mod p)\n */\nexport function FpLegendre<T>(Fp: IField<T>, n: T): -1 | 0 | 1 {\n  // We can use 3rd argument as optional cache of this value\n  // but seems unneeded for now. The operation is very fast.\n  const p1mod2 = (Fp.ORDER - _1n) / _2n;\n  const powered = Fp.pow(n, p1mod2);\n  const yes = Fp.eql(powered, Fp.ONE);\n  const zero = Fp.eql(powered, Fp.ZERO);\n  const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n  if (!yes && !zero && !no) throw new Error('invalid Legendre symbol result');\n  return yes ? 1 : zero ? 0 : -1;\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare<T>(Fp: IField<T>, n: T): boolean {\n  const l = FpLegendre(Fp, n);\n  return l === 1;\n}\n\nexport type NLength = { nByteLength: number; nBitLength: number };\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number): NLength {\n  // Bit size, byte size of CURVE.n\n  if (nBitLength !== undefined) anumber(nBitLength);\n  const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n  const nByteLength = Math.ceil(_nBitLength / 8);\n  return { nBitLength: _nBitLength, nByteLength };\n}\n\ntype FpField = IField<bigint> & Required<Pick<IField<bigint>, 'isOdd'>>;\ntype SqrtFn = (n: bigint) => bigint;\ntype FieldOpts = Partial<{\n  sqrt: SqrtFn;\n  isLE: boolean;\n  BITS: number;\n  modFromBytes: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n  allowedLengths?: readonly number[]; // for P521 (adds padding for smaller sizes)\n}>;\n/**\n * Creates a finite field. Major performance optimizations:\n * * 1. Denormalized operations like mulN instead of mul.\n * * 2. Identical object shape: never add or remove keys.\n * * 3. `Object.freeze`.\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n *\n * Note about field properties:\n * * CHARACTERISTIC p = prime number, number of elements in main subgroup.\n * * ORDER q = similar to cofactor in curves, may be composite `q = p^m`.\n *\n * @param ORDER field order, probably prime, or could be composite\n * @param bitLen how many bits the field consumes\n * @param isLE (default: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nexport function Field(\n  ORDER: bigint,\n  bitLenOrOpts?: number | FieldOpts, // TODO: use opts only in v2?\n  isLE = false,\n  opts: { sqrt?: SqrtFn } = {}\n): Readonly<FpField> {\n  if (ORDER <= _0n) throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n  let _nbitLength: number | undefined = undefined;\n  let _sqrt: SqrtFn | undefined = undefined;\n  let modFromBytes: boolean = false;\n  let allowedLengths: undefined | readonly number[] = undefined;\n  if (typeof bitLenOrOpts === 'object' && bitLenOrOpts != null) {\n    if (opts.sqrt || isLE) throw new Error('cannot specify opts in two arguments');\n    const _opts = bitLenOrOpts;\n    if (_opts.BITS) _nbitLength = _opts.BITS;\n    if (_opts.sqrt) _sqrt = _opts.sqrt;\n    if (typeof _opts.isLE === 'boolean') isLE = _opts.isLE;\n    if (typeof _opts.modFromBytes === 'boolean') modFromBytes = _opts.modFromBytes;\n    allowedLengths = _opts.allowedLengths;\n  } else {\n    if (typeof bitLenOrOpts === 'number') _nbitLength = bitLenOrOpts;\n    if (opts.sqrt) _sqrt = opts.sqrt;\n  }\n  const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, _nbitLength);\n  if (BYTES > 2048) throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n  let sqrtP: ReturnType<typeof FpSqrt>; // cached sqrtP\n  const f: Readonly<FpField> = Object.freeze({\n    ORDER,\n    isLE,\n    BITS,\n    BYTES,\n    MASK: bitMask(BITS),\n    ZERO: _0n,\n    ONE: _1n,\n    allowedLengths: allowedLengths,\n    create: (num) => mod(num, ORDER),\n    isValid: (num) => {\n      if (typeof num !== 'bigint')\n        throw new Error('invalid field element: expected bigint, got ' + typeof num);\n      return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n    },\n    is0: (num) => num === _0n,\n    // is valid and invertible\n    isValidNot0: (num: bigint) => !f.is0(num) && f.isValid(num),\n    isOdd: (num) => (num & _1n) === _1n,\n    neg: (num) => mod(-num, ORDER),\n    eql: (lhs, rhs) => lhs === rhs,\n\n    sqr: (num) => mod(num * num, ORDER),\n    add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n    sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n    mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n    pow: (num, power) => FpPow(f, num, power),\n    div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n\n    // Same as above, but doesn't normalize\n    sqrN: (num) => num * num,\n    addN: (lhs, rhs) => lhs + rhs,\n    subN: (lhs, rhs) => lhs - rhs,\n    mulN: (lhs, rhs) => lhs * rhs,\n\n    inv: (num) => invert(num, ORDER),\n    sqrt:\n      _sqrt ||\n      ((n) => {\n        if (!sqrtP) sqrtP = FpSqrt(ORDER);\n        return sqrtP(f, n);\n      }),\n    toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n    fromBytes: (bytes, skipValidation = true) => {\n      if (allowedLengths) {\n        if (!allowedLengths.includes(bytes.length) || bytes.length > BYTES) {\n          throw new Error(\n            'Field.fromBytes: expected ' + allowedLengths + ' bytes, got ' + bytes.length\n          );\n        }\n        const padded = new Uint8Array(BYTES);\n        // isLE add 0 to right, !isLE to the left.\n        padded.set(bytes, isLE ? 0 : padded.length - bytes.length);\n        bytes = padded;\n      }\n      if (bytes.length !== BYTES)\n        throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n      let scalar = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n      if (modFromBytes) scalar = mod(scalar, ORDER);\n      if (!skipValidation)\n        if (!f.isValid(scalar)) throw new Error('invalid field element: outside of range 0..ORDER');\n      // NOTE: we don't validate scalar here, please use isValid. This done such way because some\n      // protocol may allow non-reduced scalar that reduced later or changed some other way.\n      return scalar;\n    },\n    // TODO: we don't need it here, move out to separate fn\n    invertBatch: (lst) => FpInvertBatch(f, lst),\n    // We can't move this out because Fp6, Fp12 implement it\n    // and it's unclear what to return in there.\n    cmov: (a, b, c) => (c ? b : a),\n  } as FpField);\n  return Object.freeze(f);\n}\n\n// Generic random scalar, we can do same for other fields if via Fp2.mul(Fp2.ONE, Fp2.random)?\n// This allows unsafe methods like ignore bias or zero. These unsafe, but often used in different protocols (if deterministic RNG).\n// which mean we cannot force this via opts.\n// Not sure what to do with randomBytes, we can accept it inside opts if wanted.\n// Probably need to export getMinHashLength somewhere?\n// random(bytes?: Uint8Array, unsafeAllowZero = false, unsafeAllowBias = false) {\n//   const LEN = !unsafeAllowBias ? getMinHashLength(ORDER) : BYTES;\n//   if (bytes === undefined) bytes = randomBytes(LEN); // _opts.randomBytes?\n//   const num = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n//   // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n//   const reduced = unsafeAllowZero ? mod(num, ORDER) : mod(num, ORDER - _1n) + _1n;\n//   return reduced;\n// },\n\nexport function FpSqrtOdd<T>(Fp: IField<T>, elm: T): T {\n  if (!Fp.isOdd) throw new Error(\"Field doesn't have isOdd\");\n  const root = Fp.sqrt(elm);\n  return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven<T>(Fp: IField<T>, elm: T): T {\n  if (!Fp.isOdd) throw new Error(\"Field doesn't have isOdd\");\n  const root = Fp.sqrt(elm);\n  return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use `mapKeyToField` instead\n */\nexport function hashToPrivateScalar(\n  hash: string | Uint8Array,\n  groupOrder: bigint,\n  isLE = false\n): bigint {\n  hash = ensureBytes('privateHash', hash);\n  const hashLen = hash.length;\n  const minLen = nLength(groupOrder).nByteLength + 8;\n  if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n    throw new Error(\n      'hashToPrivateScalar: expected ' + minLen + '-1024 bytes of input, got ' + hashLen\n    );\n  const num = isLE ? bytesToNumberLE(hash) : bytesToNumberBE(hash);\n  return mod(num, groupOrder - _1n) + _1n;\n}\n\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n  if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n  const bitLength = fieldOrder.toString(2).length;\n  return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n  const length = getFieldBytesLength(fieldOrder);\n  return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n  const len = key.length;\n  const fieldLen = getFieldBytesLength(fieldOrder);\n  const minLen = getMinHashLength(fieldOrder);\n  // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n  if (len < 16 || len < minLen || len > 1024)\n    throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n  const num = isLE ? bytesToNumberLE(key) : bytesToNumberBE(key);\n  // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n  const reduced = mod(num, fieldOrder - _1n) + _1n;\n  return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { bitLen, bitMask, validateObject } from '../utils.ts';\nimport { Field, FpInvertBatch, nLength, validateField, type IField } from './modular.ts';\n\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint<T> = {\n  x: T;\n  y: T;\n} & { Z?: never };\n\n// This was initialy do this way to re-use montgomery ladder in field (add->mul,double->sqr), but\n// that didn't happen and there is probably not much reason to have separate Group like this?\nexport interface Group<T extends Group<T>> {\n  double(): T;\n  negate(): T;\n  add(other: T): T;\n  subtract(other: T): T;\n  equals(other: T): boolean;\n  multiply(scalar: bigint): T;\n  toAffine?(invertedZ?: any): AffinePoint<any>;\n}\n\n// We can't \"abstract out\" coordinates (X, Y, Z; and T in Edwards): argument names of constructor\n// are not accessible. See Typescript gh-56093, gh-41594.\n//\n// We have to use recursive types, so it will return actual point, not constained `CurvePoint`.\n// If, at any point, P is `any`, it will erase all types and replace it\n// with `any`, because of recursion, `any implements CurvePoint`,\n// but we lose all constrains on methods.\n\n/** Base interface for all elliptic curve Points. */\nexport interface CurvePoint<F, P extends CurvePoint<F, P>> extends Group<P> {\n  /** Affine x coordinate. Different from projective / extended X coordinate. */\n  x: F;\n  /** Affine y coordinate. Different from projective / extended Y coordinate. */\n  y: F;\n  Z?: F;\n  double(): P;\n  negate(): P;\n  add(other: P): P;\n  subtract(other: P): P;\n  equals(other: P): boolean;\n  multiply(scalar: bigint): P;\n  assertValidity(): void;\n  clearCofactor(): P;\n  is0(): boolean;\n  isTorsionFree(): boolean;\n  isSmallOrder(): boolean;\n  multiplyUnsafe(scalar: bigint): P;\n  /**\n   * Massively speeds up `p.multiply(n)` by using precompute tables (caching). See {@link wNAF}.\n   * @param isLazy calculate cache now. Default (true) ensures it's deferred to first `multiply()`\n   */\n  precompute(windowSize?: number, isLazy?: boolean): P;\n  /** Converts point to 2D xy affine coordinates */\n  toAffine(invertedZ?: F): AffinePoint<F>;\n  toBytes(): Uint8Array;\n  toHex(): string;\n}\n\n/** Base interface for all elliptic curve Point constructors. */\nexport interface CurvePointCons<P extends CurvePoint<any, P>> {\n  [Symbol.hasInstance]: (item: unknown) => boolean;\n  BASE: P;\n  ZERO: P;\n  /** Field for basic curve math */\n  Fp: IField<P_F<P>>;\n  /** Scalar field, for scalars in multiply and others */\n  Fn: IField<bigint>;\n  /** Creates point from x, y. Does NOT validate if the point is valid. Use `.assertValidity()`. */\n  fromAffine(p: AffinePoint<P_F<P>>): P;\n  fromBytes(bytes: Uint8Array): P;\n  fromHex(hex: Uint8Array | string): P;\n}\n\n// Type inference helpers: PC - PointConstructor, P - Point, Fp - Field element\n// Short names, because we use them a lot in result types:\n// * we can't do 'P = GetCurvePoint<PC>': this is default value and doesn't constrain anything\n// * we can't do 'type X = GetCurvePoint<PC>': it won't be accesible for arguments/return types\n// * `CurvePointCons<P extends CurvePoint<any, P>>` constraints from interface definition\n//   won't propagate, if `PC extends CurvePointCons<any>`: the P would be 'any', which is incorrect\n// * PC could be super specific with super specific P, which implements CurvePoint<any, P>.\n//   this means we need to do stuff like\n//   `function test<P extends CurvePoint<any, P>, PC extends CurvePointCons<P>>(`\n//   if we want type safety around P, otherwise PC_P<PC> will be any\n\n/** Returns Fp type from Point (P_F<P> == P.F) */\nexport type P_F<P extends CurvePoint<any, P>> = P extends CurvePoint<infer F, P> ? F : never;\n/** Returns Fp type from PointCons (PC_F<PC> == PC.P.F) */\nexport type PC_F<PC extends CurvePointCons<CurvePoint<any, any>>> = PC['Fp']['ZERO'];\n/** Returns Point type from PointCons (PC_P<PC> == PC.P) */\nexport type PC_P<PC extends CurvePointCons<CurvePoint<any, any>>> = PC['ZERO'];\n\n// Ugly hack to get proper type inference, because in typescript fails to infer resursively.\n// The hack allows to do up to 10 chained operations without applying type erasure.\n//\n// Types which won't work:\n// * `CurvePointCons<CurvePoint<any, any>>`, will return `any` after 1 operation\n// * `CurvePointCons<any>: WeierstrassPointCons<bigint> extends CurvePointCons<any> = false`\n// * `P extends CurvePoint, PC extends CurvePointCons<P>`\n//     * It can't infer P from PC alone\n//     * Too many relations between F, P & PC\n//     * It will infer P/F if `arg: CurvePointCons<F, P>`, but will fail if PC is generic\n//     * It will work correctly if there is an additional argument of type P\n//     * But generally, we don't want to parametrize `CurvePointCons` over `F`: it will complicate\n//       types, making them un-inferable\n// prettier-ignore\nexport type PC_ANY = CurvePointCons<\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any,\n  CurvePoint<any, any>\n  >>>>>>>>>\n>;\n\nexport interface CurveLengths {\n  secretKey?: number;\n  publicKey?: number;\n  publicKeyUncompressed?: number;\n  publicKeyHasPrefix?: boolean;\n  signature?: number;\n  seed?: number;\n}\nexport type GroupConstructor<T> = {\n  BASE: T;\n  ZERO: T;\n};\n/** @deprecated */\nexport type ExtendedGroupConstructor<T> = GroupConstructor<T> & {\n  Fp: IField<any>;\n  Fn: IField<bigint>;\n  fromAffine(ap: AffinePoint<any>): T;\n};\nexport type Mapper<T> = (i: T[]) => T[];\n\nexport function negateCt<T extends { negate: () => T }>(condition: boolean, item: T): T {\n  const neg = item.negate();\n  return condition ? neg : item;\n}\n\n/**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\nexport function normalizeZ<P extends CurvePoint<any, P>, PC extends CurvePointCons<P>>(\n  c: PC,\n  points: P[]\n): P[] {\n  const invertedZs = FpInvertBatch(\n    c.Fp,\n    points.map((p) => p.Z!)\n  );\n  return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i])));\n}\n\nfunction validateW(W: number, bits: number) {\n  if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n    throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\n\n/** Internal wNAF opts for specific W and scalarBits */\nexport type WOpts = {\n  windows: number;\n  windowSize: number;\n  mask: bigint;\n  maxNumber: number;\n  shiftBy: bigint;\n};\n\nfunction calcWOpts(W: number, scalarBits: number): WOpts {\n  validateW(W, scalarBits);\n  const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n  const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n  const maxNumber = 2 ** W; // W=8 256\n  const mask = bitMask(W); // W=8 255 == mask 0b11111111\n  const shiftBy = BigInt(W); // W=8 8\n  return { windows, windowSize, mask, maxNumber, shiftBy };\n}\n\nfunction calcOffsets(n: bigint, window: number, wOpts: WOpts) {\n  const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n  let wbits = Number(n & mask); // extract W bits.\n  let nextN = n >> shiftBy; // shift number by W bits.\n\n  // What actually happens here:\n  // const highestBit = Number(mask ^ (mask >> 1n));\n  // let wbits2 = wbits - 1; // skip zero\n  // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n\n  // split if bits > max: +224 => 256-32\n  if (wbits > windowSize) {\n    // we skip zero, which means instead of `>= size-1`, we do `> size`\n    wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n    nextN += _1n; // +256 (carry)\n  }\n  const offsetStart = window * windowSize;\n  const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n  const isZero = wbits === 0; // is current window slice a 0?\n  const isNeg = wbits < 0; // is current window slice negative?\n  const isNegF = window % 2 !== 0; // fake random statement for noise\n  const offsetF = offsetStart; // fake offset for noise\n  return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\n\nfunction validateMSMPoints(points: any[], c: any) {\n  if (!Array.isArray(points)) throw new Error('array expected');\n  points.forEach((p, i) => {\n    if (!(p instanceof c)) throw new Error('invalid point at index ' + i);\n  });\n}\nfunction validateMSMScalars(scalars: any[], field: any) {\n  if (!Array.isArray(scalars)) throw new Error('array of scalars expected');\n  scalars.forEach((s, i) => {\n    if (!field.isValid(s)) throw new Error('invalid scalar at index ' + i);\n  });\n}\n\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap<any, any[]>();\nconst pointWindowSizes = new WeakMap<any, number>();\n\nfunction getW(P: any): number {\n  // To disable precomputes:\n  // return 1;\n  return pointWindowSizes.get(P) || 1;\n}\n\nfunction assert0(n: bigint): void {\n  if (n !== _0n) throw new Error('invalid wNAF');\n}\n\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Table generation takes **30MB of ram and 10ms on high-end CPU**,\n * but may take much longer on slow devices. Actual generation will happen on\n * first call of `multiply()`. By default, `BASE` point is precomputed.\n *\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nexport class wNAF<PC extends PC_ANY> {\n  private readonly BASE: PC_P<PC>;\n  private readonly ZERO: PC_P<PC>;\n  private readonly Fn: PC['Fn'];\n  readonly bits: number;\n\n  // Parametrized with a given Point class (not individual point)\n  constructor(Point: PC, bits: number) {\n    this.BASE = Point.BASE;\n    this.ZERO = Point.ZERO;\n    this.Fn = Point.Fn;\n    this.bits = bits;\n  }\n\n  // non-const time multiplication ladder\n  _unsafeLadder(elm: PC_P<PC>, n: bigint, p: PC_P<PC> = this.ZERO): PC_P<PC> {\n    let d: PC_P<PC> = elm;\n    while (n > _0n) {\n      if (n & _1n) p = p.add(d);\n      d = d.double();\n      n >>= _1n;\n    }\n    return p;\n  }\n\n  /**\n   * Creates a wNAF precomputation window. Used for caching.\n   * Default window size is set by `utils.precompute()` and is equal to 8.\n   * Number of precomputed points depends on the curve size:\n   * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n   * - 𝑊 is the window size\n   * - 𝑛 is the bitlength of the curve order.\n   * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n   * @param point Point instance\n   * @param W window size\n   * @returns precomputed point tables flattened to a single array\n   */\n  private precomputeWindow(point: PC_P<PC>, W: number): PC_P<PC>[] {\n    const { windows, windowSize } = calcWOpts(W, this.bits);\n    const points: PC_P<PC>[] = [];\n    let p: PC_P<PC> = point;\n    let base = p;\n    for (let window = 0; window < windows; window++) {\n      base = p;\n      points.push(base);\n      // i=1, bc we skip 0\n      for (let i = 1; i < windowSize; i++) {\n        base = base.add(p);\n        points.push(base);\n      }\n      p = base.double();\n    }\n    return points;\n  }\n\n  /**\n   * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n   * More compact implementation:\n   * https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n   * @returns real and fake (for const-time) points\n   */\n  private wNAF(W: number, precomputes: PC_P<PC>[], n: bigint): { p: PC_P<PC>; f: PC_P<PC> } {\n    // Scalar should be smaller than field order\n    if (!this.Fn.isValid(n)) throw new Error('invalid scalar');\n    // Accumulators\n    let p = this.ZERO;\n    let f = this.BASE;\n    // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n    // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n    // there is negate now: it is possible that negated element from low value\n    // would be the same as high element, which will create carry into next window.\n    // It's not obvious how this can fail, but still worth investigating later.\n    const wo = calcWOpts(W, this.bits);\n    for (let window = 0; window < wo.windows; window++) {\n      // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n      const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n      n = nextN;\n      if (isZero) {\n        // bits are 0: add garbage to fake point\n        // Important part for const-time getPublicKey: add random \"noise\" point to f.\n        f = f.add(negateCt(isNegF, precomputes[offsetF]));\n      } else {\n        // bits are 1: add to result point\n        p = p.add(negateCt(isNeg, precomputes[offset]));\n      }\n    }\n    assert0(n);\n    // Return both real and fake points: JIT won't eliminate f.\n    // At this point there is a way to F be infinity-point even if p is not,\n    // which makes it less const-time: around 1 bigint multiply.\n    return { p, f };\n  }\n\n  /**\n   * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n   * @param acc accumulator point to add result of multiplication\n   * @returns point\n   */\n  private wNAFUnsafe(\n    W: number,\n    precomputes: PC_P<PC>[],\n    n: bigint,\n    acc: PC_P<PC> = this.ZERO\n  ): PC_P<PC> {\n    const wo = calcWOpts(W, this.bits);\n    for (let window = 0; window < wo.windows; window++) {\n      if (n === _0n) break; // Early-exit, skip 0 value\n      const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n      n = nextN;\n      if (isZero) {\n        // Window bits are 0: skip processing.\n        // Move to next window.\n        continue;\n      } else {\n        const item = precomputes[offset];\n        acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n      }\n    }\n    assert0(n);\n    return acc;\n  }\n\n  private getPrecomputes(W: number, point: PC_P<PC>, transform?: Mapper<PC_P<PC>>): PC_P<PC>[] {\n    // Calculate precomputes on a first run, reuse them after\n    let comp = pointPrecomputes.get(point);\n    if (!comp) {\n      comp = this.precomputeWindow(point, W) as PC_P<PC>[];\n      if (W !== 1) {\n        // Doing transform outside of if brings 15% perf hit\n        if (typeof transform === 'function') comp = transform(comp);\n        pointPrecomputes.set(point, comp);\n      }\n    }\n    return comp;\n  }\n\n  cached(\n    point: PC_P<PC>,\n    scalar: bigint,\n    transform?: Mapper<PC_P<PC>>\n  ): { p: PC_P<PC>; f: PC_P<PC> } {\n    const W = getW(point);\n    return this.wNAF(W, this.getPrecomputes(W, point, transform), scalar);\n  }\n\n  unsafe(point: PC_P<PC>, scalar: bigint, transform?: Mapper<PC_P<PC>>, prev?: PC_P<PC>): PC_P<PC> {\n    const W = getW(point);\n    if (W === 1) return this._unsafeLadder(point, scalar, prev); // For W=1 ladder is ~x2 faster\n    return this.wNAFUnsafe(W, this.getPrecomputes(W, point, transform), scalar, prev);\n  }\n\n  // We calculate precomputes for elliptic curve point multiplication\n  // using windowed method. This specifies window size and\n  // stores precomputed values. Usually only base point would be precomputed.\n  createCache(P: PC_P<PC>, W: number): void {\n    validateW(W, this.bits);\n    pointWindowSizes.set(P, W);\n    pointPrecomputes.delete(P);\n  }\n\n  hasCache(elm: PC_P<PC>): boolean {\n    return getW(elm) !== 1;\n  }\n}\n\n/**\n * Endomorphism-specific multiplication for Koblitz curves.\n * Cost: 128 dbl, 0-256 adds.\n */\nexport function mulEndoUnsafe<P extends CurvePoint<any, P>, PC extends CurvePointCons<P>>(\n  Point: PC,\n  point: P,\n  k1: bigint,\n  k2: bigint\n): { p1: P; p2: P } {\n  let acc = point;\n  let p1 = Point.ZERO;\n  let p2 = Point.ZERO;\n  while (k1 > _0n || k2 > _0n) {\n    if (k1 & _1n) p1 = p1.add(acc);\n    if (k2 & _1n) p2 = p2.add(acc);\n    acc = acc.double();\n    k1 >>= _1n;\n    k2 >>= _1n;\n  }\n  return { p1, p2 };\n}\n\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka secret keys / bigints)\n */\nexport function pippenger<P extends CurvePoint<any, P>, PC extends CurvePointCons<P>>(\n  c: PC,\n  fieldN: IField<bigint>,\n  points: P[],\n  scalars: bigint[]\n): P {\n  // If we split scalars by some window (let's say 8 bits), every chunk will only\n  // take 256 buckets even if there are 4096 scalars, also re-uses double.\n  // TODO:\n  // - https://eprint.iacr.org/2024/750.pdf\n  // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n  // 0 is accepted in scalars\n  validateMSMPoints(points, c);\n  validateMSMScalars(scalars, fieldN);\n  const plength = points.length;\n  const slength = scalars.length;\n  if (plength !== slength) throw new Error('arrays of points and scalars must have equal length');\n  // if (plength === 0) throw new Error('array must be of length >= 2');\n  const zero = c.ZERO;\n  const wbits = bitLen(BigInt(plength));\n  let windowSize = 1; // bits\n  if (wbits > 12) windowSize = wbits - 3;\n  else if (wbits > 4) windowSize = wbits - 2;\n  else if (wbits > 0) windowSize = 2;\n  const MASK = bitMask(windowSize);\n  const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n  const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n  let sum = zero;\n  for (let i = lastBits; i >= 0; i -= windowSize) {\n    buckets.fill(zero);\n    for (let j = 0; j < slength; j++) {\n      const scalar = scalars[j];\n      const wbits = Number((scalar >> BigInt(i)) & MASK);\n      buckets[wbits] = buckets[wbits].add(points[j]);\n    }\n    let resI = zero; // not using this will do small speed-up, but will lose ct\n    // Skip first bucket, because it is zero\n    for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n      sumI = sumI.add(buckets[j]);\n      resI = resI.add(sumI);\n    }\n    sum = sum.add(resI);\n    if (i !== 0) for (let j = 0; j < windowSize; j++) sum = sum.double();\n  }\n  return sum as P;\n}\n/**\n * Precomputed multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @returns function which multiplies points with scaars\n */\nexport function precomputeMSMUnsafe<P extends CurvePoint<any, P>, PC extends CurvePointCons<P>>(\n  c: PC,\n  fieldN: IField<bigint>,\n  points: P[],\n  windowSize: number\n): (scalars: bigint[]) => P {\n  /**\n   * Performance Analysis of Window-based Precomputation\n   *\n   * Base Case (256-bit scalar, 8-bit window):\n   * - Standard precomputation requires:\n   *   - 31 additions per scalar × 256 scalars = 7,936 ops\n   *   - Plus 255 summary additions = 8,191 total ops\n   *   Note: Summary additions can be optimized via accumulator\n   *\n   * Chunked Precomputation Analysis:\n   * - Using 32 chunks requires:\n   *   - 255 additions per chunk\n   *   - 256 doublings\n   *   - Total: (255 × 32) + 256 = 8,416 ops\n   *\n   * Memory Usage Comparison:\n   * Window Size | Standard Points | Chunked Points\n   * ------------|-----------------|---------------\n   *     4-bit   |     520         |      15\n   *     8-bit   |    4,224        |     255\n   *    10-bit   |   13,824        |   1,023\n   *    16-bit   |  557,056        |  65,535\n   *\n   * Key Advantages:\n   * 1. Enables larger window sizes due to reduced memory overhead\n   * 2. More efficient for smaller scalar counts:\n   *    - 16 chunks: (16 × 255) + 256 = 4,336 ops\n   *    - ~2x faster than standard 8,191 ops\n   *\n   * Limitations:\n   * - Not suitable for plain precomputes (requires 256 constant doublings)\n   * - Performance degrades with larger scalar counts:\n   *   - Optimal for ~256 scalars\n   *   - Less efficient for 4096+ scalars (Pippenger preferred)\n   */\n  validateW(windowSize, fieldN.BITS);\n  validateMSMPoints(points, c);\n  const zero = c.ZERO;\n  const tableSize = 2 ** windowSize - 1; // table size (without zero)\n  const chunks = Math.ceil(fieldN.BITS / windowSize); // chunks of item\n  const MASK = bitMask(windowSize);\n  const tables = points.map((p: P) => {\n    const res = [];\n    for (let i = 0, acc = p; i < tableSize; i++) {\n      res.push(acc);\n      acc = acc.add(p);\n    }\n    return res;\n  });\n  return (scalars: bigint[]): P => {\n    validateMSMScalars(scalars, fieldN);\n    if (scalars.length > points.length)\n      throw new Error('array of scalars must be smaller than array of points');\n    let res = zero;\n    for (let i = 0; i < chunks; i++) {\n      // No need to double if accumulator is still zero.\n      if (res !== zero) for (let j = 0; j < windowSize; j++) res = res.double();\n      const shiftBy = BigInt(chunks * windowSize - (i + 1) * windowSize);\n      for (let j = 0; j < scalars.length; j++) {\n        const n = scalars[j];\n        const curr = Number((n >> shiftBy) & MASK);\n        if (!curr) continue; // skip zero scalars chunks\n        res = res.add(tables[j][curr - 1]);\n      }\n    }\n    return res;\n  };\n}\n\n// TODO: remove\n/**\n * Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n * Though generator can be different (Fp2 / Fp6 for BLS).\n */\nexport type BasicCurve<T> = {\n  Fp: IField<T>; // Field over which we'll do calculations (Fp)\n  n: bigint; // Curve order, total count of valid points in the field\n  nBitLength?: number; // bit length of curve order\n  nByteLength?: number; // byte length of curve order\n  h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n  hEff?: bigint; // Number to multiply to clear cofactor\n  Gx: T; // base point X coordinate\n  Gy: T; // base point Y coordinate\n  allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\n// TODO: remove\n/** @deprecated */\nexport function validateBasic<FP, T>(\n  curve: BasicCurve<FP> & T\n): Readonly<\n  {\n    readonly nBitLength: number;\n    readonly nByteLength: number;\n  } & BasicCurve<FP> &\n    T & {\n      p: bigint;\n    }\n> {\n  validateField(curve.Fp);\n  validateObject(\n    curve,\n    {\n      n: 'bigint',\n      h: 'bigint',\n      Gx: 'field',\n      Gy: 'field',\n    },\n    {\n      nBitLength: 'isSafeInteger',\n      nByteLength: 'isSafeInteger',\n    }\n  );\n  // Set defaults\n  return Object.freeze({\n    ...nLength(curve.n, curve.nBitLength),\n    ...curve,\n    ...{ p: curve.Fp.ORDER },\n  } as const);\n}\n\nexport type ValidCurveParams<T> = {\n  p: bigint;\n  n: bigint;\n  h: bigint;\n  a: T;\n  b?: T;\n  d?: T;\n  Gx: T;\n  Gy: T;\n};\n\nfunction createField<T>(order: bigint, field?: IField<T>, isLE?: boolean): IField<T> {\n  if (field) {\n    if (field.ORDER !== order) throw new Error('Field.ORDER must match order: Fp == p, Fn == n');\n    validateField(field);\n    return field;\n  } else {\n    return Field(order, { isLE }) as unknown as IField<T>;\n  }\n}\nexport type FpFn<T> = { Fp: IField<T>; Fn: IField<bigint> };\n\n/** Validates CURVE opts and creates fields */\nexport function _createCurveFields<T>(\n  type: 'weierstrass' | 'edwards',\n  CURVE: ValidCurveParams<T>,\n  curveOpts: Partial<FpFn<T>> = {},\n  FpFnLE?: boolean\n): FpFn<T> & { CURVE: ValidCurveParams<T> } {\n  if (FpFnLE === undefined) FpFnLE = type === 'edwards';\n  if (!CURVE || typeof CURVE !== 'object') throw new Error(`expected valid ${type} CURVE object`);\n  for (const p of ['p', 'n', 'h'] as const) {\n    const val = CURVE[p];\n    if (!(typeof val === 'bigint' && val > _0n))\n      throw new Error(`CURVE.${p} must be positive bigint`);\n  }\n  const Fp = createField(CURVE.p, curveOpts.Fp, FpFnLE);\n  const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE);\n  const _b: 'b' | 'd' = type === 'weierstrass' ? 'b' : 'd';\n  const params = ['Gx', 'Gy', 'a', _b] as const;\n  for (const p of params) {\n    // @ts-ignore\n    if (!Fp.isValid(CURVE[p]))\n      throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`);\n  }\n  CURVE = Object.freeze(Object.assign({}, CURVE));\n  return { CURVE, Fp, Fn };\n}\n","/**\n * Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y².\n * For design rationale of types / exports, see weierstrass module documentation.\n * Untwisted Edwards curves exist, but they aren't used in real-world protocols.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport {\n  _validateObject,\n  _abool2 as abool,\n  _abytes2 as abytes,\n  aInRange,\n  bytesToHex,\n  bytesToNumberLE,\n  concatBytes,\n  copyBytes,\n  ensureBytes,\n  isBytes,\n  memoized,\n  notImplemented,\n  randomBytes as randomBytesWeb,\n  type FHash,\n  type Hex,\n} from '../utils.ts';\nimport {\n  _createCurveFields,\n  normalizeZ,\n  pippenger,\n  wNAF,\n  type AffinePoint,\n  type BasicCurve,\n  type CurveLengths,\n  type CurvePoint,\n  type CurvePointCons,\n} from './curve.ts';\nimport { Field, type IField, type NLength } from './modular.ts';\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _8n = BigInt(8);\n\nexport type UVRatio = (u: bigint, v: bigint) => { isValid: boolean; value: bigint };\n\n/** Instance of Extended Point with coordinates in X, Y, Z, T. */\nexport interface EdwardsPoint extends CurvePoint<bigint, EdwardsPoint> {\n  /** extended X coordinate. Different from affine x. */\n  readonly X: bigint;\n  /** extended Y coordinate. Different from affine y. */\n  readonly Y: bigint;\n  /** extended Z coordinate */\n  readonly Z: bigint;\n  /** extended T coordinate */\n  readonly T: bigint;\n\n  /** @deprecated use `toBytes` */\n  toRawBytes(): Uint8Array;\n  /** @deprecated use `p.precompute(windowSize)` */\n  _setWindowSize(windowSize: number): void;\n  /** @deprecated use .X */\n  readonly ex: bigint;\n  /** @deprecated use .Y */\n  readonly ey: bigint;\n  /** @deprecated use .Z */\n  readonly ez: bigint;\n  /** @deprecated use .T */\n  readonly et: bigint;\n}\n/** Static methods of Extended Point with coordinates in X, Y, Z, T. */\nexport interface EdwardsPointCons extends CurvePointCons<EdwardsPoint> {\n  new (X: bigint, Y: bigint, Z: bigint, T: bigint): EdwardsPoint;\n  CURVE(): EdwardsOpts;\n  fromBytes(bytes: Uint8Array, zip215?: boolean): EdwardsPoint;\n  fromHex(hex: Hex, zip215?: boolean): EdwardsPoint;\n  /** @deprecated use `import { pippenger } from '@noble/curves/abstract/curve.js';` */\n  msm(points: EdwardsPoint[], scalars: bigint[]): EdwardsPoint;\n}\n/** @deprecated use EdwardsPoint */\nexport type ExtPointType = EdwardsPoint;\n/** @deprecated use EdwardsPointCons */\nexport type ExtPointConstructor = EdwardsPointCons;\n\n/**\n * Twisted Edwards curve options.\n *\n * * a: formula param\n * * d: formula param\n * * p: prime characteristic (order) of finite field, in which arithmetics is done\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * h: cofactor. h*n is group order; n is subgroup order\n * * Gx: x coordinate of generator point a.k.a. base point\n * * Gy: y coordinate of generator point\n */\nexport type EdwardsOpts = Readonly<{\n  p: bigint;\n  n: bigint;\n  h: bigint;\n  a: bigint;\n  d: bigint;\n  Gx: bigint;\n  Gy: bigint;\n}>;\n\n/**\n * Extra curve options for Twisted Edwards.\n *\n * * Fp: redefined Field over curve.p\n * * Fn: redefined Field over curve.n\n * * uvRatio: helper function for decompression, calculating √(u/v)\n */\nexport type EdwardsExtraOpts = Partial<{\n  Fp: IField<bigint>;\n  Fn: IField<bigint>;\n  FpFnLE: boolean;\n  uvRatio: (u: bigint, v: bigint) => { isValid: boolean; value: bigint };\n}>;\n\n/**\n * EdDSA (Edwards Digital Signature algorithm) options.\n *\n * * hash: hash function used to hash secret keys and messages\n * * adjustScalarBytes: clears bits to get valid field element\n * * domain: Used for hashing\n * * mapToCurve: for hash-to-curve standard\n * * prehash: RFC 8032 pre-hashing of messages to sign() / verify()\n * * randomBytes: function generating random bytes, used for randomSecretKey\n */\nexport type EdDSAOpts = Partial<{\n  adjustScalarBytes: (bytes: Uint8Array) => Uint8Array;\n  domain: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array;\n  mapToCurve: (scalar: bigint[]) => AffinePoint<bigint>;\n  prehash: FHash;\n  randomBytes: (bytesLength?: number) => Uint8Array;\n}>;\n\n/**\n * EdDSA (Edwards Digital Signature algorithm) interface.\n *\n * Allows to create and verify signatures, create public and secret keys.\n */\nexport interface EdDSA {\n  keygen: (seed?: Uint8Array) => { secretKey: Uint8Array; publicKey: Uint8Array };\n  getPublicKey: (secretKey: Hex) => Uint8Array;\n  sign: (message: Hex, secretKey: Hex, options?: { context?: Hex }) => Uint8Array;\n  verify: (\n    sig: Hex,\n    message: Hex,\n    publicKey: Hex,\n    options?: { context?: Hex; zip215: boolean }\n  ) => boolean;\n  Point: EdwardsPointCons;\n  utils: {\n    randomSecretKey: (seed?: Uint8Array) => Uint8Array;\n    isValidSecretKey: (secretKey: Uint8Array) => boolean;\n    isValidPublicKey: (publicKey: Uint8Array, zip215?: boolean) => boolean;\n\n    /**\n     * Converts ed public key to x public key.\n     *\n     * There is NO `fromMontgomery`:\n     * - There are 2 valid ed25519 points for every x25519, with flipped coordinate\n     * - Sometimes there are 0 valid ed25519 points, because x25519 *additionally*\n     *   accepts inputs on the quadratic twist, which can't be moved to ed25519\n     *\n     * @example\n     * ```js\n     * const someonesPub = ed25519.getPublicKey(ed25519.utils.randomSecretKey());\n     * const aPriv = x25519.utils.randomSecretKey();\n     * x25519.getSharedSecret(aPriv, ed25519.utils.toMontgomery(someonesPub))\n     * ```\n     */\n    toMontgomery: (publicKey: Uint8Array) => Uint8Array;\n    /**\n     * Converts ed secret key to x secret key.\n     * @example\n     * ```js\n     * const someonesPub = x25519.getPublicKey(x25519.utils.randomSecretKey());\n     * const aPriv = ed25519.utils.randomSecretKey();\n     * x25519.getSharedSecret(ed25519.utils.toMontgomerySecret(aPriv), someonesPub)\n     * ```\n     */\n    toMontgomerySecret: (privateKey: Uint8Array) => Uint8Array;\n    getExtendedPublicKey: (key: Hex) => {\n      head: Uint8Array;\n      prefix: Uint8Array;\n      scalar: bigint;\n      point: EdwardsPoint;\n      pointBytes: Uint8Array;\n    };\n\n    /** @deprecated use `randomSecretKey` */\n    randomPrivateKey: (seed?: Uint8Array) => Uint8Array;\n    /** @deprecated use `point.precompute()` */\n    precompute: (windowSize?: number, point?: EdwardsPoint) => EdwardsPoint;\n  };\n  lengths: CurveLengths;\n}\n\nfunction isEdValidXY(Fp: IField<bigint>, CURVE: EdwardsOpts, x: bigint, y: bigint): boolean {\n  const x2 = Fp.sqr(x);\n  const y2 = Fp.sqr(y);\n  const left = Fp.add(Fp.mul(CURVE.a, x2), y2);\n  const right = Fp.add(Fp.ONE, Fp.mul(CURVE.d, Fp.mul(x2, y2)));\n  return Fp.eql(left, right);\n}\n\nexport function edwards(params: EdwardsOpts, extraOpts: EdwardsExtraOpts = {}): EdwardsPointCons {\n  const validated = _createCurveFields('edwards', params, extraOpts, extraOpts.FpFnLE);\n  const { Fp, Fn } = validated;\n  let CURVE = validated.CURVE as EdwardsOpts;\n  const { h: cofactor } = CURVE;\n  _validateObject(extraOpts, {}, { uvRatio: 'function' });\n\n  // Important:\n  // There are some places where Fp.BYTES is used instead of nByteLength.\n  // So far, everything has been tested with curves of Fp.BYTES == nByteLength.\n  // TODO: test and find curves which behave otherwise.\n  const MASK = _2n << (BigInt(Fn.BYTES * 8) - _1n);\n  const modP = (n: bigint) => Fp.create(n); // Function overrides\n\n  // sqrt(u/v)\n  const uvRatio =\n    extraOpts.uvRatio ||\n    ((u: bigint, v: bigint) => {\n      try {\n        return { isValid: true, value: Fp.sqrt(Fp.div(u, v)) };\n      } catch (e) {\n        return { isValid: false, value: _0n };\n      }\n    });\n\n  // Validate whether the passed curve params are valid.\n  // equation ax² + y² = 1 + dx²y² should work for generator point.\n  if (!isEdValidXY(Fp, CURVE, CURVE.Gx, CURVE.Gy))\n    throw new Error('bad curve params: generator point');\n\n  /**\n   * Asserts coordinate is valid: 0 <= n < MASK.\n   * Coordinates >= Fp.ORDER are allowed for zip215.\n   */\n  function acoord(title: string, n: bigint, banZero = false) {\n    const min = banZero ? _1n : _0n;\n    aInRange('coordinate ' + title, n, min, MASK);\n    return n;\n  }\n\n  function aextpoint(other: unknown) {\n    if (!(other instanceof Point)) throw new Error('ExtendedPoint expected');\n  }\n  // Converts Extended point to default (x, y) coordinates.\n  // Can accept precomputed Z^-1 - for example, from invertBatch.\n  const toAffineMemo = memoized((p: Point, iz?: bigint): AffinePoint<bigint> => {\n    const { X, Y, Z } = p;\n    const is0 = p.is0();\n    if (iz == null) iz = is0 ? _8n : (Fp.inv(Z) as bigint); // 8 was chosen arbitrarily\n    const x = modP(X * iz);\n    const y = modP(Y * iz);\n    const zz = Fp.mul(Z, iz);\n    if (is0) return { x: _0n, y: _1n };\n    if (zz !== _1n) throw new Error('invZ was invalid');\n    return { x, y };\n  });\n  const assertValidMemo = memoized((p: Point) => {\n    const { a, d } = CURVE;\n    if (p.is0()) throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n    // Equation in affine coordinates: ax² + y² = 1 + dx²y²\n    // Equation in projective coordinates (X/Z, Y/Z, Z):  (aX² + Y²)Z² = Z⁴ + dX²Y²\n    const { X, Y, Z, T } = p;\n    const X2 = modP(X * X); // X²\n    const Y2 = modP(Y * Y); // Y²\n    const Z2 = modP(Z * Z); // Z²\n    const Z4 = modP(Z2 * Z2); // Z⁴\n    const aX2 = modP(X2 * a); // aX²\n    const left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z²\n    const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y²\n    if (left !== right) throw new Error('bad point: equation left != right (1)');\n    // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n    const XY = modP(X * Y);\n    const ZT = modP(Z * T);\n    if (XY !== ZT) throw new Error('bad point: equation left != right (2)');\n    return true;\n  });\n\n  // Extended Point works in extended coordinates: (X, Y, Z, T) ∋ (x=X/Z, y=Y/Z, T=xy).\n  // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n  class Point implements EdwardsPoint {\n    // base / generator point\n    static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, _1n, modP(CURVE.Gx * CURVE.Gy));\n    // zero / infinity / identity point\n    static readonly ZERO = new Point(_0n, _1n, _1n, _0n); // 0, 1, 1, 0\n    // math field\n    static readonly Fp = Fp;\n    // scalar field\n    static readonly Fn = Fn;\n\n    readonly X: bigint;\n    readonly Y: bigint;\n    readonly Z: bigint;\n    readonly T: bigint;\n\n    constructor(X: bigint, Y: bigint, Z: bigint, T: bigint) {\n      this.X = acoord('x', X);\n      this.Y = acoord('y', Y);\n      this.Z = acoord('z', Z, true);\n      this.T = acoord('t', T);\n      Object.freeze(this);\n    }\n\n    static CURVE(): EdwardsOpts {\n      return CURVE;\n    }\n\n    static fromAffine(p: AffinePoint<bigint>): Point {\n      if (p instanceof Point) throw new Error('extended point not allowed');\n      const { x, y } = p || {};\n      acoord('x', x);\n      acoord('y', y);\n      return new Point(x, y, _1n, modP(x * y));\n    }\n\n    // Uses algo from RFC8032 5.1.3.\n    static fromBytes(bytes: Uint8Array, zip215 = false): Point {\n      const len = Fp.BYTES;\n      const { a, d } = CURVE;\n      bytes = copyBytes(abytes(bytes, len, 'point'));\n      abool(zip215, 'zip215');\n      const normed = copyBytes(bytes); // copy again, we'll manipulate it\n      const lastByte = bytes[len - 1]; // select last byte\n      normed[len - 1] = lastByte & ~0x80; // clear last bit\n      const y = bytesToNumberLE(normed);\n\n      // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5.\n      // RFC8032 prohibits >= p, but ZIP215 doesn't\n      // zip215=true:  0 <= y < MASK (2^256 for ed25519)\n      // zip215=false: 0 <= y < P (2^255-19 for ed25519)\n      const max = zip215 ? MASK : Fp.ORDER;\n      aInRange('point.y', y, _0n, max);\n\n      // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case:\n      // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a)\n      const y2 = modP(y * y); // denominator is always non-0 mod p.\n      const u = modP(y2 - _1n); // u = y² - 1\n      const v = modP(d * y2 - a); // v = d y² + 1.\n      let { isValid, value: x } = uvRatio(u, v); // √(u/v)\n      if (!isValid) throw new Error('bad point: invalid y coordinate');\n      const isXOdd = (x & _1n) === _1n; // There are 2 square roots. Use x_0 bit to select proper\n      const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n      if (!zip215 && x === _0n && isLastByteOdd)\n        // if x=0 and x_0 = 1, fail\n        throw new Error('bad point: x=0 and x_0=1');\n      if (isLastByteOdd !== isXOdd) x = modP(-x); // if x_0 != x mod 2, set x = p-x\n      return Point.fromAffine({ x, y });\n    }\n    static fromHex(bytes: Uint8Array, zip215 = false): Point {\n      return Point.fromBytes(ensureBytes('point', bytes), zip215);\n    }\n\n    get x(): bigint {\n      return this.toAffine().x;\n    }\n    get y(): bigint {\n      return this.toAffine().y;\n    }\n\n    precompute(windowSize: number = 8, isLazy = true) {\n      wnaf.createCache(this, windowSize);\n      if (!isLazy) this.multiply(_2n); // random number\n      return this;\n    }\n\n    // Useful in fromAffine() - not for fromBytes(), which always created valid points.\n    assertValidity(): void {\n      assertValidMemo(this);\n    }\n\n    // Compare one point to another.\n    equals(other: Point): boolean {\n      aextpoint(other);\n      const { X: X1, Y: Y1, Z: Z1 } = this;\n      const { X: X2, Y: Y2, Z: Z2 } = other;\n      const X1Z2 = modP(X1 * Z2);\n      const X2Z1 = modP(X2 * Z1);\n      const Y1Z2 = modP(Y1 * Z2);\n      const Y2Z1 = modP(Y2 * Z1);\n      return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n    }\n\n    is0(): boolean {\n      return this.equals(Point.ZERO);\n    }\n\n    negate(): Point {\n      // Flips point sign to a negative one (-x, y in affine coords)\n      return new Point(modP(-this.X), this.Y, this.Z, modP(-this.T));\n    }\n\n    // Fast algo for doubling Extended Point.\n    // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n    // Cost: 4M + 4S + 1*a + 6add + 1*2.\n    double(): Point {\n      const { a } = CURVE;\n      const { X: X1, Y: Y1, Z: Z1 } = this;\n      const A = modP(X1 * X1); // A = X12\n      const B = modP(Y1 * Y1); // B = Y12\n      const C = modP(_2n * modP(Z1 * Z1)); // C = 2*Z12\n      const D = modP(a * A); // D = a*A\n      const x1y1 = X1 + Y1;\n      const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n      const G = D + B; // G = D+B\n      const F = G - C; // F = G-C\n      const H = D - B; // H = D-B\n      const X3 = modP(E * F); // X3 = E*F\n      const Y3 = modP(G * H); // Y3 = G*H\n      const T3 = modP(E * H); // T3 = E*H\n      const Z3 = modP(F * G); // Z3 = F*G\n      return new Point(X3, Y3, Z3, T3);\n    }\n\n    // Fast algo for adding 2 Extended Points.\n    // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n    // Cost: 9M + 1*a + 1*d + 7add.\n    add(other: Point) {\n      aextpoint(other);\n      const { a, d } = CURVE;\n      const { X: X1, Y: Y1, Z: Z1, T: T1 } = this;\n      const { X: X2, Y: Y2, Z: Z2, T: T2 } = other;\n      const A = modP(X1 * X2); // A = X1*X2\n      const B = modP(Y1 * Y2); // B = Y1*Y2\n      const C = modP(T1 * d * T2); // C = T1*d*T2\n      const D = modP(Z1 * Z2); // D = Z1*Z2\n      const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n      const F = D - C; // F = D-C\n      const G = D + C; // G = D+C\n      const H = modP(B - a * A); // H = B-a*A\n      const X3 = modP(E * F); // X3 = E*F\n      const Y3 = modP(G * H); // Y3 = G*H\n      const T3 = modP(E * H); // T3 = E*H\n      const Z3 = modP(F * G); // Z3 = F*G\n      return new Point(X3, Y3, Z3, T3);\n    }\n\n    subtract(other: Point): Point {\n      return this.add(other.negate());\n    }\n\n    // Constant-time multiplication.\n    multiply(scalar: bigint): Point {\n      // 1 <= scalar < L\n      if (!Fn.isValidNot0(scalar)) throw new Error('invalid scalar: expected 1 <= sc < curve.n');\n      const { p, f } = wnaf.cached(this, scalar, (p) => normalizeZ(Point, p));\n      return normalizeZ(Point, [p, f])[0];\n    }\n\n    // Non-constant-time multiplication. Uses double-and-add algorithm.\n    // It's faster, but should only be used when you don't care about\n    // an exposed private key e.g. sig verification.\n    // Does NOT allow scalars higher than CURVE.n.\n    // Accepts optional accumulator to merge with multiply (important for sparse scalars)\n    multiplyUnsafe(scalar: bigint, acc = Point.ZERO): Point {\n      // 0 <= scalar < L\n      if (!Fn.isValid(scalar)) throw new Error('invalid scalar: expected 0 <= sc < curve.n');\n      if (scalar === _0n) return Point.ZERO;\n      if (this.is0() || scalar === _1n) return this;\n      return wnaf.unsafe(this, scalar, (p) => normalizeZ(Point, p), acc);\n    }\n\n    // Checks if point is of small order.\n    // If you add something to small order point, you will have \"dirty\"\n    // point with torsion component.\n    // Multiplies point by cofactor and checks if the result is 0.\n    isSmallOrder(): boolean {\n      return this.multiplyUnsafe(cofactor).is0();\n    }\n\n    // Multiplies point by curve order and checks if the result is 0.\n    // Returns `false` is the point is dirty.\n    isTorsionFree(): boolean {\n      return wnaf.unsafe(this, CURVE.n).is0();\n    }\n\n    // Converts Extended point to default (x, y) coordinates.\n    // Can accept precomputed Z^-1 - for example, from invertBatch.\n    toAffine(invertedZ?: bigint): AffinePoint<bigint> {\n      return toAffineMemo(this, invertedZ);\n    }\n\n    clearCofactor(): Point {\n      if (cofactor === _1n) return this;\n      return this.multiplyUnsafe(cofactor);\n    }\n\n    toBytes(): Uint8Array {\n      const { x, y } = this.toAffine();\n      // Fp.toBytes() allows non-canonical encoding of y (>= p).\n      const bytes = Fp.toBytes(y);\n      // Each y has 2 valid points: (x, y), (x,-y).\n      // When compressing, it's enough to store y and use the last byte to encode sign of x\n      bytes[bytes.length - 1] |= x & _1n ? 0x80 : 0;\n      return bytes;\n    }\n    toHex(): string {\n      return bytesToHex(this.toBytes());\n    }\n\n    toString() {\n      return `<Point ${this.is0() ? 'ZERO' : this.toHex()}>`;\n    }\n\n    // TODO: remove\n    get ex(): bigint {\n      return this.X;\n    }\n    get ey(): bigint {\n      return this.Y;\n    }\n    get ez(): bigint {\n      return this.Z;\n    }\n    get et(): bigint {\n      return this.T;\n    }\n    static normalizeZ(points: Point[]): Point[] {\n      return normalizeZ(Point, points);\n    }\n    static msm(points: Point[], scalars: bigint[]): Point {\n      return pippenger(Point, Fn, points, scalars);\n    }\n    _setWindowSize(windowSize: number) {\n      this.precompute(windowSize);\n    }\n    toRawBytes(): Uint8Array {\n      return this.toBytes();\n    }\n  }\n  const wnaf = new wNAF(Point, Fn.BITS);\n  Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n  return Point;\n}\n\n/**\n * Base class for prime-order points like Ristretto255 and Decaf448.\n * These points eliminate cofactor issues by representing equivalence classes\n * of Edwards curve points.\n */\nexport abstract class PrimeEdwardsPoint<T extends PrimeEdwardsPoint<T>>\n  implements CurvePoint<bigint, T>\n{\n  static BASE: PrimeEdwardsPoint<any>;\n  static ZERO: PrimeEdwardsPoint<any>;\n  static Fp: IField<bigint>;\n  static Fn: IField<bigint>;\n\n  protected readonly ep: EdwardsPoint;\n\n  constructor(ep: EdwardsPoint) {\n    this.ep = ep;\n  }\n\n  // Abstract methods that must be implemented by subclasses\n  abstract toBytes(): Uint8Array;\n  abstract equals(other: T): boolean;\n\n  // Static methods that must be implemented by subclasses\n  static fromBytes(_bytes: Uint8Array): any {\n    notImplemented();\n  }\n\n  static fromHex(_hex: Hex): any {\n    notImplemented();\n  }\n\n  get x(): bigint {\n    return this.toAffine().x;\n  }\n  get y(): bigint {\n    return this.toAffine().y;\n  }\n\n  // Common implementations\n  clearCofactor(): T {\n    // no-op for prime-order groups\n    return this as any;\n  }\n\n  assertValidity(): void {\n    this.ep.assertValidity();\n  }\n\n  toAffine(invertedZ?: bigint): AffinePoint<bigint> {\n    return this.ep.toAffine(invertedZ);\n  }\n\n  toHex(): string {\n    return bytesToHex(this.toBytes());\n  }\n\n  toString(): string {\n    return this.toHex();\n  }\n\n  isTorsionFree(): boolean {\n    return true;\n  }\n\n  isSmallOrder(): boolean {\n    return false;\n  }\n\n  add(other: T): T {\n    this.assertSame(other);\n    return this.init(this.ep.add(other.ep));\n  }\n\n  subtract(other: T): T {\n    this.assertSame(other);\n    return this.init(this.ep.subtract(other.ep));\n  }\n\n  multiply(scalar: bigint): T {\n    return this.init(this.ep.multiply(scalar));\n  }\n\n  multiplyUnsafe(scalar: bigint): T {\n    return this.init(this.ep.multiplyUnsafe(scalar));\n  }\n\n  double(): T {\n    return this.init(this.ep.double());\n  }\n\n  negate(): T {\n    return this.init(this.ep.negate());\n  }\n\n  precompute(windowSize?: number, isLazy?: boolean): T {\n    return this.init(this.ep.precompute(windowSize, isLazy));\n  }\n\n  // Helper methods\n  abstract is0(): boolean;\n  protected abstract assertSame(other: T): void;\n  protected abstract init(ep: EdwardsPoint): T;\n\n  /** @deprecated use `toBytes` */\n  toRawBytes(): Uint8Array {\n    return this.toBytes();\n  }\n}\n\n/**\n * Initializes EdDSA signatures over given Edwards curve.\n */\nexport function eddsa(Point: EdwardsPointCons, cHash: FHash, eddsaOpts: EdDSAOpts = {}): EdDSA {\n  if (typeof cHash !== 'function') throw new Error('\"hash\" function param is required');\n  _validateObject(\n    eddsaOpts,\n    {},\n    {\n      adjustScalarBytes: 'function',\n      randomBytes: 'function',\n      domain: 'function',\n      prehash: 'function',\n      mapToCurve: 'function',\n    }\n  );\n\n  const { prehash } = eddsaOpts;\n  const { BASE, Fp, Fn } = Point;\n\n  const randomBytes = eddsaOpts.randomBytes || randomBytesWeb;\n  const adjustScalarBytes = eddsaOpts.adjustScalarBytes || ((bytes: Uint8Array) => bytes);\n  const domain =\n    eddsaOpts.domain ||\n    ((data: Uint8Array, ctx: Uint8Array, phflag: boolean) => {\n      abool(phflag, 'phflag');\n      if (ctx.length || phflag) throw new Error('Contexts/pre-hash are not supported');\n      return data;\n    }); // NOOP\n\n  // Little-endian SHA512 with modulo n\n  function modN_LE(hash: Uint8Array): bigint {\n    return Fn.create(bytesToNumberLE(hash)); // Not Fn.fromBytes: it has length limit\n  }\n\n  // Get the hashed private scalar per RFC8032 5.1.5\n  function getPrivateScalar(key: Hex) {\n    const len = lengths.secretKey;\n    key = ensureBytes('private key', key, len);\n    // Hash private key with curve's hash function to produce uniformingly random input\n    // Check byte lengths: ensure(64, h(ensure(32, key)))\n    const hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n    const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n    const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n    const scalar = modN_LE(head); // The actual private scalar\n    return { head, prefix, scalar };\n  }\n\n  /** Convenience method that creates public key from scalar. RFC8032 5.1.5 */\n  function getExtendedPublicKey(secretKey: Hex) {\n    const { head, prefix, scalar } = getPrivateScalar(secretKey);\n    const point = BASE.multiply(scalar); // Point on Edwards curve aka public key\n    const pointBytes = point.toBytes();\n    return { head, prefix, scalar, point, pointBytes };\n  }\n\n  /** Calculates EdDSA pub key. RFC8032 5.1.5. */\n  function getPublicKey(secretKey: Hex): Uint8Array {\n    return getExtendedPublicKey(secretKey).pointBytes;\n  }\n\n  // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n  function hashDomainToScalar(context: Hex = Uint8Array.of(), ...msgs: Uint8Array[]) {\n    const msg = concatBytes(...msgs);\n    return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n  }\n\n  /** Signs message with privateKey. RFC8032 5.1.6 */\n  function sign(msg: Hex, secretKey: Hex, options: { context?: Hex } = {}): Uint8Array {\n    msg = ensureBytes('message', msg);\n    if (prehash) msg = prehash(msg); // for ed25519ph etc.\n    const { prefix, scalar, pointBytes } = getExtendedPublicKey(secretKey);\n    const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n    const R = BASE.multiply(r).toBytes(); // R = rG\n    const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n    const s = Fn.create(r + k * scalar); // S = (r + k * s) mod L\n    if (!Fn.isValid(s)) throw new Error('sign failed: invalid s'); // 0 <= s < L\n    const rs = concatBytes(R, Fn.toBytes(s));\n    return abytes(rs, lengths.signature, 'result');\n  }\n\n  // verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\n  const verifyOpts: { context?: Hex; zip215?: boolean } = { zip215: true };\n\n  /**\n   * Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n   * An extended group equation is checked.\n   */\n  function verify(sig: Hex, msg: Hex, publicKey: Hex, options = verifyOpts): boolean {\n    const { context, zip215 } = options;\n    const len = lengths.signature;\n    sig = ensureBytes('signature', sig, len);\n    msg = ensureBytes('message', msg);\n    publicKey = ensureBytes('publicKey', publicKey, lengths.publicKey);\n    if (zip215 !== undefined) abool(zip215, 'zip215');\n    if (prehash) msg = prehash(msg); // for ed25519ph, etc\n\n    const mid = len / 2;\n    const r = sig.subarray(0, mid);\n    const s = bytesToNumberLE(sig.subarray(mid, len));\n    let A, R, SB;\n    try {\n      // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5.\n      // zip215=true:  0 <= y < MASK (2^256 for ed25519)\n      // zip215=false: 0 <= y < P (2^255-19 for ed25519)\n      A = Point.fromBytes(publicKey, zip215);\n      R = Point.fromBytes(r, zip215);\n      SB = BASE.multiplyUnsafe(s); // 0 <= s < l is done inside\n    } catch (error) {\n      return false;\n    }\n    if (!zip215 && A.isSmallOrder()) return false; // zip215 allows public keys of small order\n\n    const k = hashDomainToScalar(context, R.toBytes(), A.toBytes(), msg);\n    const RkA = R.add(A.multiplyUnsafe(k));\n    // Extended group equation\n    // [8][S]B = [8]R + [8][k]A'\n    return RkA.subtract(SB).clearCofactor().is0();\n  }\n\n  const _size = Fp.BYTES; // 32 for ed25519, 57 for ed448\n  const lengths = {\n    secretKey: _size,\n    publicKey: _size,\n    signature: 2 * _size,\n    seed: _size,\n  };\n  function randomSecretKey(seed = randomBytes(lengths.seed)): Uint8Array {\n    return abytes(seed, lengths.seed, 'seed');\n  }\n  function keygen(seed?: Uint8Array) {\n    const secretKey = utils.randomSecretKey(seed);\n    return { secretKey, publicKey: getPublicKey(secretKey) };\n  }\n  function isValidSecretKey(key: Uint8Array): boolean {\n    return isBytes(key) && key.length === Fn.BYTES;\n  }\n  function isValidPublicKey(key: Uint8Array, zip215?: boolean): boolean {\n    try {\n      return !!Point.fromBytes(key, zip215);\n    } catch (error) {\n      return false;\n    }\n  }\n\n  const utils = {\n    getExtendedPublicKey,\n    randomSecretKey,\n    isValidSecretKey,\n    isValidPublicKey,\n    /**\n     * Converts ed public key to x public key. Uses formula:\n     * - ed25519:\n     *   - `(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)`\n     *   - `(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))`\n     * - ed448:\n     *   - `(u, v) = ((y-1)/(y+1), sqrt(156324)*u/x)`\n     *   - `(x, y) = (sqrt(156324)*u/v, (1+u)/(1-u))`\n     */\n    toMontgomery(publicKey: Uint8Array): Uint8Array {\n      const { y } = Point.fromBytes(publicKey);\n      const size = lengths.publicKey;\n      const is25519 = size === 32;\n      if (!is25519 && size !== 57) throw new Error('only defined for 25519 and 448');\n      const u = is25519 ? Fp.div(_1n + y, _1n - y) : Fp.div(y - _1n, y + _1n);\n      return Fp.toBytes(u);\n    },\n\n    toMontgomerySecret(secretKey: Uint8Array): Uint8Array {\n      const size = lengths.secretKey;\n      abytes(secretKey, size);\n      const hashed = cHash(secretKey.subarray(0, size));\n      return adjustScalarBytes(hashed).subarray(0, size);\n    },\n\n    /** @deprecated */\n    randomPrivateKey: randomSecretKey,\n    /** @deprecated */\n    precompute(windowSize = 8, point: EdwardsPoint = Point.BASE): EdwardsPoint {\n      return point.precompute(windowSize, false);\n    },\n  };\n\n  return Object.freeze({\n    keygen,\n    getPublicKey,\n    sign,\n    verify,\n    utils,\n    Point,\n    lengths,\n  });\n}\n\n// TODO: remove everything below\nexport type CurveType = BasicCurve<bigint> & {\n  a: bigint; // curve param a\n  d: bigint; // curve param d\n  /** @deprecated the property will be removed in next release */\n  hash: FHash; // Hashing\n  randomBytes?: (bytesLength?: number) => Uint8Array; // CSPRNG\n  adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array; // clears bits to get valid field elemtn\n  domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array; // Used for hashing\n  uvRatio?: UVRatio; // Ratio √(u/v)\n  prehash?: FHash; // RFC 8032 pre-hashing of messages to sign() / verify()\n  mapToCurve?: (scalar: bigint[]) => AffinePoint<bigint>; // for hash-to-curve standard\n};\nexport type CurveTypeWithLength = Readonly<CurveType & Partial<NLength>>;\nexport type CurveFn = {\n  /** @deprecated the property will be removed in next release */\n  CURVE: CurveType;\n  keygen: EdDSA['keygen'];\n  getPublicKey: EdDSA['getPublicKey'];\n  sign: EdDSA['sign'];\n  verify: EdDSA['verify'];\n  Point: EdwardsPointCons;\n  /** @deprecated use `Point` */\n  ExtendedPoint: EdwardsPointCons;\n  utils: EdDSA['utils'];\n  lengths: CurveLengths;\n};\nexport type EdComposed = {\n  CURVE: EdwardsOpts;\n  curveOpts: EdwardsExtraOpts;\n  hash: FHash;\n  eddsaOpts: EdDSAOpts;\n};\nfunction _eddsa_legacy_opts_to_new(c: CurveTypeWithLength): EdComposed {\n  const CURVE: EdwardsOpts = {\n    a: c.a,\n    d: c.d,\n    p: c.Fp.ORDER,\n    n: c.n,\n    h: c.h,\n    Gx: c.Gx,\n    Gy: c.Gy,\n  };\n  const Fp = c.Fp;\n  const Fn = Field(CURVE.n, c.nBitLength, true);\n  const curveOpts: EdwardsExtraOpts = { Fp, Fn, uvRatio: c.uvRatio };\n  const eddsaOpts: EdDSAOpts = {\n    randomBytes: c.randomBytes,\n    adjustScalarBytes: c.adjustScalarBytes,\n    domain: c.domain,\n    prehash: c.prehash,\n    mapToCurve: c.mapToCurve,\n  };\n  return { CURVE, curveOpts, hash: c.hash, eddsaOpts };\n}\nfunction _eddsa_new_output_to_legacy(c: CurveTypeWithLength, eddsa: EdDSA): CurveFn {\n  const Point = eddsa.Point;\n  const legacy = Object.assign({}, eddsa, {\n    ExtendedPoint: Point,\n    CURVE: c,\n    nBitLength: Point.Fn.BITS,\n    nByteLength: Point.Fn.BYTES,\n  });\n  return legacy;\n}\n// TODO: remove. Use eddsa\nexport function twistedEdwards(c: CurveTypeWithLength): CurveFn {\n  const { CURVE, curveOpts, hash, eddsaOpts } = _eddsa_legacy_opts_to_new(c);\n  const Point = edwards(CURVE, curveOpts);\n  const EDDSA = eddsa(Point, hash, eddsaOpts);\n  return _eddsa_new_output_to_legacy(c, EDDSA);\n}\n","/**\n * ed25519 Twisted Edwards curve with following addons:\n * - X25519 ECDH\n * - Ristretto cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha512 } from '@noble/hashes/sha2.js';\nimport { abytes, concatBytes, utf8ToBytes } from '@noble/hashes/utils.js';\nimport { pippenger, type AffinePoint } from './abstract/curve.ts';\nimport {\n  PrimeEdwardsPoint,\n  twistedEdwards,\n  type CurveFn,\n  type EdwardsOpts,\n  type EdwardsPoint,\n} from './abstract/edwards.ts';\nimport {\n  _DST_scalar,\n  createHasher,\n  expand_message_xmd,\n  type H2CHasher,\n  type H2CHasherBase,\n  type H2CMethod,\n  type htfBasicOpts,\n} from './abstract/hash-to-curve.ts';\nimport {\n  Field,\n  FpInvertBatch,\n  FpSqrtEven,\n  isNegativeLE,\n  mod,\n  pow2,\n  type IField,\n} from './abstract/modular.ts';\nimport { montgomery, type MontgomeryECDH as XCurveFn } from './abstract/montgomery.ts';\nimport { bytesToNumberLE, ensureBytes, equalBytes, type Hex } from './utils.ts';\n\n// prettier-ignore\nconst _0n = /* @__PURE__ */ BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nconst _5n = BigInt(5), _8n = BigInt(8);\n\n// P = 2n**255n-19n\nconst ed25519_CURVE_p = BigInt(\n  '0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed'\n);\n\n// N = 2n**252n + 27742317777372353535851937790883648493n\n// a = Fp.create(BigInt(-1))\n// d = -121665/121666 a.k.a. Fp.neg(121665 * Fp.inv(121666))\nconst ed25519_CURVE: EdwardsOpts = /* @__PURE__ */ (() => ({\n  p: ed25519_CURVE_p,\n  n: BigInt('0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed'),\n  h: _8n,\n  a: BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec'),\n  d: BigInt('0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3'),\n  Gx: BigInt('0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a'),\n  Gy: BigInt('0x6666666666666666666666666666666666666666666666666666666666666658'),\n}))();\n\nfunction ed25519_pow_2_252_3(x: bigint) {\n  // prettier-ignore\n  const _10n = BigInt(10), _20n = BigInt(20), _40n = BigInt(40), _80n = BigInt(80);\n  const P = ed25519_CURVE_p;\n  const x2 = (x * x) % P;\n  const b2 = (x2 * x) % P; // x^3, 11\n  const b4 = (pow2(b2, _2n, P) * b2) % P; // x^15, 1111\n  const b5 = (pow2(b4, _1n, P) * x) % P; // x^31\n  const b10 = (pow2(b5, _5n, P) * b5) % P;\n  const b20 = (pow2(b10, _10n, P) * b10) % P;\n  const b40 = (pow2(b20, _20n, P) * b20) % P;\n  const b80 = (pow2(b40, _40n, P) * b40) % P;\n  const b160 = (pow2(b80, _80n, P) * b80) % P;\n  const b240 = (pow2(b160, _80n, P) * b80) % P;\n  const b250 = (pow2(b240, _10n, P) * b10) % P;\n  const pow_p_5_8 = (pow2(b250, _2n, P) * x) % P;\n  // ^ To pow to (p+3)/8, multiply it by x.\n  return { pow_p_5_8, b2 };\n}\n\nfunction adjustScalarBytes(bytes: Uint8Array): Uint8Array {\n  // Section 5: For X25519, in order to decode 32 random bytes as an integer scalar,\n  // set the three least significant bits of the first byte\n  bytes[0] &= 248; // 0b1111_1000\n  // and the most significant bit of the last to zero,\n  bytes[31] &= 127; // 0b0111_1111\n  // set the second most significant bit of the last byte to 1\n  bytes[31] |= 64; // 0b0100_0000\n  return bytes;\n}\n\n// √(-1) aka √(a) aka 2^((p-1)/4)\n// Fp.sqrt(Fp.neg(1))\nconst ED25519_SQRT_M1 = /* @__PURE__ */ BigInt(\n  '19681161376707505956807079304988542015446066515923890162744021073123829784752'\n);\n// sqrt(u/v)\nfunction uvRatio(u: bigint, v: bigint): { isValid: boolean; value: bigint } {\n  const P = ed25519_CURVE_p;\n  const v3 = mod(v * v * v, P); // v³\n  const v7 = mod(v3 * v3 * v, P); // v⁷\n  // (p+3)/8 and (p-5)/8\n  const pow = ed25519_pow_2_252_3(u * v7).pow_p_5_8;\n  let x = mod(u * v3 * pow, P); // (uv³)(uv⁷)^(p-5)/8\n  const vx2 = mod(v * x * x, P); // vx²\n  const root1 = x; // First root candidate\n  const root2 = mod(x * ED25519_SQRT_M1, P); // Second root candidate\n  const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root\n  const useRoot2 = vx2 === mod(-u, P); // If vx² = -u, set x <-- x * 2^((p-1)/4)\n  const noRoot = vx2 === mod(-u * ED25519_SQRT_M1, P); // There is no valid root, vx² = -u√(-1)\n  if (useRoot1) x = root1;\n  if (useRoot2 || noRoot) x = root2; // We return root2 anyway, for const-time\n  if (isNegativeLE(x, P)) x = mod(-x, P);\n  return { isValid: useRoot1 || useRoot2, value: x };\n}\n\nconst Fp = /* @__PURE__ */ (() => Field(ed25519_CURVE.p, { isLE: true }))();\nconst Fn = /* @__PURE__ */ (() => Field(ed25519_CURVE.n, { isLE: true }))();\n\nconst ed25519Defaults = /* @__PURE__ */ (() => ({\n  ...ed25519_CURVE,\n  Fp,\n  hash: sha512,\n  adjustScalarBytes,\n  // dom2\n  // Ratio of u to v. Allows us to combine inversion and square root. Uses algo from RFC8032 5.1.3.\n  // Constant-time, u/√v\n  uvRatio,\n}))();\n\n/**\n * ed25519 curve with EdDSA signatures.\n * @example\n * import { ed25519 } from '@noble/curves/ed25519';\n * const { secretKey, publicKey } = ed25519.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = ed25519.sign(msg, priv);\n * ed25519.verify(sig, msg, pub); // Default mode: follows ZIP215\n * ed25519.verify(sig, msg, pub, { zip215: false }); // RFC8032 / FIPS 186-5\n */\nexport const ed25519: CurveFn = /* @__PURE__ */ (() => twistedEdwards(ed25519Defaults))();\n\nfunction ed25519_domain(data: Uint8Array, ctx: Uint8Array, phflag: boolean) {\n  if (ctx.length > 255) throw new Error('Context is too big');\n  return concatBytes(\n    utf8ToBytes('SigEd25519 no Ed25519 collisions'),\n    new Uint8Array([phflag ? 1 : 0, ctx.length]),\n    ctx,\n    data\n  );\n}\n\n/** Context of ed25519. Uses context for domain separation. */\nexport const ed25519ctx: CurveFn = /* @__PURE__ */ (() =>\n  twistedEdwards({\n    ...ed25519Defaults,\n    domain: ed25519_domain,\n  }))();\n\n/** Prehashed version of ed25519. Accepts already-hashed messages in sign() and verify(). */\nexport const ed25519ph: CurveFn = /* @__PURE__ */ (() =>\n  twistedEdwards(\n    Object.assign({}, ed25519Defaults, {\n      domain: ed25519_domain,\n      prehash: sha512,\n    })\n  ))();\n\n/**\n * ECDH using curve25519 aka x25519.\n * @example\n * import { x25519 } from '@noble/curves/ed25519';\n * const priv = 'a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4';\n * const pub = 'e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c';\n * x25519.getSharedSecret(priv, pub) === x25519.scalarMult(priv, pub); // aliases\n * x25519.getPublicKey(priv) === x25519.scalarMultBase(priv);\n * x25519.getPublicKey(x25519.utils.randomSecretKey());\n */\nexport const x25519: XCurveFn = /* @__PURE__ */ (() => {\n  const P = Fp.ORDER;\n  return montgomery({\n    P,\n    type: 'x25519',\n    powPminus2: (x: bigint): bigint => {\n      // x^(p-2) aka x^(2^255-21)\n      const { pow_p_5_8, b2 } = ed25519_pow_2_252_3(x);\n      return mod(pow2(pow_p_5_8, _3n, P) * b2, P);\n    },\n    adjustScalarBytes,\n  });\n})();\n\n// Hash To Curve Elligator2 Map (NOTE: different from ristretto255 elligator)\n// NOTE: very important part is usage of FpSqrtEven for ELL2_C1_EDWARDS, since\n// SageMath returns different root first and everything falls apart\nconst ELL2_C1 = /* @__PURE__ */ (() => (ed25519_CURVE_p + _3n) / _8n)(); // 1. c1 = (q + 3) / 8       # Integer arithmetic\nconst ELL2_C2 = /* @__PURE__ */ (() => Fp.pow(_2n, ELL2_C1))(); // 2. c2 = 2^c1\nconst ELL2_C3 = /* @__PURE__ */ (() => Fp.sqrt(Fp.neg(Fp.ONE)))(); // 3. c3 = sqrt(-1)\n\n// prettier-ignore\nfunction map_to_curve_elligator2_curve25519(u: bigint) {\n  const ELL2_C4 = (ed25519_CURVE_p - _5n) / _8n; // 4. c4 = (q - 5) / 8       # Integer arithmetic\n  const ELL2_J = BigInt(486662);\n\n  let tv1 = Fp.sqr(u);          //  1.  tv1 = u^2\n  tv1 = Fp.mul(tv1, _2n);       //  2.  tv1 = 2 * tv1\n  let xd = Fp.add(tv1, Fp.ONE); //  3.   xd = tv1 + 1         # Nonzero: -1 is square (mod p), tv1 is not\n  let x1n = Fp.neg(ELL2_J);     //  4.  x1n = -J              # x1 = x1n / xd = -J / (1 + 2 * u^2)\n  let tv2 = Fp.sqr(xd);         //  5.  tv2 = xd^2\n  let gxd = Fp.mul(tv2, xd);    //  6.  gxd = tv2 * xd        # gxd = xd^3\n  let gx1 = Fp.mul(tv1, ELL2_J);//  7.  gx1 = J * tv1         # x1n + J * xd\n  gx1 = Fp.mul(gx1, x1n);       //  8.  gx1 = gx1 * x1n       # x1n^2 + J * x1n * xd\n  gx1 = Fp.add(gx1, tv2);       //  9.  gx1 = gx1 + tv2       # x1n^2 + J * x1n * xd + xd^2\n  gx1 = Fp.mul(gx1, x1n);       //  10. gx1 = gx1 * x1n       # x1n^3 + J * x1n^2 * xd + x1n * xd^2\n  let tv3 = Fp.sqr(gxd);        //  11. tv3 = gxd^2\n  tv2 = Fp.sqr(tv3);            //  12. tv2 = tv3^2           # gxd^4\n  tv3 = Fp.mul(tv3, gxd);       //  13. tv3 = tv3 * gxd       # gxd^3\n  tv3 = Fp.mul(tv3, gx1);       //  14. tv3 = tv3 * gx1       # gx1 * gxd^3\n  tv2 = Fp.mul(tv2, tv3);       //  15. tv2 = tv2 * tv3       # gx1 * gxd^7\n  let y11 = Fp.pow(tv2, ELL2_C4); //  16. y11 = tv2^c4        # (gx1 * gxd^7)^((p - 5) / 8)\n  y11 = Fp.mul(y11, tv3);       //  17. y11 = y11 * tv3       # gx1*gxd^3*(gx1*gxd^7)^((p-5)/8)\n  let y12 = Fp.mul(y11, ELL2_C3); //  18. y12 = y11 * c3\n  tv2 = Fp.sqr(y11);            //  19. tv2 = y11^2\n  tv2 = Fp.mul(tv2, gxd);       //  20. tv2 = tv2 * gxd\n  let e1 = Fp.eql(tv2, gx1);    //  21.  e1 = tv2 == gx1\n  let y1 = Fp.cmov(y12, y11, e1); //  22.  y1 = CMOV(y12, y11, e1)  # If g(x1) is square, this is its sqrt\n  let x2n = Fp.mul(x1n, tv1);   //  23. x2n = x1n * tv1       # x2 = x2n / xd = 2 * u^2 * x1n / xd\n  let y21 = Fp.mul(y11, u);     //  24. y21 = y11 * u\n  y21 = Fp.mul(y21, ELL2_C2);   //  25. y21 = y21 * c2\n  let y22 = Fp.mul(y21, ELL2_C3); //  26. y22 = y21 * c3\n  let gx2 = Fp.mul(gx1, tv1);   //  27. gx2 = gx1 * tv1       # g(x2) = gx2 / gxd = 2 * u^2 * g(x1)\n  tv2 = Fp.sqr(y21);            //  28. tv2 = y21^2\n  tv2 = Fp.mul(tv2, gxd);       //  29. tv2 = tv2 * gxd\n  let e2 = Fp.eql(tv2, gx2);    //  30.  e2 = tv2 == gx2\n  let y2 = Fp.cmov(y22, y21, e2); //  31.  y2 = CMOV(y22, y21, e2)  # If g(x2) is square, this is its sqrt\n  tv2 = Fp.sqr(y1);             //  32. tv2 = y1^2\n  tv2 = Fp.mul(tv2, gxd);       //  33. tv2 = tv2 * gxd\n  let e3 = Fp.eql(tv2, gx1);    //  34.  e3 = tv2 == gx1\n  let xn = Fp.cmov(x2n, x1n, e3); //  35.  xn = CMOV(x2n, x1n, e3)  # If e3, x = x1, else x = x2\n  let y = Fp.cmov(y2, y1, e3);  //  36.   y = CMOV(y2, y1, e3)    # If e3, y = y1, else y = y2\n  let e4 = Fp.isOdd!(y);         //  37.  e4 = sgn0(y) == 1        # Fix sign of y\n  y = Fp.cmov(y, Fp.neg(y), e3 !== e4); //  38.   y = CMOV(y, -y, e3 XOR e4)\n  return { xMn: xn, xMd: xd, yMn: y, yMd: _1n }; //  39. return (xn, xd, y, 1)\n}\n\nconst ELL2_C1_EDWARDS = /* @__PURE__ */ (() => FpSqrtEven(Fp, Fp.neg(BigInt(486664))))(); // sgn0(c1) MUST equal 0\nfunction map_to_curve_elligator2_edwards25519(u: bigint) {\n  const { xMn, xMd, yMn, yMd } = map_to_curve_elligator2_curve25519(u); //  1.  (xMn, xMd, yMn, yMd) =\n  // map_to_curve_elligator2_curve25519(u)\n  let xn = Fp.mul(xMn, yMd); //  2.  xn = xMn * yMd\n  xn = Fp.mul(xn, ELL2_C1_EDWARDS); //  3.  xn = xn * c1\n  let xd = Fp.mul(xMd, yMn); //  4.  xd = xMd * yMn    # xn / xd = c1 * xM / yM\n  let yn = Fp.sub(xMn, xMd); //  5.  yn = xMn - xMd\n  let yd = Fp.add(xMn, xMd); //  6.  yd = xMn + xMd    # (n / d - 1) / (n / d + 1) = (n - d) / (n + d)\n  let tv1 = Fp.mul(xd, yd); //  7. tv1 = xd * yd\n  let e = Fp.eql(tv1, Fp.ZERO); //  8.   e = tv1 == 0\n  xn = Fp.cmov(xn, Fp.ZERO, e); //  9.  xn = CMOV(xn, 0, e)\n  xd = Fp.cmov(xd, Fp.ONE, e); //  10. xd = CMOV(xd, 1, e)\n  yn = Fp.cmov(yn, Fp.ONE, e); //  11. yn = CMOV(yn, 1, e)\n  yd = Fp.cmov(yd, Fp.ONE, e); //  12. yd = CMOV(yd, 1, e)\n  const [xd_inv, yd_inv] = FpInvertBatch(Fp, [xd, yd], true); // batch division\n  return { x: Fp.mul(xn, xd_inv), y: Fp.mul(yn, yd_inv) }; //  13. return (xn, xd, yn, yd)\n}\n\n/** Hashing to ed25519 points / field. RFC 9380 methods. */\nexport const ed25519_hasher: H2CHasher<bigint> = /* @__PURE__ */ (() =>\n  createHasher(\n    ed25519.Point,\n    (scalars: bigint[]) => map_to_curve_elligator2_edwards25519(scalars[0]),\n    {\n      DST: 'edwards25519_XMD:SHA-512_ELL2_RO_',\n      encodeDST: 'edwards25519_XMD:SHA-512_ELL2_NU_',\n      p: ed25519_CURVE_p,\n      m: 1,\n      k: 128,\n      expand: 'xmd',\n      hash: sha512,\n    }\n  ))();\n\n// √(-1) aka √(a) aka 2^((p-1)/4)\nconst SQRT_M1 = ED25519_SQRT_M1;\n// √(ad - 1)\nconst SQRT_AD_MINUS_ONE = /* @__PURE__ */ BigInt(\n  '25063068953384623474111414158702152701244531502492656460079210482610430750235'\n);\n// 1 / √(a-d)\nconst INVSQRT_A_MINUS_D = /* @__PURE__ */ BigInt(\n  '54469307008909316920995813868745141605393597292927456921205312896311721017578'\n);\n// 1-d²\nconst ONE_MINUS_D_SQ = /* @__PURE__ */ BigInt(\n  '1159843021668779879193775521855586647937357759715417654439879720876111806838'\n);\n// (d-1)²\nconst D_MINUS_ONE_SQ = /* @__PURE__ */ BigInt(\n  '40440834346308536858101042469323190826248399146238708352240133220865137265952'\n);\n// Calculates 1/√(number)\nconst invertSqrt = (number: bigint) => uvRatio(_1n, number);\n\nconst MAX_255B = /* @__PURE__ */ BigInt(\n  '0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'\n);\nconst bytes255ToNumberLE = (bytes: Uint8Array) =>\n  ed25519.Point.Fp.create(bytesToNumberLE(bytes) & MAX_255B);\n\ntype ExtendedPoint = EdwardsPoint;\n\n/**\n * Computes Elligator map for Ristretto255.\n * Described in [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#appendix-B) and on\n * the [website](https://ristretto.group/formulas/elligator.html).\n */\nfunction calcElligatorRistrettoMap(r0: bigint): ExtendedPoint {\n  const { d } = ed25519_CURVE;\n  const P = ed25519_CURVE_p;\n  const mod = (n: bigint) => Fp.create(n);\n  const r = mod(SQRT_M1 * r0 * r0); // 1\n  const Ns = mod((r + _1n) * ONE_MINUS_D_SQ); // 2\n  let c = BigInt(-1); // 3\n  const D = mod((c - d * r) * mod(r + d)); // 4\n  let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D); // 5\n  let s_ = mod(s * r0); // 6\n  if (!isNegativeLE(s_, P)) s_ = mod(-s_);\n  if (!Ns_D_is_sq) s = s_; // 7\n  if (!Ns_D_is_sq) c = r; // 8\n  const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D); // 9\n  const s2 = s * s;\n  const W0 = mod((s + s) * D); // 10\n  const W1 = mod(Nt * SQRT_AD_MINUS_ONE); // 11\n  const W2 = mod(_1n - s2); // 12\n  const W3 = mod(_1n + s2); // 13\n  return new ed25519.Point(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n}\n\nfunction ristretto255_map(bytes: Uint8Array): _RistrettoPoint {\n  abytes(bytes, 64);\n  const r1 = bytes255ToNumberLE(bytes.subarray(0, 32));\n  const R1 = calcElligatorRistrettoMap(r1);\n  const r2 = bytes255ToNumberLE(bytes.subarray(32, 64));\n  const R2 = calcElligatorRistrettoMap(r2);\n  return new _RistrettoPoint(R1.add(R2));\n}\n\n/**\n * Wrapper over Edwards Point for ristretto255.\n *\n * Each ed25519/ExtendedPoint has 8 different equivalent points. This can be\n * a source of bugs for protocols like ring signatures. Ristretto was created to solve this.\n * Ristretto point operates in X:Y:Z:T extended coordinates like ExtendedPoint,\n * but it should work in its own namespace: do not combine those two.\n * See [RFC9496](https://www.rfc-editor.org/rfc/rfc9496).\n */\nclass _RistrettoPoint extends PrimeEdwardsPoint<_RistrettoPoint> {\n  // Do NOT change syntax: the following gymnastics is done,\n  // because typescript strips comments, which makes bundlers disable tree-shaking.\n  // prettier-ignore\n  static BASE: _RistrettoPoint =\n    /* @__PURE__ */ (() => new _RistrettoPoint(ed25519.Point.BASE))();\n  // prettier-ignore\n  static ZERO: _RistrettoPoint =\n    /* @__PURE__ */ (() => new _RistrettoPoint(ed25519.Point.ZERO))();\n  // prettier-ignore\n  static Fp: IField<bigint> =\n    /* @__PURE__ */ (() => Fp)();\n  // prettier-ignore\n  static Fn: IField<bigint> =\n    /* @__PURE__ */ (() => Fn)();\n\n  constructor(ep: ExtendedPoint) {\n    super(ep);\n  }\n\n  static fromAffine(ap: AffinePoint<bigint>): _RistrettoPoint {\n    return new _RistrettoPoint(ed25519.Point.fromAffine(ap));\n  }\n\n  protected assertSame(other: _RistrettoPoint): void {\n    if (!(other instanceof _RistrettoPoint)) throw new Error('RistrettoPoint expected');\n  }\n\n  protected init(ep: EdwardsPoint): _RistrettoPoint {\n    return new _RistrettoPoint(ep);\n  }\n\n  /** @deprecated use `import { ristretto255_hasher } from '@noble/curves/ed25519.js';` */\n  static hashToCurve(hex: Hex): _RistrettoPoint {\n    return ristretto255_map(ensureBytes('ristrettoHash', hex, 64));\n  }\n\n  static fromBytes(bytes: Uint8Array): _RistrettoPoint {\n    abytes(bytes, 32);\n    const { a, d } = ed25519_CURVE;\n    const P = ed25519_CURVE_p;\n    const mod = (n: bigint) => Fp.create(n);\n    const s = bytes255ToNumberLE(bytes);\n    // 1. Check that s_bytes is the canonical encoding of a field element, or else abort.\n    // 3. Check that s is non-negative, or else abort\n    if (!equalBytes(Fp.toBytes(s), bytes) || isNegativeLE(s, P))\n      throw new Error('invalid ristretto255 encoding 1');\n    const s2 = mod(s * s);\n    const u1 = mod(_1n + a * s2); // 4 (a is -1)\n    const u2 = mod(_1n - a * s2); // 5\n    const u1_2 = mod(u1 * u1);\n    const u2_2 = mod(u2 * u2);\n    const v = mod(a * d * u1_2 - u2_2); // 6\n    const { isValid, value: I } = invertSqrt(mod(v * u2_2)); // 7\n    const Dx = mod(I * u2); // 8\n    const Dy = mod(I * Dx * v); // 9\n    let x = mod((s + s) * Dx); // 10\n    if (isNegativeLE(x, P)) x = mod(-x); // 10\n    const y = mod(u1 * Dy); // 11\n    const t = mod(x * y); // 12\n    if (!isValid || isNegativeLE(t, P) || y === _0n)\n      throw new Error('invalid ristretto255 encoding 2');\n    return new _RistrettoPoint(new ed25519.Point(x, y, _1n, t));\n  }\n\n  /**\n   * Converts ristretto-encoded string to ristretto point.\n   * Described in [RFC9496](https://www.rfc-editor.org/rfc/rfc9496#name-decode).\n   * @param hex Ristretto-encoded 32 bytes. Not every 32-byte string is valid ristretto encoding\n   */\n  static fromHex(hex: Hex): _RistrettoPoint {\n    return _RistrettoPoint.fromBytes(ensureBytes('ristrettoHex', hex, 32));\n  }\n\n  static msm(points: _RistrettoPoint[], scalars: bigint[]): _RistrettoPoint {\n    return pippenger(_RistrettoPoint, ed25519.Point.Fn, points, scalars);\n  }\n\n  /**\n   * Encodes ristretto point to Uint8Array.\n   * Described in [RFC9496](https://www.rfc-editor.org/rfc/rfc9496#name-encode).\n   */\n  toBytes(): Uint8Array {\n    let { X, Y, Z, T } = this.ep;\n    const P = ed25519_CURVE_p;\n    const mod = (n: bigint) => Fp.create(n);\n    const u1 = mod(mod(Z + Y) * mod(Z - Y)); // 1\n    const u2 = mod(X * Y); // 2\n    // Square root always exists\n    const u2sq = mod(u2 * u2);\n    const { value: invsqrt } = invertSqrt(mod(u1 * u2sq)); // 3\n    const D1 = mod(invsqrt * u1); // 4\n    const D2 = mod(invsqrt * u2); // 5\n    const zInv = mod(D1 * D2 * T); // 6\n    let D: bigint; // 7\n    if (isNegativeLE(T * zInv, P)) {\n      let _x = mod(Y * SQRT_M1);\n      let _y = mod(X * SQRT_M1);\n      X = _x;\n      Y = _y;\n      D = mod(D1 * INVSQRT_A_MINUS_D);\n    } else {\n      D = D2; // 8\n    }\n    if (isNegativeLE(X * zInv, P)) Y = mod(-Y); // 9\n    let s = mod((Z - Y) * D); // 10 (check footer's note, no sqrt(-a))\n    if (isNegativeLE(s, P)) s = mod(-s);\n    return Fp.toBytes(s); // 11\n  }\n\n  /**\n   * Compares two Ristretto points.\n   * Described in [RFC9496](https://www.rfc-editor.org/rfc/rfc9496#name-equals).\n   */\n  equals(other: _RistrettoPoint): boolean {\n    this.assertSame(other);\n    const { X: X1, Y: Y1 } = this.ep;\n    const { X: X2, Y: Y2 } = other.ep;\n    const mod = (n: bigint) => Fp.create(n);\n    // (x1 * y2 == y1 * x2) | (y1 * y2 == x1 * x2)\n    const one = mod(X1 * Y2) === mod(Y1 * X2);\n    const two = mod(Y1 * Y2) === mod(X1 * X2);\n    return one || two;\n  }\n\n  is0(): boolean {\n    return this.equals(_RistrettoPoint.ZERO);\n  }\n}\n\nexport const ristretto255: {\n  Point: typeof _RistrettoPoint;\n} = { Point: _RistrettoPoint };\n\n/** Hashing to ristretto255 points / field. RFC 9380 methods. */\nexport const ristretto255_hasher: H2CHasherBase<bigint> = {\n  hashToCurve(msg: Uint8Array, options?: htfBasicOpts): _RistrettoPoint {\n    const DST = options?.DST || 'ristretto255_XMD:SHA-512_R255MAP_RO_';\n    const xmd = expand_message_xmd(msg, DST, 64, sha512);\n    return ristretto255_map(xmd);\n  },\n  hashToScalar(msg: Uint8Array, options: htfBasicOpts = { DST: _DST_scalar }) {\n    const xmd = expand_message_xmd(msg, options.DST, 64, sha512);\n    return Fn.create(bytesToNumberLE(xmd));\n  },\n};\n\n// export const ristretto255_oprf: OPRF = createORPF({\n//   name: 'ristretto255-SHA512',\n//   Point: RistrettoPoint,\n//   hash: sha512,\n//   hashToGroup: ristretto255_hasher.hashToCurve,\n//   hashToScalar: ristretto255_hasher.hashToScalar,\n// });\n\n/**\n * Weird / bogus points, useful for debugging.\n * All 8 ed25519 points of 8-torsion subgroup can be generated from the point\n * T = `26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05`.\n * ⟨T⟩ = { O, T, 2T, 3T, 4T, 5T, 6T, 7T }\n */\nexport const ED25519_TORSION_SUBGROUP: string[] = [\n  '0100000000000000000000000000000000000000000000000000000000000000',\n  'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a',\n  '0000000000000000000000000000000000000000000000000000000000000080',\n  '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05',\n  'ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f',\n  '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85',\n  '0000000000000000000000000000000000000000000000000000000000000000',\n  'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa',\n];\n\n/** @deprecated use `ed25519.utils.toMontgomery` */\nexport function edwardsToMontgomeryPub(edwardsPub: Hex): Uint8Array {\n  return ed25519.utils.toMontgomery(ensureBytes('pub', edwardsPub));\n}\n/** @deprecated use `ed25519.utils.toMontgomery` */\nexport const edwardsToMontgomery: typeof edwardsToMontgomeryPub = edwardsToMontgomeryPub;\n\n/** @deprecated use `ed25519.utils.toMontgomerySecret` */\nexport function edwardsToMontgomeryPriv(edwardsPriv: Uint8Array): Uint8Array {\n  return ed25519.utils.toMontgomerySecret(ensureBytes('pub', edwardsPriv));\n}\n\n/** @deprecated use `ristretto255.Point` */\nexport const RistrettoPoint: typeof _RistrettoPoint = _RistrettoPoint;\n/** @deprecated use `import { ed25519_hasher } from '@noble/curves/ed25519.js';` */\nexport const hashToCurve: H2CMethod<bigint> = /* @__PURE__ */ (() => ed25519_hasher.hashToCurve)();\n/** @deprecated use `import { ed25519_hasher } from '@noble/curves/ed25519.js';` */\nexport const encodeToCurve: H2CMethod<bigint> = /* @__PURE__ */ (() =>\n  ed25519_hasher.encodeToCurve)();\ntype RistHasher = (msg: Uint8Array, options: htfBasicOpts) => _RistrettoPoint;\n/** @deprecated use `import { ristretto255_hasher } from '@noble/curves/ed25519.js';` */\nexport const hashToRistretto255: RistHasher = /* @__PURE__ */ (() =>\n  ristretto255_hasher.hashToCurve as RistHasher)();\n/** @deprecated use `import { ristretto255_hasher } from '@noble/curves/ed25519.js';` */\nexport const hash_to_ristretto255: RistHasher = /* @__PURE__ */ (() =>\n  ristretto255_hasher.hashToCurve as RistHasher)();\n","/**\n * To add a new error, follow the instructions at\n * https://github.com/anza-xyz/kit/tree/main/packages/errors/#adding-a-new-error\n *\n * @module\n * @privateRemarks\n * WARNING:\n *   - Don't remove error codes\n *   - Don't change or reorder error codes.\n *\n * Good naming conventions:\n *   - Prefixing common errors — e.g. under the same package — can be a good way to namespace them. E.g. All codec-related errors start with `SOLANA_ERROR__CODECS__`.\n *   - Use consistent names — e.g. choose `PDA` or `PROGRAM_DERIVED_ADDRESS` and stick with it. Ensure your names are consistent with existing error codes. The decision might have been made for you.\n *   - Recommended prefixes and suffixes:\n *     - `MALFORMED_`: Some input was not constructed properly. E.g. `MALFORMED_BASE58_ENCODED_ADDRESS`.\n *     - `INVALID_`: Some input is invalid (other than because it was MALFORMED). E.g. `INVALID_NUMBER_OF_BYTES`.\n *     - `EXPECTED_`: Some input was different than expected, no need to specify the \"GOT\" part unless necessary. E.g. `EXPECTED_DECODED_ACCOUNT`.\n *     - `_CANNOT_`: Some operation cannot be performed or some input cannot be used due to some condition. E.g. `CANNOT_DECODE_EMPTY_BYTE_ARRAY` or `PDA_CANNOT_END_WITH_PDA_MARKER`.\n *     - `_MUST_BE_`: Some condition must be true. E.g. `NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE`.\n *     - `_FAILED_TO_`: Tried to perform some operation and failed. E.g. `FAILED_TO_DECODE_ACCOUNT`.\n *     - `_NOT_FOUND`: Some operation lead to not finding something. E.g. `ACCOUNT_NOT_FOUND`.\n *     - `_OUT_OF_RANGE`: Some value is out of range. E.g. `ENUM_DISCRIMINATOR_OUT_OF_RANGE`.\n *     - `_EXCEEDED`: Some limit was exceeded. E.g. `PDA_MAX_SEED_LENGTH_EXCEEDED`.\n *     - `_MISMATCH`: Some elements do not match. E.g. `ENCODER_DECODER_FIXED_SIZE_MISMATCH`.\n *     - `_MISSING`: Some required input is missing. E.g. `TRANSACTION_FEE_PAYER_MISSING`.\n *     - `_UNIMPLEMENTED`: Some required component is not available in the environment. E.g. `SUBTLE_CRYPTO_VERIFY_FUNCTION_UNIMPLEMENTED`.\n */\nexport const SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED = 1;\nexport const SOLANA_ERROR__INVALID_NONCE = 2;\nexport const SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND = 3;\nexport const SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE = 4;\nexport const SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH = 5;\nexport const SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE = 6;\nexport const SOLANA_ERROR__MALFORMED_BIGINT_STRING = 7;\nexport const SOLANA_ERROR__MALFORMED_NUMBER_STRING = 8;\nexport const SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE = 9;\nexport const SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR = 10;\n\n// JSON-RPC-related errors.\n// Reserve error codes in the range [-32768, -32000]\n// Keep in sync with https://github.com/anza-xyz/agave/blob/master/rpc-client-api/src/custom_error.rs\nexport const SOLANA_ERROR__JSON_RPC__PARSE_ERROR = -32700;\nexport const SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR = -32603;\nexport const SOLANA_ERROR__JSON_RPC__INVALID_PARAMS = -32602;\nexport const SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND = -32601;\nexport const SOLANA_ERROR__JSON_RPC__INVALID_REQUEST = -32600;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED = -32016;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION = -32015;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET = -32014;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH = -32013;\nexport const SOLANA_ERROR__JSON_RPC__SCAN_ERROR = -32012;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE = -32011;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX = -32010;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED = -32009;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT = -32008;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED = -32007;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE = -32006;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY = -32005;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE = -32004;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE = -32003;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE = -32002;\nexport const SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP = -32001;\n\n// Addresses-related errors.\n// Reserve error codes in the range [2800000-2800999].\nexport const SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH = 2800000;\nexport const SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE = 2800001;\nexport const SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS = 2800002;\nexport const SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY = 2800003;\nexport const SOLANA_ERROR__ADDRESSES__MALFORMED_PDA = 2800004;\nexport const SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE = 2800005;\nexport const SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED = 2800006;\nexport const SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED = 2800007;\nexport const SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE = 2800008;\nexport const SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED = 2800009;\nexport const SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER = 2800010;\nexport const SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS = 2800011;\n\n// Account-related errors.\n// Reserve error codes in the range [3230000-3230999].\nexport const SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND = 3230000;\nexport const SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND = 32300001;\nexport const SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT = 3230002;\nexport const SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT = 3230003;\nexport const SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED = 3230004;\n\n// Subtle-Crypto-related errors.\n// Reserve error codes in the range [3610000-3610999].\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT = 3610000;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED = 3610001;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED = 3610002;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED = 3610003;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED = 3610004;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED = 3610005;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED = 3610006;\nexport const SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY = 3610007;\n\n// Crypto-related errors.\n// Reserve error codes in the range [3611000-3611050].\nexport const SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED = 3611000;\n\n// Key-related errors.\n// Reserve error codes in the range [3704000-3704999].\nexport const SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH = 3704000;\nexport const SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH = 3704001;\nexport const SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH = 3704002;\nexport const SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE = 3704003;\nexport const SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY = 3704004;\n\n// Instruction-related errors.\n// Reserve error codes in the range [4128000-4128999].\nexport const SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS = 4128000;\nexport const SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA = 4128001;\nexport const SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH = 4128002;\n\n// Instruction errors.\n// Reserve error codes starting with [4615000-4615999] for the Rust enum `InstructionError`.\n// Error names here are dictated by the RPC (see ./instruction-error.ts).\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN = 4615000;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR = 4615001;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT = 4615002;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA = 4615003;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA = 4615004;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL = 4615005;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS = 4615006;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID = 4615007;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE = 4615008;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED = 4615009;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT = 4615010;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION = 4615011;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID = 4615012;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND = 4615013;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED = 4615014;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE = 4615015;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED = 4615016;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX = 4615017;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED = 4615018;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED = 4615019;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS = 4615020;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED = 4615021;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE = 4615022;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED = 4615023;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 4615024;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC = 4615025;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM = 4615026;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR = 4615027;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED = 4615028;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE = 4615029;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT = 4615030;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID = 4615031;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH = 4615032;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT = 4615033;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED = 4615034;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED = 4615035;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS = 4615036;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC = 4615037;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED = 4615038;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION = 4615039;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE = 4615040;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE = 4615041;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE = 4615042;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE = 4615043;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY = 4615044;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR = 4615045;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT = 4615046;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER = 4615047;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW = 4615048;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR = 4615049;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER = 4615050;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED = 4615051;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED = 4615052;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED = 4615053;\nexport const SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS = 4615054;\n\n// Signer-related errors.\n// Reserve error codes in the range [5508000-5508999].\nexport const SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS = 5508000;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER = 5508001;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER = 5508002;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER = 5508003;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER = 5508004;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER = 5508005;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER = 5508006;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER = 5508007;\nexport const SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER = 5508008;\nexport const SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS = 5508009;\nexport const SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING = 5508010;\nexport const SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED = 5508011;\n\n// Transaction-related errors.\n// Reserve error codes in the range [5663000-5663999].\nexport const SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES = 5663000;\nexport const SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE = 5663001;\nexport const SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME = 5663002;\nexport const SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME = 5663003;\nexport const SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE = 5663004;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING = 5663005;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE = 5663006;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND = 5663007;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING = 5663008;\nexport const SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING = 5663009;\nexport const SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING = 5663010;\nexport const SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING = 5663011;\nexport const SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING = 5663012;\nexport const SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING = 5663013;\nexport const SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE = 5663014;\nexport const SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION = 5663015;\nexport const SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES = 5663016;\nexport const SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH = 5663017;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT = 5663018;\nexport const SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT = 5663019;\nexport const SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT = 5663020;\n\n// Transaction errors.\n// Reserve error codes starting with [7050000-7050999] for the Rust enum `TransactionError`.\n// Error names here are dictated by the RPC (see ./transaction-error.ts).\nexport const SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN = 7050000;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE = 7050001;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE = 7050002;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND = 7050003;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND = 7050004;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE = 7050005;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE = 7050006;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED = 7050007;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND = 7050008;\n// `InstructionError` intentionally omitted.\nexport const SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP = 7050009;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE = 7050010;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX = 7050011;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE = 7050012;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION = 7050013;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE = 7050014;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE = 7050015;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING = 7050016;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT = 7050017;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION = 7050018;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT = 7050019;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT = 7050020;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT = 7050021;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS = 7050022;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND = 7050023;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER = 7050024;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA = 7050025;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX = 7050026;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT = 7050027;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT = 7050028;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT = 7050029;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION = 7050030;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT = 7050031;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED = 7050032;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT = 7050033;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED = 7050034;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED = 7050035;\nexport const SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION = 7050036;\n\n// Codec-related errors.\n// Reserve error codes in the range [8078000-8078999].\nexport const SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY = 8078000;\nexport const SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH = 8078001;\nexport const SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH = 8078002;\nexport const SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH = 8078003;\nexport const SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH = 8078004;\nexport const SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH = 8078005;\nexport const SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH = 8078006;\nexport const SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS = 8078007;\nexport const SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE = 8078008;\nexport const SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT = 8078009;\nexport const SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT = 8078010;\nexport const SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE = 8078011;\nexport const SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE = 8078012;\nexport const SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH = 8078013;\nexport const SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE = 8078014;\nexport const SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT = 8078015;\nexport const SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE = 8078016;\nexport const SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE = 8078017;\nexport const SOLANA_ERROR__CODECS__INVALID_CONSTANT = 8078018;\nexport const SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE = 8078019;\nexport const SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL = 8078020;\nexport const SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES = 8078021;\nexport const SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS = 8078022;\n\n// RPC-related errors.\n// Reserve error codes in the range [8100000-8100999].\nexport const SOLANA_ERROR__RPC__INTEGER_OVERFLOW = 8100000;\nexport const SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN = 8100001;\nexport const SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR = 8100002;\nexport const SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD = 8100003;\n\n// RPC-Subscriptions-related errors.\n// Reserve error codes in the range [8190000-8190999].\nexport const SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN = 8190000;\nexport const SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID = 8190001;\nexport const SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED = 8190002;\nexport const SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED = 8190003;\nexport const SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT = 8190004;\n\n// Invariant violation errors.\n// Reserve error codes in the range [9900000-9900999].\n// These errors should only be thrown when there is a bug with the\n// library itself and should, in theory, never reach the end user.\nexport const SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING = 9900000;\nexport const SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE = 9900001;\nexport const SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING = 9900002;\nexport const SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE = 9900003;\nexport const SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED = 9900004;\n\n/**\n * A union of every Solana error code\n *\n * @privateRemarks\n * You might be wondering why this is not a TypeScript enum or const enum.\n *\n * One of the goals of this library is to enable people to use some or none of it without having to\n * bundle all of it.\n *\n * If we made the set of error codes an enum then anyone who imported it (even if to only use a\n * single error code) would be forced to bundle every code and its label.\n *\n * Const enums appear to solve this problem by letting the compiler inline only the codes that are\n * actually used. Unfortunately exporting ambient (const) enums from a library like `@solana/errors`\n * is not safe, for a variety of reasons covered here: https://stackoverflow.com/a/28818850\n */\nexport type SolanaErrorCode =\n    | typeof SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND\n    | typeof SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED\n    | typeof SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT\n    | typeof SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT\n    | typeof SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND\n    | typeof SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED\n    | typeof SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS\n    | typeof SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH\n    | typeof SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY\n    | typeof SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS\n    | typeof SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE\n    | typeof SOLANA_ERROR__ADDRESSES__MALFORMED_PDA\n    | typeof SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED\n    | typeof SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED\n    | typeof SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER\n    | typeof SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED\n    | typeof SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY\n    | typeof SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS\n    | typeof SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL\n    | typeof SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH\n    | typeof SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH\n    | typeof SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH\n    | typeof SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH\n    | typeof SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH\n    | typeof SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH\n    | typeof SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE\n    | typeof SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH\n    | typeof SOLANA_ERROR__CODECS__INVALID_CONSTANT\n    | typeof SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT\n    | typeof SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT\n    | typeof SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT\n    | typeof SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS\n    | typeof SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE\n    | typeof SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES\n    | typeof SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS\n    | typeof SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA\n    | typeof SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID\n    | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR\n    | typeof SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH\n    | typeof SOLANA_ERROR__INVALID_NONCE\n    | typeof SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING\n    | typeof SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE\n    | typeof SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING\n    | typeof SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE\n    | typeof SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR\n    | typeof SOLANA_ERROR__JSON_RPC__INVALID_PARAMS\n    | typeof SOLANA_ERROR__JSON_RPC__INVALID_REQUEST\n    | typeof SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND\n    | typeof SOLANA_ERROR__JSON_RPC__PARSE_ERROR\n    | typeof SOLANA_ERROR__JSON_RPC__SCAN_ERROR\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE\n    | typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION\n    | typeof SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH\n    | typeof SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH\n    | typeof SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH\n    | typeof SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY\n    | typeof SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__MALFORMED_BIGINT_STRING\n    | typeof SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR\n    | typeof SOLANA_ERROR__MALFORMED_NUMBER_STRING\n    | typeof SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND\n    | typeof SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD\n    | typeof SOLANA_ERROR__RPC__INTEGER_OVERFLOW\n    | typeof SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR\n    | typeof SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN\n    | typeof SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN\n    | typeof SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED\n    | typeof SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED\n    | typeof SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT\n    | typeof SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID\n    | typeof SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER\n    | typeof SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS\n    | typeof SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING\n    | typeof SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED\n    | typeof SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION\n    | typeof SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES\n    | typeof SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME\n    | typeof SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE\n    | typeof SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES\n    | typeof SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE\n    | typeof SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH\n    | typeof SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING\n    | typeof SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT\n    | typeof SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT;\n\n/**\n * Errors of this type are understood to have an optional {@link SolanaError} nested inside as\n * `cause`.\n */\nexport type SolanaErrorCodeWithCause = typeof SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE;\n","/**\n * To add a new error, follow the instructions at\n * https://github.com/anza-xyz/kit/tree/main/packages/errors/#adding-a-new-error\n *\n * @privateRemarks\n * WARNING:\n *   - Don't change or remove members of an error's context.\n */\nimport {\n    SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED,\n    SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT,\n    SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT,\n    SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND,\n    SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS,\n    SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH,\n    SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED,\n    SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED,\n    SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE,\n    SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED,\n    SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY,\n    SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS,\n    SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH,\n    SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE,\n    SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH,\n    SOLANA_ERROR__CODECS__INVALID_CONSTANT,\n    SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS,\n    SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE,\n    SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES,\n    SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE,\n    SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS,\n    SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA,\n    SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW,\n    SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH,\n    SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n    SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX,\n    SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND,\n    SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER,\n    SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR,\n    SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH,\n    SOLANA_ERROR__INVALID_NONCE,\n    SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING,\n    SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED,\n    SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE,\n    SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR,\n    SOLANA_ERROR__JSON_RPC__INVALID_PARAMS,\n    SOLANA_ERROR__JSON_RPC__INVALID_REQUEST,\n    SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND,\n    SOLANA_ERROR__JSON_RPC__PARSE_ERROR,\n    SOLANA_ERROR__JSON_RPC__SCAN_ERROR,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION,\n    SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__MALFORMED_BIGINT_STRING,\n    SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR,\n    SOLANA_ERROR__MALFORMED_NUMBER_STRING,\n    SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD,\n    SOLANA_ERROR__RPC__INTEGER_OVERFLOW,\n    SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR,\n    SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT,\n    SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS,\n    SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER,\n    SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY,\n    SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING,\n    SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION,\n    SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT,\n    SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES,\n    SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE,\n    SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH,\n    SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING,\n    SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION,\n    SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT,\n    SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED,\n    SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN,\n    SolanaErrorCode,\n} from './codes';\nimport { RpcSimulateTransactionResult } from './json-rpc-error';\n\ntype BasicInstructionErrorContext<T extends SolanaErrorCode> = Readonly<{ [P in T]: { index: number } }>;\n\ntype DefaultUnspecifiedErrorContextToUndefined<T> = {\n    [P in SolanaErrorCode]: P extends keyof T ? T[P] : undefined;\n};\n\ntype TypedArrayMutableProperties = 'copyWithin' | 'fill' | 'reverse' | 'set' | 'sort';\ninterface ReadonlyUint8Array extends Omit<Uint8Array, TypedArrayMutableProperties> {\n    readonly [n: number]: number;\n}\n\n/** A amount of bytes. */\ntype Bytes = number;\n\n/**\n * A map of every {@link SolanaError} code to the type of its `context` property.\n */\nexport type SolanaErrorContext = DefaultUnspecifiedErrorContextToUndefined<\n    BasicInstructionErrorContext<\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID\n        | typeof SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR\n    > & {\n        [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: {\n            address: string;\n        };\n        [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]: {\n            addresses: string[];\n        };\n        [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: {\n            address: string;\n        };\n        [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: {\n            address: string;\n        };\n        [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: {\n            addresses: string[];\n        };\n        [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: {\n            putativeAddress: string;\n        };\n        [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]: {\n            actual: number;\n            maxSeeds: number;\n        };\n        [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]: {\n            actual: number;\n            index: number;\n            maxSeedLength: number;\n        };\n        [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]: {\n            bump: number;\n        };\n        [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]: {\n            currentBlockHeight: bigint;\n            lastValidBlockHeight: bigint;\n        };\n        [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]: {\n            codecDescription: string;\n        };\n        [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]: {\n            stringValues: string[];\n        };\n        [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]: {\n            encodedBytes: ReadonlyUint8Array;\n            hexEncodedBytes: string;\n            hexSentinel: string;\n            sentinel: ReadonlyUint8Array;\n        };\n        [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]: {\n            decoderFixedSize: number;\n            encoderFixedSize: number;\n        };\n        [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]: {\n            decoderMaxSize: number | undefined;\n            encoderMaxSize: number | undefined;\n        };\n        [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]: {\n            discriminator: bigint | number;\n            formattedValidDiscriminators: string;\n            validDiscriminators: number[];\n        };\n        [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]: {\n            bytesLength: number;\n            codecDescription: string;\n        };\n        [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]: {\n            codecDescription: string;\n            expectedSize: number;\n            hexZeroValue: string;\n            zeroValue: ReadonlyUint8Array;\n        };\n        [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]: {\n            bytesLength: number;\n            codecDescription: string;\n            expected: number;\n        };\n        [SOLANA_ERROR__CODECS__INVALID_CONSTANT]: {\n            constant: ReadonlyUint8Array;\n            data: ReadonlyUint8Array;\n            hexConstant: string;\n            hexData: string;\n            offset: number;\n        };\n        [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]: {\n            value: bigint | boolean | number | string | null | undefined;\n            variants: readonly (bigint | boolean | number | string | null | undefined)[];\n        };\n        [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]: {\n            formattedNumericalValues: string;\n            numericalValues: number[];\n            stringValues: string[];\n            variant: number | string | symbol;\n        };\n        [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]: {\n            value: bigint | boolean | number | string | null | undefined;\n            variants: readonly (bigint | boolean | number | string | null | undefined)[];\n        };\n        [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]: {\n            actual: bigint | number;\n            codecDescription: string;\n            expected: bigint | number;\n        };\n        [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: {\n            alphabet: string;\n            base: number;\n            value: string;\n        };\n        [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]: {\n            discriminator: bigint | number;\n            maxRange: number;\n            minRange: number;\n        };\n        [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]: {\n            codecDescription: string;\n            max: bigint | number;\n            min: bigint | number;\n            value: bigint | number;\n        };\n        [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]: {\n            bytesLength: number;\n            codecDescription: string;\n            offset: number;\n        };\n        [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]: {\n            decodedBytes: ReadonlyUint8Array;\n            hexDecodedBytes: string;\n            hexSentinel: string;\n            sentinel: ReadonlyUint8Array;\n        };\n        [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]: {\n            maxRange: number;\n            minRange: number;\n            variant: number;\n        };\n        [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: {\n            encodedData: string;\n            index: number;\n        };\n        [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: {\n            code: number;\n            index: number;\n        };\n        [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: {\n            errorName: string;\n            index: number;\n            instructionErrorContext?: unknown;\n        };\n        [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: {\n            data?: ReadonlyUint8Array;\n            programAddress: string;\n        };\n        [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: {\n            accountAddresses?: string[];\n            programAddress: string;\n        };\n        [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]: {\n            actualProgramAddress: string;\n            expectedProgramAddress: string;\n        };\n        [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__INVALID_NONCE]: {\n            actualNonceValue: string;\n            expectedNonceValue: string;\n        };\n        [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]: {\n            cacheKey: string;\n        };\n        [SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED]: {\n            channelName: string;\n            supportedChannelNames: string[];\n        };\n        [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]: {\n            unexpectedValue: unknown;\n        };\n        [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: {\n            contextSlot: bigint;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: {\n            numSlotsBehind?: number;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: Omit<\n            RpcSimulateTransactionResult,\n            'err'\n        >;\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: {\n            __serverMessage: string;\n        };\n        [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: {\n            byteLength: number;\n        };\n        [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]: {\n            actualLength: number;\n        };\n        [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: {\n            value: string;\n        };\n        [SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR]: {\n            error: unknown;\n            message: string;\n        };\n        [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: {\n            value: string;\n        };\n        [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: {\n            nonceAccountAddress: string;\n        };\n        [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN]: {\n            notificationName: string;\n        };\n        [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT]: {\n            errorEvent: Event;\n        };\n        [SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD]: {\n            method: string;\n            params: unknown[];\n        };\n        [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]: {\n            argumentLabel: string;\n            keyPath: readonly (number | string | symbol)[];\n            methodName: string;\n            optionalPathLabel: string;\n            path?: string;\n            value: bigint;\n        };\n        [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: {\n            headers: Headers;\n            message: string;\n            statusCode: number;\n        };\n        [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]: {\n            headers: string[];\n        };\n        [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]: {\n            address: string;\n        };\n        [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: {\n            key: CryptoKey;\n        };\n        [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]: {\n            value: bigint;\n        };\n        [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]: {\n            index: number;\n        };\n        [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]: {\n            accountIndex: number;\n        };\n        [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]: {\n            accountIndex: number;\n        };\n        [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: {\n            errorName: string;\n            transactionErrorContext?: unknown;\n        };\n        [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]: {\n            expectedAddresses: string[];\n            unexpectedAddresses: string[];\n        };\n        [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: {\n            index: number;\n        };\n        [SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT]: {\n            transactionSize: Bytes;\n            transactionSizeLimit: Bytes;\n        };\n        [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]: {\n            lookupTableAddresses: string[];\n        };\n        [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]: {\n            highestKnownIndex: number;\n            highestRequestedIndex: number;\n            lookupTableAddress: string;\n        };\n        [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]: {\n            index: number;\n        };\n        [SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT]: {\n            unitsConsumed: number;\n        };\n        [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]: {\n            programAddress: string;\n        };\n        [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]: {\n            programAddress: string;\n        };\n        [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]: {\n            numRequiredSignatures: number;\n            signaturesLength: number;\n            signerAddresses: string[];\n        };\n        [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: {\n            addresses: string[];\n        };\n        [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]: {\n            actualVersion: number;\n        };\n    }\n>;\n\nexport function decodeEncodedContext(encodedContext: string): object {\n    const decodedUrlString = __NODEJS__ ? Buffer.from(encodedContext, 'base64').toString('utf8') : atob(encodedContext);\n    return Object.fromEntries(new URLSearchParams(decodedUrlString).entries());\n}\n\nfunction encodeValue(value: unknown): string {\n    if (Array.isArray(value)) {\n        const commaSeparatedValues = value.map(encodeValue).join('%2C%20' /* \", \" */);\n        return '%5B' /* \"[\" */ + commaSeparatedValues + /* \"]\" */ '%5D';\n    } else if (typeof value === 'bigint') {\n        return `${value}n`;\n    } else {\n        return encodeURIComponent(\n            String(\n                value != null && Object.getPrototypeOf(value) === null\n                    ? // Plain objects with no prototype don't have a `toString` method.\n                      // Convert them before stringifying them.\n                      { ...(value as object) }\n                    : value,\n            ),\n        );\n    }\n}\n\nfunction encodeObjectContextEntry([key, value]: [string, unknown]): `${typeof key}=${string}` {\n    return `${key}=${encodeValue(value)}`;\n}\n\nexport function encodeContextObject(context: object): string {\n    const searchParamsString = Object.entries(context).map(encodeObjectContextEntry).join('&');\n    return __NODEJS__ ? Buffer.from(searchParamsString, 'utf8').toString('base64') : btoa(searchParamsString);\n}\n","/**\n * To add a new error, follow the instructions at\n * https://github.com/anza-xyz/kit/tree/main/packages/errors#adding-a-new-error\n *\n * WARNING:\n *   - Don't change the meaning of an error message.\n */\nimport {\n    SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED,\n    SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT,\n    SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT,\n    SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND,\n    SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED,\n    SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS,\n    SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH,\n    SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY,\n    SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS,\n    SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE,\n    SOLANA_ERROR__ADDRESSES__MALFORMED_PDA,\n    SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED,\n    SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED,\n    SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE,\n    SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER,\n    SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED,\n    SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY,\n    SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS,\n    SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH,\n    SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH,\n    SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH,\n    SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH,\n    SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE,\n    SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH,\n    SOLANA_ERROR__CODECS__INVALID_CONSTANT,\n    SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT,\n    SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS,\n    SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE,\n    SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE,\n    SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES,\n    SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE,\n    SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED,\n    SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS,\n    SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA,\n    SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW,\n    SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH,\n    SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n    SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX,\n    SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND,\n    SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER,\n    SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC,\n    SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE,\n    SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR,\n    SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH,\n    SOLANA_ERROR__INVALID_NONCE,\n    SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING,\n    SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED,\n    SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE,\n    SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING,\n    SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE,\n    SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR,\n    SOLANA_ERROR__JSON_RPC__INVALID_PARAMS,\n    SOLANA_ERROR__JSON_RPC__INVALID_REQUEST,\n    SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND,\n    SOLANA_ERROR__JSON_RPC__PARSE_ERROR,\n    SOLANA_ERROR__JSON_RPC__SCAN_ERROR,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION,\n    SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH,\n    SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY,\n    SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE,\n    SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE,\n    SOLANA_ERROR__MALFORMED_BIGINT_STRING,\n    SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR,\n    SOLANA_ERROR__MALFORMED_NUMBER_STRING,\n    SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD,\n    SOLANA_ERROR__RPC__INTEGER_OVERFLOW,\n    SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR,\n    SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT,\n    SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID,\n    SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS,\n    SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER,\n    SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER,\n    SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS,\n    SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING,\n    SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY,\n    SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n    SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n    SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n    SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING,\n    SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION,\n    SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES,\n    SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT,\n    SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME,\n    SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT,\n    SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT,\n    SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING,\n    SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING,\n    SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE,\n    SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING,\n    SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES,\n    SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE,\n    SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH,\n    SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING,\n    SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE,\n    SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING,\n    SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE,\n    SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE,\n    SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED,\n    SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP,\n    SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE,\n    SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION,\n    SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE,\n    SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT,\n    SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT,\n    SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED,\n    SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE,\n    SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND,\n    SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED,\n    SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED,\n    SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE,\n    SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE,\n    SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS,\n    SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION,\n    SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN,\n    SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION,\n    SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT,\n    SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT,\n    SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT,\n    SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT,\n    SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT,\n    SolanaErrorCode,\n} from './codes';\n\n/**\n * A map of every {@link SolanaError} code to the error message shown to developers in development\n * mode.\n */\nexport const SolanaErrorMessages: Readonly<{\n    // This type makes this data structure exhaustive with respect to `SolanaErrorCode`.\n    // TypeScript will fail to build this project if add an error code without a message.\n    [P in SolanaErrorCode]: string;\n}> = {\n    [SOLANA_ERROR__ACCOUNTS__ACCOUNT_NOT_FOUND]: 'Account not found at address: $address',\n    [SOLANA_ERROR__ACCOUNTS__EXPECTED_ALL_ACCOUNTS_TO_BE_DECODED]:\n        'Not all accounts were decoded. Encoded accounts found at addresses: $addresses.',\n    [SOLANA_ERROR__ACCOUNTS__EXPECTED_DECODED_ACCOUNT]: 'Expected decoded account at address: $address',\n    [SOLANA_ERROR__ACCOUNTS__FAILED_TO_DECODE_ACCOUNT]: 'Failed to decode account data at address: $address',\n    [SOLANA_ERROR__ACCOUNTS__ONE_OR_MORE_ACCOUNTS_NOT_FOUND]: 'Accounts not found at addresses: $addresses',\n    [SOLANA_ERROR__ADDRESSES__FAILED_TO_FIND_VIABLE_PDA_BUMP_SEED]:\n        'Unable to find a viable program address bump seed.',\n    [SOLANA_ERROR__ADDRESSES__INVALID_BASE58_ENCODED_ADDRESS]: '$putativeAddress is not a base58-encoded address.',\n    [SOLANA_ERROR__ADDRESSES__INVALID_BYTE_LENGTH]:\n        'Expected base58 encoded address to decode to a byte array of length 32. Actual length: $actualLength.',\n    [SOLANA_ERROR__ADDRESSES__INVALID_ED25519_PUBLIC_KEY]: 'The `CryptoKey` must be an `Ed25519` public key.',\n    [SOLANA_ERROR__ADDRESSES__INVALID_OFF_CURVE_ADDRESS]:\n        '$putativeOffCurveAddress is not a base58-encoded off-curve address.',\n    [SOLANA_ERROR__ADDRESSES__INVALID_SEEDS_POINT_ON_CURVE]: 'Invalid seeds; point must fall off the Ed25519 curve.',\n    [SOLANA_ERROR__ADDRESSES__MALFORMED_PDA]:\n        'Expected given program derived address to have the following format: [Address, ProgramDerivedAddressBump].',\n    [SOLANA_ERROR__ADDRESSES__MAX_NUMBER_OF_PDA_SEEDS_EXCEEDED]:\n        'A maximum of $maxSeeds seeds, including the bump seed, may be supplied when creating an address. Received: $actual.',\n    [SOLANA_ERROR__ADDRESSES__MAX_PDA_SEED_LENGTH_EXCEEDED]:\n        'The seed at index $index with length $actual exceeds the maximum length of $maxSeedLength bytes.',\n    [SOLANA_ERROR__ADDRESSES__PDA_BUMP_SEED_OUT_OF_RANGE]:\n        'Expected program derived address bump to be in the range [0, 255], got: $bump.',\n    [SOLANA_ERROR__ADDRESSES__PDA_ENDS_WITH_PDA_MARKER]: 'Program address cannot end with PDA marker.',\n    [SOLANA_ERROR__ADDRESSES__STRING_LENGTH_OUT_OF_RANGE]:\n        'Expected base58-encoded address string of length in the range [32, 44]. Actual length: $actualLength.',\n    [SOLANA_ERROR__BLOCKHASH_STRING_LENGTH_OUT_OF_RANGE]:\n        'Expected base58-encoded blockash string of length in the range [32, 44]. Actual length: $actualLength.',\n    [SOLANA_ERROR__BLOCK_HEIGHT_EXCEEDED]:\n        'The network has progressed past the last block for which this transaction could have been committed.',\n    [SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY]:\n        'Codec [$codecDescription] cannot decode empty byte arrays.',\n    [SOLANA_ERROR__CODECS__CANNOT_USE_LEXICAL_VALUES_AS_ENUM_DISCRIMINATORS]:\n        'Enum codec cannot use lexical values [$stringValues] as discriminators. Either remove all lexical values or set `useValuesAsDiscriminators` to `false`.',\n    [SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL]:\n        'Sentinel [$hexSentinel] must not be present in encoded bytes [$hexEncodedBytes].',\n    [SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH]:\n        'Encoder and decoder must have the same fixed size, got [$encoderFixedSize] and [$decoderFixedSize].',\n    [SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH]:\n        'Encoder and decoder must have the same max size, got [$encoderMaxSize] and [$decoderMaxSize].',\n    [SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH]:\n        'Encoder and decoder must either both be fixed-size or variable-size.',\n    [SOLANA_ERROR__CODECS__ENUM_DISCRIMINATOR_OUT_OF_RANGE]:\n        'Enum discriminator out of range. Expected a number in [$formattedValidDiscriminators], got $discriminator.',\n    [SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH]: 'Expected a fixed-size codec, got a variable-size one.',\n    [SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH]:\n        'Codec [$codecDescription] expected a positive byte length, got $bytesLength.',\n    [SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH]: 'Expected a variable-size codec, got a fixed-size one.',\n    [SOLANA_ERROR__CODECS__EXPECTED_ZERO_VALUE_TO_MATCH_ITEM_FIXED_SIZE]:\n        'Codec [$codecDescription] expected zero-value [$hexZeroValue] to have the same size as the provided fixed-size item [$expectedSize bytes].',\n    [SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH]:\n        'Codec [$codecDescription] expected $expected bytes, got $bytesLength.',\n    [SOLANA_ERROR__CODECS__INVALID_CONSTANT]:\n        'Expected byte array constant [$hexConstant] to be present in data [$hexData] at offset [$offset].',\n    [SOLANA_ERROR__CODECS__INVALID_DISCRIMINATED_UNION_VARIANT]:\n        'Invalid discriminated union variant. Expected one of [$variants], got $value.',\n    [SOLANA_ERROR__CODECS__INVALID_ENUM_VARIANT]:\n        'Invalid enum variant. Expected one of [$stringValues] or a number in [$formattedNumericalValues], got $variant.',\n    [SOLANA_ERROR__CODECS__INVALID_LITERAL_UNION_VARIANT]:\n        'Invalid literal union variant. Expected one of [$variants], got $value.',\n    [SOLANA_ERROR__CODECS__INVALID_NUMBER_OF_ITEMS]:\n        'Expected [$codecDescription] to have $expected items, got $actual.',\n    [SOLANA_ERROR__CODECS__INVALID_STRING_FOR_BASE]: 'Invalid value $value for base $base with alphabet $alphabet.',\n    [SOLANA_ERROR__CODECS__LITERAL_UNION_DISCRIMINATOR_OUT_OF_RANGE]:\n        'Literal union discriminator out of range. Expected a number between $minRange and $maxRange, got $discriminator.',\n    [SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE]:\n        'Codec [$codecDescription] expected number to be in the range [$min, $max], got $value.',\n    [SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE]:\n        'Codec [$codecDescription] expected offset to be in the range [0, $bytesLength], got $offset.',\n    [SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES]:\n        'Expected sentinel [$hexSentinel] to be present in decoded bytes [$hexDecodedBytes].',\n    [SOLANA_ERROR__CODECS__UNION_VARIANT_OUT_OF_RANGE]:\n        'Union variant out of range. Expected an index between $minRange and $maxRange, got $variant.',\n    [SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED]: 'No random values implementation could be found.',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_ALREADY_INITIALIZED]: 'instruction requires an uninitialized account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_FAILED]:\n        'instruction tries to borrow reference for an account which is already borrowed',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]:\n        'instruction left account with an outstanding borrowed reference',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_SIZE_CHANGED]:\n        \"program other than the account's owner changed the size of the account data\",\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_DATA_TOO_SMALL]: 'account data too small for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_EXECUTABLE]: 'instruction expected an executable account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ACCOUNT_NOT_RENT_EXEMPT]:\n        'An account does not have enough lamports to be rent-exempt',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ARITHMETIC_OVERFLOW]: 'Program arithmetic overflowed',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR]: 'Failed to serialize or deserialize account data: $encodedData',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__BUILTIN_PROGRAMS_MUST_CONSUME_COMPUTE_UNITS]:\n        'Builtin programs must consume compute units',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__CALL_DEPTH]: 'Cross-program invocation call depth too deep',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__COMPUTATIONAL_BUDGET_EXCEEDED]: 'Computational budget exceeded',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM]: 'custom program error: #$code',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_INDEX]: 'instruction contains duplicate accounts',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__DUPLICATE_ACCOUNT_OUT_OF_SYNC]:\n        'instruction modifications of multiply-passed account differ',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_ACCOUNT_NOT_RENT_EXEMPT]: 'executable accounts must be rent exempt',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_DATA_MODIFIED]: 'instruction changed executable accounts data',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_LAMPORT_CHANGE]:\n        'instruction changed the balance of an executable account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXECUTABLE_MODIFIED]: 'instruction changed executable bit of an account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_DATA_MODIFIED]:\n        'instruction modified data of an account it does not own',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__EXTERNAL_ACCOUNT_LAMPORT_SPEND]:\n        'instruction spent from the balance of an account it does not own',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__GENERIC_ERROR]: 'generic instruction error',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__ILLEGAL_OWNER]: 'Provided owner is not allowed',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__IMMUTABLE]: 'Account is immutable',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_AUTHORITY]: 'Incorrect authority provided',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INCORRECT_PROGRAM_ID]: 'incorrect program id for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INSUFFICIENT_FUNDS]: 'insufficient funds for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_DATA]: 'invalid account data for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ACCOUNT_OWNER]: 'Invalid account owner',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ARGUMENT]: 'invalid program argument',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_ERROR]: 'program returned invalid error code',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_INSTRUCTION_DATA]: 'invalid instruction data',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_REALLOC]: 'Failed to reallocate account data',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__INVALID_SEEDS]: 'Provided seeds do not result in a valid address',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_DATA_ALLOCATIONS_EXCEEDED]:\n        'Accounts data allocations exceeded the maximum allowed per transaction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_ACCOUNTS_EXCEEDED]: 'Max accounts exceeded',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_INSTRUCTION_TRACE_LENGTH_EXCEEDED]: 'Max instruction trace length exceeded',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MAX_SEED_LENGTH_EXCEEDED]:\n        'Length of the seed is too long for address generation',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_ACCOUNT]: 'An account required by the instruction is missing',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MISSING_REQUIRED_SIGNATURE]: 'missing required signature for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__MODIFIED_PROGRAM_ID]:\n        'instruction illegally modified the program id of an account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__NOT_ENOUGH_ACCOUNT_KEYS]: 'insufficient account keys for instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__PRIVILEGE_ESCALATION]:\n        'Cross-program invocation with unauthorized signer or writable account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_ENVIRONMENT_SETUP_FAILURE]:\n        'Failed to create program execution environment',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPILE]: 'Program failed to compile',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__PROGRAM_FAILED_TO_COMPLETE]: 'Program failed to complete',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_DATA_MODIFIED]: 'instruction modified data of a read-only account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__READONLY_LAMPORT_CHANGE]:\n        'instruction changed the balance of a read-only account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__REENTRANCY_NOT_ALLOWED]:\n        'Cross-program invocation reentrancy not allowed for this instruction',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__RENT_EPOCH_MODIFIED]: 'instruction modified rent epoch of an account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__UNBALANCED_INSTRUCTION]:\n        'sum of account balances before and after instruction do not match',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__UNINITIALIZED_ACCOUNT]: 'instruction requires an initialized account',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN]: '',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_PROGRAM_ID]: 'Unsupported program id',\n    [SOLANA_ERROR__INSTRUCTION_ERROR__UNSUPPORTED_SYSVAR]: 'Unsupported sysvar',\n    [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_ACCOUNTS]: 'The instruction does not have any accounts.',\n    [SOLANA_ERROR__INSTRUCTION__EXPECTED_TO_HAVE_DATA]: 'The instruction does not have any data.',\n    [SOLANA_ERROR__INSTRUCTION__PROGRAM_ID_MISMATCH]:\n        'Expected instruction to have progress address $expectedProgramAddress, got $actualProgramAddress.',\n    [SOLANA_ERROR__INVALID_BLOCKHASH_BYTE_LENGTH]:\n        'Expected base58 encoded blockhash to decode to a byte array of length 32. Actual length: $actualLength.',\n    [SOLANA_ERROR__INVALID_NONCE]:\n        'The nonce `$expectedNonceValue` is no longer valid. It has advanced to `$actualNonceValue`',\n    [SOLANA_ERROR__INVARIANT_VIOLATION__CACHED_ABORTABLE_ITERABLE_CACHE_ENTRY_MISSING]:\n        'Invariant violation: Found no abortable iterable cache entry for key `$cacheKey`. It ' +\n        'should be impossible to hit this error; please file an issue at ' +\n        'https://sola.na/web3invariant',\n    [SOLANA_ERROR__INVARIANT_VIOLATION__DATA_PUBLISHER_CHANNEL_UNIMPLEMENTED]:\n        'Invariant violation: This data publisher does not publish to the channel named ' +\n        '`$channelName`. Supported channels include $supportedChannelNames.',\n    [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_MUST_NOT_POLL_BEFORE_RESOLVING_EXISTING_MESSAGE_PROMISE]:\n        'Invariant violation: WebSocket message iterator state is corrupt; iterated without first ' +\n        'resolving existing message promise. It should be impossible to hit this error; please ' +\n        'file an issue at https://sola.na/web3invariant',\n    [SOLANA_ERROR__INVARIANT_VIOLATION__SUBSCRIPTION_ITERATOR_STATE_MISSING]:\n        'Invariant violation: WebSocket message iterator is missing state storage. It should be ' +\n        'impossible to hit this error; please file an issue at https://sola.na/web3invariant',\n    [SOLANA_ERROR__INVARIANT_VIOLATION__SWITCH_MUST_BE_EXHAUSTIVE]:\n        'Invariant violation: Switch statement non-exhaustive. Received unexpected value ' +\n        '`$unexpectedValue`. It should be impossible to hit this error; please file an issue at ' +\n        'https://sola.na/web3invariant',\n    [SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR]: 'JSON-RPC error: Internal JSON-RPC error ($__serverMessage)',\n    [SOLANA_ERROR__JSON_RPC__INVALID_PARAMS]: 'JSON-RPC error: Invalid method parameter(s) ($__serverMessage)',\n    [SOLANA_ERROR__JSON_RPC__INVALID_REQUEST]:\n        'JSON-RPC error: The JSON sent is not a valid `Request` object ($__serverMessage)',\n    [SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND]:\n        'JSON-RPC error: The method does not exist / is not available ($__serverMessage)',\n    [SOLANA_ERROR__JSON_RPC__PARSE_ERROR]:\n        'JSON-RPC error: An error occurred on the server while parsing the JSON text ($__serverMessage)',\n    [SOLANA_ERROR__JSON_RPC__SCAN_ERROR]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED]: 'Minimum context slot has not been reached',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NODE_UNHEALTHY]: 'Node is unhealthy; behind by $numSlotsBehind slots',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_NO_SNAPSHOT]: 'No snapshot',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE]: 'Transaction simulation failed',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE]:\n        'Transaction history is not available from this node',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE]: '$__serverMessage',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH]: 'Transaction signature length mismatch',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE]:\n        'Transaction signature verification failure',\n    [SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION]: '$__serverMessage',\n    [SOLANA_ERROR__KEYS__INVALID_KEY_PAIR_BYTE_LENGTH]: 'Key pair bytes must be of length 64, got $byteLength.',\n    [SOLANA_ERROR__KEYS__INVALID_PRIVATE_KEY_BYTE_LENGTH]:\n        'Expected private key bytes with length 32. Actual length: $actualLength.',\n    [SOLANA_ERROR__KEYS__INVALID_SIGNATURE_BYTE_LENGTH]:\n        'Expected base58-encoded signature to decode to a byte array of length 64. Actual length: $actualLength.',\n    [SOLANA_ERROR__KEYS__PUBLIC_KEY_MUST_MATCH_PRIVATE_KEY]:\n        'The provided private key does not match the provided public key.',\n    [SOLANA_ERROR__KEYS__SIGNATURE_STRING_LENGTH_OUT_OF_RANGE]:\n        'Expected base58-encoded signature string of length in the range [64, 88]. Actual length: $actualLength.',\n    [SOLANA_ERROR__LAMPORTS_OUT_OF_RANGE]: 'Lamports value must be in the range [0, 2e64-1]',\n    [SOLANA_ERROR__MALFORMED_BIGINT_STRING]: '`$value` cannot be parsed as a `BigInt`',\n    [SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR]: '$message',\n    [SOLANA_ERROR__MALFORMED_NUMBER_STRING]: '`$value` cannot be parsed as a `Number`',\n    [SOLANA_ERROR__NONCE_ACCOUNT_NOT_FOUND]: 'No nonce account could be found at address `$nonceAccountAddress`',\n    [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CANNOT_CREATE_SUBSCRIPTION_PLAN]:\n        \"The notification name must end in 'Notifications' and the API must supply a \" +\n        \"subscription plan creator function for the notification '$notificationName'.\",\n    [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CLOSED_BEFORE_MESSAGE_BUFFERED]:\n        'WebSocket was closed before payload could be added to the send buffer',\n    [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_CONNECTION_CLOSED]: 'WebSocket connection closed',\n    [SOLANA_ERROR__RPC_SUBSCRIPTIONS__CHANNEL_FAILED_TO_CONNECT]: 'WebSocket failed to connect',\n    [SOLANA_ERROR__RPC_SUBSCRIPTIONS__EXPECTED_SERVER_SUBSCRIPTION_ID]:\n        'Failed to obtain a subscription id from the server',\n    [SOLANA_ERROR__RPC__API_PLAN_MISSING_FOR_RPC_METHOD]: 'Could not find an API plan for RPC method: `$method`',\n    [SOLANA_ERROR__RPC__INTEGER_OVERFLOW]:\n        'The $argumentLabel argument to the `$methodName` RPC method$optionalPathLabel was ' +\n        '`$value`. This number is unsafe for use with the Solana JSON-RPC because it exceeds ' +\n        '`Number.MAX_SAFE_INTEGER`.',\n    [SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR]: 'HTTP error ($statusCode): $message',\n    [SOLANA_ERROR__RPC__TRANSPORT_HTTP_HEADER_FORBIDDEN]:\n        'HTTP header(s) forbidden: $headers. Learn more at ' +\n        'https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.',\n    [SOLANA_ERROR__SIGNER__ADDRESS_CANNOT_HAVE_MULTIPLE_SIGNERS]:\n        'Multiple distinct signers were identified for address `$address`. Please ensure that ' +\n        'you are using the same signer instance for each address.',\n    [SOLANA_ERROR__SIGNER__EXPECTED_KEY_PAIR_SIGNER]:\n        'The provided value does not implement the `KeyPairSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_MODIFYING_SIGNER]:\n        'The provided value does not implement the `MessageModifyingSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_PARTIAL_SIGNER]:\n        'The provided value does not implement the `MessagePartialSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_MESSAGE_SIGNER]:\n        'The provided value does not implement any of the `MessageSigner` interfaces',\n    [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_MODIFYING_SIGNER]:\n        'The provided value does not implement the `TransactionModifyingSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_PARTIAL_SIGNER]:\n        'The provided value does not implement the `TransactionPartialSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SENDING_SIGNER]:\n        'The provided value does not implement the `TransactionSendingSigner` interface',\n    [SOLANA_ERROR__SIGNER__EXPECTED_TRANSACTION_SIGNER]:\n        'The provided value does not implement any of the `TransactionSigner` interfaces',\n    [SOLANA_ERROR__SIGNER__TRANSACTION_CANNOT_HAVE_MULTIPLE_SENDING_SIGNERS]:\n        'More than one `TransactionSendingSigner` was identified.',\n    [SOLANA_ERROR__SIGNER__TRANSACTION_SENDING_SIGNER_MISSING]:\n        'No `TransactionSendingSigner` was identified. Please provide a valid ' +\n        '`TransactionWithSingleSendingSigner` transaction.',\n    [SOLANA_ERROR__SIGNER__WALLET_MULTISIGN_UNIMPLEMENTED]:\n        'Wallet account signers do not support signing multiple messages/transactions in a single operation',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__CANNOT_EXPORT_NON_EXTRACTABLE_KEY]: 'Cannot export a non-extractable key.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED]: 'No digest implementation could be found.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT]:\n        'Cryptographic operations are only allowed in secure browser contexts. Read more ' +\n        'here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED]:\n        'This runtime does not support the generation of Ed25519 key pairs.\\n\\nInstall ' +\n        '@solana/webcrypto-ed25519-polyfill and call its `install` function before generating keys in ' +\n        'environments that do not support Ed25519.\\n\\nFor a list of runtimes that ' +\n        'currently support Ed25519 operations, visit ' +\n        'https://github.com/WICG/webcrypto-secure-curves/issues/20.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED]:\n        'No signature verification implementation could be found.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED]: 'No key generation implementation could be found.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED]: 'No signing implementation could be found.',\n    [SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED]: 'No key export implementation could be found.',\n    [SOLANA_ERROR__TIMESTAMP_OUT_OF_RANGE]:\n        'Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given',\n    [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_BORROW_OUTSTANDING]:\n        'Transaction processing left an account with an outstanding borrowed reference',\n    [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_IN_USE]: 'Account in use',\n    [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_LOADED_TWICE]: 'Account loaded twice',\n    [SOLANA_ERROR__TRANSACTION_ERROR__ACCOUNT_NOT_FOUND]:\n        'Attempt to debit an account but found no record of a prior credit.',\n    [SOLANA_ERROR__TRANSACTION_ERROR__ADDRESS_LOOKUP_TABLE_NOT_FOUND]:\n        \"Transaction loads an address table account that doesn't exist\",\n    [SOLANA_ERROR__TRANSACTION_ERROR__ALREADY_PROCESSED]: 'This transaction has already been processed',\n    [SOLANA_ERROR__TRANSACTION_ERROR__BLOCKHASH_NOT_FOUND]: 'Blockhash not found',\n    [SOLANA_ERROR__TRANSACTION_ERROR__CALL_CHAIN_TOO_DEEP]: 'Loader call chain is too deep',\n    [SOLANA_ERROR__TRANSACTION_ERROR__CLUSTER_MAINTENANCE]:\n        'Transactions are currently disabled due to cluster maintenance',\n    [SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION]:\n        'Transaction contains a duplicate instruction ($index) that is not allowed',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_FEE]: 'Insufficient funds for fee',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT]:\n        'Transaction results in an account ($accountIndex) with insufficient funds for rent',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_FOR_FEE]: 'This account may not be used to pay transaction fees',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ACCOUNT_INDEX]: 'Transaction contains an invalid account reference',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_DATA]:\n        'Transaction loads an address table account with invalid data',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_INDEX]:\n        'Transaction address table lookup uses an invalid index',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_ADDRESS_LOOKUP_TABLE_OWNER]:\n        'Transaction loads an address table account with an invalid owner',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_LOADED_ACCOUNTS_DATA_SIZE_LIMIT]:\n        'LoadedAccountsDataSizeLimit set for transaction must be greater than 0.',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_PROGRAM_FOR_EXECUTION]:\n        'This program may not be used for executing instructions',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_RENT_PAYING_ACCOUNT]:\n        'Transaction leaves an account with a lower balance than rent-exempt minimum',\n    [SOLANA_ERROR__TRANSACTION_ERROR__INVALID_WRITABLE_ACCOUNT]:\n        'Transaction loads a writable account that cannot be written',\n    [SOLANA_ERROR__TRANSACTION_ERROR__MAX_LOADED_ACCOUNTS_DATA_SIZE_EXCEEDED]:\n        'Transaction exceeded max loaded accounts data size cap',\n    [SOLANA_ERROR__TRANSACTION_ERROR__MISSING_SIGNATURE_FOR_FEE]:\n        'Transaction requires a fee but has no signature present',\n    [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_ACCOUNT_NOT_FOUND]: 'Attempt to load a program that does not exist',\n    [SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED]:\n        'Execution of the program referenced by account at index $accountIndex is temporarily restricted.',\n    [SOLANA_ERROR__TRANSACTION_ERROR__RESANITIZATION_NEEDED]: 'ResanitizationNeeded',\n    [SOLANA_ERROR__TRANSACTION_ERROR__SANITIZE_FAILURE]: 'Transaction failed to sanitize accounts offsets correctly',\n    [SOLANA_ERROR__TRANSACTION_ERROR__SIGNATURE_FAILURE]: 'Transaction did not pass signature verification',\n    [SOLANA_ERROR__TRANSACTION_ERROR__TOO_MANY_ACCOUNT_LOCKS]: 'Transaction locked too many accounts',\n    [SOLANA_ERROR__TRANSACTION_ERROR__UNBALANCED_TRANSACTION]:\n        'Sum of account balances before and after transaction do not match',\n    [SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN]: 'The transaction failed with the error `$errorName`',\n    [SOLANA_ERROR__TRANSACTION_ERROR__UNSUPPORTED_VERSION]: 'Transaction version is unsupported',\n    [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_BLOCK_LIMIT]:\n        'Transaction would exceed account data limit within the block',\n    [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_ACCOUNT_DATA_TOTAL_LIMIT]:\n        'Transaction would exceed total account data limit',\n    [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_ACCOUNT_COST_LIMIT]:\n        'Transaction would exceed max account limit within the block',\n    [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_BLOCK_COST_LIMIT]:\n        'Transaction would exceed max Block Cost Limit',\n    [SOLANA_ERROR__TRANSACTION_ERROR__WOULD_EXCEED_MAX_VOTE_COST_LIMIT]: 'Transaction would exceed max Vote Cost Limit',\n    [SOLANA_ERROR__TRANSACTION__ADDRESSES_CANNOT_SIGN_TRANSACTION]:\n        'Attempted to sign a transaction with an address that is not a signer for it',\n    [SOLANA_ERROR__TRANSACTION__ADDRESS_MISSING]: 'Transaction is missing an address at index: $index.',\n    [SOLANA_ERROR__TRANSACTION__CANNOT_ENCODE_WITH_EMPTY_SIGNATURES]:\n        'Transaction has no expected signers therefore it cannot be encoded',\n    [SOLANA_ERROR__TRANSACTION__EXCEEDS_SIZE_LIMIT]:\n        'Transaction size $transactionSize exceeds limit of $transactionSizeLimit bytes',\n    [SOLANA_ERROR__TRANSACTION__EXPECTED_BLOCKHASH_LIFETIME]: 'Transaction does not have a blockhash lifetime',\n    [SOLANA_ERROR__TRANSACTION__EXPECTED_NONCE_LIFETIME]: 'Transaction is not a durable nonce transaction',\n    [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_CONTENTS_MISSING]:\n        'Contents of these address lookup tables unknown: $lookupTableAddresses',\n    [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_ADDRESS_LOOKUP_TABLE_INDEX_OUT_OF_RANGE]:\n        'Lookup of address at index $highestRequestedIndex failed for lookup table ' +\n        '`$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table ' +\n        'may have been extended since its contents were retrieved',\n    [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_FEE_PAYER_MISSING]: 'No fee payer set in CompiledTransaction',\n    [SOLANA_ERROR__TRANSACTION__FAILED_TO_DECOMPILE_INSTRUCTION_PROGRAM_ADDRESS_NOT_FOUND]:\n        'Could not find program address at index $index',\n    [SOLANA_ERROR__TRANSACTION__FAILED_TO_ESTIMATE_COMPUTE_LIMIT]:\n        'Failed to estimate the compute unit consumption for this transaction message. This is ' +\n        'likely because simulating the transaction failed. Inspect the `cause` property of this ' +\n        'error to learn more',\n    [SOLANA_ERROR__TRANSACTION__FAILED_WHEN_SIMULATING_TO_ESTIMATE_COMPUTE_LIMIT]:\n        'Transaction failed when it was simulated in order to estimate the compute unit consumption. ' +\n        'The compute unit estimate provided is for a transaction that failed when simulated and may not ' +\n        'be representative of the compute units this transaction would consume if successful. Inspect the ' +\n        '`cause` property of this error to learn more',\n    [SOLANA_ERROR__TRANSACTION__FEE_PAYER_MISSING]: 'Transaction is missing a fee payer.',\n    [SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING]:\n        \"Could not determine this transaction's signature. Make sure that the transaction has \" +\n        'been signed by its fee payer.',\n    [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_FIRST_INSTRUCTION_MUST_BE_ADVANCE_NONCE]:\n        'Transaction first instruction is not advance nonce account instruction.',\n    [SOLANA_ERROR__TRANSACTION__INVALID_NONCE_TRANSACTION_INSTRUCTIONS_MISSING]:\n        'Transaction with no instructions cannot be durable nonce transaction.',\n    [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_CANNOT_PAY_FEES]:\n        'This transaction includes an address (`$programAddress`) which is both ' +\n        'invoked and set as the fee payer. Program addresses may not pay fees',\n    [SOLANA_ERROR__TRANSACTION__INVOKED_PROGRAMS_MUST_NOT_BE_WRITABLE]:\n        'This transaction includes an address (`$programAddress`) which is both invoked and ' +\n        'marked writable. Program addresses may not be writable',\n    [SOLANA_ERROR__TRANSACTION__MESSAGE_SIGNATURES_MISMATCH]:\n        'The transaction message expected the transaction to have $signerAddressesLength signatures, got $signaturesLength.',\n    [SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING]: 'Transaction is missing signatures for addresses: $addresses.',\n    [SOLANA_ERROR__TRANSACTION__VERSION_NUMBER_OUT_OF_RANGE]:\n        'Transaction version must be in the range [0, 127]. `$actualVersion` given',\n};\n","import { SolanaErrorCode } from './codes';\nimport { encodeContextObject } from './context';\nimport { SolanaErrorMessages } from './messages';\n\nconst enum StateType {\n    EscapeSequence,\n    Text,\n    Variable,\n}\ntype State = Readonly<{\n    [START_INDEX]: number;\n    [TYPE]: StateType;\n}>;\nconst START_INDEX = 'i';\nconst TYPE = 't';\n\nexport function getHumanReadableErrorMessage<TErrorCode extends SolanaErrorCode>(\n    code: TErrorCode,\n    context: object = {},\n): string {\n    const messageFormatString = SolanaErrorMessages[code];\n    if (messageFormatString.length === 0) {\n        return '';\n    }\n    let state: State;\n    function commitStateUpTo(endIndex?: number) {\n        if (state[TYPE] === StateType.Variable) {\n            const variableName = messageFormatString.slice(state[START_INDEX] + 1, endIndex);\n\n            fragments.push(\n                variableName in context\n                    ? // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n                      `${context[variableName as keyof typeof context]}`\n                    : `$${variableName}`,\n            );\n        } else if (state[TYPE] === StateType.Text) {\n            fragments.push(messageFormatString.slice(state[START_INDEX], endIndex));\n        }\n    }\n    const fragments: string[] = [];\n    messageFormatString.split('').forEach((char, ii) => {\n        if (ii === 0) {\n            state = {\n                [START_INDEX]: 0,\n                [TYPE]:\n                    messageFormatString[0] === '\\\\'\n                        ? StateType.EscapeSequence\n                        : messageFormatString[0] === '$'\n                          ? StateType.Variable\n                          : StateType.Text,\n            };\n            return;\n        }\n        let nextState;\n        switch (state[TYPE]) {\n            case StateType.EscapeSequence:\n                nextState = { [START_INDEX]: ii, [TYPE]: StateType.Text };\n                break;\n            case StateType.Text:\n                if (char === '\\\\') {\n                    nextState = { [START_INDEX]: ii, [TYPE]: StateType.EscapeSequence };\n                } else if (char === '$') {\n                    nextState = { [START_INDEX]: ii, [TYPE]: StateType.Variable };\n                }\n                break;\n            case StateType.Variable:\n                if (char === '\\\\') {\n                    nextState = { [START_INDEX]: ii, [TYPE]: StateType.EscapeSequence };\n                } else if (char === '$') {\n                    nextState = { [START_INDEX]: ii, [TYPE]: StateType.Variable };\n                } else if (!char.match(/\\w/)) {\n                    nextState = { [START_INDEX]: ii, [TYPE]: StateType.Text };\n                }\n                break;\n        }\n        if (nextState) {\n            if (state !== nextState) {\n                commitStateUpTo(ii);\n            }\n            state = nextState;\n        }\n    });\n    commitStateUpTo();\n    return fragments.join('');\n}\n\nexport function getErrorMessage<TErrorCode extends SolanaErrorCode>(\n    code: TErrorCode,\n    context: Record<string, unknown> = {},\n): string {\n    if (process.env.NODE_ENV !== \"production\") {\n        return getHumanReadableErrorMessage(code, context);\n    } else {\n        let decodingAdviceMessage = `Solana error #${code}; Decode this error by running \\`npx @solana/errors decode -- ${code}`;\n        if (Object.keys(context).length) {\n            /**\n             * DANGER: Be sure that the shell command is escaped in such a way that makes it\n             *         impossible for someone to craft malicious context values that would result in\n             *         an exploit against anyone who bindly copy/pastes it into their terminal.\n             */\n            decodingAdviceMessage += ` '${encodeContextObject(context)}'`;\n        }\n        return `${decodingAdviceMessage}\\``;\n    }\n}\n","import { SolanaErrorCode, SolanaErrorCodeWithCause } from './codes';\nimport { SolanaErrorContext } from './context';\nimport { getErrorMessage } from './message-formatter';\n\n/**\n * A type guard that returns `true` if the input is a {@link SolanaError}, optionally with a\n * particular error code.\n *\n * When the `code` argument is supplied and the input is a {@link SolanaError}, TypeScript will\n * refine the error's {@link SolanaError#context | `context`} property to the type associated with\n * that error code. You can use that context to render useful error messages, or to make\n * context-aware decisions that help your application to recover from the error.\n *\n * @example\n * ```ts\n * import {\n *     SOLANA_ERROR__TRANSACTION__MISSING_SIGNATURE,\n *     SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING,\n *     isSolanaError,\n * } from '@solana/errors';\n * import { assertIsFullySignedTransaction, getSignatureFromTransaction } from '@solana/transactions';\n *\n * try {\n *     const transactionSignature = getSignatureFromTransaction(tx);\n *     assertIsFullySignedTransaction(tx);\n *     /* ... *\\/\n * } catch (e) {\n *     if (isSolanaError(e, SOLANA_ERROR__TRANSACTION__SIGNATURES_MISSING)) {\n *         displayError(\n *             \"We can't send this transaction without signatures for these addresses:\\n- %s\",\n *             // The type of the `context` object is now refined to contain `addresses`.\n *             e.context.addresses.join('\\n- '),\n *         );\n *         return;\n *     } else if (isSolanaError(e, SOLANA_ERROR__TRANSACTION__FEE_PAYER_SIGNATURE_MISSING)) {\n *         if (!tx.feePayer) {\n *             displayError('Choose a fee payer for this transaction before sending it');\n *         } else {\n *             displayError('The fee payer still needs to sign for this transaction');\n *         }\n *         return;\n *     }\n *     throw e;\n * }\n * ```\n */\nexport function isSolanaError<TErrorCode extends SolanaErrorCode>(\n    e: unknown,\n    /**\n     * When supplied, this function will require that the input is a {@link SolanaError} _and_ that\n     * its error code is exactly this value.\n     */\n    code?: TErrorCode,\n): e is SolanaError<TErrorCode> {\n    const isSolanaError = e instanceof Error && e.name === 'SolanaError';\n    if (isSolanaError) {\n        if (code !== undefined) {\n            return (e as SolanaError<TErrorCode>).context.__code === code;\n        }\n        return true;\n    }\n    return false;\n}\n\ntype SolanaErrorCodedContext = Readonly<{\n    [P in SolanaErrorCode]: (SolanaErrorContext[P] extends undefined ? object : SolanaErrorContext[P]) & {\n        __code: P;\n    };\n}>;\n\n/**\n * Encapsulates an error's stacktrace, a Solana-specific numeric code that indicates what went\n * wrong, and optional context if the type of error indicated by the code supports it.\n */\nexport class SolanaError<TErrorCode extends SolanaErrorCode = SolanaErrorCode> extends Error {\n    /**\n     * Indicates the root cause of this {@link SolanaError}, if any.\n     *\n     * For example, a transaction error might have an instruction error as its root cause. In this\n     * case, you will be able to access the instruction error on the transaction error as `cause`.\n     */\n    readonly cause?: TErrorCode extends SolanaErrorCodeWithCause ? SolanaError : unknown = this.cause;\n    /**\n     * Contains context that can assist in understanding or recovering from a {@link SolanaError}.\n     */\n    readonly context: SolanaErrorCodedContext[TErrorCode];\n    constructor(\n        ...[code, contextAndErrorOptions]: SolanaErrorContext[TErrorCode] extends undefined\n            ? [code: TErrorCode, errorOptions?: ErrorOptions | undefined]\n            : [code: TErrorCode, contextAndErrorOptions: SolanaErrorContext[TErrorCode] & (ErrorOptions | undefined)]\n    ) {\n        let context: SolanaErrorContext[TErrorCode] | undefined;\n        let errorOptions: ErrorOptions | undefined;\n        if (contextAndErrorOptions) {\n            // If the `ErrorOptions` type ever changes, update this code.\n            const { cause, ...contextRest } = contextAndErrorOptions;\n            if (cause) {\n                errorOptions = { cause };\n            }\n            if (Object.keys(contextRest).length > 0) {\n                context = contextRest as SolanaErrorContext[TErrorCode];\n            }\n        }\n        const message = getErrorMessage(code, context);\n        super(message, errorOptions);\n        this.context = {\n            __code: code,\n            ...context,\n        } as SolanaErrorCodedContext[TErrorCode];\n        // This is necessary so that `isSolanaError()` can identify a `SolanaError` without having\n        // to import the class for use in an `instanceof` check.\n        this.name = 'SolanaError';\n    }\n}\n","export function safeCaptureStackTrace(...args: Parameters<typeof Error.captureStackTrace>): void {\n    if ('captureStackTrace' in Error && typeof Error.captureStackTrace === 'function') {\n        Error.captureStackTrace(...args);\n    }\n}\n","import { SolanaErrorCode } from './codes';\nimport { SolanaErrorContext } from './context';\nimport { SolanaError } from './error';\nimport { safeCaptureStackTrace } from './stack-trace';\n\ntype Config = Readonly<{\n    /**\n     * Oh, hello. You might wonder what in tarnation is going on here. Allow us to explain.\n     *\n     * One of the goals of `@solana/errors` is to allow errors that are not interesting to your\n     * application to shake out of your app bundle in production. This means that we must never\n     * export large hardcoded maps of error codes/messages.\n     *\n     * Unfortunately, where instruction and transaction errors from the RPC are concerned, we have\n     * no choice but to keep a map between the RPC `rpcEnumError` enum name and its corresponding\n     * `SolanaError` code. In the interest of implementing that map in as few bytes of source code\n     * as possible, we do the following:\n     *\n     *   1. Reserve a block of sequential error codes for the enum in question\n     *   2. Hardcode the list of enum names in that same order\n     *   3. Match the enum error name from the RPC with its index in that list, and reconstruct the\n     *      `SolanaError` code by adding the `errorCodeBaseOffset` to that index\n     */\n    errorCodeBaseOffset: number;\n    getErrorContext: (\n        errorCode: SolanaErrorCode,\n        rpcErrorName: string,\n        rpcErrorContext?: unknown,\n    ) => SolanaErrorContext[SolanaErrorCode];\n    orderedErrorNames: string[];\n    rpcEnumError: string | { [key: string]: unknown };\n}>;\n\nexport function getSolanaErrorFromRpcError(\n    { errorCodeBaseOffset, getErrorContext, orderedErrorNames, rpcEnumError }: Config,\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n    constructorOpt: Function,\n): SolanaError {\n    let rpcErrorName;\n    let rpcErrorContext;\n    if (typeof rpcEnumError === 'string') {\n        rpcErrorName = rpcEnumError;\n    } else {\n        rpcErrorName = Object.keys(rpcEnumError)[0];\n        rpcErrorContext = rpcEnumError[rpcErrorName];\n    }\n    const codeOffset = orderedErrorNames.indexOf(rpcErrorName);\n    const errorCode = (errorCodeBaseOffset + codeOffset) as SolanaErrorCode;\n    const errorContext = getErrorContext(errorCode, rpcErrorName, rpcErrorContext);\n    const err = new SolanaError(errorCode, errorContext);\n    safeCaptureStackTrace(err, constructorOpt);\n    return err;\n}\n","import {\n    SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR,\n    SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM,\n    SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN,\n} from './codes';\nimport { SolanaError } from './error';\nimport { getSolanaErrorFromRpcError } from './rpc-enum-errors';\n\nconst ORDERED_ERROR_NAMES = [\n    // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/program/src/instruction.rs\n    // If this list ever gets too large, consider implementing a compression strategy like this:\n    // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47\n    'GenericError',\n    'InvalidArgument',\n    'InvalidInstructionData',\n    'InvalidAccountData',\n    'AccountDataTooSmall',\n    'InsufficientFunds',\n    'IncorrectProgramId',\n    'MissingRequiredSignature',\n    'AccountAlreadyInitialized',\n    'UninitializedAccount',\n    'UnbalancedInstruction',\n    'ModifiedProgramId',\n    'ExternalAccountLamportSpend',\n    'ExternalAccountDataModified',\n    'ReadonlyLamportChange',\n    'ReadonlyDataModified',\n    'DuplicateAccountIndex',\n    'ExecutableModified',\n    'RentEpochModified',\n    'NotEnoughAccountKeys',\n    'AccountDataSizeChanged',\n    'AccountNotExecutable',\n    'AccountBorrowFailed',\n    'AccountBorrowOutstanding',\n    'DuplicateAccountOutOfSync',\n    'Custom',\n    'InvalidError',\n    'ExecutableDataModified',\n    'ExecutableLamportChange',\n    'ExecutableAccountNotRentExempt',\n    'UnsupportedProgramId',\n    'CallDepth',\n    'MissingAccount',\n    'ReentrancyNotAllowed',\n    'MaxSeedLengthExceeded',\n    'InvalidSeeds',\n    'InvalidRealloc',\n    'ComputationalBudgetExceeded',\n    'PrivilegeEscalation',\n    'ProgramEnvironmentSetupFailure',\n    'ProgramFailedToComplete',\n    'ProgramFailedToCompile',\n    'Immutable',\n    'IncorrectAuthority',\n    'BorshIoError',\n    'AccountNotRentExempt',\n    'InvalidAccountOwner',\n    'ArithmeticOverflow',\n    'UnsupportedSysvar',\n    'IllegalOwner',\n    'MaxAccountsDataAllocationsExceeded',\n    'MaxAccountsExceeded',\n    'MaxInstructionTraceLengthExceeded',\n    'BuiltinProgramsMustConsumeComputeUnits',\n];\n\nexport function getSolanaErrorFromInstructionError(\n    /**\n     * The index of the instruction inside the transaction.\n     */\n    index: bigint | number,\n    instructionError: string | { [key: string]: unknown },\n): SolanaError {\n    const numberIndex = Number(index);\n    return getSolanaErrorFromRpcError(\n        {\n            errorCodeBaseOffset: 4615001,\n            getErrorContext(errorCode, rpcErrorName, rpcErrorContext) {\n                if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__UNKNOWN) {\n                    return {\n                        errorName: rpcErrorName,\n                        index: numberIndex,\n                        ...(rpcErrorContext !== undefined ? { instructionErrorContext: rpcErrorContext } : null),\n                    };\n                } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__CUSTOM) {\n                    return {\n                        code: Number(rpcErrorContext as bigint | number),\n                        index: numberIndex,\n                    };\n                } else if (errorCode === SOLANA_ERROR__INSTRUCTION_ERROR__BORSH_IO_ERROR) {\n                    return {\n                        encodedData: rpcErrorContext as string,\n                        index: numberIndex,\n                    };\n                }\n                return { index: numberIndex };\n            },\n            orderedErrorNames: ORDERED_ERROR_NAMES,\n            rpcEnumError: instructionError,\n        },\n        getSolanaErrorFromInstructionError,\n    );\n}\n","import {\n    SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION,\n    SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT,\n    SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED,\n    SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN,\n} from './codes';\nimport { SolanaError } from './error';\nimport { getSolanaErrorFromInstructionError } from './instruction-error';\nimport { getSolanaErrorFromRpcError } from './rpc-enum-errors';\n\n/**\n * How to add an error when an entry is added to the RPC `TransactionError` enum:\n *\n *   1. Follow the instructions in `./codes.ts` to add a corresponding Solana error code\n *   2. Add the `TransactionError` enum name in the same order as it appears in `./codes.ts`\n *   3. Add the new error name/code mapping to `./__tests__/transaction-error-test.ts`\n */\nconst ORDERED_ERROR_NAMES = [\n    // Keep synced with RPC source: https://github.com/anza-xyz/agave/blob/master/sdk/src/transaction/error.rs\n    // If this list ever gets too large, consider implementing a compression strategy like this:\n    // https://gist.github.com/steveluscher/aaa7cbbb5433b1197983908a40860c47\n    'AccountInUse',\n    'AccountLoadedTwice',\n    'AccountNotFound',\n    'ProgramAccountNotFound',\n    'InsufficientFundsForFee',\n    'InvalidAccountForFee',\n    'AlreadyProcessed',\n    'BlockhashNotFound',\n    // `InstructionError` intentionally omitted; delegated to `getSolanaErrorFromInstructionError`\n    'CallChainTooDeep',\n    'MissingSignatureForFee',\n    'InvalidAccountIndex',\n    'SignatureFailure',\n    'InvalidProgramForExecution',\n    'SanitizeFailure',\n    'ClusterMaintenance',\n    'AccountBorrowOutstanding',\n    'WouldExceedMaxBlockCostLimit',\n    'UnsupportedVersion',\n    'InvalidWritableAccount',\n    'WouldExceedMaxAccountCostLimit',\n    'WouldExceedAccountDataBlockLimit',\n    'TooManyAccountLocks',\n    'AddressLookupTableNotFound',\n    'InvalidAddressLookupTableOwner',\n    'InvalidAddressLookupTableData',\n    'InvalidAddressLookupTableIndex',\n    'InvalidRentPayingAccount',\n    'WouldExceedMaxVoteCostLimit',\n    'WouldExceedAccountDataTotalLimit',\n    'DuplicateInstruction',\n    'InsufficientFundsForRent',\n    'MaxLoadedAccountsDataSizeExceeded',\n    'InvalidLoadedAccountsDataSizeLimit',\n    'ResanitizationNeeded',\n    'ProgramExecutionTemporarilyRestricted',\n    'UnbalancedTransaction',\n];\n\nexport function getSolanaErrorFromTransactionError(transactionError: string | { [key: string]: unknown }): SolanaError {\n    if (typeof transactionError === 'object' && 'InstructionError' in transactionError) {\n        return getSolanaErrorFromInstructionError(\n            ...(transactionError.InstructionError as Parameters<typeof getSolanaErrorFromInstructionError>),\n        );\n    }\n    return getSolanaErrorFromRpcError(\n        {\n            errorCodeBaseOffset: 7050001,\n            getErrorContext(errorCode, rpcErrorName, rpcErrorContext) {\n                if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__UNKNOWN) {\n                    return {\n                        errorName: rpcErrorName,\n                        ...(rpcErrorContext !== undefined ? { transactionErrorContext: rpcErrorContext } : null),\n                    };\n                } else if (errorCode === SOLANA_ERROR__TRANSACTION_ERROR__DUPLICATE_INSTRUCTION) {\n                    return {\n                        index: Number(rpcErrorContext as bigint | number),\n                    };\n                } else if (\n                    errorCode === SOLANA_ERROR__TRANSACTION_ERROR__INSUFFICIENT_FUNDS_FOR_RENT ||\n                    errorCode === SOLANA_ERROR__TRANSACTION_ERROR__PROGRAM_EXECUTION_TEMPORARILY_RESTRICTED\n                ) {\n                    return {\n                        accountIndex: Number((rpcErrorContext as { account_index: bigint | number }).account_index),\n                    };\n                }\n            },\n            orderedErrorNames: ORDERED_ERROR_NAMES,\n            rpcEnumError: transactionError,\n        },\n        getSolanaErrorFromTransactionError,\n    );\n}\n","import {\n    SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR,\n    SOLANA_ERROR__JSON_RPC__INVALID_PARAMS,\n    SOLANA_ERROR__JSON_RPC__INVALID_REQUEST,\n    SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND,\n    SOLANA_ERROR__JSON_RPC__PARSE_ERROR,\n    SOLANA_ERROR__JSON_RPC__SCAN_ERROR,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE,\n    SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION,\n    SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR,\n    SolanaErrorCode,\n} from './codes';\nimport { SolanaErrorContext } from './context';\nimport { SolanaError } from './error';\nimport { safeCaptureStackTrace } from './stack-trace';\nimport { getSolanaErrorFromTransactionError } from './transaction-error';\n\ninterface RpcErrorResponse {\n    code: bigint | number;\n    data?: unknown;\n    message: string;\n}\n\ntype TransactionError = string | { [key: string]: unknown };\n\n/**\n * Keep in sync with https://github.com/anza-xyz/agave/blob/master/rpc-client-types/src/response.rs\n * @hidden\n */\nexport interface RpcSimulateTransactionResult {\n    accounts:\n        | ({\n              data:\n                  | string // LegacyBinary\n                  | {\n                        // Json\n                        parsed: unknown;\n                        program: string;\n                        space: number;\n                    }\n                  // Binary\n                  | [encodedBytes: string, encoding: 'base58' | 'base64' | 'base64+zstd' | 'binary' | 'jsonParsed'];\n              executable: boolean;\n              lamports: number;\n              owner: string;\n              rentEpoch: number;\n              space?: number;\n          } | null)[]\n        | null;\n    err: TransactionError | null;\n    // Enabled by `enable_cpi_recording`\n    innerInstructions?:\n        | {\n              index: number;\n              instructions: (\n                  | {\n                        // Compiled\n                        accounts: number[];\n                        data: string;\n                        programIdIndex: number;\n                        stackHeight?: number;\n                    }\n                  | {\n                        // Parsed\n                        parsed: unknown;\n                        program: string;\n                        programId: string;\n                        stackHeight?: number;\n                    }\n                  | {\n                        // PartiallyDecoded\n                        accounts: string[];\n                        data: string;\n                        programId: string;\n                        stackHeight?: number;\n                    }\n              )[];\n          }[]\n        | null;\n    logs: string[] | null;\n    replacementBlockhash: string | null;\n    returnData: {\n        data: [string, 'base64'];\n        programId: string;\n    } | null;\n    unitsConsumed: bigint | null;\n}\n\nexport function getSolanaErrorFromJsonRpcError(putativeErrorResponse: unknown): SolanaError {\n    let out: SolanaError;\n    if (isRpcErrorResponse(putativeErrorResponse)) {\n        const { code: rawCode, data, message } = putativeErrorResponse;\n        const code = Number(rawCode);\n        if (code === SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE) {\n            const { err, ...preflightErrorContext } = data as RpcSimulateTransactionResult;\n            const causeObject = err ? { cause: getSolanaErrorFromTransactionError(err) } : null;\n            out = new SolanaError(SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE, {\n                ...preflightErrorContext,\n                ...causeObject,\n            });\n        } else {\n            let errorContext;\n            switch (code) {\n                case SOLANA_ERROR__JSON_RPC__INTERNAL_ERROR:\n                case SOLANA_ERROR__JSON_RPC__INVALID_PARAMS:\n                case SOLANA_ERROR__JSON_RPC__INVALID_REQUEST:\n                case SOLANA_ERROR__JSON_RPC__METHOD_NOT_FOUND:\n                case SOLANA_ERROR__JSON_RPC__PARSE_ERROR:\n                case SOLANA_ERROR__JSON_RPC__SCAN_ERROR:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_CLEANED_UP:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:\n                case SOLANA_ERROR__JSON_RPC__SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION:\n                    // The server supplies no structured data, but rather a pre-formatted message. Put\n                    // the server message in `context` so as not to completely lose the data. The long\n                    // term fix for this is to add data to the server responses and modify the\n                    // messages in `@solana/errors` to be actual format strings.\n                    errorContext = { __serverMessage: message };\n                    break;\n                default:\n                    if (typeof data === 'object' && !Array.isArray(data)) {\n                        errorContext = data;\n                    }\n            }\n            out = new SolanaError(code as SolanaErrorCode, errorContext as SolanaErrorContext[SolanaErrorCode]);\n        }\n    } else {\n        const message =\n            typeof putativeErrorResponse === 'object' &&\n            putativeErrorResponse !== null &&\n            'message' in putativeErrorResponse &&\n            typeof putativeErrorResponse.message === 'string'\n                ? putativeErrorResponse.message\n                : 'Malformed JSON-RPC error with no message attribute';\n        out = new SolanaError(SOLANA_ERROR__MALFORMED_JSON_RPC_ERROR, { error: putativeErrorResponse, message });\n    }\n    safeCaptureStackTrace(out, getSolanaErrorFromJsonRpcError);\n    return out;\n}\n\nfunction isRpcErrorResponse(value: unknown): value is RpcErrorResponse {\n    return (\n        typeof value === 'object' &&\n        value !== null &&\n        'code' in value &&\n        'message' in value &&\n        (typeof value.code === 'number' || typeof value.code === 'bigint') &&\n        typeof value.message === 'string'\n    );\n}\n","import { ReadonlyUint8Array } from './readonly-uint8array';\n\n/**\n * Concatenates an array of `Uint8Array`s into a single `Uint8Array`.\n * Reuses the original byte array when applicable.\n *\n * @param byteArrays - The array of byte arrays to concatenate.\n *\n * @example\n * ```ts\n * const bytes1 = new Uint8Array([0x01, 0x02]);\n * const bytes2 = new Uint8Array([]);\n * const bytes3 = new Uint8Array([0x03, 0x04]);\n * const bytes = mergeBytes([bytes1, bytes2, bytes3]);\n * //    ^ [0x01, 0x02, 0x03, 0x04]\n * ```\n */\nexport const mergeBytes = (byteArrays: Uint8Array[]): Uint8Array => {\n    const nonEmptyByteArrays = byteArrays.filter(arr => arr.length);\n    if (nonEmptyByteArrays.length === 0) {\n        return byteArrays.length ? byteArrays[0] : new Uint8Array();\n    }\n\n    if (nonEmptyByteArrays.length === 1) {\n        return nonEmptyByteArrays[0];\n    }\n\n    const totalLength = nonEmptyByteArrays.reduce((total, arr) => total + arr.length, 0);\n    const result = new Uint8Array(totalLength);\n    let offset = 0;\n    nonEmptyByteArrays.forEach(arr => {\n        result.set(arr, offset);\n        offset += arr.length;\n    });\n    return result;\n};\n\n/**\n * Pads a `Uint8Array` with zeroes to the specified length.\n * If the array is longer than the specified length, it is returned as-is.\n *\n * @param bytes - The byte array to pad.\n * @param length - The desired length of the byte array.\n *\n * @example\n * Adds zeroes to the end of the byte array to reach the desired length.\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02]);\n * const paddedBytes = padBytes(bytes, 4);\n * //    ^ [0x01, 0x02, 0x00, 0x00]\n * ```\n *\n * @example\n * Returns the original byte array if it is already at the desired length.\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02]);\n * const paddedBytes = padBytes(bytes, 2);\n * // bytes === paddedBytes\n * ```\n */\nexport const padBytes = (bytes: ReadonlyUint8Array | Uint8Array, length: number): ReadonlyUint8Array | Uint8Array => {\n    if (bytes.length >= length) return bytes;\n    const paddedBytes = new Uint8Array(length).fill(0);\n    paddedBytes.set(bytes);\n    return paddedBytes;\n};\n\n/**\n * Fixes a `Uint8Array` to the specified length.\n * If the array is longer than the specified length, it is truncated.\n * If the array is shorter than the specified length, it is padded with zeroes.\n *\n * @param bytes - The byte array to truncate or pad.\n * @param length - The desired length of the byte array.\n *\n * @example\n * Truncates the byte array to the desired length.\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n * const fixedBytes = fixBytes(bytes, 2);\n * //    ^ [0x01, 0x02]\n * ```\n *\n * @example\n * Adds zeroes to the end of the byte array to reach the desired length.\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02]);\n * const fixedBytes = fixBytes(bytes, 4);\n * //    ^ [0x01, 0x02, 0x00, 0x00]\n * ```\n *\n * @example\n * Returns the original byte array if it is already at the desired length.\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02]);\n * const fixedBytes = fixBytes(bytes, 2);\n * // bytes === fixedBytes\n * ```\n */\nexport const fixBytes = (bytes: ReadonlyUint8Array | Uint8Array, length: number): ReadonlyUint8Array | Uint8Array =>\n    padBytes(bytes.length <= length ? bytes : bytes.slice(0, length), length);\n\n/**\n * Returns true if and only if the provided `data` byte array contains\n * the provided `bytes` byte array at the specified `offset`.\n *\n * @param data - The byte sequence to search for.\n * @param bytes - The byte array in which to search for `data`.\n * @param offset - The position in `bytes` where the search begins.\n *\n * @example\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02, 0x03, 0x04]);\n * const data = new Uint8Array([0x02, 0x03]);\n * containsBytes(bytes, data, 1); // true\n * containsBytes(bytes, data, 2); // false\n * ```\n */\nexport function containsBytes(\n    data: ReadonlyUint8Array | Uint8Array,\n    bytes: ReadonlyUint8Array | Uint8Array,\n    offset: number,\n): boolean {\n    const slice = offset === 0 && data.length === bytes.length ? data : data.slice(offset, offset + bytes.length);\n    if (slice.length !== bytes.length) return false;\n    return bytes.every((b, i) => b === slice[i]);\n}\n","import {\n    SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH,\n    SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH,\n    SolanaError,\n} from '@solana/errors';\n\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\n/**\n * Defines an offset in bytes.\n */\nexport type Offset = number;\n\n/**\n * An object that can encode a value of type {@link TFrom} into a {@link ReadonlyUint8Array}.\n *\n * This is a common interface for {@link FixedSizeEncoder} and {@link VariableSizeEncoder}.\n *\n * @interface\n * @typeParam TFrom - The type of the value to encode.\n *\n * @see {@link FixedSizeEncoder}\n * @see {@link VariableSizeEncoder}\n */\ntype BaseEncoder<TFrom> = {\n    /** Encode the provided value and return the encoded bytes directly. */\n    readonly encode: (value: TFrom) => ReadonlyUint8Array;\n    /**\n     * Writes the encoded value into the provided byte array at the given offset.\n     * Returns the offset of the next byte after the encoded value.\n     */\n    readonly write: (value: TFrom, bytes: Uint8Array, offset: Offset) => Offset;\n};\n\n/**\n * An object that can encode a value of type {@link TFrom} into a fixed-size {@link ReadonlyUint8Array}.\n *\n * See {@link Encoder} to learn more about creating and composing encoders.\n *\n * @interface\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @example\n * ```ts\n * const encoder: FixedSizeEncoder<number, 4>;\n * const bytes = encoder.encode(42);\n * const size = encoder.fixedSize; // 4\n * ```\n *\n * @see {@link Encoder}\n * @see {@link VariableSizeEncoder}\n */\nexport type FixedSizeEncoder<TFrom, TSize extends number = number> = BaseEncoder<TFrom> & {\n    /** The fixed size of the encoded value in bytes. */\n    readonly fixedSize: TSize;\n};\n\n/**\n * An object that can encode a value of type {@link TFrom} into a variable-size {@link ReadonlyUint8Array}.\n *\n * See {@link Encoder} to learn more about creating and composing encoders.\n *\n * @interface\n * @typeParam TFrom - The type of the value to encode.\n *\n * @example\n * ```ts\n * const encoder: VariableSizeEncoder<string>;\n * const bytes = encoder.encode('hello');\n * const size = encoder.getSizeFromValue('hello');\n * ```\n *\n * @see {@link Encoder}\n * @see {@link FixedSizeEncoder}\n */\nexport type VariableSizeEncoder<TFrom> = BaseEncoder<TFrom> & {\n    /** Returns the size of the encoded value in bytes for a given input. */\n    readonly getSizeFromValue: (value: TFrom) => number;\n    /** The maximum possible size of an encoded value in bytes, if applicable. */\n    readonly maxSize?: number;\n};\n\n/**\n * An object that can encode a value of type {@link TFrom} into a {@link ReadonlyUint8Array}.\n *\n * An `Encoder` can be either:\n * - A {@link FixedSizeEncoder}, where all encoded values have the same fixed size.\n * - A {@link VariableSizeEncoder}, where encoded values can vary in size.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @example\n * Encoding a value into a new byte array.\n * ```ts\n * const encoder: Encoder<string>;\n * const bytes = encoder.encode('hello');\n * ```\n *\n * @example\n * Writing the encoded value into an existing byte array.\n * ```ts\n * const encoder: Encoder<string>;\n * const bytes = new Uint8Array(100);\n * const nextOffset = encoder.write('hello', bytes, 20);\n * ```\n *\n * @remarks\n * You may create `Encoders` manually using the {@link createEncoder} function but it is more common\n * to compose multiple `Encoders` together using the various helpers of the `@solana/codecs` package.\n *\n * For instance, here's how you might create an `Encoder` for a `Person` object type that contains\n * a `name` string and an `age` number:\n *\n * ```ts\n * import { getStructEncoder, addEncoderSizePrefix, getUtf8Encoder, getU32Encoder } from '@solana/codecs';\n *\n * type Person = { name: string; age: number };\n * const getPersonEncoder = (): Encoder<Person> =>\n *     getStructEncoder([\n *         ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n *         ['age', getU32Encoder()],\n *     ]);\n * ```\n *\n * Note that composed `Encoder` types are clever enough to understand whether\n * they are fixed-size or variable-size. In the example above, `getU32Encoder()` is\n * a fixed-size encoder, while `addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())`\n * is a variable-size encoder. This makes the final `Person` encoder a variable-size encoder.\n *\n * @see {@link FixedSizeEncoder}\n * @see {@link VariableSizeEncoder}\n * @see {@link createEncoder}\n */\nexport type Encoder<TFrom> = FixedSizeEncoder<TFrom> | VariableSizeEncoder<TFrom>;\n\n/**\n * An object that can decode a byte array into a value of type {@link TTo}.\n *\n * This is a common interface for {@link FixedSizeDecoder} and {@link VariableSizeDecoder}.\n *\n * @interface\n * @typeParam TTo - The type of the decoded value.\n *\n * @see {@link FixedSizeDecoder}\n * @see {@link VariableSizeDecoder}\n */\ntype BaseDecoder<TTo> = {\n    /** Decodes the provided byte array at the given offset (or zero) and returns the value directly. */\n    readonly decode: (bytes: ReadonlyUint8Array | Uint8Array, offset?: Offset) => TTo;\n    /**\n     * Reads the encoded value from the provided byte array at the given offset.\n     * Returns the decoded value and the offset of the next byte after the encoded value.\n     */\n    readonly read: (bytes: ReadonlyUint8Array | Uint8Array, offset: Offset) => [TTo, Offset];\n};\n\n/**\n * An object that can decode a fixed-size byte array into a value of type {@link TTo}.\n *\n * See {@link Decoder} to learn more about creating and composing decoders.\n *\n * @interface\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @example\n * ```ts\n * const decoder: FixedSizeDecoder<number, 4>;\n * const value = decoder.decode(bytes);\n * const size = decoder.fixedSize; // 4\n * ```\n *\n * @see {@link Decoder}\n * @see {@link VariableSizeDecoder}\n */\nexport type FixedSizeDecoder<TTo, TSize extends number = number> = BaseDecoder<TTo> & {\n    /** The fixed size of the encoded value in bytes. */\n    readonly fixedSize: TSize;\n};\n\n/**\n * An object that can decode a variable-size byte array into a value of type {@link TTo}.\n *\n * See {@link Decoder} to learn more about creating and composing decoders.\n *\n * @interface\n * @typeParam TTo - The type of the decoded value.\n *\n * @example\n * ```ts\n * const decoder: VariableSizeDecoder<number>;\n * const value = decoder.decode(bytes);\n * ```\n *\n * @see {@link Decoder}\n * @see {@link VariableSizeDecoder}\n */\nexport type VariableSizeDecoder<TTo> = BaseDecoder<TTo> & {\n    /** The maximum possible size of an encoded value in bytes, if applicable. */\n    readonly maxSize?: number;\n};\n\n/**\n * An object that can decode a byte array into a value of type {@link TTo}.\n *\n * An `Decoder` can be either:\n * - A {@link FixedSizeDecoder}, where all byte arrays have the same fixed size.\n * - A {@link VariableSizeDecoder}, where byte arrays can vary in size.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @example\n * Getting the decoded value from a byte array.\n * ```ts\n * const decoder: Decoder<string>;\n * const value = decoder.decode(bytes);\n * ```\n *\n * @example\n * Reading the decoded value from a byte array at a specific offset\n * and getting the offset of the next byte to read.\n * ```ts\n * const decoder: Decoder<string>;\n * const [value, nextOffset] = decoder.read('hello', bytes, 20);\n * ```\n *\n * @remarks\n * You may create `Decoders` manually using the {@link createDecoder} function but it is more common\n * to compose multiple `Decoders` together using the various helpers of the `@solana/codecs` package.\n *\n * For instance, here's how you might create an `Decoder` for a `Person` object type that contains\n * a `name` string and an `age` number:\n *\n * ```ts\n * import { getStructDecoder, addDecoderSizePrefix, getUtf8Decoder, getU32Decoder } from '@solana/codecs';\n *\n * type Person = { name: string; age: number };\n * const getPersonDecoder = (): Decoder<Person> =>\n *     getStructDecoder([\n *         ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n *         ['age', getU32Decoder()],\n *     ]);\n * ```\n *\n * Note that composed `Decoder` types are clever enough to understand whether\n * they are fixed-size or variable-size. In the example above, `getU32Decoder()` is\n * a fixed-size decoder, while `addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())`\n * is a variable-size decoder. This makes the final `Person` decoder a variable-size decoder.\n *\n * @see {@link FixedSizeDecoder}\n * @see {@link VariableSizeDecoder}\n * @see {@link createDecoder}\n */\nexport type Decoder<TTo> = FixedSizeDecoder<TTo> | VariableSizeDecoder<TTo>;\n\n/**\n * An object that can encode and decode a value to and from a fixed-size byte array.\n *\n * See {@link Codec} to learn more about creating and composing codecs.\n *\n * @interface\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @example\n * ```ts\n * const codec: FixedSizeCodec<number | bigint, bigint, 8>;\n * const bytes = codec.encode(42);\n * const value = codec.decode(bytes); // 42n\n * const size = codec.fixedSize; // 8\n * ```\n *\n * @see {@link Codec}\n * @see {@link VariableSizeCodec}\n */\nexport type FixedSizeCodec<TFrom, TTo extends TFrom = TFrom, TSize extends number = number> = FixedSizeDecoder<\n    TTo,\n    TSize\n> &\n    FixedSizeEncoder<TFrom, TSize>;\n\n/**\n * An object that can encode and decode a value to and from a variable-size byte array.\n *\n * See {@link Codec} to learn more about creating and composing codecs.\n *\n * @interface\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @example\n * ```ts\n * const codec: VariableSizeCodec<number | bigint, bigint>;\n * const bytes = codec.encode(42);\n * const value = codec.decode(bytes); // 42n\n * const size = codec.getSizeFromValue(42);\n * ```\n *\n * @see {@link Codec}\n * @see {@link FixedSizeCodec}\n */\nexport type VariableSizeCodec<TFrom, TTo extends TFrom = TFrom> = VariableSizeDecoder<TTo> & VariableSizeEncoder<TFrom>;\n\n/**\n * An object that can encode and decode a value to and from a byte array.\n *\n * A `Codec` can be either:\n * - A {@link FixedSizeCodec}, where all encoded values have the same fixed size.\n * - A {@link VariableSizeCodec}, where encoded values can vary in size.\n *\n * @example\n * ```ts\n * const codec: Codec<string>;\n * const bytes = codec.encode('hello');\n * const value = codec.decode(bytes); // 'hello'\n * ```\n *\n * @remarks\n * For convenience, codecs can encode looser types than they decode.\n * That is, type {@link TFrom} can be a superset of type {@link TTo}.\n * For instance, a `Codec<bigint | number, bigint>` can encode both\n * `bigint` and `number` values, but will always decode to a `bigint`.\n *\n * ```ts\n * const codec: Codec<bigint | number, bigint>;\n * const bytes = codec.encode(42);\n * const value = codec.decode(bytes); // 42n\n * ```\n *\n * It is worth noting that codecs are the union of encoders and decoders.\n * This means that a `Codec<TFrom, TTo>` can be combined from an `Encoder<TFrom>`\n * and a `Decoder<TTo>` using the {@link combineCodec} function. This is particularly\n * useful for library authors who want to expose all three types of objects to their users.\n *\n * ```ts\n * const encoder: Encoder<bigint | number>;\n * const decoder: Decoder<bigint>;\n * const codec: Codec<bigint | number, bigint> = combineCodec(encoder, decoder);\n * ```\n *\n * Aside from combining encoders and decoders, codecs can also be created from scratch using\n * the {@link createCodec} function but it is more common to compose multiple codecs together\n * using the various helpers of the `@solana/codecs` package.\n *\n * For instance, here's how you might create a `Codec` for a `Person` object type that contains\n * a `name` string and an `age` number:\n *\n * ```ts\n * import { getStructCodec, addCodecSizePrefix, getUtf8Codec, getU32Codec } from '@solana/codecs';\n *\n * type Person = { name: string; age: number };\n * const getPersonCodec = (): Codec<Person> =>\n *     getStructCodec([\n *         ['name', addCodecSizePrefix(getUtf8Codec(), getU32Codec())],\n *         ['age', getU32Codec()],\n *     ]);\n * ```\n *\n * Note that composed `Codec` types are clever enough to understand whether\n * they are fixed-size or variable-size. In the example above, `getU32Codec()` is\n * a fixed-size codec, while `addCodecSizePrefix(getUtf8Codec(), getU32Codec())`\n * is a variable-size codec. This makes the final `Person` codec a variable-size codec.\n *\n * @see {@link FixedSizeCodec}\n * @see {@link VariableSizeCodec}\n * @see {@link combineCodec}\n * @see {@link createCodec}\n */\nexport type Codec<TFrom, TTo extends TFrom = TFrom> = FixedSizeCodec<TFrom, TTo> | VariableSizeCodec<TFrom, TTo>;\n\n/**\n * Gets the encoded size of a given value in bytes using the provided encoder.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @param value - The value to be encoded.\n * @param encoder - The encoder used to determine the encoded size.\n * @returns The size of the encoded value in bytes.\n *\n * @example\n * ```ts\n * const fixedSizeEncoder = { fixedSize: 4 };\n * getEncodedSize(123, fixedSizeEncoder); // Returns 4.\n *\n * const variableSizeEncoder = { getSizeFromValue: (value: string) => value.length };\n * getEncodedSize(\"hello\", variableSizeEncoder); // Returns 5.\n * ```\n *\n * @see {@link Encoder}\n */\nexport function getEncodedSize<TFrom>(\n    value: TFrom,\n    encoder: { fixedSize: number } | { getSizeFromValue: (value: TFrom) => number },\n): number {\n    return 'fixedSize' in encoder ? encoder.fixedSize : encoder.getSizeFromValue(value);\n}\n\n/**\n * Creates an `Encoder` by filling in the missing `encode` function using the provided `write` function and\n * either the `fixedSize` property (for {@link FixedSizeEncoder | FixedSizeEncoders}) or\n * the `getSizeFromValue` function (for {@link VariableSizeEncoder | VariableSizeEncoders}).\n *\n * Instead of manually implementing `encode`, this utility leverages the existing `write` function\n * and the size helpers to generate a complete encoder. The provided `encode` method will allocate\n * a new `Uint8Array` of the correct size and use `write` to populate it.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TSize - The fixed size of the encoded value in bytes (for fixed-size encoders).\n *\n * @param encoder - An encoder object that implements `write`, but not `encode`.\n * - If the encoder has a `fixedSize` property, it is treated as a {@link FixedSizeEncoder}.\n * - Otherwise, it is treated as a {@link VariableSizeEncoder}.\n *\n * @returns A fully functional `Encoder` with both `write` and `encode` methods.\n *\n * @example\n * Creating a custom fixed-size encoder.\n * ```ts\n * const encoder = createEncoder({\n *     fixedSize: 4,\n *     write: (value: number, bytes, offset) => {\n *         bytes.set(new Uint8Array([value]), offset);\n *         return offset + 4;\n *     },\n * });\n *\n * const bytes = encoder.encode(42);\n * // 0x2a000000\n * ```\n *\n * @example\n * Creating a custom variable-size encoder:\n * ```ts\n * const encoder = createEncoder({\n *     getSizeFromValue: (value: string) => value.length,\n *     write: (value: string, bytes, offset) => {\n *         const encodedValue = new TextEncoder().encode(value);\n *         bytes.set(encodedValue, offset);\n *         return offset + encodedValue.length;\n *     },\n * });\n *\n * const bytes = encoder.encode(\"hello\");\n * // 0x68656c6c6f\n * ```\n *\n * @remarks\n * Note that, while `createEncoder` is useful for defining more complex encoders, it is more common to compose\n * encoders together using the various helpers and primitives of the `@solana/codecs` package.\n *\n * Here are some alternative examples using codec primitives instead of `createEncoder`.\n *\n * ```ts\n * // Fixed-size encoder for unsigned 32-bit integers.\n * const encoder = getU32Encoder();\n * const bytes = encoder.encode(42);\n * // 0x2a000000\n *\n * // Variable-size encoder for 32-bytes prefixed UTF-8 strings.\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * const bytes = encoder.encode(\"hello\");\n * // 0x0500000068656c6c6f\n *\n * // Variable-size encoder for custom objects.\n * type Person = { name: string; age: number };\n * const encoder: Encoder<Person> = getStructEncoder([\n *     ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n *     ['age', getU32Encoder()],\n * ]);\n * const bytes = encoder.encode({ name: \"Bob\", age: 42 });\n * // 0x03000000426f622a000000\n * ```\n *\n * @see {@link Encoder}\n * @see {@link FixedSizeEncoder}\n * @see {@link VariableSizeEncoder}\n * @see {@link getStructEncoder}\n * @see {@link getU32Encoder}\n * @see {@link getUtf8Encoder}\n * @see {@link addEncoderSizePrefix}\n */\nexport function createEncoder<TFrom, TSize extends number>(\n    encoder: Omit<FixedSizeEncoder<TFrom, TSize>, 'encode'>,\n): FixedSizeEncoder<TFrom, TSize>;\nexport function createEncoder<TFrom>(encoder: Omit<VariableSizeEncoder<TFrom>, 'encode'>): VariableSizeEncoder<TFrom>;\nexport function createEncoder<TFrom>(\n    encoder: Omit<FixedSizeEncoder<TFrom>, 'encode'> | Omit<VariableSizeEncoder<TFrom>, 'encode'>,\n): Encoder<TFrom>;\nexport function createEncoder<TFrom>(\n    encoder: Omit<FixedSizeEncoder<TFrom>, 'encode'> | Omit<VariableSizeEncoder<TFrom>, 'encode'>,\n): Encoder<TFrom> {\n    return Object.freeze({\n        ...encoder,\n        encode: value => {\n            const bytes = new Uint8Array(getEncodedSize(value, encoder));\n            encoder.write(value, bytes, 0);\n            return bytes;\n        },\n    });\n}\n\n/**\n * Creates a `Decoder` by filling in the missing `decode` function using the provided `read` function.\n *\n * Instead of manually implementing `decode`, this utility leverages the existing `read` function\n * and the size properties to generate a complete decoder. The provided `decode` method will read\n * from a `Uint8Array` at the given offset and return the decoded value.\n *\n * If the `fixedSize` property is provided, a {@link FixedSizeDecoder} will be created, otherwise\n * a {@link VariableSizeDecoder} will be created.\n *\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes (for fixed-size decoders).\n *\n * @param decoder - A decoder object that implements `read`, but not `decode`.\n * - If the decoder has a `fixedSize` property, it is treated as a {@link FixedSizeDecoder}.\n * - Otherwise, it is treated as a {@link VariableSizeDecoder}.\n *\n * @returns A fully functional `Decoder` with both `read` and `decode` methods.\n *\n * @example\n * Creating a custom fixed-size decoder.\n * ```ts\n * const decoder = createDecoder({\n *     fixedSize: 4,\n *     read: (bytes, offset) => {\n *         const value = bytes[offset];\n *         return [value, offset + 4];\n *     },\n * });\n *\n * const value = decoder.decode(new Uint8Array([42, 0, 0, 0]));\n * // 42\n * ```\n *\n * @example\n * Creating a custom variable-size decoder:\n * ```ts\n * const decoder = createDecoder({\n *     read: (bytes, offset) => {\n *         const decodedValue = new TextDecoder().decode(bytes.subarray(offset));\n *         return [decodedValue, bytes.length];\n *     },\n * });\n *\n * const value = decoder.decode(new Uint8Array([104, 101, 108, 108, 111]));\n * // \"hello\"\n * ```\n *\n * @remarks\n * Note that, while `createDecoder` is useful for defining more complex decoders, it is more common to compose\n * decoders together using the various helpers and primitives of the `@solana/codecs` package.\n *\n * Here are some alternative examples using codec primitives instead of `createDecoder`.\n *\n * ```ts\n * // Fixed-size decoder for unsigned 32-bit integers.\n * const decoder = getU32Decoder();\n * const value = decoder.decode(new Uint8Array([42, 0, 0, 0]));\n * // 42\n *\n * // Variable-size decoder for 32-bytes prefixed UTF-8 strings.\n * const decoder = addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder());\n * const value = decoder.decode(new Uint8Array([5, 0, 0, 0, 104, 101, 108, 108, 111]));\n * // \"hello\"\n *\n * // Variable-size decoder for custom objects.\n * type Person = { name: string; age: number };\n * const decoder: Decoder<Person> = getStructDecoder([\n *     ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n *     ['age', getU32Decoder()],\n * ]);\n * const value = decoder.decode(new Uint8Array([3, 0, 0, 0, 66, 111, 98, 42, 0, 0, 0]));\n * // { name: \"Bob\", age: 42 }\n * ```\n *\n * @see {@link Decoder}\n * @see {@link FixedSizeDecoder}\n * @see {@link VariableSizeDecoder}\n * @see {@link getStructDecoder}\n * @see {@link getU32Decoder}\n * @see {@link getUtf8Decoder}\n * @see {@link addDecoderSizePrefix}\n */\nexport function createDecoder<TTo, TSize extends number>(\n    decoder: Omit<FixedSizeDecoder<TTo, TSize>, 'decode'>,\n): FixedSizeDecoder<TTo, TSize>;\nexport function createDecoder<TTo>(decoder: Omit<VariableSizeDecoder<TTo>, 'decode'>): VariableSizeDecoder<TTo>;\nexport function createDecoder<TTo>(\n    decoder: Omit<FixedSizeDecoder<TTo>, 'decode'> | Omit<VariableSizeDecoder<TTo>, 'decode'>,\n): Decoder<TTo>;\nexport function createDecoder<TTo>(\n    decoder: Omit<FixedSizeDecoder<TTo>, 'decode'> | Omit<VariableSizeDecoder<TTo>, 'decode'>,\n): Decoder<TTo> {\n    return Object.freeze({\n        ...decoder,\n        decode: (bytes, offset = 0) => decoder.read(bytes, offset)[0],\n    });\n}\n\n/**\n * Creates a `Codec` by filling in the missing `encode` and `decode` functions using the provided `write` and `read` functions.\n *\n * This utility combines the behavior of {@link createEncoder} and {@link createDecoder} to produce a fully functional `Codec`.\n * The `encode` method is derived from the `write` function, while the `decode` method is derived from the `read` function.\n *\n * If the `fixedSize` property is provided, a {@link FixedSizeCodec} will be created, otherwise\n * a {@link VariableSizeCodec} will be created.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes (for fixed-size codecs).\n *\n * @param codec - A codec object that implements `write` and `read`, but not `encode` or `decode`.\n * - If the codec has a `fixedSize` property, it is treated as a {@link FixedSizeCodec}.\n * - Otherwise, it is treated as a {@link VariableSizeCodec}.\n *\n * @returns A fully functional `Codec` with `write`, `read`, `encode`, and `decode` methods.\n *\n * @example\n * Creating a custom fixed-size codec.\n * ```ts\n * const codec = createCodec({\n *     fixedSize: 4,\n *     read: (bytes, offset) => {\n *         const value = bytes[offset];\n *         return [value, offset + 4];\n *     },\n *     write: (value: number, bytes, offset) => {\n *         bytes.set(new Uint8Array([value]), offset);\n *         return offset + 4;\n *     },\n * });\n *\n * const bytes = codec.encode(42);\n * // 0x2a000000\n * const value = codec.decode(bytes);\n * // 42\n * ```\n *\n * @example\n * Creating a custom variable-size codec:\n * ```ts\n * const codec = createCodec({\n *     getSizeFromValue: (value: string) => value.length,\n *     read: (bytes, offset) => {\n *         const decodedValue = new TextDecoder().decode(bytes.subarray(offset));\n *         return [decodedValue, bytes.length];\n *     },\n *     write: (value: string, bytes, offset) => {\n *         const encodedValue = new TextEncoder().encode(value);\n *         bytes.set(encodedValue, offset);\n *         return offset + encodedValue.length;\n *     },\n * });\n *\n * const bytes = codec.encode(\"hello\");\n * // 0x68656c6c6f\n * const value = codec.decode(bytes);\n * // \"hello\"\n * ```\n *\n * @remarks\n * This function effectively combines the behavior of {@link createEncoder} and {@link createDecoder}.\n * If you only need to encode or decode (but not both), consider using those functions instead.\n *\n * Here are some alternative examples using codec primitives instead of `createCodec`.\n *\n * ```ts\n * // Fixed-size codec for unsigned 32-bit integers.\n * const codec = getU32Codec();\n * const bytes = codec.encode(42);\n * // 0x2a000000\n * const value = codec.decode(bytes);\n * // 42\n *\n * // Variable-size codec for 32-bytes prefixed UTF-8 strings.\n * const codec = addCodecSizePrefix(getUtf8Codec(), getU32Codec());\n * const bytes = codec.encode(\"hello\");\n * // 0x0500000068656c6c6f\n * const value = codec.decode(bytes);\n * // \"hello\"\n *\n * // Variable-size codec for custom objects.\n * type Person = { name: string; age: number };\n * const codec: Codec<PersonInput, Person> = getStructCodec([\n *     ['name', addCodecSizePrefix(getUtf8Codec(), getU32Codec())],\n *     ['age', getU32Codec()],\n * ]);\n * const bytes = codec.encode({ name: \"Bob\", age: 42 });\n * // 0x03000000426f622a000000\n * const value = codec.decode(bytes);\n * // { name: \"Bob\", age: 42 }\n * ```\n *\n * @see {@link Codec}\n * @see {@link FixedSizeCodec}\n * @see {@link VariableSizeCodec}\n * @see {@link createEncoder}\n * @see {@link createDecoder}\n * @see {@link getStructCodec}\n * @see {@link getU32Codec}\n * @see {@link getUtf8Codec}\n * @see {@link addCodecSizePrefix}\n */\nexport function createCodec<TFrom, TTo extends TFrom = TFrom, TSize extends number = number>(\n    codec: Omit<FixedSizeCodec<TFrom, TTo, TSize>, 'decode' | 'encode'>,\n): FixedSizeCodec<TFrom, TTo, TSize>;\nexport function createCodec<TFrom, TTo extends TFrom = TFrom>(\n    codec: Omit<VariableSizeCodec<TFrom, TTo>, 'decode' | 'encode'>,\n): VariableSizeCodec<TFrom, TTo>;\nexport function createCodec<TFrom, TTo extends TFrom = TFrom>(\n    codec:\n        | Omit<FixedSizeCodec<TFrom, TTo>, 'decode' | 'encode'>\n        | Omit<VariableSizeCodec<TFrom, TTo>, 'decode' | 'encode'>,\n): Codec<TFrom, TTo>;\nexport function createCodec<TFrom, TTo extends TFrom = TFrom>(\n    codec:\n        | Omit<FixedSizeCodec<TFrom, TTo>, 'decode' | 'encode'>\n        | Omit<VariableSizeCodec<TFrom, TTo>, 'decode' | 'encode'>,\n): Codec<TFrom, TTo> {\n    return Object.freeze({\n        ...codec,\n        decode: (bytes, offset = 0) => codec.read(bytes, offset)[0],\n        encode: value => {\n            const bytes = new Uint8Array(getEncodedSize(value, codec));\n            codec.write(value, bytes, 0);\n            return bytes;\n        },\n    });\n}\n\n/**\n * Determines whether the given codec, encoder, or decoder is fixed-size.\n *\n * A fixed-size object is identified by the presence of a `fixedSize` property.\n * If this property exists, the object is considered a {@link FixedSizeCodec},\n * {@link FixedSizeEncoder}, or {@link FixedSizeDecoder}.\n * Otherwise, it is assumed to be a {@link VariableSizeCodec},\n * {@link VariableSizeEncoder}, or {@link VariableSizeDecoder}.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n * @returns `true` if the object is fixed-size, `false` otherwise.\n *\n * @example\n * Checking a fixed-size encoder.\n * ```ts\n * const encoder = getU32Encoder();\n * isFixedSize(encoder); // true\n * ```\n *\n * @example\n * Checking a variable-size encoder.\n * ```ts\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * isFixedSize(encoder); // false\n * ```\n *\n * @remarks\n * This function is commonly used to distinguish between fixed-size and variable-size objects at runtime.\n * If you need to enforce this distinction with type assertions, consider using {@link assertIsFixedSize}.\n *\n * @see {@link assertIsFixedSize}\n */\nexport function isFixedSize<TFrom, TSize extends number>(\n    encoder: FixedSizeEncoder<TFrom, TSize> | VariableSizeEncoder<TFrom>,\n): encoder is FixedSizeEncoder<TFrom, TSize>;\nexport function isFixedSize<TTo, TSize extends number>(\n    decoder: FixedSizeDecoder<TTo, TSize> | VariableSizeDecoder<TTo>,\n): decoder is FixedSizeDecoder<TTo, TSize>;\nexport function isFixedSize<TFrom, TTo extends TFrom, TSize extends number>(\n    codec: FixedSizeCodec<TFrom, TTo, TSize> | VariableSizeCodec<TFrom, TTo>,\n): codec is FixedSizeCodec<TFrom, TTo, TSize>;\nexport function isFixedSize<TSize extends number>(\n    codec: { fixedSize: TSize } | { maxSize?: number },\n): codec is { fixedSize: TSize };\nexport function isFixedSize(codec: { fixedSize: number } | { maxSize?: number }): codec is { fixedSize: number } {\n    return 'fixedSize' in codec && typeof codec.fixedSize === 'number';\n}\n\n/**\n * Asserts that the given codec, encoder, or decoder is fixed-size.\n *\n * If the object is not fixed-size (i.e., it lacks a `fixedSize` property),\n * this function throws a {@link SolanaError} with the code `SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH`.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n * @throws {SolanaError} If the object is not fixed-size.\n *\n * @example\n * Asserting a fixed-size encoder.\n * ```ts\n * const encoder = getU32Encoder();\n * assertIsFixedSize(encoder); // Passes\n * ```\n *\n * @example\n * Attempting to assert a variable-size encoder.\n * ```ts\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * assertIsFixedSize(encoder); // Throws SolanaError\n * ```\n *\n * @remarks\n * This function is the assertion-based counterpart of {@link isFixedSize}.\n * If you only need to check whether an object is fixed-size without throwing an error, use {@link isFixedSize} instead.\n *\n * @see {@link isFixedSize}\n */\nexport function assertIsFixedSize<TFrom, TSize extends number>(\n    encoder: FixedSizeEncoder<TFrom, TSize> | VariableSizeEncoder<TFrom>,\n): asserts encoder is FixedSizeEncoder<TFrom, TSize>;\nexport function assertIsFixedSize<TTo, TSize extends number>(\n    decoder: FixedSizeDecoder<TTo, TSize> | VariableSizeDecoder<TTo>,\n): asserts decoder is FixedSizeDecoder<TTo, TSize>;\nexport function assertIsFixedSize<TFrom, TTo extends TFrom, TSize extends number>(\n    codec: FixedSizeCodec<TFrom, TTo, TSize> | VariableSizeCodec<TFrom, TTo>,\n): asserts codec is FixedSizeCodec<TFrom, TTo, TSize>;\nexport function assertIsFixedSize<TSize extends number>(\n    codec: { fixedSize: TSize } | { maxSize?: number },\n): asserts codec is { fixedSize: TSize };\nexport function assertIsFixedSize(\n    codec: { fixedSize: number } | { maxSize?: number },\n): asserts codec is { fixedSize: number } {\n    if (!isFixedSize(codec)) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__EXPECTED_FIXED_LENGTH);\n    }\n}\n\n/**\n * Determines whether the given codec, encoder, or decoder is variable-size.\n *\n * A variable-size object is identified by the absence of a `fixedSize` property.\n * If this property is missing, the object is considered a {@link VariableSizeCodec},\n * {@link VariableSizeEncoder}, or {@link VariableSizeDecoder}.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n * @returns `true` if the object is variable-size, `false` otherwise.\n *\n * @example\n * Checking a variable-size encoder.\n * ```ts\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * isVariableSize(encoder); // true\n * ```\n *\n * @example\n * Checking a fixed-size encoder.\n * ```ts\n * const encoder = getU32Encoder();\n * isVariableSize(encoder); // false\n * ```\n *\n * @remarks\n * This function is the inverse of {@link isFixedSize}.\n *\n * @see {@link isFixedSize}\n * @see {@link assertIsVariableSize}\n */\nexport function isVariableSize<TFrom>(encoder: Encoder<TFrom>): encoder is VariableSizeEncoder<TFrom>;\nexport function isVariableSize<TTo>(decoder: Decoder<TTo>): decoder is VariableSizeDecoder<TTo>;\nexport function isVariableSize<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n): codec is VariableSizeCodec<TFrom, TTo>;\nexport function isVariableSize(codec: { fixedSize: number } | { maxSize?: number }): codec is { maxSize?: number };\nexport function isVariableSize(codec: { fixedSize: number } | { maxSize?: number }): codec is { maxSize?: number } {\n    return !isFixedSize(codec);\n}\n\n/**\n * Asserts that the given codec, encoder, or decoder is variable-size.\n *\n * If the object is not variable-size (i.e., it has a `fixedSize` property),\n * this function throws a {@link SolanaError} with the code `SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH`.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n * @throws {SolanaError} If the object is not variable-size.\n *\n * @example\n * Asserting a variable-size encoder.\n * ```ts\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * assertIsVariableSize(encoder); // Passes\n * ```\n *\n * @example\n * Attempting to assert a fixed-size encoder.\n * ```ts\n * const encoder = getU32Encoder();\n * assertIsVariableSize(encoder); // Throws SolanaError\n * ```\n *\n * @remarks\n * This function is the assertion-based counterpart of {@link isVariableSize}.\n * If you only need to check whether an object is variable-size without throwing an error, use {@link isVariableSize} instead.\n *\n * Also note that this function is the inverse of {@link assertIsFixedSize}.\n *\n * @see {@link isVariableSize}\n * @see {@link assertIsFixedSize}\n */\nexport function assertIsVariableSize<TFrom>(encoder: Encoder<TFrom>): asserts encoder is VariableSizeEncoder<TFrom>;\nexport function assertIsVariableSize<TTo>(decoder: Decoder<TTo>): asserts decoder is VariableSizeDecoder<TTo>;\nexport function assertIsVariableSize<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n): asserts codec is VariableSizeCodec<TFrom, TTo>;\nexport function assertIsVariableSize(\n    codec: { fixedSize: number } | { maxSize?: number },\n): asserts codec is { maxSize?: number };\nexport function assertIsVariableSize(\n    codec: { fixedSize: number } | { maxSize?: number },\n): asserts codec is { maxSize?: number } {\n    if (!isVariableSize(codec)) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__EXPECTED_VARIABLE_LENGTH);\n    }\n}\n","import {\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH,\n    SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH,\n    SolanaError,\n} from '@solana/errors';\n\nimport {\n    Codec,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    isFixedSize,\n    VariableSizeCodec,\n    VariableSizeDecoder,\n    VariableSizeEncoder,\n} from './codec';\n\n/**\n * Combines an `Encoder` and a `Decoder` into a `Codec`.\n *\n * That is, given a `Encoder<TFrom>` and a `Decoder<TTo>`, this function returns a `Codec<TFrom, TTo>`.\n *\n * This allows for modular composition by keeping encoding and decoding logic separate\n * while still offering a convenient way to bundle them into a single `Codec`.\n * This is particularly useful for library maintainers who want to expose `Encoders`,\n * `Decoders`, and `Codecs` separately, enabling tree-shaking of unused logic.\n *\n * The provided `Encoder` and `Decoder` must be compatible in terms of:\n * - **Fixed Size:** If both are fixed-size, they must have the same `fixedSize` value.\n * - **Variable Size:** If either has a `maxSize` attribute, it must match the other.\n *\n * If these conditions are not met, a {@link SolanaError} will be thrown.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes (for fixed-size codecs).\n *\n * @param encoder - The `Encoder` to combine.\n * @param decoder - The `Decoder` to combine.\n * @returns A `Codec` that provides both `encode` and `decode` methods.\n *\n * @throws {SolanaError}\n * - `SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH`\n *   Thrown if the encoder and decoder have mismatched size types (fixed vs. variable).\n * - `SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH`\n *   Thrown if both are fixed-size but have different `fixedSize` values.\n * - `SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH`\n *   Thrown if the `maxSize` attributes do not match.\n *\n * @example\n * Creating a fixed-size `Codec` from an encoder and a decoder.\n * ```ts\n * const encoder = getU32Encoder();\n * const decoder = getU32Decoder();\n * const codec = combineCodec(encoder, decoder);\n *\n * const bytes = codec.encode(42); // 0x2a000000\n * const value = codec.decode(bytes); // 42\n * ```\n *\n * @example\n * Creating a variable-size `Codec` from an encoder and a decoder.\n * ```ts\n * const encoder = addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder());\n * const decoder = addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder());\n * const codec = combineCodec(encoder, decoder);\n *\n * const bytes = codec.encode(\"hello\"); // 0x0500000068656c6c6f\n * const value = codec.decode(bytes); // \"hello\"\n * ```\n *\n * @remarks\n * The recommended pattern for defining codecs in libraries is to expose separate functions for the encoder, decoder, and codec.\n * This allows users to import only what they need, improving tree-shaking efficiency.\n *\n * ```ts\n * type MyType = \\/* ... *\\/;\n * const getMyTypeEncoder = (): Encoder<MyType> => { \\/* ... *\\/ };\n * const getMyTypeDecoder = (): Decoder<MyType> => { \\/* ... *\\/ };\n * const getMyTypeCodec = (): Codec<MyType> =>\n *     combineCodec(getMyTypeEncoder(), getMyTypeDecoder());\n * ```\n *\n * @see {@link Codec}\n * @see {@link Encoder}\n * @see {@link Decoder}\n */\nexport function combineCodec<TFrom, TTo extends TFrom, TSize extends number>(\n    encoder: FixedSizeEncoder<TFrom, TSize>,\n    decoder: FixedSizeDecoder<TTo, TSize>,\n): FixedSizeCodec<TFrom, TTo, TSize>;\nexport function combineCodec<TFrom, TTo extends TFrom>(\n    encoder: VariableSizeEncoder<TFrom>,\n    decoder: VariableSizeDecoder<TTo>,\n): VariableSizeCodec<TFrom, TTo>;\nexport function combineCodec<TFrom, TTo extends TFrom>(\n    encoder: Encoder<TFrom>,\n    decoder: Decoder<TTo>,\n): Codec<TFrom, TTo>;\nexport function combineCodec<TFrom, TTo extends TFrom>(\n    encoder: Encoder<TFrom>,\n    decoder: Decoder<TTo>,\n): Codec<TFrom, TTo> {\n    if (isFixedSize(encoder) !== isFixedSize(decoder)) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__ENCODER_DECODER_SIZE_COMPATIBILITY_MISMATCH);\n    }\n\n    if (isFixedSize(encoder) && isFixedSize(decoder) && encoder.fixedSize !== decoder.fixedSize) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__ENCODER_DECODER_FIXED_SIZE_MISMATCH, {\n            decoderFixedSize: decoder.fixedSize,\n            encoderFixedSize: encoder.fixedSize,\n        });\n    }\n\n    if (!isFixedSize(encoder) && !isFixedSize(decoder) && encoder.maxSize !== decoder.maxSize) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__ENCODER_DECODER_MAX_SIZE_MISMATCH, {\n            decoderMaxSize: decoder.maxSize,\n            encoderMaxSize: encoder.maxSize,\n        });\n    }\n\n    return {\n        ...decoder,\n        ...encoder,\n        decode: decoder.decode,\n        encode: encoder.encode,\n        read: decoder.read,\n        write: encoder.write,\n    };\n}\n","import {\n    SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL,\n    SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES,\n    SolanaError,\n} from '@solana/errors';\n\nimport { containsBytes } from './bytes';\nimport {\n    Codec,\n    createDecoder,\n    createEncoder,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    isFixedSize,\n    VariableSizeCodec,\n    VariableSizeDecoder,\n    VariableSizeEncoder,\n} from './codec';\nimport { combineCodec } from './combine-codec';\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\n/**\n * Creates an encoder that writes a `Uint8Array` sentinel after the encoded value.\n * This is useful to delimit the encoded value when being read by a decoder.\n *\n * See {@link addCodecSentinel} for more information.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @see {@link addCodecSentinel}\n */\nexport function addEncoderSentinel<TFrom>(\n    encoder: FixedSizeEncoder<TFrom>,\n    sentinel: ReadonlyUint8Array,\n): FixedSizeEncoder<TFrom>;\nexport function addEncoderSentinel<TFrom>(\n    encoder: Encoder<TFrom>,\n    sentinel: ReadonlyUint8Array,\n): VariableSizeEncoder<TFrom>;\nexport function addEncoderSentinel<TFrom>(encoder: Encoder<TFrom>, sentinel: ReadonlyUint8Array): Encoder<TFrom> {\n    const write = ((value, bytes, offset) => {\n        // Here we exceptionally use the `encode` function instead of the `write`\n        // function to contain the content of the encoder within its own bounds\n        // and to avoid writing the sentinel as part of the encoded value.\n        const encoderBytes = encoder.encode(value);\n        if (findSentinelIndex(encoderBytes, sentinel) >= 0) {\n            throw new SolanaError(SOLANA_ERROR__CODECS__ENCODED_BYTES_MUST_NOT_INCLUDE_SENTINEL, {\n                encodedBytes: encoderBytes,\n                hexEncodedBytes: hexBytes(encoderBytes),\n                hexSentinel: hexBytes(sentinel),\n                sentinel,\n            });\n        }\n        bytes.set(encoderBytes, offset);\n        offset += encoderBytes.length;\n        bytes.set(sentinel, offset);\n        offset += sentinel.length;\n        return offset;\n    }) as Encoder<TFrom>['write'];\n\n    if (isFixedSize(encoder)) {\n        return createEncoder({ ...encoder, fixedSize: encoder.fixedSize + sentinel.length, write });\n    }\n\n    return createEncoder({\n        ...encoder,\n        ...(encoder.maxSize != null ? { maxSize: encoder.maxSize + sentinel.length } : {}),\n        getSizeFromValue: value => encoder.getSizeFromValue(value) + sentinel.length,\n        write,\n    });\n}\n\n/**\n * Creates a decoder that continues reading until\n * a given `Uint8Array` sentinel is found.\n *\n * See {@link addCodecSentinel} for more information.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @see {@link addCodecSentinel}\n */\nexport function addDecoderSentinel<TTo>(\n    decoder: FixedSizeDecoder<TTo>,\n    sentinel: ReadonlyUint8Array,\n): FixedSizeDecoder<TTo>;\nexport function addDecoderSentinel<TTo>(decoder: Decoder<TTo>, sentinel: ReadonlyUint8Array): VariableSizeDecoder<TTo>;\nexport function addDecoderSentinel<TTo>(decoder: Decoder<TTo>, sentinel: ReadonlyUint8Array): Decoder<TTo> {\n    const read = ((bytes, offset) => {\n        const candidateBytes = offset === 0 ? bytes : bytes.slice(offset);\n        const sentinelIndex = findSentinelIndex(candidateBytes, sentinel);\n        if (sentinelIndex === -1) {\n            throw new SolanaError(SOLANA_ERROR__CODECS__SENTINEL_MISSING_IN_DECODED_BYTES, {\n                decodedBytes: candidateBytes,\n                hexDecodedBytes: hexBytes(candidateBytes),\n                hexSentinel: hexBytes(sentinel),\n                sentinel,\n            });\n        }\n        const preSentinelBytes = candidateBytes.slice(0, sentinelIndex);\n        // Here we exceptionally use the `decode` function instead of the `read`\n        // function to contain the content of the decoder within its own bounds\n        // and ensure that the sentinel is not part of the decoded value.\n        return [decoder.decode(preSentinelBytes), offset + preSentinelBytes.length + sentinel.length];\n    }) as Decoder<TTo>['read'];\n\n    if (isFixedSize(decoder)) {\n        return createDecoder({ ...decoder, fixedSize: decoder.fixedSize + sentinel.length, read });\n    }\n\n    return createDecoder({\n        ...decoder,\n        ...(decoder.maxSize != null ? { maxSize: decoder.maxSize + sentinel.length } : {}),\n        read,\n    });\n}\n\n/**\n * Creates a Codec that writes a given `Uint8Array` sentinel after the encoded\n * value and, when decoding, continues reading until the sentinel is found.\n *\n * This sets a limit on variable-size codecs and tells us when to stop decoding.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @example\n * ```ts\n * const codec = addCodecSentinel(getUtf8Codec(), new Uint8Array([255, 255]));\n * codec.encode('hello');\n * // 0x68656c6c6fffff\n * //   |        └-- Our sentinel.\n * //   └-- Our encoded string.\n * ```\n *\n * @remarks\n * Note that the sentinel _must not_ be present in the encoded data and\n * _must_ be present in the decoded data for this to work.\n * If this is not the case, dedicated errors will be thrown.\n *\n * ```ts\n * const sentinel = new Uint8Array([108, 108]); // 'll'\n * const codec = addCodecSentinel(getUtf8Codec(), sentinel);\n *\n * codec.encode('hello'); // Throws: sentinel is in encoded data.\n * codec.decode(new Uint8Array([1, 2, 3])); // Throws: sentinel missing in decoded data.\n * ```\n *\n * Separate {@link addEncoderSentinel} and {@link addDecoderSentinel} functions are also available.\n *\n * ```ts\n * const bytes = addEncoderSentinel(getUtf8Encoder(), sentinel).encode('hello');\n * const value = addDecoderSentinel(getUtf8Decoder(), sentinel).decode(bytes);\n * ```\n *\n * @see {@link addEncoderSentinel}\n * @see {@link addDecoderSentinel}\n */\nexport function addCodecSentinel<TFrom, TTo extends TFrom>(\n    codec: FixedSizeCodec<TFrom, TTo>,\n    sentinel: ReadonlyUint8Array,\n): FixedSizeCodec<TFrom, TTo>;\nexport function addCodecSentinel<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n    sentinel: ReadonlyUint8Array,\n): VariableSizeCodec<TFrom, TTo>;\nexport function addCodecSentinel<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n    sentinel: ReadonlyUint8Array,\n): Codec<TFrom, TTo> {\n    return combineCodec(addEncoderSentinel(codec, sentinel), addDecoderSentinel(codec, sentinel));\n}\n\nfunction findSentinelIndex(bytes: ReadonlyUint8Array, sentinel: ReadonlyUint8Array) {\n    return bytes.findIndex((byte, index, arr) => {\n        if (sentinel.length === 1) return byte === sentinel[0];\n        return containsBytes(arr, sentinel, index);\n    });\n}\n\nfunction hexBytes(bytes: ReadonlyUint8Array): string {\n    return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n","import {\n    SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY,\n    SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH,\n    SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE,\n    SolanaError,\n} from '@solana/errors';\n\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\n/**\n * Asserts that a given byte array is not empty (after the optional provided offset).\n *\n * Returns void if the byte array is not empty but throws a {@link SolanaError} otherwise.\n *\n * @param codecDescription - A description of the codec used by the assertion error.\n * @param bytes - The byte array to check.\n * @param offset - The offset from which to start checking the byte array.\n * If provided, the byte array is considered empty if it has no bytes after the offset.\n *\n * @example\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02, 0x03]);\n * assertByteArrayIsNotEmptyForCodec('myCodec', bytes); // OK\n * assertByteArrayIsNotEmptyForCodec('myCodec', bytes, 1); // OK\n * assertByteArrayIsNotEmptyForCodec('myCodec', bytes, 3); // Throws\n * ```\n */\nexport function assertByteArrayIsNotEmptyForCodec(\n    codecDescription: string,\n    bytes: ReadonlyUint8Array | Uint8Array,\n    offset = 0,\n) {\n    if (bytes.length - offset <= 0) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__CANNOT_DECODE_EMPTY_BYTE_ARRAY, {\n            codecDescription,\n        });\n    }\n}\n\n/**\n * Asserts that a given byte array has enough bytes to decode\n * (after the optional provided offset).\n *\n * Returns void if the byte array has at least the expected number\n * of bytes but throws a {@link SolanaError} otherwise.\n *\n * @param codecDescription - A description of the codec used by the assertion error.\n * @param expected - The minimum number of bytes expected in the byte array.\n * @param bytes - The byte array to check.\n * @param offset - The offset from which to start checking the byte array.\n *\n * @example\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02, 0x03]);\n * assertByteArrayHasEnoughBytesForCodec('myCodec', 3, bytes); // OK\n * assertByteArrayHasEnoughBytesForCodec('myCodec', 4, bytes); // Throws\n * assertByteArrayHasEnoughBytesForCodec('myCodec', 2, bytes, 1); // OK\n * assertByteArrayHasEnoughBytesForCodec('myCodec', 3, bytes, 1); // Throws\n * ```\n */\nexport function assertByteArrayHasEnoughBytesForCodec(\n    codecDescription: string,\n    expected: number,\n    bytes: ReadonlyUint8Array | Uint8Array,\n    offset = 0,\n) {\n    const bytesLength = bytes.length - offset;\n    if (bytesLength < expected) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__INVALID_BYTE_LENGTH, {\n            bytesLength,\n            codecDescription,\n            expected,\n        });\n    }\n}\n\n/**\n * Asserts that a given offset is within the byte array bounds.\n * This range is between 0 and the byte array length and is inclusive.\n * An offset equals to the byte array length is considered a valid offset\n * as it allows the post-offset of codecs to signal the end of the byte array.\n *\n * @param codecDescription - A description of the codec used by the assertion error.\n * @param offset - The offset to check.\n * @param bytesLength - The length of the byte array from which the offset should be within bounds.\n *\n * @example\n * ```ts\n * const bytes = new Uint8Array([0x01, 0x02, 0x03]);\n * assertByteArrayOffsetIsNotOutOfRange('myCodec', 0, bytes.length); // OK\n * assertByteArrayOffsetIsNotOutOfRange('myCodec', 3, bytes.length); // OK\n * assertByteArrayOffsetIsNotOutOfRange('myCodec', 4, bytes.length); // Throws\n * ```\n */\nexport function assertByteArrayOffsetIsNotOutOfRange(codecDescription: string, offset: number, bytesLength: number) {\n    if (offset < 0 || offset > bytesLength) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__OFFSET_OUT_OF_RANGE, {\n            bytesLength,\n            codecDescription,\n            offset,\n        });\n    }\n}\n","import { assertByteArrayHasEnoughBytesForCodec } from './assertions';\nimport {\n    Codec,\n    createDecoder,\n    createEncoder,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    getEncodedSize,\n    isFixedSize,\n    VariableSizeCodec,\n    VariableSizeDecoder,\n    VariableSizeEncoder,\n} from './codec';\nimport { combineCodec } from './combine-codec';\n\ntype NumberEncoder = Encoder<bigint | number> | Encoder<number>;\ntype FixedSizeNumberEncoder<TSize extends number = number> =\n    | FixedSizeEncoder<bigint | number, TSize>\n    | FixedSizeEncoder<number, TSize>;\ntype NumberDecoder = Decoder<bigint> | Decoder<number>;\ntype FixedSizeNumberDecoder<TSize extends number = number> =\n    | FixedSizeDecoder<bigint, TSize>\n    | FixedSizeDecoder<number, TSize>;\ntype NumberCodec = Codec<bigint | number, bigint> | Codec<number>;\ntype FixedSizeNumberCodec<TSize extends number = number> =\n    | FixedSizeCodec<bigint | number, bigint, TSize>\n    | FixedSizeCodec<number, number, TSize>;\n\n/**\n * Stores the size of the `encoder` in bytes as a prefix using the `prefix` encoder.\n *\n * See {@link addCodecSizePrefix} for more information.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @see {@link addCodecSizePrefix}\n */\nexport function addEncoderSizePrefix<TFrom>(\n    encoder: FixedSizeEncoder<TFrom>,\n    prefix: FixedSizeNumberEncoder,\n): FixedSizeEncoder<TFrom>;\nexport function addEncoderSizePrefix<TFrom>(encoder: Encoder<TFrom>, prefix: NumberEncoder): VariableSizeEncoder<TFrom>;\nexport function addEncoderSizePrefix<TFrom>(encoder: Encoder<TFrom>, prefix: NumberEncoder): Encoder<TFrom> {\n    const write = ((value, bytes, offset) => {\n        // Here we exceptionally use the `encode` function instead of the `write`\n        // function to contain the content of the encoder within its own bounds.\n        const encoderBytes = encoder.encode(value);\n        offset = prefix.write(encoderBytes.length, bytes, offset);\n        bytes.set(encoderBytes, offset);\n        return offset + encoderBytes.length;\n    }) as Encoder<TFrom>['write'];\n\n    if (isFixedSize(prefix) && isFixedSize(encoder)) {\n        return createEncoder({ ...encoder, fixedSize: prefix.fixedSize + encoder.fixedSize, write });\n    }\n\n    const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : (prefix.maxSize ?? null);\n    const encoderMaxSize = isFixedSize(encoder) ? encoder.fixedSize : (encoder.maxSize ?? null);\n    const maxSize = prefixMaxSize !== null && encoderMaxSize !== null ? prefixMaxSize + encoderMaxSize : null;\n\n    return createEncoder({\n        ...encoder,\n        ...(maxSize !== null ? { maxSize } : {}),\n        getSizeFromValue: value => {\n            const encoderSize = getEncodedSize(value, encoder);\n            return getEncodedSize(encoderSize, prefix) + encoderSize;\n        },\n        write,\n    });\n}\n\n/**\n * Bounds the size of the nested `decoder` by reading its encoded `prefix`.\n *\n * See {@link addCodecSizePrefix} for more information.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @see {@link addCodecSizePrefix}\n */\nexport function addDecoderSizePrefix<TTo>(\n    decoder: FixedSizeDecoder<TTo>,\n    prefix: FixedSizeNumberDecoder,\n): FixedSizeDecoder<TTo>;\nexport function addDecoderSizePrefix<TTo>(decoder: Decoder<TTo>, prefix: NumberDecoder): VariableSizeDecoder<TTo>;\nexport function addDecoderSizePrefix<TTo>(decoder: Decoder<TTo>, prefix: NumberDecoder): Decoder<TTo> {\n    const read = ((bytes, offset) => {\n        const [bigintSize, decoderOffset] = prefix.read(bytes, offset);\n        const size = Number(bigintSize);\n        offset = decoderOffset;\n        // Slice the byte array to the contained size if necessary.\n        if (offset > 0 || bytes.length > size) {\n            bytes = bytes.slice(offset, offset + size);\n        }\n        assertByteArrayHasEnoughBytesForCodec('addDecoderSizePrefix', size, bytes);\n        // Here we exceptionally use the `decode` function instead of the `read`\n        // function to contain the content of the decoder within its own bounds.\n        return [decoder.decode(bytes), offset + size];\n    }) as Decoder<TTo>['read'];\n\n    if (isFixedSize(prefix) && isFixedSize(decoder)) {\n        return createDecoder({ ...decoder, fixedSize: prefix.fixedSize + decoder.fixedSize, read });\n    }\n\n    const prefixMaxSize = isFixedSize(prefix) ? prefix.fixedSize : (prefix.maxSize ?? null);\n    const decoderMaxSize = isFixedSize(decoder) ? decoder.fixedSize : (decoder.maxSize ?? null);\n    const maxSize = prefixMaxSize !== null && decoderMaxSize !== null ? prefixMaxSize + decoderMaxSize : null;\n    return createDecoder({ ...decoder, ...(maxSize !== null ? { maxSize } : {}), read });\n}\n\n/**\n * Stores the byte size of any given codec as an encoded number prefix.\n *\n * This sets a limit on variable-size codecs and tells us when to stop decoding.\n * When encoding, the size of the encoded data is stored before the encoded data itself.\n * When decoding, the size is read first to know how many bytes to read next.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @example\n * For example, say we want to bound a variable-size base-58 string using a `u32` size prefix.\n * Here’s how you can use the `addCodecSizePrefix` function to achieve that.\n *\n * ```ts\n * const getU32Base58Codec = () => addCodecSizePrefix(getBase58Codec(), getU32Codec());\n *\n * getU32Base58Codec().encode('hello world');\n * // 0x0b00000068656c6c6f20776f726c64\n * //   |       └-- Our encoded base-58 string.\n * //   └-- Our encoded u32 size prefix.\n * ```\n *\n * @remarks\n * Separate {@link addEncoderSizePrefix} and {@link addDecoderSizePrefix} functions are also available.\n *\n * ```ts\n * const bytes = addEncoderSizePrefix(getBase58Encoder(), getU32Encoder()).encode('hello');\n * const value = addDecoderSizePrefix(getBase58Decoder(), getU32Decoder()).decode(bytes);\n * ```\n *\n * @see {@link addEncoderSizePrefix}\n * @see {@link addDecoderSizePrefix}\n */\nexport function addCodecSizePrefix<TFrom, TTo extends TFrom>(\n    codec: FixedSizeCodec<TFrom, TTo>,\n    prefix: FixedSizeNumberCodec,\n): FixedSizeCodec<TFrom, TTo>;\nexport function addCodecSizePrefix<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n    prefix: NumberCodec,\n): VariableSizeCodec<TFrom, TTo>;\nexport function addCodecSizePrefix<TFrom, TTo extends TFrom>(\n    codec: Codec<TFrom, TTo>,\n    prefix: NumberCodec,\n): Codec<TFrom, TTo> {\n    return combineCodec(addEncoderSizePrefix(codec, prefix), addDecoderSizePrefix(codec, prefix));\n}\n","import { assertByteArrayHasEnoughBytesForCodec } from './assertions';\nimport { fixBytes } from './bytes';\nimport {\n    Codec,\n    createDecoder,\n    createEncoder,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    isFixedSize,\n    Offset,\n} from './codec';\nimport { combineCodec } from './combine-codec';\n\n/**\n * Creates a fixed-size encoder from a given encoder.\n *\n * The resulting encoder ensures that encoded values always have the specified number of bytes.\n * If the original encoded value is larger than `fixedBytes`, it is truncated.\n * If it is smaller, it is padded with trailing zeroes.\n *\n * For more details, see {@link fixCodecSize}.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @param encoder - The encoder to wrap into a fixed-size encoder.\n * @param fixedBytes - The fixed number of bytes to write.\n * @returns A `FixedSizeEncoder` that ensures a consistent output size.\n *\n * @example\n * ```ts\n * const encoder = fixEncoderSize(getUtf8Encoder(), 4);\n * encoder.encode(\"Hello\"); // 0x48656c6c (truncated)\n * encoder.encode(\"Hi\");    // 0x48690000 (padded)\n * encoder.encode(\"Hiya\");  // 0x48697961 (same length)\n * ```\n *\n * @remarks\n * If you need a full codec with both encoding and decoding, use {@link fixCodecSize}.\n *\n * @see {@link fixCodecSize}\n * @see {@link fixDecoderSize}\n */\nexport function fixEncoderSize<TFrom, TSize extends number>(\n    encoder: Encoder<TFrom>,\n    fixedBytes: TSize,\n): FixedSizeEncoder<TFrom, TSize> {\n    return createEncoder({\n        fixedSize: fixedBytes,\n        write: (value: TFrom, bytes: Uint8Array, offset: Offset) => {\n            // Here we exceptionally use the `encode` function instead of the `write`\n            // function as using the nested `write` function on a fixed-sized byte\n            // array may result in a out-of-bounds error on the nested encoder.\n            const variableByteArray = encoder.encode(value);\n            const fixedByteArray =\n                variableByteArray.length > fixedBytes ? variableByteArray.slice(0, fixedBytes) : variableByteArray;\n            bytes.set(fixedByteArray, offset);\n            return offset + fixedBytes;\n        },\n    });\n}\n\n/**\n * Creates a fixed-size decoder from a given decoder.\n *\n * The resulting decoder always reads exactly `fixedBytes` bytes from the input.\n * If the nested decoder is also fixed-size, the bytes are truncated or padded as needed.\n *\n * For more details, see {@link fixCodecSize}.\n *\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @param decoder - The decoder to wrap into a fixed-size decoder.\n * @param fixedBytes - The fixed number of bytes to read.\n * @returns A `FixedSizeDecoder` that ensures a consistent input size.\n *\n * @example\n * ```ts\n * const decoder = fixDecoderSize(getUtf8Decoder(), 4);\n * decoder.decode(new Uint8Array([72, 101, 108, 108, 111])); // \"Hell\" (truncated)\n * decoder.decode(new Uint8Array([72, 105, 0, 0]));          // \"Hi\" (zeroes ignored)\n * decoder.decode(new Uint8Array([72, 105, 121, 97]));       // \"Hiya\" (same length)\n * ```\n *\n * @remarks\n * If you need a full codec with both encoding and decoding, use {@link fixCodecSize}.\n *\n * @see {@link fixCodecSize}\n * @see {@link fixEncoderSize}\n */\nexport function fixDecoderSize<TTo, TSize extends number>(\n    decoder: Decoder<TTo>,\n    fixedBytes: TSize,\n): FixedSizeDecoder<TTo, TSize> {\n    return createDecoder({\n        fixedSize: fixedBytes,\n        read: (bytes, offset) => {\n            assertByteArrayHasEnoughBytesForCodec('fixCodecSize', fixedBytes, bytes, offset);\n            // Slice the byte array to the fixed size if necessary.\n            if (offset > 0 || bytes.length > fixedBytes) {\n                bytes = bytes.slice(offset, offset + fixedBytes);\n            }\n            // If the nested decoder is fixed-size, pad and truncate the byte array accordingly.\n            if (isFixedSize(decoder)) {\n                bytes = fixBytes(bytes, decoder.fixedSize);\n            }\n            // Decode the value using the nested decoder.\n            const [value] = decoder.read(bytes, 0);\n            return [value, offset + fixedBytes];\n        },\n    });\n}\n\n/**\n * Creates a fixed-size codec from a given codec.\n *\n * The resulting codec ensures that both encoding and decoding operate on a fixed number of bytes.\n * When encoding:\n * - If the encoded value is larger than `fixedBytes`, it is truncated.\n * - If it is smaller, it is padded with trailing zeroes.\n * - If it is exactly `fixedBytes`, it remains unchanged.\n *\n * When decoding:\n * - Exactly `fixedBytes` bytes are read from the input.\n * - If the nested decoder has a smaller fixed size, bytes are truncated or padded as necessary.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @param codec - The codec to wrap into a fixed-size codec.\n * @param fixedBytes - The fixed number of bytes to read/write.\n * @returns A `FixedSizeCodec` that ensures both encoding and decoding conform to a fixed size.\n *\n * @example\n * ```ts\n * const codec = fixCodecSize(getUtf8Codec(), 4);\n *\n * const bytes1 = codec.encode(\"Hello\"); // 0x48656c6c (truncated)\n * const value1 = codec.decode(bytes1);  // \"Hell\"\n *\n * const bytes2 = codec.encode(\"Hi\");    // 0x48690000 (padded)\n * const value2 = codec.decode(bytes2);  // \"Hi\"\n *\n * const bytes3 = codec.encode(\"Hiya\");  // 0x48697961 (same length)\n * const value3 = codec.decode(bytes3);  // \"Hiya\"\n * ```\n *\n * @remarks\n * If you only need to enforce a fixed size for encoding, use {@link fixEncoderSize}.\n * If you only need to enforce a fixed size for decoding, use {@link fixDecoderSize}.\n *\n * ```ts\n * const bytes = fixEncoderSize(getUtf8Encoder(), 4).encode(\"Hiya\");\n * const value = fixDecoderSize(getUtf8Decoder(), 4).decode(bytes);\n * ```\n *\n * @see {@link fixEncoderSize}\n * @see {@link fixDecoderSize}\n */\nexport function fixCodecSize<TFrom, TTo extends TFrom, TSize extends number>(\n    codec: Codec<TFrom, TTo>,\n    fixedBytes: TSize,\n): FixedSizeCodec<TFrom, TTo, TSize> {\n    return combineCodec(fixEncoderSize(codec, fixedBytes), fixDecoderSize(codec, fixedBytes));\n}\n","import { assertByteArrayOffsetIsNotOutOfRange } from './assertions';\nimport { Codec, createDecoder, createEncoder, Decoder, Encoder, Offset } from './codec';\nimport { combineCodec } from './combine-codec';\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyEncoder = Encoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDecoder = Decoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyCodec = Codec<any>;\n\n/**\n * Configuration object for modifying the offset of an encoder, decoder, or codec.\n *\n * This type defines optional functions for adjusting the **pre-offset** (before encoding/decoding)\n * and the **post-offset** (after encoding/decoding). These functions allow precise control\n * over where data is written or read within a byte array.\n *\n * @property preOffset - A function that modifies the offset before encoding or decoding.\n * @property postOffset - A function that modifies the offset after encoding or decoding.\n *\n * @example\n * Moving the pre-offset forward by 2 bytes.\n * ```ts\n * const config: OffsetConfig = {\n *     preOffset: ({ preOffset }) => preOffset + 2,\n * };\n * ```\n *\n * @example\n * Moving the post-offset forward by 2 bytes.\n * ```ts\n * const config: OffsetConfig = {\n *     postOffset: ({ postOffset }) => postOffset + 2,\n * };\n * ```\n *\n * @example\n * Using both pre-offset and post-offset together.\n * ```ts\n * const config: OffsetConfig = {\n *     preOffset: ({ preOffset }) => preOffset + 2,\n *     postOffset: ({ postOffset }) => postOffset + 4,\n * };\n * ```\n *\n * @see {@link offsetEncoder}\n * @see {@link offsetDecoder}\n * @see {@link offsetCodec}\n */\ntype OffsetConfig = {\n    postOffset?: PostOffsetFunction;\n    preOffset?: PreOffsetFunction;\n};\n\n/**\n * Scope provided to the `preOffset` and `postOffset` functions,\n * containing contextual information about the current encoding or decoding process.\n *\n * The pre-offset function modifies where encoding or decoding begins,\n * while the post-offset function modifies where the next operation continues.\n *\n * @property bytes - The entire byte array being encoded or decoded.\n * @property preOffset - The original offset before encoding or decoding starts.\n * @property wrapBytes - A helper function that wraps offsets around the byte array length.\n *\n * @example\n * Using `wrapBytes` to wrap a negative offset to the end of the byte array.\n * ```ts\n * const config: OffsetConfig = {\n *     preOffset: ({ wrapBytes }) => wrapBytes(-4), // Moves to last 4 bytes\n * };\n * ```\n *\n * @example\n * Adjusting the offset dynamically based on the byte array size.\n * ```ts\n * const config: OffsetConfig = {\n *     preOffset: ({ bytes }) => bytes.length > 10 ? 4 : 2,\n * };\n * ```\n *\n * @see {@link PreOffsetFunction}\n * @see {@link PostOffsetFunction}\n */\ntype PreOffsetFunctionScope = {\n    /** The entire byte array. */\n    bytes: ReadonlyUint8Array | Uint8Array;\n    /** The original offset prior to encode or decode. */\n    preOffset: Offset;\n    /** Wraps the offset to the byte array length. */\n    wrapBytes: (offset: Offset) => Offset;\n};\n\n/**\n * A function that modifies the pre-offset before encoding or decoding.\n *\n * This function is used to adjust the starting position before writing\n * or reading data in a byte array.\n *\n * @param scope - The current encoding or decoding context.\n * @returns The new offset at which encoding or decoding should start.\n *\n * @example\n * Skipping the first 2 bytes before writing or reading.\n * ```ts\n * const preOffset: PreOffsetFunction = ({ preOffset }) => preOffset + 2;\n * ```\n *\n * @example\n * Wrapping the offset to ensure it stays within bounds.\n * ```ts\n * const preOffset: PreOffsetFunction = ({ wrapBytes, preOffset }) => wrapBytes(preOffset + 10);\n * ```\n *\n * @see {@link OffsetConfig}\n * @see {@link PreOffsetFunctionScope}\n */\ntype PreOffsetFunction = (scope: PreOffsetFunctionScope) => Offset;\n\n/**\n * A function that modifies the post-offset after encoding or decoding.\n *\n * This function adjusts where the next encoder or decoder should start\n * after the current operation has completed.\n *\n * @param scope - The current encoding or decoding context, including the modified pre-offset\n * and the original post-offset.\n * @returns The new offset at which the next operation should begin.\n *\n * @example\n * Moving the post-offset forward by 4 bytes.\n * ```ts\n * const postOffset: PostOffsetFunction = ({ postOffset }) => postOffset + 4;\n * ```\n *\n * @example\n * Wrapping the post-offset within the byte array length.\n * ```ts\n * const postOffset: PostOffsetFunction = ({ wrapBytes, postOffset }) => wrapBytes(postOffset);\n * ```\n *\n * @example\n * Ensuring a minimum spacing of 8 bytes between values.\n * ```ts\n * const postOffset: PostOffsetFunction = ({ postOffset, newPreOffset }) =>\n *     Math.max(postOffset, newPreOffset + 8);\n * ```\n *\n * @see {@link OffsetConfig}\n * @see {@link PreOffsetFunctionScope}\n */\ntype PostOffsetFunction = (\n    scope: PreOffsetFunctionScope & {\n        /** The modified offset used to encode or decode. */\n        newPreOffset: Offset;\n        /** The original offset returned by the encoder or decoder. */\n        postOffset: Offset;\n    },\n) => Offset;\n\n/**\n * Moves the offset of a given encoder before and/or after encoding.\n *\n * This function allows an encoder to write its encoded value at a different offset\n * than the one originally provided. It supports both pre-offset adjustments\n * (before encoding) and post-offset adjustments (after encoding).\n *\n * The pre-offset function determines where encoding should start, while the\n * post-offset function adjusts where the next encoder should continue writing.\n *\n * For more details, see {@link offsetCodec}.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @param encoder - The encoder to adjust.\n * @param config - An object specifying how the offset should be modified.\n * @returns A new encoder with adjusted offsets.\n *\n * @example\n * Moving the pre-offset forward by 2 bytes.\n * ```ts\n * const encoder = offsetEncoder(getU32Encoder(), {\n *     preOffset: ({ preOffset }) => preOffset + 2,\n * });\n * const bytes = new Uint8Array(10);\n * encoder.write(42, bytes, 0); // Actually written at offset 2\n * ```\n *\n * @example\n * Moving the post-offset forward by 2 bytes.\n * ```ts\n * const encoder = offsetEncoder(getU32Encoder(), {\n *     postOffset: ({ postOffset }) => postOffset + 2,\n * });\n * const bytes = new Uint8Array(10);\n * const nextOffset = encoder.write(42, bytes, 0); // Next encoder starts at offset 6 instead of 4\n * ```\n *\n * @example\n * Using `wrapBytes` to ensure an offset wraps around the byte array length.\n * ```ts\n * const encoder = offsetEncoder(getU32Encoder(), {\n *     preOffset: ({ wrapBytes }) => wrapBytes(-4), // Moves offset to last 4 bytes of the array\n * });\n * const bytes = new Uint8Array(10);\n * encoder.write(42, bytes, 0); // Writes at bytes.length - 4\n * ```\n *\n * @remarks\n * If you need both encoding and decoding offsets to be adjusted, use {@link offsetCodec}.\n *\n * @see {@link offsetCodec}\n * @see {@link offsetDecoder}\n */\nexport function offsetEncoder<TEncoder extends AnyEncoder>(encoder: TEncoder, config: OffsetConfig): TEncoder {\n    return createEncoder({\n        ...encoder,\n        write: (value, bytes, preOffset) => {\n            const wrapBytes = (offset: Offset) => modulo(offset, bytes.length);\n            const newPreOffset = config.preOffset ? config.preOffset({ bytes, preOffset, wrapBytes }) : preOffset;\n            assertByteArrayOffsetIsNotOutOfRange('offsetEncoder', newPreOffset, bytes.length);\n            const postOffset = encoder.write(value, bytes, newPreOffset);\n            const newPostOffset = config.postOffset\n                ? config.postOffset({ bytes, newPreOffset, postOffset, preOffset, wrapBytes })\n                : postOffset;\n            assertByteArrayOffsetIsNotOutOfRange('offsetEncoder', newPostOffset, bytes.length);\n            return newPostOffset;\n        },\n    }) as TEncoder;\n}\n\n/**\n * Moves the offset of a given decoder before and/or after decoding.\n *\n * This function allows a decoder to read its input from a different offset\n * than the one originally provided. It supports both pre-offset adjustments\n * (before decoding) and post-offset adjustments (after decoding).\n *\n * The pre-offset function determines where decoding should start, while the\n * post-offset function adjusts where the next decoder should continue reading.\n *\n * For more details, see {@link offsetCodec}.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @param decoder - The decoder to adjust.\n * @param config - An object specifying how the offset should be modified.\n * @returns A new decoder with adjusted offsets.\n *\n * @example\n * Moving the pre-offset forward by 2 bytes.\n * ```ts\n * const decoder = offsetDecoder(getU32Decoder(), {\n *     preOffset: ({ preOffset }) => preOffset + 2,\n * });\n * const bytes = new Uint8Array([0, 0, 42, 0]); // Value starts at offset 2\n * decoder.read(bytes, 0); // Actually reads from offset 2\n * ```\n *\n * @example\n * Moving the post-offset forward by 2 bytes.\n * ```ts\n * const decoder = offsetDecoder(getU32Decoder(), {\n *     postOffset: ({ postOffset }) => postOffset + 2,\n * });\n * const bytes = new Uint8Array([42, 0, 0, 0]);\n * const [value, nextOffset] = decoder.read(bytes, 0); // Next decoder starts at offset 6 instead of 4\n * ```\n *\n * @example\n * Using `wrapBytes` to read from the last 4 bytes of an array.\n * ```ts\n * const decoder = offsetDecoder(getU32Decoder(), {\n *     preOffset: ({ wrapBytes }) => wrapBytes(-4), // Moves offset to last 4 bytes of the array\n * });\n * const bytes = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 42]); // Value stored at the last 4 bytes\n * decoder.read(bytes, 0); // Reads from bytes.length - 4\n * ```\n *\n * @remarks\n * If you need both encoding and decoding offsets to be adjusted, use {@link offsetCodec}.\n *\n * @see {@link offsetCodec}\n * @see {@link offsetEncoder}\n */\nexport function offsetDecoder<TDecoder extends AnyDecoder>(decoder: TDecoder, config: OffsetConfig): TDecoder {\n    return createDecoder({\n        ...decoder,\n        read: (bytes, preOffset) => {\n            const wrapBytes = (offset: Offset) => modulo(offset, bytes.length);\n            const newPreOffset = config.preOffset ? config.preOffset({ bytes, preOffset, wrapBytes }) : preOffset;\n            assertByteArrayOffsetIsNotOutOfRange('offsetDecoder', newPreOffset, bytes.length);\n            const [value, postOffset] = decoder.read(bytes, newPreOffset);\n            const newPostOffset = config.postOffset\n                ? config.postOffset({ bytes, newPreOffset, postOffset, preOffset, wrapBytes })\n                : postOffset;\n            assertByteArrayOffsetIsNotOutOfRange('offsetDecoder', newPostOffset, bytes.length);\n            return [value, newPostOffset];\n        },\n    }) as TDecoder;\n}\n\n/**\n * Moves the offset of a given codec before and/or after encoding and decoding.\n *\n * This function allows a codec to encode and decode values at custom offsets\n * within a byte array. It modifies both the **pre-offset** (where encoding/decoding starts)\n * and the **post-offset** (where the next operation should continue).\n *\n * This is particularly useful when working with structured binary formats\n * that require skipping reserved bytes, inserting padding, or aligning fields at\n * specific locations.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @param codec - The codec to adjust.\n * @param config - An object specifying how the offset should be modified.\n * @returns A new codec with adjusted offsets.\n *\n * @example\n * Moving the pre-offset forward by 2 bytes when encoding and decoding.\n * ```ts\n * const codec = offsetCodec(getU32Codec(), {\n *     preOffset: ({ preOffset }) => preOffset + 2,\n * });\n * const bytes = new Uint8Array(10);\n * codec.write(42, bytes, 0); // Actually written at offset 2\n * codec.read(bytes, 0);      // Actually read from offset 2\n * ```\n *\n * @example\n * Moving the post-offset forward by 2 bytes when encoding and decoding.\n * ```ts\n * const codec = offsetCodec(getU32Codec(), {\n *     postOffset: ({ postOffset }) => postOffset + 2,\n * });\n * const bytes = new Uint8Array(10);\n * codec.write(42, bytes, 0);\n * // Next encoding starts at offset 6 instead of 4\n * codec.read(bytes, 0);\n * // Next decoding starts at offset 6 instead of 4\n * ```\n *\n * @example\n * Using `wrapBytes` to loop around negative offsets.\n * ```ts\n * const codec = offsetCodec(getU32Codec(), {\n *     preOffset: ({ wrapBytes }) => wrapBytes(-4), // Moves offset to last 4 bytes\n * });\n * const bytes = new Uint8Array(10);\n * codec.write(42, bytes, 0); // Writes at bytes.length - 4\n * codec.read(bytes, 0); // Reads from bytes.length - 4\n * ```\n *\n * @remarks\n * If you only need to adjust offsets for encoding, use {@link offsetEncoder}.\n * If you only need to adjust offsets for decoding, use {@link offsetDecoder}.\n *\n * ```ts\n * const bytes = new Uint8Array(10);\n * offsetEncoder(getU32Encoder(), { preOffset: ({ preOffset }) => preOffset + 2 }).write(42, bytes, 0);\n * const [value] = offsetDecoder(getU32Decoder(), { preOffset: ({ preOffset }) => preOffset + 2 }).read(bytes, 0);\n * ```\n *\n * @see {@link offsetEncoder}\n * @see {@link offsetDecoder}\n */\nexport function offsetCodec<TCodec extends AnyCodec>(codec: TCodec, config: OffsetConfig): TCodec {\n    return combineCodec(offsetEncoder(codec, config), offsetDecoder(codec, config)) as TCodec;\n}\n\n/** A modulo function that handles negative dividends and zero divisors. */\nfunction modulo(dividend: number, divisor: number) {\n    if (divisor === 0) return 0;\n    return ((dividend % divisor) + divisor) % divisor;\n}\n","import { SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, SolanaError } from '@solana/errors';\n\nimport {\n    Codec,\n    createDecoder,\n    createEncoder,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    isFixedSize,\n} from './codec';\nimport { combineCodec } from './combine-codec';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyEncoder = Encoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDecoder = Decoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyCodec = Codec<any>;\n\n/**\n * Updates the size of a given encoder.\n *\n * This function modifies the size of an encoder using a provided transformation function.\n * For fixed-size encoders, it updates the `fixedSize` property, and for variable-size\n * encoders, it adjusts the size calculation based on the encoded value.\n *\n * If the new size is negative, an error will be thrown.\n *\n * For more details, see {@link resizeCodec}.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TSize - The original fixed size of the encoded value.\n * @typeParam TNewSize - The new fixed size after resizing.\n *\n * @param encoder - The encoder whose size will be updated.\n * @param resize - A function that takes the current size and returns the new size.\n * @returns A new encoder with the updated size.\n *\n * @example\n * Increasing the size of a `u16` encoder by 2 bytes.\n * ```ts\n * const encoder = resizeEncoder(getU16Encoder(), size => size + 2);\n * encoder.encode(0xffff); // 0xffff0000 (two extra bytes added)\n * ```\n *\n * @example\n * Shrinking a `u32` encoder to only use 2 bytes.\n * ```ts\n * const encoder = resizeEncoder(getU32Encoder(), () => 2);\n * encoder.fixedSize; // 2\n * ```\n *\n * @see {@link resizeCodec}\n * @see {@link resizeDecoder}\n */\nexport function resizeEncoder<TFrom, TSize extends number, TNewSize extends number>(\n    encoder: FixedSizeEncoder<TFrom, TSize>,\n    resize: (size: TSize) => TNewSize,\n): FixedSizeEncoder<TFrom, TNewSize>;\nexport function resizeEncoder<TEncoder extends AnyEncoder>(\n    encoder: TEncoder,\n    resize: (size: number) => number,\n): TEncoder;\nexport function resizeEncoder<TEncoder extends AnyEncoder>(\n    encoder: TEncoder,\n    resize: (size: number) => number,\n): TEncoder {\n    if (isFixedSize(encoder)) {\n        const fixedSize = resize(encoder.fixedSize);\n        if (fixedSize < 0) {\n            throw new SolanaError(SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, {\n                bytesLength: fixedSize,\n                codecDescription: 'resizeEncoder',\n            });\n        }\n        return createEncoder({ ...encoder, fixedSize }) as TEncoder;\n    }\n    return createEncoder({\n        ...encoder,\n        getSizeFromValue: value => {\n            const newSize = resize(encoder.getSizeFromValue(value));\n            if (newSize < 0) {\n                throw new SolanaError(SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, {\n                    bytesLength: newSize,\n                    codecDescription: 'resizeEncoder',\n                });\n            }\n            return newSize;\n        },\n    }) as TEncoder;\n}\n\n/**\n * Updates the size of a given decoder.\n *\n * This function modifies the size of a decoder using a provided transformation function.\n * For fixed-size decoders, it updates the `fixedSize` property to reflect the new size.\n * Variable-size decoders remain unchanged, as their size is determined dynamically.\n *\n * If the new size is negative, an error will be thrown.\n *\n * For more details, see {@link resizeCodec}.\n *\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The original fixed size of the decoded value.\n * @typeParam TNewSize - The new fixed size after resizing.\n *\n * @param decoder - The decoder whose size will be updated.\n * @param resize - A function that takes the current size and returns the new size.\n * @returns A new decoder with the updated size.\n *\n * @example\n * Expanding a `u16` decoder to read 4 bytes instead of 2.\n * ```ts\n * const decoder = resizeDecoder(getU16Decoder(), size => size + 2);\n * decoder.fixedSize; // 4\n * ```\n *\n * @example\n * Shrinking a `u32` decoder to only read 2 bytes.\n * ```ts\n * const decoder = resizeDecoder(getU32Decoder(), () => 2);\n * decoder.fixedSize; // 2\n * ```\n *\n * @see {@link resizeCodec}\n * @see {@link resizeEncoder}\n */\nexport function resizeDecoder<TFrom, TSize extends number, TNewSize extends number>(\n    decoder: FixedSizeDecoder<TFrom, TSize>,\n    resize: (size: TSize) => TNewSize,\n): FixedSizeDecoder<TFrom, TNewSize>;\nexport function resizeDecoder<TDecoder extends AnyDecoder>(\n    decoder: TDecoder,\n    resize: (size: number) => number,\n): TDecoder;\nexport function resizeDecoder<TDecoder extends AnyDecoder>(\n    decoder: TDecoder,\n    resize: (size: number) => number,\n): TDecoder {\n    if (isFixedSize(decoder)) {\n        const fixedSize = resize(decoder.fixedSize);\n        if (fixedSize < 0) {\n            throw new SolanaError(SOLANA_ERROR__CODECS__EXPECTED_POSITIVE_BYTE_LENGTH, {\n                bytesLength: fixedSize,\n                codecDescription: 'resizeDecoder',\n            });\n        }\n        return createDecoder({ ...decoder, fixedSize }) as TDecoder;\n    }\n    return decoder;\n}\n\n/**\n * Updates the size of a given codec.\n *\n * This function modifies the size of both the codec using a provided\n * transformation function. It is useful for adjusting the allocated byte size for\n * encoding and decoding without altering the underlying data structure.\n *\n * If the new size is negative, an error will be thrown.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The original fixed size of the encoded/decoded value (for fixed-size codecs).\n * @typeParam TNewSize - The new fixed size after resizing (for fixed-size codecs).\n *\n * @param codec - The codec whose size will be updated.\n * @param resize - A function that takes the current size and returns the new size.\n * @returns A new codec with the updated size.\n *\n * @example\n * Expanding a `u16` codec from 2 to 4 bytes.\n * ```ts\n * const codec = resizeCodec(getU16Codec(), size => size + 2);\n * const bytes = codec.encode(0xffff); // 0xffff0000 (two extra bytes added)\n * const value = codec.decode(bytes);  // 0xffff (reads original two bytes)\n * ```\n *\n * @example\n * Shrinking a `u32` codec to only use 2 bytes.\n * ```ts\n * const codec = resizeCodec(getU32Codec(), () => 2);\n * codec.fixedSize; // 2\n * ```\n *\n * @remarks\n * If you only need to resize an encoder, use {@link resizeEncoder}.\n * If you only need to resize a decoder, use {@link resizeDecoder}.\n *\n * ```ts\n * const bytes = resizeEncoder(getU32Encoder(), (size) => size + 2).encode(0xffff);\n * const value = resizeDecoder(getU32Decoder(), (size) => size + 2).decode(bytes);\n * ```\n *\n * @see {@link resizeEncoder}\n * @see {@link resizeDecoder}\n */\nexport function resizeCodec<TFrom, TTo extends TFrom, TSize extends number, TNewSize extends number>(\n    codec: FixedSizeCodec<TFrom, TTo, TSize>,\n    resize: (size: TSize) => TNewSize,\n): FixedSizeCodec<TFrom, TTo, TNewSize>;\nexport function resizeCodec<TCodec extends AnyCodec>(codec: TCodec, resize: (size: number) => number): TCodec;\nexport function resizeCodec<TCodec extends AnyCodec>(codec: TCodec, resize: (size: number) => number): TCodec {\n    return combineCodec(resizeEncoder(codec, resize), resizeDecoder(codec, resize)) as TCodec;\n}\n","import { Codec, Decoder, Encoder, Offset } from './codec';\nimport { combineCodec } from './combine-codec';\nimport { offsetDecoder, offsetEncoder } from './offset-codec';\nimport { resizeDecoder, resizeEncoder } from './resize-codec';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyEncoder = Encoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyDecoder = Decoder<any>;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyCodec = Codec<any>;\n\n/**\n * Adds left padding to the given encoder, shifting the encoded value forward\n * by `offset` bytes whilst increasing the size of the encoder accordingly.\n *\n * For more details, see {@link padLeftCodec}.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @param encoder - The encoder to pad.\n * @param offset - The number of padding bytes to add before encoding.\n * @returns A new encoder with left padding applied.\n *\n * @example\n * ```ts\n * const encoder = padLeftEncoder(getU16Encoder(), 2);\n * const bytes = encoder.encode(0xffff); // 0x0000ffff (0xffff written at offset 2)\n * ```\n *\n * @see {@link padLeftCodec}\n * @see {@link padLeftDecoder}\n */\nexport function padLeftEncoder<TEncoder extends AnyEncoder>(encoder: TEncoder, offset: Offset): TEncoder {\n    return offsetEncoder(\n        resizeEncoder(encoder, size => size + offset),\n        { preOffset: ({ preOffset }) => preOffset + offset },\n    );\n}\n\n/**\n * Adds right padding to the given encoder, extending the encoded value by `offset`\n * bytes whilst increasing the size of the encoder accordingly.\n *\n * For more details, see {@link padRightCodec}.\n *\n * @typeParam TFrom - The type of the value to encode.\n *\n * @param encoder - The encoder to pad.\n * @param offset - The number of padding bytes to add after encoding.\n * @returns A new encoder with right padding applied.\n *\n * @example\n * ```ts\n * const encoder = padRightEncoder(getU16Encoder(), 2);\n * const bytes = encoder.encode(0xffff); // 0xffff0000 (two extra bytes added at the end)\n * ```\n *\n * @see {@link padRightCodec}\n * @see {@link padRightDecoder}\n */\nexport function padRightEncoder<TEncoder extends AnyEncoder>(encoder: TEncoder, offset: Offset): TEncoder {\n    return offsetEncoder(\n        resizeEncoder(encoder, size => size + offset),\n        { postOffset: ({ postOffset }) => postOffset + offset },\n    );\n}\n\n/**\n * Adds left padding to the given decoder, shifting the decoding position forward\n * by `offset` bytes whilst increasing the size of the decoder accordingly.\n *\n * For more details, see {@link padLeftCodec}.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @param decoder - The decoder to pad.\n * @param offset - The number of padding bytes to skip before decoding.\n * @returns A new decoder with left padding applied.\n *\n * @example\n * ```ts\n * const decoder = padLeftDecoder(getU16Decoder(), 2);\n * const value = decoder.decode(new Uint8Array([0, 0, 0x12, 0x34])); // 0xffff (reads from offset 2)\n * ```\n *\n * @see {@link padLeftCodec}\n * @see {@link padLeftEncoder}\n */\nexport function padLeftDecoder<TDecoder extends AnyDecoder>(decoder: TDecoder, offset: Offset): TDecoder {\n    return offsetDecoder(\n        resizeDecoder(decoder, size => size + offset),\n        { preOffset: ({ preOffset }) => preOffset + offset },\n    );\n}\n\n/**\n * Adds right padding to the given decoder, extending the post-offset by `offset`\n * bytes whilst increasing the size of the decoder accordingly.\n *\n * For more details, see {@link padRightCodec}.\n *\n * @typeParam TTo - The type of the decoded value.\n *\n * @param decoder - The decoder to pad.\n * @param offset - The number of padding bytes to skip after decoding.\n * @returns A new decoder with right padding applied.\n *\n * @example\n * ```ts\n * const decoder = padRightDecoder(getU16Decoder(), 2);\n * const value = decoder.decode(new Uint8Array([0x12, 0x34, 0, 0])); // 0xffff (ignores trailing bytes)\n * ```\n *\n * @see {@link padRightCodec}\n * @see {@link padRightEncoder}\n */\nexport function padRightDecoder<TDecoder extends AnyDecoder>(decoder: TDecoder, offset: Offset): TDecoder {\n    return offsetDecoder(\n        resizeDecoder(decoder, size => size + offset),\n        { postOffset: ({ postOffset }) => postOffset + offset },\n    );\n}\n\n/**\n * Adds left padding to the given codec, shifting the encoding and decoding positions\n * forward by `offset` bytes whilst increasing the size of the codec accordingly.\n *\n * This ensures that values are read and written at a later position in the byte array,\n * while the padding bytes remain unused.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @param codec - The codec to pad.\n * @param offset - The number of padding bytes to add before encoding and decoding.\n * @returns A new codec with left padding applied.\n *\n * @example\n * ```ts\n * const codec = padLeftCodec(getU16Codec(), 2);\n * const bytes = codec.encode(0xffff); // 0x0000ffff (0xffff written at offset 2)\n * const value = codec.decode(bytes);  // 0xffff (reads from offset 2)\n * ```\n *\n * @remarks\n * If you only need to apply padding for encoding, use {@link padLeftEncoder}.\n * If you only need to apply padding for decoding, use {@link padLeftDecoder}.\n *\n * ```ts\n * const bytes = padLeftEncoder(getU16Encoder(), 2).encode(0xffff);\n * const value = padLeftDecoder(getU16Decoder(), 2).decode(bytes);\n * ```\n *\n * @see {@link padLeftEncoder}\n * @see {@link padLeftDecoder}\n */\nexport function padLeftCodec<TCodec extends AnyCodec>(codec: TCodec, offset: Offset): TCodec {\n    return combineCodec(padLeftEncoder(codec, offset), padLeftDecoder(codec, offset)) as TCodec;\n}\n\n/**\n * Adds right padding to the given codec, extending the encoded and decoded value\n * by `offset` bytes whilst increasing the size of the codec accordingly.\n *\n * The extra bytes remain unused, ensuring that the next operation starts further\n * along the byte array.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n *\n * @param codec - The codec to pad.\n * @param offset - The number of padding bytes to add after encoding and decoding.\n * @returns A new codec with right padding applied.\n *\n * @example\n * ```ts\n * const codec = padRightCodec(getU16Codec(), 2);\n * const bytes = codec.encode(0xffff); // 0xffff0000 (two extra bytes added)\n * const value = codec.decode(bytes);  // 0xffff (ignores padding bytes)\n * ```\n *\n * @remarks\n * If you only need to apply padding for encoding, use {@link padRightEncoder}.\n * If you only need to apply padding for decoding, use {@link padRightDecoder}.\n *\n * ```ts\n * const bytes = padRightEncoder(getU16Encoder(), 2).encode(0xffff);\n * const value = padRightDecoder(getU16Decoder(), 2).decode(bytes);\n * ```\n *\n * @see {@link padRightEncoder}\n * @see {@link padRightDecoder}\n */\nexport function padRightCodec<TCodec extends AnyCodec>(codec: TCodec, offset: Offset): TCodec {\n    return combineCodec(padRightEncoder(codec, offset), padRightDecoder(codec, offset)) as TCodec;\n}\n","import {\n    assertIsFixedSize,\n    createDecoder,\n    createEncoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n} from './codec';\nimport { combineCodec } from './combine-codec';\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\nfunction copySourceToTargetInReverse(\n    source: ReadonlyUint8Array,\n    target_WILL_MUTATE: Uint8Array,\n    sourceOffset: number,\n    sourceLength: number,\n    targetOffset: number = 0,\n) {\n    while (sourceOffset < --sourceLength) {\n        const leftValue = source[sourceOffset];\n        target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceLength];\n        target_WILL_MUTATE[sourceLength + targetOffset] = leftValue;\n        sourceOffset++;\n    }\n    if (sourceOffset === sourceLength) {\n        target_WILL_MUTATE[sourceOffset + targetOffset] = source[sourceOffset];\n    }\n}\n\n/**\n * Reverses the bytes of a fixed-size encoder.\n *\n * Given a `FixedSizeEncoder`, this function returns a new `FixedSizeEncoder` that\n * reverses the bytes within the fixed-size byte array when encoding.\n *\n * This can be useful to modify endianness or for other byte-order transformations.\n *\n * For more details, see {@link reverseCodec}.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TSize - The fixed size of the encoded value in bytes.\n *\n * @param encoder - The fixed-size encoder to reverse.\n * @returns A new encoder that writes bytes in reverse order.\n *\n * @example\n * Encoding a `u16` value in reverse order.\n * ```ts\n * const encoder = reverseEncoder(getU16Encoder({ endian: Endian.Big }));\n * const bytes = encoder.encode(0x1234); // 0x3412 (bytes are flipped)\n * ```\n *\n * @see {@link reverseCodec}\n * @see {@link reverseDecoder}\n */\nexport function reverseEncoder<TFrom, TSize extends number>(\n    encoder: FixedSizeEncoder<TFrom, TSize>,\n): FixedSizeEncoder<TFrom, TSize> {\n    assertIsFixedSize(encoder);\n    return createEncoder({\n        ...encoder,\n        write: (value: TFrom, bytes, offset) => {\n            const newOffset = encoder.write(value, bytes, offset);\n            copySourceToTargetInReverse(\n                bytes /* source */,\n                bytes /* target_WILL_MUTATE */,\n                offset /* sourceOffset */,\n                offset + encoder.fixedSize /* sourceLength */,\n            );\n            return newOffset;\n        },\n    });\n}\n\n/**\n * Reverses the bytes of a fixed-size decoder.\n *\n * Given a `FixedSizeDecoder`, this function returns a new `FixedSizeDecoder` that\n * reverses the bytes within the fixed-size byte array before decoding.\n *\n * This can be useful to modify endianness or for other byte-order transformations.\n *\n * For more details, see {@link reverseCodec}.\n *\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the decoded value in bytes.\n *\n * @param decoder - The fixed-size decoder to reverse.\n * @returns A new decoder that reads bytes in reverse order.\n *\n * @example\n * Decoding a reversed `u16` value.\n * ```ts\n * const decoder = reverseDecoder(getU16Decoder({ endian: Endian.Big }));\n * const value = decoder.decode(new Uint8Array([0x34, 0x12])); // 0x1234 (bytes are flipped back)\n * ```\n *\n * @see {@link reverseCodec}\n * @see {@link reverseEncoder}\n */\nexport function reverseDecoder<TTo, TSize extends number>(\n    decoder: FixedSizeDecoder<TTo, TSize>,\n): FixedSizeDecoder<TTo, TSize> {\n    assertIsFixedSize(decoder);\n    return createDecoder({\n        ...decoder,\n        read: (bytes, offset) => {\n            const reversedBytes = bytes.slice();\n            copySourceToTargetInReverse(\n                bytes /* source */,\n                reversedBytes /* target_WILL_MUTATE */,\n                offset /* sourceOffset */,\n                offset + decoder.fixedSize /* sourceLength */,\n            );\n            return decoder.read(reversedBytes, offset);\n        },\n    });\n}\n\n/**\n * Reverses the bytes of a fixed-size codec.\n *\n * Given a `FixedSizeCodec`, this function returns a new `FixedSizeCodec` that\n * reverses the bytes within the fixed-size byte array during encoding and decoding.\n *\n * This can be useful to modify endianness or for other byte-order transformations.\n *\n * @typeParam TFrom - The type of the value to encode.\n * @typeParam TTo - The type of the decoded value.\n * @typeParam TSize - The fixed size of the encoded/decoded value in bytes.\n *\n * @param codec - The fixed-size codec to reverse.\n * @returns A new codec that encodes and decodes bytes in reverse order.\n *\n * @example\n * Reversing a `u16` codec.\n * ```ts\n * const codec = reverseCodec(getU16Codec({ endian: Endian.Big }));\n * const bytes = codec.encode(0x1234); // 0x3412 (bytes are flipped)\n * const value = codec.decode(bytes);  // 0x1234 (bytes are flipped back)\n * ```\n *\n * @remarks\n * If you only need to reverse an encoder, use {@link reverseEncoder}.\n * If you only need to reverse a decoder, use {@link reverseDecoder}.\n *\n * ```ts\n * const bytes = reverseEncoder(getU16Encoder()).encode(0x1234);\n * const value = reverseDecoder(getU16Decoder()).decode(bytes);\n * ```\n *\n * @see {@link reverseEncoder}\n * @see {@link reverseDecoder}\n */\nexport function reverseCodec<TFrom, TTo extends TFrom, TSize extends number>(\n    codec: FixedSizeCodec<TFrom, TTo, TSize>,\n): FixedSizeCodec<TFrom, TTo, TSize> {\n    return combineCodec(reverseEncoder(codec), reverseDecoder(codec));\n}\n","import {\n    Codec,\n    createCodec,\n    createDecoder,\n    createEncoder,\n    Decoder,\n    Encoder,\n    FixedSizeCodec,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    isVariableSize,\n    VariableSizeCodec,\n    VariableSizeDecoder,\n    VariableSizeEncoder,\n} from './codec';\nimport { ReadonlyUint8Array } from './readonly-uint8array';\n\n/**\n * Transforms an encoder by mapping its input values.\n *\n * This function takes an existing `Encoder<A>` and returns an `Encoder<B>`, allowing values of type `B`\n * to be converted into values of type `A` before encoding. The transformation is applied via the `unmap` function.\n *\n * This is useful for handling type conversions, applying default values, or structuring data before encoding.\n *\n * For more details, see {@link transformCodec}.\n *\n * @typeParam TOldFrom - The original type expected by the encoder.\n * @typeParam TNewFrom - The new type that will be transformed before encoding.\n *\n * @param encoder - The encoder to transform.\n * @param unmap - A function that converts values of `TNewFrom` into `TOldFrom` before encoding.\n * @returns A new encoder that accepts `TNewFrom` values and transforms them before encoding.\n *\n * @example\n * Encoding a string by counting its characters and storing the length as a `u32`.\n * ```ts\n * const encoder = transformEncoder(getU32Encoder(), (value: string) => value.length);\n * encoder.encode(\"hello\"); // 0x05000000 (stores length 5)\n * ```\n *\n * @see {@link transformCodec}\n * @see {@link transformDecoder}\n */\nexport function transformEncoder<TOldFrom, TNewFrom, TSize extends number>(\n    encoder: FixedSizeEncoder<TOldFrom, TSize>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): FixedSizeEncoder<TNewFrom, TSize>;\nexport function transformEncoder<TOldFrom, TNewFrom>(\n    encoder: VariableSizeEncoder<TOldFrom>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): VariableSizeEncoder<TNewFrom>;\nexport function transformEncoder<TOldFrom, TNewFrom>(\n    encoder: Encoder<TOldFrom>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): Encoder<TNewFrom>;\nexport function transformEncoder<TOldFrom, TNewFrom>(\n    encoder: Encoder<TOldFrom>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): Encoder<TNewFrom> {\n    return createEncoder({\n        ...(isVariableSize(encoder)\n            ? { ...encoder, getSizeFromValue: (value: TNewFrom) => encoder.getSizeFromValue(unmap(value)) }\n            : encoder),\n        write: (value: TNewFrom, bytes, offset) => encoder.write(unmap(value), bytes, offset),\n    });\n}\n\n/**\n * Transforms a decoder by mapping its output values.\n *\n * This function takes an existing `Decoder<A>` and returns a `Decoder<B>`, allowing values of type `A`\n * to be converted into values of type `B` after decoding. The transformation is applied via the `map` function.\n *\n * This is useful for post-processing, type conversions, or enriching decoded data.\n *\n * For more details, see {@link transformCodec}.\n *\n * @typeParam TOldTo - The original type returned by the decoder.\n * @typeParam TNewTo - The new type that will be transformed after decoding.\n *\n * @param decoder - The decoder to transform.\n * @param map - A function that converts values of `TOldTo` into `TNewTo` after decoding.\n * @returns A new decoder that decodes into `TNewTo`.\n *\n * @example\n * Decoding a stored `u32` length into a string of `'x'` characters.\n * ```ts\n * const decoder = transformDecoder(getU32Decoder(), (length) => 'x'.repeat(length));\n * decoder.decode(new Uint8Array([0x05, 0x00, 0x00, 0x00])); // \"xxxxx\"\n * ```\n *\n * @see {@link transformCodec}\n * @see {@link transformEncoder}\n */\nexport function transformDecoder<TOldTo, TNewTo, TSize extends number>(\n    decoder: FixedSizeDecoder<TOldTo, TSize>,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): FixedSizeDecoder<TNewTo, TSize>;\nexport function transformDecoder<TOldTo, TNewTo>(\n    decoder: VariableSizeDecoder<TOldTo>,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): VariableSizeDecoder<TNewTo>;\nexport function transformDecoder<TOldTo, TNewTo>(\n    decoder: Decoder<TOldTo>,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): Decoder<TNewTo>;\nexport function transformDecoder<TOldTo, TNewTo>(\n    decoder: Decoder<TOldTo>,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): Decoder<TNewTo> {\n    return createDecoder({\n        ...decoder,\n        read: (bytes: ReadonlyUint8Array | Uint8Array, offset) => {\n            const [value, newOffset] = decoder.read(bytes, offset);\n            return [map(value, bytes, offset), newOffset];\n        },\n    });\n}\n\n/**\n * Transforms a codec by mapping its input and output values.\n *\n * This function takes an existing `Codec<A, B>` and returns a `Codec<C, D>`, allowing:\n * - Values of type `C` to be transformed into `A` before encoding.\n * - Values of type `B` to be transformed into `D` after decoding.\n *\n * This is useful for adapting codecs to work with different representations, handling default values, or\n * converting between primitive and structured types.\n *\n * @typeParam TOldFrom - The original type expected by the codec.\n * @typeParam TNewFrom - The new type that will be transformed before encoding.\n * @typeParam TOldTo - The original type returned by the codec.\n * @typeParam TNewTo - The new type that will be transformed after decoding.\n *\n * @param codec - The codec to transform.\n * @param unmap - A function that converts values of `TNewFrom` into `TOldFrom` before encoding.\n * @param map - A function that converts values of `TOldTo` into `TNewTo` after decoding (optional).\n * @returns A new codec that encodes `TNewFrom` and decodes into `TNewTo`.\n *\n * @example\n * Mapping a `u32` codec to encode string lengths and decode them into `'x'` characters.\n * ```ts\n * const codec = transformCodec(\n *     getU32Codec(),\n *     (value: string) => value.length, // Encode string length\n *     (length) => 'x'.repeat(length)  // Decode length into a string of 'x's\n * );\n *\n * const bytes = codec.encode(\"hello\"); // 0x05000000 (stores length 5)\n * const value = codec.decode(bytes);   // \"xxxxx\"\n * ```\n *\n * @remarks\n * If only input transformation is needed, use {@link transformEncoder}.\n * If only output transformation is needed, use {@link transformDecoder}.\n *\n * ```ts\n * const bytes = transformEncoder(getU32Encoder(), (value: string) => value.length).encode(\"hello\");\n * const value = transformDecoder(getU32Decoder(), (length) => 'x'.repeat(length)).decode(bytes);\n * ```\n *\n * @see {@link transformEncoder}\n * @see {@link transformDecoder}\n */\nexport function transformCodec<TOldFrom, TNewFrom, TTo extends TNewFrom & TOldFrom, TSize extends number>(\n    codec: FixedSizeCodec<TOldFrom, TTo, TSize>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): FixedSizeCodec<TNewFrom, TTo, TSize>;\nexport function transformCodec<TOldFrom, TNewFrom, TTo extends TNewFrom & TOldFrom>(\n    codec: VariableSizeCodec<TOldFrom, TTo>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): VariableSizeCodec<TNewFrom, TTo>;\nexport function transformCodec<TOldFrom, TNewFrom, TTo extends TNewFrom & TOldFrom>(\n    codec: Codec<TOldFrom, TTo>,\n    unmap: (value: TNewFrom) => TOldFrom,\n): Codec<TNewFrom, TTo>;\nexport function transformCodec<\n    TOldFrom,\n    TNewFrom,\n    TOldTo extends TOldFrom,\n    TNewTo extends TNewFrom,\n    TSize extends number,\n>(\n    codec: FixedSizeCodec<TOldFrom, TOldTo, TSize>,\n    unmap: (value: TNewFrom) => TOldFrom,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): FixedSizeCodec<TNewFrom, TNewTo, TSize>;\nexport function transformCodec<TOldFrom, TNewFrom, TOldTo extends TOldFrom, TNewTo extends TNewFrom>(\n    codec: VariableSizeCodec<TOldFrom, TOldTo>,\n    unmap: (value: TNewFrom) => TOldFrom,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): VariableSizeCodec<TNewFrom, TNewTo>;\nexport function transformCodec<TOldFrom, TNewFrom, TOldTo extends TOldFrom, TNewTo extends TNewFrom>(\n    codec: Codec<TOldFrom, TOldTo>,\n    unmap: (value: TNewFrom) => TOldFrom,\n    map: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): Codec<TNewFrom, TNewTo>;\nexport function transformCodec<TOldFrom, TNewFrom, TOldTo extends TOldFrom, TNewTo extends TNewFrom>(\n    codec: Codec<TOldFrom, TOldTo>,\n    unmap: (value: TNewFrom) => TOldFrom,\n    map?: (value: TOldTo, bytes: ReadonlyUint8Array | Uint8Array, offset: number) => TNewTo,\n): Codec<TNewFrom, TNewTo> {\n    return createCodec({\n        ...transformEncoder(codec, unmap),\n        read: map ? transformDecoder(codec, map).read : (codec.read as unknown as Decoder<TNewTo>['read']),\n    });\n}\n","import { SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, SolanaError } from '@solana/errors';\n\n/**\n * Ensures that a given number falls within a specified range.\n *\n * If the number is outside the allowed range, an error is thrown.\n * This function is primarily used to validate values before encoding them in a codec.\n *\n * @param codecDescription - A string describing the codec that is performing the validation.\n * @param min - The minimum allowed value (inclusive).\n * @param max - The maximum allowed value (inclusive).\n * @param value - The number to validate.\n *\n * @throws {@link SolanaError} if the value is out of range.\n *\n * @example\n * Validating a number within range.\n * ```ts\n * assertNumberIsBetweenForCodec('u8', 0, 255, 42); // Passes\n * ```\n *\n * @example\n * Throwing an error for an out-of-range value.\n * ```ts\n * assertNumberIsBetweenForCodec('u8', 0, 255, 300); // Throws\n * ```\n */\nexport function assertNumberIsBetweenForCodec(\n    codecDescription: string,\n    min: bigint | number,\n    max: bigint | number,\n    value: bigint | number,\n) {\n    if (value < min || value > max) {\n        throw new SolanaError(SOLANA_ERROR__CODECS__NUMBER_OUT_OF_RANGE, {\n            codecDescription,\n            max,\n            min,\n            value,\n        });\n    }\n}\n","import { Codec, Decoder, Encoder, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n/**\n * Represents an encoder for numbers and bigints.\n *\n * This type allows encoding values that are either `number` or `bigint`.\n * Depending on the specific implementation, the encoded output may have a fixed or variable size.\n *\n * @see {@link FixedSizeNumberEncoder}\n */\nexport type NumberEncoder = Encoder<bigint | number>;\n\n/**\n * Represents a fixed-size encoder for numbers and bigints.\n *\n * This encoder serializes values using an exact number of bytes, defined by `TSize`.\n *\n * @typeParam TSize - The number of bytes used for encoding.\n *\n * @see {@link NumberEncoder}\n */\nexport type FixedSizeNumberEncoder<TSize extends number = number> = FixedSizeEncoder<bigint | number, TSize>;\n\n/**\n * Represents a decoder for numbers and bigints.\n *\n * This type supports decoding values as either `number` or `bigint`, depending on the implementation.\n *\n * @see {@link FixedSizeNumberDecoder}\n */\nexport type NumberDecoder = Decoder<bigint> | Decoder<number>;\n\n/**\n * Represents a fixed-size decoder for numbers and bigints.\n *\n * This decoder reads a fixed number of bytes (`TSize`) and converts them into a `number` or `bigint`.\n *\n * @typeParam TSize - The number of bytes expected for decoding.\n *\n * @see {@link NumberDecoder}\n */\nexport type FixedSizeNumberDecoder<TSize extends number = number> =\n    | FixedSizeDecoder<bigint, TSize>\n    | FixedSizeDecoder<number, TSize>;\n\n/**\n * Represents a codec for encoding and decoding numbers and bigints.\n *\n * - The encoded value can be either a `number` or a `bigint`.\n * - The decoded value will always be either a `number` or `bigint`, depending on the implementation.\n *\n * @see {@link FixedSizeNumberCodec}\n */\nexport type NumberCodec = Codec<bigint | number, bigint> | Codec<bigint | number, number>;\n\n/**\n * Represents a fixed-size codec for encoding and decoding numbers and bigints.\n *\n * This codec uses a specific number of bytes (`TSize`) for serialization.\n * The encoded value can be either a `number` or `bigint`, but the decoded value will always be a `number` or `bigint`,\n * depending on the implementation.\n *\n * @typeParam TSize - The number of bytes used for encoding and decoding.\n *\n * @see {@link NumberCodec}\n */\nexport type FixedSizeNumberCodec<TSize extends number = number> =\n    | FixedSizeCodec<bigint | number, bigint, TSize>\n    | FixedSizeCodec<bigint | number, number, TSize>;\n\n/**\n * Configuration options for number codecs that use more than one byte.\n *\n * This configuration applies to all number codecs except `u8` and `i8`,\n * allowing the user to specify the endianness of serialization.\n */\nexport type NumberCodecConfig = {\n    /**\n     * Specifies whether numbers should be encoded in little-endian or big-endian format.\n     *\n     * @defaultValue `Endian.Little`\n     */\n    endian?: Endian;\n};\n\n/**\n * Defines the byte order used for number serialization.\n *\n * - `Little`: The least significant byte is stored first.\n * - `Big`: The most significant byte is stored first.\n */\nexport enum Endian {\n    Little,\n    Big,\n}\n","import {\n    assertByteArrayHasEnoughBytesForCodec,\n    assertByteArrayIsNotEmptyForCodec,\n    createDecoder,\n    createEncoder,\n    FixedSizeDecoder,\n    FixedSizeEncoder,\n    Offset,\n    ReadonlyUint8Array,\n} from '@solana/codecs-core';\n\nimport { assertNumberIsBetweenForCodec } from './assertions';\nimport { Endian, NumberCodecConfig } from './common';\n\ntype NumberFactorySharedInput<TSize extends number> = {\n    config?: NumberCodecConfig;\n    name: string;\n    size: TSize;\n};\n\ntype NumberFactoryEncoderInput<TFrom, TSize extends number> = NumberFactorySharedInput<TSize> & {\n    range?: [bigint | number, bigint | number];\n    set: (view: DataView, value: TFrom, littleEndian?: boolean) => void;\n};\n\ntype NumberFactoryDecoderInput<TTo, TSize extends number> = NumberFactorySharedInput<TSize> & {\n    get: (view: DataView, littleEndian?: boolean) => TTo;\n};\n\nfunction isLittleEndian(config?: NumberCodecConfig): boolean {\n    return config?.endian === Endian.Big ? false : true;\n}\n\nexport function numberEncoderFactory<TFrom extends bigint | number, TSize extends number>(\n    input: NumberFactoryEncoderInput<TFrom, TSize>,\n): FixedSizeEncoder<TFrom, TSize> {\n    return createEncoder({\n        fixedSize: input.size,\n        write(value: TFrom, bytes: Uint8Array, offset: Offset): Offset {\n            if (input.range) {\n                assertNumberIsBetweenForCodec(input.name, input.range[0], input.range[1], value);\n            }\n            const arrayBuffer = new ArrayBuffer(input.size);\n            input.set(new DataView(arrayBuffer), value, isLittleEndian(input.config));\n            bytes.set(new Uint8Array(arrayBuffer), offset);\n            return offset + input.size;\n        },\n    });\n}\n\nexport function numberDecoderFactory<TTo extends bigint | number, TSize extends number>(\n    input: NumberFactoryDecoderInput<TTo, TSize>,\n): FixedSizeDecoder<TTo, TSize> {\n    return createDecoder({\n        fixedSize: input.size,\n        read(bytes, offset = 0): [TTo, number] {\n            assertByteArrayIsNotEmptyForCodec(input.name, bytes, offset);\n            assertByteArrayHasEnoughBytesForCodec(input.name, input.size, bytes, offset);\n            const view = new DataView(toArrayBuffer(bytes, offset, input.size));\n            return [input.get(view, isLittleEndian(input.config)), offset + input.size];\n        },\n    });\n}\n\n/**\n * Helper function to ensure that the ArrayBuffer is converted properly from a Uint8Array\n * Source: https://stackoverflow.com/questions/37228285/uint8array-to-arraybuffer\n */\nfunction toArrayBuffer(bytes: ReadonlyUint8Array | Uint8Array, offset?: number, length?: number): ArrayBuffer {\n    const bytesOffset = bytes.byteOffset + (offset ?? 0);\n    const bytesLength = length ?? bytes.byteLength;\n    return bytes.buffer.slice(bytesOffset, bytesOffset + bytesLength);\n}\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 32-bit floating-point numbers (`f32`).\n *\n * This encoder serializes `f32` values using 4 bytes.\n * Floating-point values may lose precision when encoded.\n *\n * For more details, see {@link getF32Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number, 4>` for encoding `f32` values.\n *\n * @example\n * Encoding an `f32` value.\n * ```ts\n * const encoder = getF32Encoder();\n * const bytes = encoder.encode(-1.5); // 0x0000c0bf\n * ```\n *\n * @see {@link getF32Codec}\n */\nexport const getF32Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 4> =>\n    numberEncoderFactory({\n        config,\n        name: 'f32',\n        set: (view, value, le) => view.setFloat32(0, Number(value), le),\n        size: 4,\n    });\n\n/**\n * Returns a decoder for 32-bit floating-point numbers (`f32`).\n *\n * This decoder deserializes `f32` values from 4 bytes.\n * Some precision may be lost during decoding due to floating-point representation.\n *\n * For more details, see {@link getF32Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<number, 4>` for decoding `f32` values.\n *\n * @example\n * Decoding an `f32` value.\n * ```ts\n * const decoder = getF32Decoder();\n * const value = decoder.decode(new Uint8Array([0x00, 0x00, 0xc0, 0xbf])); // -1.5\n * ```\n *\n * @see {@link getF32Codec}\n */\nexport const getF32Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 4> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getFloat32(0, le),\n        name: 'f32',\n        size: 4,\n    });\n\n/**\n * Returns a codec for encoding and decoding 32-bit floating-point numbers (`f32`).\n *\n * This codec serializes `f32` values using 4 bytes.\n * Due to the IEEE 754 floating-point representation, some precision loss may occur.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number, number, 4>` for encoding and decoding `f32` values.\n *\n * @example\n * Encoding and decoding an `f32` value.\n * ```ts\n * const codec = getF32Codec();\n * const bytes = codec.encode(-1.5); // 0x0000c0bf\n * const value = codec.decode(bytes); // -1.5\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getF32Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-1.5); // 0xbfc00000\n * ```\n *\n * @remarks\n * `f32` values follow the IEEE 754 single-precision floating-point standard.\n * Precision loss may occur for certain values.\n *\n * - If you need higher precision, consider using {@link getF64Codec}.\n * - If you need integer values, consider using {@link getI32Codec} or {@link getU32Codec}.\n *\n * Separate {@link getF32Encoder} and {@link getF32Decoder} functions are available.\n *\n * ```ts\n * const bytes = getF32Encoder().encode(-1.5);\n * const value = getF32Decoder().decode(bytes);\n * ```\n *\n * @see {@link getF32Encoder}\n * @see {@link getF32Decoder}\n */\nexport const getF32Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 4> =>\n    combineCodec(getF32Encoder(config), getF32Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 64-bit floating-point numbers (`f64`).\n *\n * This encoder serializes `f64` values using 8 bytes.\n * Floating-point values may lose precision when encoded.\n *\n * For more details, see {@link getF64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number, 8>` for encoding `f64` values.\n *\n * @example\n * Encoding an `f64` value.\n * ```ts\n * const encoder = getF64Encoder();\n * const bytes = encoder.encode(-1.5); // 0x000000000000f8bf\n * ```\n *\n * @see {@link getF64Codec}\n */\nexport const getF64Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 8> =>\n    numberEncoderFactory({\n        config,\n        name: 'f64',\n        set: (view, value, le) => view.setFloat64(0, Number(value), le),\n        size: 8,\n    });\n\n/**\n * Returns a decoder for 64-bit floating-point numbers (`f64`).\n *\n * This decoder deserializes `f64` values from 8 bytes.\n * Some precision may be lost during decoding due to floating-point representation.\n *\n * For more details, see {@link getF64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<number, 8>` for decoding `f64` values.\n *\n * @example\n * Decoding an `f64` value.\n * ```ts\n * const decoder = getF64Decoder();\n * const value = decoder.decode(new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbf])); // -1.5\n * ```\n *\n * @see {@link getF64Codec}\n */\nexport const getF64Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 8> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getFloat64(0, le),\n        name: 'f64',\n        size: 8,\n    });\n\n/**\n * Returns a codec for encoding and decoding 64-bit floating-point numbers (`f64`).\n *\n * This codec serializes `f64` values using 8 bytes.\n * Due to the IEEE 754 floating-point representation, some precision loss may occur.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number, number, 8>` for encoding and decoding `f64` values.\n *\n * @example\n * Encoding and decoding an `f64` value.\n * ```ts\n * const codec = getF64Codec();\n * const bytes = codec.encode(-1.5); // 0x000000000000f8bf\n * const value = codec.decode(bytes); // -1.5\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getF64Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-1.5); // 0xbff8000000000000\n * ```\n *\n * @remarks\n * `f64` values follow the IEEE 754 double-precision floating-point standard.\n * Precision loss may still occur but is significantly lower than `f32`.\n *\n * - If you need smaller floating-point values, consider using {@link getF32Codec}.\n * - If you need integer values, consider using {@link getI64Codec} or {@link getU64Codec}.\n *\n * Separate {@link getF64Encoder} and {@link getF64Decoder} functions are available.\n *\n * ```ts\n * const bytes = getF64Encoder().encode(-1.5);\n * const value = getF64Decoder().decode(bytes);\n * ```\n *\n * @see {@link getF64Encoder}\n * @see {@link getF64Decoder}\n */\nexport const getF64Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 8> =>\n    combineCodec(getF64Encoder(config), getF64Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 128-bit signed integers (`i128`).\n *\n * This encoder serializes `i128` values using 16 bytes.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getI128Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number | bigint, 16>` for encoding `i128` values.\n *\n * @example\n * Encoding an `i128` value.\n * ```ts\n * const encoder = getI128Encoder();\n * const bytes = encoder.encode(-42n); // 0xd6ffffffffffffffffffffffffffffff\n * ```\n *\n * @see {@link getI128Codec}\n */\nexport const getI128Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 16> =>\n    numberEncoderFactory({\n        config,\n        name: 'i128',\n        range: [-BigInt('0x7fffffffffffffffffffffffffffffff') - 1n, BigInt('0x7fffffffffffffffffffffffffffffff')],\n        set: (view, value, le) => {\n            const leftOffset = le ? 8 : 0;\n            const rightOffset = le ? 0 : 8;\n            const rightMask = 0xffffffffffffffffn;\n            view.setBigInt64(leftOffset, BigInt(value) >> 64n, le);\n            view.setBigUint64(rightOffset, BigInt(value) & rightMask, le);\n        },\n        size: 16,\n    });\n\n/**\n * Returns a decoder for 128-bit signed integers (`i128`).\n *\n * This decoder deserializes `i128` values from 16 bytes.\n * The decoded value is always a `bigint`.\n *\n * For more details, see {@link getI128Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<bigint, 16>` for decoding `i128` values.\n *\n * @example\n * Decoding an `i128` value.\n * ```ts\n * const decoder = getI128Decoder();\n * const value = decoder.decode(new Uint8Array([\n *   0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,\n *   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff\n * ])); // -42n\n * ```\n *\n * @see {@link getI128Codec}\n */\nexport const getI128Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<bigint, 16> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => {\n            const leftOffset = le ? 8 : 0;\n            const rightOffset = le ? 0 : 8;\n            const left = view.getBigInt64(leftOffset, le);\n            const right = view.getBigUint64(rightOffset, le);\n            return (left << 64n) + right;\n        },\n        name: 'i128',\n        size: 16,\n    });\n\n/**\n * Returns a codec for encoding and decoding 128-bit signed integers (`i128`).\n *\n * This codec serializes `i128` values using 16 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `bigint`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, bigint, 16>` for encoding and decoding `i128` values.\n *\n * @example\n * Encoding and decoding an `i128` value.\n * ```ts\n * const codec = getI128Codec();\n * const bytes = codec.encode(-42n); // 0xd6ffffffffffffffffffffffffffffff\n * const value = codec.decode(bytes); // -42n\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getI128Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-42n); // 0xffffffffffffffffffffffffffffd6\n * ```\n *\n * @remarks\n * This codec supports values between `-2^127` and `2^127 - 1`.\n * Since JavaScript `number` cannot safely represent values beyond `2^53 - 1`, the decoded value is always a `bigint`.\n *\n * - If you need a smaller signed integer, consider using {@link getI64Codec} or {@link getI32Codec}.\n * - If you need a larger signed integer, consider using a custom codec.\n * - If you need unsigned integers, consider using {@link getU128Codec}.\n *\n * Separate {@link getI128Encoder} and {@link getI128Decoder} functions are available.\n *\n * ```ts\n * const bytes = getI128Encoder().encode(-42);\n * const value = getI128Decoder().decode(bytes);\n * ```\n *\n * @see {@link getI128Encoder}\n * @see {@link getI128Decoder}\n */\nexport const getI128Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, bigint, 16> =>\n    combineCodec(getI128Encoder(config), getI128Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 16-bit signed integers (`i16`).\n *\n * This encoder serializes `i16` values using 2 bytes.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getI16Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number | bigint, 2>` for encoding `i16` values.\n *\n * @example\n * Encoding an `i16` value.\n * ```ts\n * const encoder = getI16Encoder();\n * const bytes = encoder.encode(-42); // 0xd6ff\n * ```\n *\n * @see {@link getI16Codec}\n */\nexport const getI16Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 2> =>\n    numberEncoderFactory({\n        config,\n        name: 'i16',\n        range: [-Number('0x7fff') - 1, Number('0x7fff')],\n        set: (view, value, le) => view.setInt16(0, Number(value), le),\n        size: 2,\n    });\n\n/**\n * Returns a decoder for 16-bit signed integers (`i16`).\n *\n * This decoder deserializes `i16` values from 2 bytes.\n * The decoded value is always a `number`.\n *\n * For more details, see {@link getI16Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<number, 2>` for decoding `i16` values.\n *\n * @example\n * Decoding an `i16` value.\n * ```ts\n * const decoder = getI16Decoder();\n * const value = decoder.decode(new Uint8Array([0xd6, 0xff])); // -42\n * ```\n *\n * @see {@link getI16Codec}\n */\nexport const getI16Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 2> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getInt16(0, le),\n        name: 'i16',\n        size: 2,\n    });\n\n/**\n * Returns a codec for encoding and decoding 16-bit signed integers (`i16`).\n *\n * This codec serializes `i16` values using 2 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `number`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, number, 2>` for encoding and decoding `i16` values.\n *\n * @example\n * Encoding and decoding an `i16` value.\n * ```ts\n * const codec = getI16Codec();\n * const bytes = codec.encode(-42); // 0xd6ff\n * const value = codec.decode(bytes); // -42\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getI16Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-42); // 0xffd6\n * ```\n *\n * @remarks\n * This codec supports values between `-2^15` (`-32,768`) and `2^15 - 1` (`32,767`).\n *\n * - If you need a smaller signed integer, consider using {@link getI8Codec}.\n * - If you need a larger signed integer, consider using {@link getI32Codec}.\n * - If you need unsigned integers, consider using {@link getU16Codec}.\n *\n * Separate {@link getI16Encoder} and {@link getI16Decoder} functions are available.\n *\n * ```ts\n * const bytes = getI16Encoder().encode(-42);\n * const value = getI16Decoder().decode(bytes);\n * ```\n *\n * @see {@link getI16Encoder}\n * @see {@link getI16Decoder}\n */\nexport const getI16Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 2> =>\n    combineCodec(getI16Encoder(config), getI16Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 32-bit signed integers (`i32`).\n *\n * This encoder serializes `i32` values using 4 bytes.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getI32Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number | bigint, 4>` for encoding `i32` values.\n *\n * @example\n * Encoding an `i32` value.\n * ```ts\n * const encoder = getI32Encoder();\n * const bytes = encoder.encode(-42); // 0xd6ffffff\n * ```\n *\n * @see {@link getI32Codec}\n */\nexport const getI32Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 4> =>\n    numberEncoderFactory({\n        config,\n        name: 'i32',\n        range: [-Number('0x7fffffff') - 1, Number('0x7fffffff')],\n        set: (view, value, le) => view.setInt32(0, Number(value), le),\n        size: 4,\n    });\n\n/**\n * Returns a decoder for 32-bit signed integers (`i32`).\n *\n * This decoder deserializes `i32` values from 4 bytes.\n * The decoded value is always a `number`.\n *\n * For more details, see {@link getI32Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<number, 4>` for decoding `i32` values.\n *\n * @example\n * Decoding an `i32` value.\n * ```ts\n * const decoder = getI32Decoder();\n * const value = decoder.decode(new Uint8Array([0xd6, 0xff, 0xff, 0xff])); // -42\n * ```\n *\n * @see {@link getI32Codec}\n */\nexport const getI32Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 4> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getInt32(0, le),\n        name: 'i32',\n        size: 4,\n    });\n\n/**\n * Returns a codec for encoding and decoding 32-bit signed integers (`i32`).\n *\n * This codec serializes `i32` values using 4 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `number`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, number, 4>` for encoding and decoding `i32` values.\n *\n * @example\n * Encoding and decoding an `i32` value.\n * ```ts\n * const codec = getI32Codec();\n * const bytes = codec.encode(-42); // 0xd6ffffff\n * const value = codec.decode(bytes); // -42\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getI32Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-42); // 0xffffffd6\n * ```\n *\n * @remarks\n * This codec supports values between `-2^31` (`-2,147,483,648`) and `2^31 - 1` (`2,147,483,647`).\n *\n * - If you need a smaller signed integer, consider using {@link getI16Codec} or {@link getI8Codec}.\n * - If you need a larger signed integer, consider using {@link getI64Codec}.\n * - If you need unsigned integers, consider using {@link getU32Codec}.\n *\n * Separate {@link getI32Encoder} and {@link getI32Decoder} functions are available.\n *\n * ```ts\n * const bytes = getI32Encoder().encode(-42);\n * const value = getI32Decoder().decode(bytes);\n * ```\n *\n * @see {@link getI32Encoder}\n * @see {@link getI32Decoder}\n */\nexport const getI32Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 4> =>\n    combineCodec(getI32Encoder(config), getI32Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 64-bit signed integers (`i64`).\n *\n * This encoder serializes `i64` values using 8 bytes.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getI64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number | bigint, 8>` for encoding `i64` values.\n *\n * @example\n * Encoding an `i64` value.\n * ```ts\n * const encoder = getI64Encoder();\n * const bytes = encoder.encode(-42n); // 0xd6ffffffffffffff\n * ```\n *\n * @see {@link getI64Codec}\n */\nexport const getI64Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 8> =>\n    numberEncoderFactory({\n        config,\n        name: 'i64',\n        range: [-BigInt('0x7fffffffffffffff') - 1n, BigInt('0x7fffffffffffffff')],\n        set: (view, value, le) => view.setBigInt64(0, BigInt(value), le),\n        size: 8,\n    });\n\n/**\n * Returns a decoder for 64-bit signed integers (`i64`).\n *\n * This decoder deserializes `i64` values from 8 bytes.\n * The decoded value is always a `bigint`.\n *\n * For more details, see {@link getI64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<bigint, 8>` for decoding `i64` values.\n *\n * @example\n * Decoding an `i64` value.\n * ```ts\n * const decoder = getI64Decoder();\n * const value = decoder.decode(new Uint8Array([\n *   0xd6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff\n * ])); // -42n\n * ```\n *\n * @see {@link getI64Codec}\n */\nexport const getI64Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<bigint, 8> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getBigInt64(0, le),\n        name: 'i64',\n        size: 8,\n    });\n\n/**\n * Returns a codec for encoding and decoding 64-bit signed integers (`i64`).\n *\n * This codec serializes `i64` values using 8 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `bigint`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, bigint, 8>` for encoding and decoding `i64` values.\n *\n * @example\n * Encoding and decoding an `i64` value.\n * ```ts\n * const codec = getI64Codec();\n * const bytes = codec.encode(-42n); // 0xd6ffffffffffffff\n * const value = codec.decode(bytes); // -42n\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getI64Codec({ endian: Endian.Big });\n * const bytes = codec.encode(-42n); // 0xffffffffffffffd6\n * ```\n *\n * @remarks\n * This codec supports values between `-2^63` and `2^63 - 1`.\n * Since JavaScript `number` cannot safely represent values beyond `2^53 - 1`, the decoded value is always a `bigint`.\n *\n * - If you need a smaller signed integer, consider using {@link getI32Codec} or {@link getI16Codec}.\n * - If you need a larger signed integer, consider using {@link getI128Codec}.\n * - If you need unsigned integers, consider using {@link getU64Codec}.\n *\n * Separate {@link getI64Encoder} and {@link getI64Decoder} functions are available.\n *\n * ```ts\n * const bytes = getI64Encoder().encode(-42);\n * const value = getI64Decoder().decode(bytes);\n * ```\n *\n * @see {@link getI64Encoder}\n * @see {@link getI64Decoder}\n */\nexport const getI64Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, bigint, 8> =>\n    combineCodec(getI64Encoder(config), getI64Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 8-bit signed integers (`i8`).\n *\n * This encoder serializes `i8` values using 1 byte.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getI8Codec}.\n *\n * @returns A `FixedSizeEncoder<number | bigint, 1>` for encoding `i8` values.\n *\n * @example\n * Encoding an `i8` value.\n * ```ts\n * const encoder = getI8Encoder();\n * const bytes = encoder.encode(-42); // 0xd6\n * ```\n *\n * @see {@link getI8Codec}\n */\nexport const getI8Encoder = (): FixedSizeEncoder<bigint | number, 1> =>\n    numberEncoderFactory({\n        name: 'i8',\n        range: [-Number('0x7f') - 1, Number('0x7f')],\n        set: (view, value) => view.setInt8(0, Number(value)),\n        size: 1,\n    });\n\n/**\n * Returns a decoder for 8-bit signed integers (`i8`).\n *\n * This decoder deserializes `i8` values from 1 byte.\n * The decoded value is always a `number`.\n *\n * For more details, see {@link getI8Codec}.\n *\n * @returns A `FixedSizeDecoder<number, 1>` for decoding `i8` values.\n *\n * @example\n * Decoding an `i8` value.\n * ```ts\n * const decoder = getI8Decoder();\n * const value = decoder.decode(new Uint8Array([0xd6])); // -42\n * ```\n *\n * @see {@link getI8Codec}\n */\nexport const getI8Decoder = (): FixedSizeDecoder<number, 1> =>\n    numberDecoderFactory({\n        get: view => view.getInt8(0),\n        name: 'i8',\n        size: 1,\n    });\n\n/**\n * Returns a codec for encoding and decoding 8-bit signed integers (`i8`).\n *\n * This codec serializes `i8` values using 1 byte.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `number`.\n *\n * @returns A `FixedSizeCodec<number | bigint, number, 1>` for encoding and decoding `i8` values.\n *\n * @example\n * Encoding and decoding an `i8` value.\n * ```ts\n * const codec = getI8Codec();\n * const bytes = codec.encode(-42); // 0xd6\n * const value = codec.decode(bytes); // -42\n * ```\n *\n * @remarks\n * This codec supports values between `-2^7` (`-128`) and `2^7 - 1` (`127`).\n *\n * - If you need a larger signed integer, consider using {@link getI16Codec}.\n * - If you need an unsigned integer, consider using {@link getU8Codec}.\n *\n * Separate {@link getI8Encoder} and {@link getI8Decoder} functions are available.\n *\n * ```ts\n * const bytes = getI8Encoder().encode(-42);\n * const value = getI8Decoder().decode(bytes);\n * ```\n *\n * @see {@link getI8Encoder}\n * @see {@link getI8Decoder}\n */\nexport const getI8Codec = (): FixedSizeCodec<bigint | number, number, 1> =>\n    combineCodec(getI8Encoder(), getI8Decoder());\n","import {\n    combineCodec,\n    createDecoder,\n    createEncoder,\n    Offset,\n    ReadonlyUint8Array,\n    VariableSizeCodec,\n    VariableSizeDecoder,\n    VariableSizeEncoder,\n} from '@solana/codecs-core';\n\nimport { assertNumberIsBetweenForCodec } from './assertions';\n\n/**\n * Returns an encoder for `shortU16` values.\n *\n * This encoder serializes `shortU16` values using **1 to 3 bytes**.\n * Smaller values use fewer bytes, while larger values take up more space.\n *\n * For more details, see {@link getShortU16Codec}.\n *\n * @returns A `VariableSizeEncoder<number | bigint>` for encoding `shortU16` values.\n *\n * @example\n * Encoding a `shortU16` value.\n * ```ts\n * const encoder = getShortU16Encoder();\n * encoder.encode(42);    // 0x2a\n * encoder.encode(128);   // 0x8001\n * encoder.encode(16384); // 0x808001\n * ```\n *\n * @see {@link getShortU16Codec}\n */\nexport const getShortU16Encoder = (): VariableSizeEncoder<bigint | number> =>\n    createEncoder({\n        getSizeFromValue: (value: bigint | number): number => {\n            if (value <= 0b01111111) return 1;\n            if (value <= 0b0011111111111111) return 2;\n            return 3;\n        },\n        maxSize: 3,\n        write: (value: bigint | number, bytes: Uint8Array, offset: Offset): Offset => {\n            assertNumberIsBetweenForCodec('shortU16', 0, 65535, value);\n            const shortU16Bytes = [0];\n            for (let ii = 0; ; ii += 1) {\n                // Shift the bits of the value over such that the next 7 bits are at the right edge.\n                const alignedValue = Number(value) >> (ii * 7);\n                if (alignedValue === 0) {\n                    // No more bits to consume.\n                    break;\n                }\n                // Extract those 7 bits using a mask.\n                const nextSevenBits = 0b1111111 & alignedValue;\n                shortU16Bytes[ii] = nextSevenBits;\n                if (ii > 0) {\n                    // Set the continuation bit of the previous slice.\n                    shortU16Bytes[ii - 1] |= 0b10000000;\n                }\n            }\n            bytes.set(shortU16Bytes, offset);\n            return offset + shortU16Bytes.length;\n        },\n    });\n\n/**\n * Returns a decoder for `shortU16` values.\n *\n * This decoder deserializes `shortU16` values from **1 to 3 bytes**.\n * The number of bytes used depends on the encoded value.\n *\n * For more details, see {@link getShortU16Codec}.\n *\n * @returns A `VariableSizeDecoder<number>` for decoding `shortU16` values.\n *\n * @example\n * Decoding a `shortU16` value.\n * ```ts\n * const decoder = getShortU16Decoder();\n * decoder.decode(new Uint8Array([0x2a]));             // 42\n * decoder.decode(new Uint8Array([0x80, 0x01]));       // 128\n * decoder.decode(new Uint8Array([0x80, 0x80, 0x01])); // 16384\n * ```\n *\n * @see {@link getShortU16Codec}\n */\nexport const getShortU16Decoder = (): VariableSizeDecoder<number> =>\n    createDecoder({\n        maxSize: 3,\n        read: (bytes: ReadonlyUint8Array | Uint8Array, offset): [number, Offset] => {\n            let value = 0;\n            let byteCount = 0;\n            while (++byteCount) {\n                const byteIndex = byteCount - 1;\n                const currentByte = bytes[offset + byteIndex];\n                const nextSevenBits = 0b1111111 & currentByte;\n                // Insert the next group of seven bits into the correct slot of the output value.\n                value |= nextSevenBits << (byteIndex * 7);\n                if ((currentByte & 0b10000000) === 0) {\n                    // This byte does not have its continuation bit set. We're done.\n                    break;\n                }\n            }\n            return [value, offset + byteCount];\n        },\n    });\n\n/**\n * Returns a codec for encoding and decoding `shortU16` values.\n *\n * It serializes unsigned integers using **1 to 3 bytes** based on the encoded value.\n * The larger the value, the more bytes it uses.\n *\n * - If the value is `<= 0x7f` (127), it is stored in a **single byte**\n *   and the first bit is set to `0` to indicate the end of the value.\n * - Otherwise, the first bit is set to `1` to indicate that the value continues in the next byte, which follows the same pattern.\n * - This process repeats until the value is fully encoded in up to 3 bytes. The third and last byte, if needed, uses all 8 bits to store the remaining value.\n *\n * In other words, the encoding scheme follows this structure:\n *\n * ```txt\n * 0XXXXXXX                   <- Values 0 to 127 (1 byte)\n * 1XXXXXXX 0XXXXXXX          <- Values 128 to 16,383 (2 bytes)\n * 1XXXXXXX 1XXXXXXX XXXXXXXX <- Values 16,384 to 4,194,303 (3 bytes)\n * ```\n *\n * @returns A `VariableSizeCodec<number | bigint, number>` for encoding and decoding `shortU16` values.\n *\n * @example\n * Encoding and decoding `shortU16` values.\n * ```ts\n * const codec = getShortU16Codec();\n * const bytes1 = codec.encode(42);    // 0x2a\n * const bytes2 = codec.encode(128);   // 0x8001\n * const bytes3 = codec.encode(16384); // 0x808001\n *\n * codec.decode(bytes1); // 42\n * codec.decode(bytes2); // 128\n * codec.decode(bytes3); // 16384\n * ```\n *\n * @remarks\n * This codec efficiently stores small numbers, making it useful for transactions and compact representations.\n *\n * If you need a fixed-size `u16` codec, consider using {@link getU16Codec}.\n *\n * Separate {@link getShortU16Encoder} and {@link getShortU16Decoder} functions are available.\n *\n * ```ts\n * const bytes = getShortU16Encoder().encode(42);\n * const value = getShortU16Decoder().decode(bytes);\n * ```\n *\n * @see {@link getShortU16Encoder}\n * @see {@link getShortU16Decoder}\n */\nexport const getShortU16Codec = (): VariableSizeCodec<bigint | number, number> =>\n    combineCodec(getShortU16Encoder(), getShortU16Decoder());\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 128-bit unsigned integers (`u128`).\n *\n * This encoder serializes `u128` values using sixteen bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU128Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeEncoder<number | bigint, 16>` for encoding `u128` values.\n *\n * @example\n * Encoding a `u128` value.\n * ```ts\n * const encoder = getU128Encoder();\n * const bytes = encoder.encode(42n); // 0x2a000000000000000000000000000000\n * ```\n *\n * @see {@link getU128Codec}\n */\nexport const getU128Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 16> =>\n    numberEncoderFactory({\n        config,\n        name: 'u128',\n        range: [0n, BigInt('0xffffffffffffffffffffffffffffffff')],\n        set: (view, value, le) => {\n            const leftOffset = le ? 8 : 0;\n            const rightOffset = le ? 0 : 8;\n            const rightMask = 0xffffffffffffffffn;\n            view.setBigUint64(leftOffset, BigInt(value) >> 64n, le);\n            view.setBigUint64(rightOffset, BigInt(value) & rightMask, le);\n        },\n        size: 16,\n    });\n\n/**\n * Returns a decoder for 128-bit unsigned integers (`u128`).\n *\n * This decoder deserializes `u128` values from sixteen bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU128Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeDecoder<bigint, 16>` for decoding `u128` values.\n *\n * @example\n * Decoding a `u128` value.\n * ```ts\n * const decoder = getU128Decoder();\n * const value = decoder.decode(new Uint8Array([0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])); // 42n\n * ```\n *\n * @see {@link getU128Codec}\n */\nexport const getU128Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<bigint, 16> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => {\n            const leftOffset = le ? 8 : 0;\n            const rightOffset = le ? 0 : 8;\n            const left = view.getBigUint64(leftOffset, le);\n            const right = view.getBigUint64(rightOffset, le);\n            return (left << 64n) + right;\n        },\n        name: 'u128',\n        size: 16,\n    });\n\n/**\n * Returns a codec for encoding and decoding 128-bit unsigned integers (`u128`).\n *\n * This codec serializes `u128` values using 16 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `bigint`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, bigint, 16>` for encoding and decoding `u128` values.\n *\n * @example\n * Encoding and decoding a `u128` value.\n * ```ts\n * const codec = getU128Codec();\n * const bytes = codec.encode(42); // 0x2a000000000000000000000000000000\n * const value = codec.decode(bytes); // 42n\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getU128Codec({ endian: Endian.Big });\n * const bytes = codec.encode(42); // 0x0000000000000000000000000000002a\n * ```\n *\n * @remarks\n * This codec supports values between `0` and `2^128 - 1`.\n * Since JavaScript `number` cannot safely represent values beyond `2^53 - 1`, the decoded value is always a `bigint`.\n *\n * - If you need a smaller unsigned integer, consider using {@link getU64Codec} or {@link getU32Codec}.\n * - If you need signed integers, consider using {@link getI128Codec}.\n *\n * Separate {@link getU128Encoder} and {@link getU128Decoder} functions are available.\n *\n * ```ts\n * const bytes = getU128Encoder().encode(42);\n * const value = getU128Decoder().decode(bytes);\n * ```\n *\n * @see {@link getU128Encoder}\n * @see {@link getU128Decoder}\n */\nexport const getU128Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, bigint, 16> =>\n    combineCodec(getU128Encoder(config), getU128Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 16-bit unsigned integers (`u16`).\n *\n * This encoder serializes `u16` values using two bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU16Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeEncoder<number | bigint, 2>` for encoding `u16` values.\n *\n * @example\n * Encoding a `u16` value.\n * ```ts\n * const encoder = getU16Encoder();\n * const bytes = encoder.encode(42); // 0x2a00\n * ```\n *\n * @see {@link getU16Codec}\n */\nexport const getU16Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 2> =>\n    numberEncoderFactory({\n        config,\n        name: 'u16',\n        range: [0, Number('0xffff')],\n        set: (view, value, le) => view.setUint16(0, Number(value), le),\n        size: 2,\n    });\n\n/**\n * Returns a decoder for 16-bit unsigned integers (`u16`).\n *\n * This decoder deserializes `u16` values from two bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU16Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeDecoder<number, 2>` for decoding `u16` values.\n *\n * @example\n * Decoding a `u16` value.\n * ```ts\n * const decoder = getU16Decoder();\n * const value = decoder.decode(new Uint8Array([0x2a, 0x00])); // 42\n * ```\n *\n * @see {@link getU16Codec}\n */\nexport const getU16Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 2> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getUint16(0, le),\n        name: 'u16',\n        size: 2,\n    });\n\n/**\n * Returns a codec for encoding and decoding 16-bit unsigned integers (`u16`).\n *\n * This codec serializes `u16` values using two bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeCodec<number | bigint, number, 2>` for encoding and decoding `u16` values.\n *\n * @example\n * Encoding and decoding a `u16` value.\n * ```ts\n * const codec = getU16Codec();\n * const bytes = codec.encode(42); // 0x2a00 (little-endian)\n * const value = codec.decode(bytes); // 42\n * ```\n *\n * @example\n * Storing values in big-endian format.\n * ```ts\n * const codec = getU16Codec({ endian: Endian.Big });\n * const bytes = codec.encode(42); // 0x002a\n * ```\n *\n * @remarks\n * This codec supports values between `0` and `2^16 - 1`.\n * If you need a larger range, consider using {@link getU32Codec} or {@link getU64Codec}.\n * For signed integers, use {@link getI16Codec}.\n *\n * Separate {@link getU16Encoder} and {@link getU16Decoder} functions are available.\n *\n * ```ts\n * const bytes = getU16Encoder().encode(42);\n * const value = getU16Decoder().decode(bytes);\n * ```\n *\n * @see {@link getU16Encoder}\n * @see {@link getU16Decoder}\n */\nexport const getU16Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 2> =>\n    combineCodec(getU16Encoder(config), getU16Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 32-bit unsigned integers (`u32`).\n *\n * This encoder serializes `u32` values using four bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU32Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeEncoder<bigint | number, 4>` for encoding `u32` values.\n *\n * @example\n * Encoding a `u32` value.\n * ```ts\n * const encoder = getU32Encoder();\n * const bytes = encoder.encode(42); // 0x2a000000\n * ```\n *\n * @see {@link getU32Codec}\n */\nexport const getU32Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 4> =>\n    numberEncoderFactory({\n        config,\n        name: 'u32',\n        range: [0, Number('0xffffffff')],\n        set: (view, value, le) => view.setUint32(0, Number(value), le),\n        size: 4,\n    });\n\n/**\n * Returns a decoder for 32-bit unsigned integers (`u32`).\n *\n * This decoder deserializes `u32` values from four bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * For more details, see {@link getU32Codec}.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeDecoder<number, 4>` for decoding `u32` values.\n *\n * @example\n * Decoding a `u32` value.\n * ```ts\n * const decoder = getU32Decoder();\n * const value = decoder.decode(new Uint8Array([0x2a, 0x00, 0x00, 0x00])); // 42\n * ```\n *\n * @see {@link getU32Codec}\n */\nexport const getU32Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<number, 4> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getUint32(0, le),\n        name: 'u32',\n        size: 4,\n    });\n\n/**\n * Returns a codec for encoding and decoding 32-bit unsigned integers (`u32`).\n *\n * This codec serializes `u32` values using four bytes in little-endian format by default.\n * You may specify big-endian storage using the `endian` option.\n *\n * @param config - Optional settings for endianness.\n * @returns A `FixedSizeCodec<bigint | number, number, 4>` for encoding and decoding `u32` values.\n *\n * @example\n * Encoding and decoding a `u32` value.\n * ```ts\n * const codec = getU32Codec();\n * const bytes = codec.encode(42); // 0x2a000000 (little-endian)\n * const value = codec.decode(bytes); // 42\n * ```\n *\n * @example\n * Storing values in big-endian format.\n * ```ts\n * const codec = getU32Codec({ endian: Endian.Big });\n * const bytes = codec.encode(42); // 0x0000002a\n * ```\n *\n * @remarks\n * This codec only supports values between `0` and `2^32 - 1`.\n * If you need a larger range, consider using {@link getU64Codec} or {@link getU128Codec}.\n * For signed integers, use {@link getI32Codec}.\n *\n * Separate {@link getU32Encoder} and {@link getU32Decoder} functions are available.\n *\n * ```ts\n * const bytes = getU32Encoder().encode(42);\n * const value = getU32Decoder().decode(bytes);\n * ```\n *\n * @see {@link getU32Encoder}\n * @see {@link getU32Decoder}\n */\nexport const getU32Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, number, 4> =>\n    combineCodec(getU32Encoder(config), getU32Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { NumberCodecConfig } from './common';\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 64-bit unsigned integers (`u64`).\n *\n * This encoder serializes `u64` values using 8 bytes.\n * Values can be provided as either `number` or `bigint`.\n *\n * For more details, see {@link getU64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeEncoder<number | bigint, 8>` for encoding `u64` values.\n *\n * @example\n * Encoding a `u64` value.\n * ```ts\n * const encoder = getU64Encoder();\n * const bytes = encoder.encode(42); // 0x2a00000000000000\n * ```\n *\n * @see {@link getU64Codec}\n */\nexport const getU64Encoder = (config: NumberCodecConfig = {}): FixedSizeEncoder<bigint | number, 8> =>\n    numberEncoderFactory({\n        config,\n        name: 'u64',\n        range: [0n, BigInt('0xffffffffffffffff')],\n        set: (view, value, le) => view.setBigUint64(0, BigInt(value), le),\n        size: 8,\n    });\n\n/**\n * Returns a decoder for 64-bit unsigned integers (`u64`).\n *\n * This decoder deserializes `u64` values from 8 bytes.\n * The decoded value is always a `bigint`.\n *\n * For more details, see {@link getU64Codec}.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeDecoder<bigint, 8>` for decoding `u64` values.\n *\n * @example\n * Decoding a `u64` value.\n * ```ts\n * const decoder = getU64Decoder();\n * const value = decoder.decode(new Uint8Array([0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])); // 42n\n * ```\n *\n * @see {@link getU64Codec}\n */\nexport const getU64Decoder = (config: NumberCodecConfig = {}): FixedSizeDecoder<bigint, 8> =>\n    numberDecoderFactory({\n        config,\n        get: (view, le) => view.getBigUint64(0, le),\n        name: 'u64',\n        size: 8,\n    });\n\n/**\n * Returns a codec for encoding and decoding 64-bit unsigned integers (`u64`).\n *\n * This codec serializes `u64` values using 8 bytes.\n * Values can be provided as either `number` or `bigint`, but the decoded value is always a `bigint`.\n *\n * @param config - Optional configuration to specify endianness (little by default).\n * @returns A `FixedSizeCodec<number | bigint, bigint, 8>` for encoding and decoding `u64` values.\n *\n * @example\n * Encoding and decoding a `u64` value.\n * ```ts\n * const codec = getU64Codec();\n * const bytes = codec.encode(42); // 0x2a00000000000000\n * const value = codec.decode(bytes); // 42n\n * ```\n *\n * @example\n * Using big-endian encoding.\n * ```ts\n * const codec = getU64Codec({ endian: Endian.Big });\n * const bytes = codec.encode(42); // 0x000000000000002a\n * ```\n *\n * @remarks\n * This codec supports values between `0` and `2^64 - 1`.\n * Since JavaScript `number` cannot safely represent values beyond `2^53 - 1`, the decoded value is always a `bigint`.\n *\n * - If you need a smaller unsigned integer, consider using {@link getU32Codec} or {@link getU16Codec}.\n * - If you need a larger unsigned integer, consider using {@link getU128Codec}.\n * - If you need signed integers, consider using {@link getI64Codec}.\n *\n * Separate {@link getU64Encoder} and {@link getU64Decoder} functions are available.\n *\n * ```ts\n * const bytes = getU64Encoder().encode(42);\n * const value = getU64Decoder().decode(bytes);\n * ```\n *\n * @see {@link getU64Encoder}\n * @see {@link getU64Decoder}\n */\nexport const getU64Codec = (config: NumberCodecConfig = {}): FixedSizeCodec<bigint | number, bigint, 8> =>\n    combineCodec(getU64Encoder(config), getU64Decoder(config));\n","import { combineCodec, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder } from '@solana/codecs-core';\n\nimport { numberDecoderFactory, numberEncoderFactory } from './utils';\n\n/**\n * Returns an encoder for 8-bit unsigned integers (`u8`).\n *\n * This encoder serializes `u8` values using a single byte.\n *\n * For more details, see {@link getU8Codec}.\n *\n * @returns A `FixedSizeEncoder<number | bigint, 1>` for encoding `u8` values.\n *\n * @example\n * Encoding a `u8` value.\n * ```ts\n * const encoder = getU8Encoder();\n * const bytes = encoder.encode(42); // 0x2a\n * ```\n *\n * @see {@link getU8Codec}\n */\nexport const getU8Encoder = (): FixedSizeEncoder<bigint | number, 1> =>\n    numberEncoderFactory({\n        name: 'u8',\n        range: [0, Number('0xff')],\n        set: (view, value) => view.setUint8(0, Number(value)),\n        size: 1,\n    });\n\n/**\n * Returns a decoder for 8-bit unsigned integers (`u8`).\n *\n * This decoder deserializes `u8` values from a single byte.\n *\n * For more details, see {@link getU8Codec}.\n *\n * @returns A `FixedSizeDecoder<number, 1>` for decoding `u8` values.\n *\n * @example\n * Decoding a `u8` value.\n * ```ts\n * const decoder = getU8Decoder();\n * const value = decoder.decode(new Uint8Array([0xff])); // 255\n * ```\n *\n * @see {@link getU8Codec}\n */\nexport const getU8Decoder = (): FixedSizeDecoder<number, 1> =>\n    numberDecoderFactory({\n        get: view => view.getUint8(0),\n        name: 'u8',\n        size: 1,\n    });\n\n/**\n * Returns a codec for encoding and decoding 8-bit unsigned integers (`u8`).\n *\n * This codec serializes `u8` values using a single byte.\n *\n * @returns A `FixedSizeCodec<number | bigint, number, 1>` for encoding and decoding `u8` values.\n *\n * @example\n * Encoding and decoding a `u8` value.\n * ```ts\n * const codec = getU8Codec();\n * const bytes = codec.encode(255); // 0xff\n * const value = codec.decode(bytes); // 255\n * ```\n *\n * @remarks\n * This codec supports values between `0` and `2^8 - 1` (0 to 255).\n * If you need larger integers, consider using {@link getU16Codec}, {@link getU32Codec}, or {@link getU64Codec}.\n * For signed integers, use {@link getI8Codec}.\n *\n * Separate {@link getU8Encoder} and {@link getU8Decoder} functions are available.\n *\n * ```ts\n * const bytes = getU8Encoder().encode(42);\n * const value = getU8Decoder().decode(bytes);\n * ```\n *\n * @see {@link getU8Encoder}\n * @see {@link getU8Decoder}\n */\nexport const getU8Codec = (): FixedSizeCodec<bigint | number, number, 1> =>\n    combineCodec(getU8Encoder(), getU8Decoder());\n",null,null,null,null,null,null,null,"import Stream from 'stream';\nimport http from 'http';\nimport Url from 'url';\nimport whatwgUrl from 'whatwg-url';\nimport https from 'https';\nimport zlib from 'zlib';\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param   String      message      Error message for human\n * @param   String      type         Error type for machine\n * @param   String      systemError  For Node.js system error\n * @return  FetchError\n */\nfunction FetchError(message, type, systemError) {\n  Error.call(this, message);\n\n  this.message = message;\n  this.type = type;\n\n  // when err.type is `system`, err.code contains system error code\n  if (systemError) {\n    this.code = this.errno = systemError.code;\n  }\n\n  // hide custom error implementation details from end-users\n  Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t    _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n  * Decode response as ArrayBuffer\n  *\n  * @return  Promise\n  */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n  * Return raw response as Blob\n  *\n  * @return Promise\n  */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n  * Decode response as json\n  *\n  * @return  Promise\n  */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n  * Decode response as text\n  *\n  * @return  Promise\n  */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n  * Decode response as buffer (non-spec api)\n  *\n  * @return  Promise\n  */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n  * Decode response as text, while automatically detecting the encoding and\n  * trying to decode to UTF-8 (non-spec api)\n  *\n  * @return  Promise\n  */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return  Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param   Buffer  buffer    Incoming buffer\n * @param   String  encoding  Target encoding\n * @return  String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = /<meta.+?charset=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// html4\n\tif (!res && str) {\n\t\tres = /<meta[\\s]+?http-equiv=(['\"])content-type\\1[\\s]+?content=(['\"])(.+?)\\2/i.exec(str);\n\t\tif (!res) {\n\t\t\tres = /<meta[\\s]+?content=(['\"])(.+?)\\1[\\s]+?http-equiv=(['\"])content-type\\3/i.exec(str);\n\t\t\tif (res) {\n\t\t\t\tres.pop(); // drop last quote\n\t\t\t}\n\t\t}\n\n\t\tif (res) {\n\t\t\tres = /charset=(.*)/i.exec(res.pop());\n\t\t}\n\t}\n\n\t// xml\n\tif (!res && str) {\n\t\tres = /<\\?xml.+?encoding=(['\"])(.+?)\\1/i.exec(str);\n\t}\n\n\t// found charset\n\tif (res) {\n\t\tcharset = res.pop();\n\n\t\t// prevent decode issues when sites use incorrect encoding\n\t\t// ref: https://hsivonen.fi/encoding-menu/\n\t\tif (charset === 'gb2312' || charset === 'gbk') {\n\t\t\tcharset = 'gb18030';\n\t\t}\n\t}\n\n\t// turn raw buffers into a single utf-8 buffer\n\treturn convert(buffer, 'UTF-8', charset).toString();\n}\n\n/**\n * Detect a URLSearchParams object\n * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143\n *\n * @param   Object  obj     Object to detect by type or brand\n * @return  String\n */\nfunction isURLSearchParams(obj) {\n\t// Duck-typing as a necessary condition.\n\tif (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {\n\t\treturn false;\n\t}\n\n\t// Brand-checking and more duck-typing as optional condition.\n\treturn obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';\n}\n\n/**\n * Check if `obj` is a W3C `Blob` object (which `File` inherits from)\n * @param  {*} obj\n * @return {boolean}\n */\nfunction isBlob(obj) {\n\treturn typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param   Mixed  instance  Response or Request instance\n * @return  Mixed\n */\nfunction clone(instance) {\n\tlet p1, p2;\n\tlet body = instance.body;\n\n\t// don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif (body instanceof Stream && typeof body.getBoundary !== 'function') {\n\t\t// tee instance body\n\t\tp1 = new PassThrough();\n\t\tp2 = new PassThrough();\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].body = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n}\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param   Mixed  instance  Any options.body input\n */\nfunction extractContentType(body) {\n\tif (body === null) {\n\t\t// body is null\n\t\treturn null;\n\t} else if (typeof body === 'string') {\n\t\t// body is string\n\t\treturn 'text/plain;charset=UTF-8';\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t} else if (isBlob(body)) {\n\t\t// body is blob\n\t\treturn body.type || null;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn null;\n\t} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\treturn null;\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\treturn null;\n\t} else if (typeof body.getBoundary === 'function') {\n\t\t// detect form data input from form-data module\n\t\treturn `multipart/form-data;boundary=${body.getBoundary()}`;\n\t} else if (body instanceof Stream) {\n\t\t// body is stream\n\t\t// can't really do much about this\n\t\treturn null;\n\t} else {\n\t\t// Body constructor defaults other things to string\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n}\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param   Body    instance   Instance of Body\n * @return  Number?            Number of bytes, or null if not possible\n */\nfunction getTotalBytes(instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\treturn 0;\n\t} else if (isBlob(body)) {\n\t\treturn body.size;\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\treturn body.length;\n\t} else if (body && typeof body.getLengthSync === 'function') {\n\t\t// detect form data input from form-data module\n\t\tif (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x\n\t\tbody.hasKnownLength && body.hasKnownLength()) {\n\t\t\t// 2.x\n\t\t\treturn body.getLengthSync();\n\t\t}\n\t\treturn null;\n\t} else {\n\t\t// body is stream\n\t\treturn null;\n\t}\n}\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param   Body    instance   Instance of Body\n * @return  Void\n */\nfunction writeToStream(dest, instance) {\n\tconst body = instance.body;\n\n\n\tif (body === null) {\n\t\t// body is null\n\t\tdest.end();\n\t} else if (isBlob(body)) {\n\t\tbody.stream().pipe(dest);\n\t} else if (Buffer.isBuffer(body)) {\n\t\t// body is buffer\n\t\tdest.write(body);\n\t\tdest.end();\n\t} else {\n\t\t// body is stream\n\t\tbody.pipe(dest);\n\t}\n}\n\n// expose Promise\nBody.Promise = global.Promise;\n\n/**\n * headers.js\n *\n * Headers class offers convenient helpers\n */\n\nconst invalidTokenRegex = /[^\\^_`a-zA-Z\\-0-9!#$%&'*+.|~]/;\nconst invalidHeaderCharRegex = /[^\\t\\x20-\\x7e\\x80-\\xff]/;\n\nfunction validateName(name) {\n\tname = `${name}`;\n\tif (invalidTokenRegex.test(name) || name === '') {\n\t\tthrow new TypeError(`${name} is not a legal HTTP header name`);\n\t}\n}\n\nfunction validateValue(value) {\n\tvalue = `${value}`;\n\tif (invalidHeaderCharRegex.test(value)) {\n\t\tthrow new TypeError(`${value} is not a legal HTTP header value`);\n\t}\n}\n\n/**\n * Find the key in the map object given a header name.\n *\n * Returns undefined if not found.\n *\n * @param   String  name  Header name\n * @return  String|Undefined\n */\nfunction find(map, name) {\n\tname = name.toLowerCase();\n\tfor (const key in map) {\n\t\tif (key.toLowerCase() === name) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nconst MAP = Symbol('map');\nclass Headers {\n\t/**\n  * Headers class\n  *\n  * @param   Object  headers  Response headers\n  * @return  Void\n  */\n\tconstructor() {\n\t\tlet init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record<ByteString, ByteString>\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n  * Return combined header value given name\n  *\n  * @param   String  name  Header name\n  * @return  Mixed\n  */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n  * Iterate over all headers\n  *\n  * @param   Function  callback  Executed for each item with parameters (value, name, thisArg)\n  * @param   Boolean   thisArg   `this` context for callback function\n  * @return  Void\n  */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t      value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n  * Overwrite header values given name\n  *\n  * @param   String  name   Header name\n  * @param   String  value  Header value\n  * @return  Void\n  */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n  * Append a value onto existing header\n  *\n  * @param   String  name   Header name\n  * @param   String  value  Header value\n  * @return  Void\n  */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n  * Check for header name existence\n  *\n  * @param   String   name  Header name\n  * @return  Boolean\n  */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n  * Delete all header values given name\n  *\n  * @param   String  name  Header name\n  * @return  Void\n  */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n  * Return raw headers (non-spec api)\n  *\n  * @return  Object\n  */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n  * Get an iterator on keys.\n  *\n  * @return  Iterator\n  */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n  * Get an iterator on values.\n  *\n  * @return  Iterator\n  */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n  * Get an iterator on entries.\n  *\n  * This is the default iterator of the Headers object.\n  *\n  * @return  Iterator\n  */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t      kind = _INTERNAL.kind,\n\t\t      index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param   Headers  headers\n * @return  Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param   Object  obj  Object of headers\n * @return  Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n  * Convenience property representing if the request ended normally\n  */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n  * Clone this response\n  *\n  * @return  Response\n  */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\nconst URL = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\n/**\n * Wrapper around `new URL` to handle arbitrary URLs\n *\n * @param  {string} urlStr\n * @return {void}\n */\nfunction parseURL(urlStr) {\n\t/*\n \tCheck whether the URL is absolute or not\n \t\tScheme: https://tools.ietf.org/html/rfc3986#section-3.1\n \tAbsolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\n */\n\tif (/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.exec(urlStr)) {\n\t\turlStr = new URL(urlStr).toString();\n\t}\n\n\t// Fallback to old implementation for arbitrary URLs\n\treturn parse_url(urlStr);\n}\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param   Mixed   input\n * @return  Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param   Mixed   input  Url or Request instance\n * @param   Object  init   Custom options\n * @return  Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parseURL(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parseURL(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parseURL(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n  * Clone this request\n  *\n  * @return  Request\n  */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param   Request  A Request instance\n * @return  Object   The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param   String      message      Error message for human\n * @return  AbortError\n */\nfunction AbortError(message) {\n  Error.call(this, message);\n\n  this.type = 'aborted';\n  this.message = message;\n\n  // hide custom error implementation details from end-users\n  Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\nconst URL$1 = Url.URL || whatwgUrl.URL;\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\n\nconst isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {\n\tconst orig = new URL$1(original).hostname;\n\tconst dest = new URL$1(destination).hostname;\n\n\treturn orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nconst isSameProtocol = function isSameProtocol(destination, original) {\n\tconst orig = new URL$1(original).protocol;\n\tconst dest = new URL$1(destination).protocol;\n\n\treturn orig === dest;\n};\n\n/**\n * Fetch function\n *\n * @param   Mixed    url   Absolute url or Request instance\n * @param   Object   opts  Fetch options\n * @return  Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\tdestroyStream(request.body, error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(req, function (err) {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (response && response.body) {\n\t\t\t\tdestroyStream(response.body, err);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\treq.on('socket', function (s) {\n\t\t\t\ts.addListener('close', function (hadError) {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0;\n\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL$1(location, request.url).toString();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOpts.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.on('end', function () {\n\t\t\t\t\t// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tlet socket;\n\n\trequest.on('socket', function (s) {\n\t\tsocket = s;\n\t});\n\n\trequest.on('response', function (response) {\n\t\tconst headers = response.headers;\n\n\t\tif (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {\n\t\t\tresponse.once('close', function (hadError) {\n\t\t\t\t// tests for socket presence, as in some situations the\n\t\t\t\t// the 'socket' event is not triggered for the request\n\t\t\t\t// (happens in deno), avoids `TypeError`\n\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\tconst hasDataListener = socket && socket.listenerCount('data') > 0;\n\n\t\t\t\tif (hasDataListener && !hadError) {\n\t\t\t\t\tconst err = new Error('Premature close');\n\t\t\t\t\terr.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\terrorCallback(err);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction destroyStream(stream, err) {\n\tif (stream.destroy) {\n\t\tstream.destroy(err);\n\t} else {\n\t\t// node < 8\n\t\tstream.emit('error', err);\n\t\tstream.end();\n\t}\n}\n\n/**\n * Redirect code matching\n *\n * @param   Number   code  Status code\n * @return  Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nexport default fetch;\nexport { Headers, Request, Response, FetchError, AbortError };\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","/* A wrapper for the \"qaap/uws-bindings\" library. */\n\n\"use strict\"\n\nimport WebSocketImpl from \"ws\"\n\nimport { IWSClientAdditionalOptions } from \"./client.types.js\"\n\n/**\n * factory method for common WebSocket instance\n * @method\n * @param {String} address - url to a websocket server\n * @param {(Object)} options - websocket options\n * @return {Undefined}\n */\nexport function WebSocket(\n    address: string,\n    options: IWSClientAdditionalOptions & WebSocketImpl.ClientOptions\n)\n{\n    return new WebSocketImpl(address, options)\n}\n","\"use strict\"\n\nexport interface DataPack<\n  T,\n  R extends string | ArrayBufferLike | Blob | ArrayBufferView\n> {\n  encode(value: T): R;\n  decode(value: R): T;\n}\n\nexport class DefaultDataPack implements DataPack<Object, string>\n{\n    encode(value: Object): string\n    {\n        return JSON.stringify(value)\n    }\n\n    decode(value: string): Object\n    {\n        return JSON.parse(value)\n    }\n}\n","/**\n * \"Client\" wraps \"ws\" or a browser-implemented \"WebSocket\" library\n * according to the environment providing JSON RPC 2.0 support on top.\n * @module Client\n */\n\n\"use strict\"\n\nimport NodeWebSocket from \"ws\"\nimport { EventEmitter } from \"eventemitter3\"\nimport {\n    ICommonWebSocket,\n    IWSClientAdditionalOptions,\n    NodeWebSocketType,\n    ICommonWebSocketFactory,\n} from \"./client/client.types.js\"\n\nimport { DataPack, DefaultDataPack } from \"./utils.js\"\n\ninterface IQueueElement {\n  promise: [\n    Parameters<ConstructorParameters<typeof Promise>[0]>[0],\n    Parameters<ConstructorParameters<typeof Promise>[0]>[1]\n  ];\n  timeout?: ReturnType<typeof setTimeout>;\n}\n\nexport interface IQueue {\n  [x: number | string]: IQueueElement;\n}\n\nexport interface IWSRequestParams {\n  [x: string]: any;\n  [x: number]: any;\n}\n\nexport class CommonClient extends EventEmitter\n{\n    private address: string\n    private rpc_id: number | string\n    private queue: IQueue\n    private options: IWSClientAdditionalOptions & NodeWebSocket.ClientOptions\n    private autoconnect: boolean\n    private ready: boolean\n    private reconnect: boolean\n    private reconnect_timer_id: NodeJS.Timeout\n    private reconnect_interval: number\n    private max_reconnects: number\n    private rest_options: IWSClientAdditionalOptions &\n    NodeWebSocket.ClientOptions\n    private current_reconnects: number\n    private generate_request_id: (\n    method: string,\n    params: object | Array<any>\n  ) => number | string\n    private socket: ICommonWebSocket\n    private webSocketFactory: ICommonWebSocketFactory\n    private dataPack: DataPack<object, string>\n\n    /**\n   * Instantiate a Client class.\n   * @constructor\n   * @param {webSocketFactory} webSocketFactory - factory method for WebSocket\n   * @param {String} address - url to a websocket server\n   * @param {Object} options - ws options object with reconnect parameters\n   * @param {Function} generate_request_id - custom generation request Id\n   * @param {DataPack} dataPack - data pack contains encoder and decoder\n   * @return {CommonClient}\n   */\n    constructor(\n        webSocketFactory: ICommonWebSocketFactory,\n        address = \"ws://localhost:8080\",\n        {\n            autoconnect = true,\n            reconnect = true,\n            reconnect_interval = 1000,\n            max_reconnects = 5,\n            ...rest_options\n        } = {},\n        generate_request_id?: (\n      method: string,\n      params: object | Array<any>\n    ) => number | string,\n        dataPack?: DataPack<object, string>\n    )\n    {\n        super()\n\n        this.webSocketFactory = webSocketFactory\n\n        this.queue = {}\n        this.rpc_id = 0\n\n        this.address = address\n        this.autoconnect = autoconnect\n        this.ready = false\n        this.reconnect = reconnect\n        this.reconnect_timer_id = undefined\n        this.reconnect_interval = reconnect_interval\n        this.max_reconnects = max_reconnects\n        this.rest_options = rest_options\n        this.current_reconnects = 0\n        this.generate_request_id = generate_request_id || (() => typeof this.rpc_id === \"number\"\n            ? ++this.rpc_id\n            : Number(this.rpc_id) + 1)\n\n        if (!dataPack) this.dataPack = new DefaultDataPack()\n        else this.dataPack = dataPack\n\n        if (this.autoconnect)\n            this._connect(this.address, {\n                autoconnect: this.autoconnect,\n                reconnect: this.reconnect,\n                reconnect_interval: this.reconnect_interval,\n                max_reconnects: this.max_reconnects,\n                ...this.rest_options,\n            })\n    }\n\n    /**\n   * Connects to a defined server if not connected already.\n   * @method\n   * @return {Undefined}\n   */\n    connect()\n    {\n        if (this.socket) return\n\n        this._connect(this.address, {\n            autoconnect: this.autoconnect,\n            reconnect: this.reconnect,\n            reconnect_interval: this.reconnect_interval,\n            max_reconnects: this.max_reconnects,\n            ...this.rest_options,\n        })\n    }\n\n    /**\n   * Calls a registered RPC method on server.\n   * @method\n   * @param {String} method - RPC method name\n   * @param {Object|Array} params - optional method parameters\n   * @param {Number} timeout - RPC reply timeout value\n   * @param {Object} ws_opts - options passed to ws\n   * @return {Promise}\n   */\n    call(\n        method: string,\n        params?: IWSRequestParams,\n        timeout?: number,\n        ws_opts?: Parameters<NodeWebSocketType[\"send\"]>[1]\n    )\n    {\n        if (!ws_opts && \"object\" === typeof timeout)\n        {\n            ws_opts = timeout\n            timeout = null\n        }\n\n        return new Promise((resolve, reject) =>\n        {\n            if (!this.ready) return reject(new Error(\"socket not ready\"))\n\n            const rpc_id = this.generate_request_id(method, params)\n\n            const message = {\n                jsonrpc: \"2.0\",\n                method: method,\n                params: params || undefined,\n                id: rpc_id,\n            }\n\n            this.socket.send(this.dataPack.encode(message), ws_opts, (error) =>\n            {\n                if (error) return reject(error)\n\n                this.queue[rpc_id] = { promise: [resolve, reject] }\n\n                if (timeout)\n                {\n                    this.queue[rpc_id].timeout = setTimeout(() =>\n                    {\n                        delete this.queue[rpc_id]\n                        reject(new Error(\"reply timeout\"))\n                    }, timeout)\n                }\n            })\n        })\n    }\n\n    /**\n   * Logins with the other side of the connection.\n   * @method\n   * @param {Object} params - Login credentials object\n   * @return {Promise}\n   */\n    async login(params: IWSRequestParams)\n    {\n        const resp = await this.call(\"rpc.login\", params)\n\n        if (!resp) throw new Error(\"authentication failed\")\n\n        return resp\n    }\n\n    /**\n   * Fetches a list of client's methods registered on server.\n   * @method\n   * @return {Array}\n   */\n    async listMethods()\n    {\n        return await this.call(\"__listMethods\")\n    }\n\n    /**\n   * Sends a JSON-RPC 2.0 notification to server.\n   * @method\n   * @param {String} method - RPC method name\n   * @param {Object} params - optional method parameters\n   * @return {Promise}\n   */\n    notify(method: string, params?: IWSRequestParams)\n    {\n        return new Promise<void>((resolve, reject) =>\n        {\n            if (!this.ready) return reject(new Error(\"socket not ready\"))\n\n            const message = {\n                jsonrpc: \"2.0\",\n                method: method,\n                params,\n            }\n\n            this.socket.send(this.dataPack.encode(message), (error) =>\n            {\n                if (error) return reject(error)\n\n                resolve()\n            })\n        })\n    }\n\n    /**\n   * Subscribes for a defined event.\n   * @method\n   * @param {String|Array} event - event name\n   * @return {Undefined}\n   * @throws {Error}\n   */\n    async subscribe(event: string | Array<string>)\n    {\n        if (typeof event === \"string\") event = [event]\n\n        const result = await this.call(\"rpc.on\", event)\n\n        if (typeof event === \"string\" && result[event] !== \"ok\")\n            throw new Error(\n                \"Failed subscribing to an event '\" + event + \"' with: \" + result[event]\n            )\n\n        return result\n    }\n\n    /**\n   * Unsubscribes from a defined event.\n   * @method\n   * @param {String|Array} event - event name\n   * @return {Undefined}\n   * @throws {Error}\n   */\n    async unsubscribe(event: string | Array<string>)\n    {\n        if (typeof event === \"string\") event = [event]\n\n        const result = await this.call(\"rpc.off\", event)\n\n        if (typeof event === \"string\" && result[event] !== \"ok\")\n            throw new Error(\"Failed unsubscribing from an event with: \" + result)\n\n        return result\n    }\n\n    /**\n   * Closes a WebSocket connection gracefully.\n   * @method\n   * @param {Number} code - socket close code\n   * @param {String} data - optional data to be sent before closing\n   * @return {Undefined}\n   */\n    close(code?: number, data?: string)\n    {\n        this.socket.close(code || 1000, data)\n    }\n\n    /**\n   * Enable / disable automatic reconnection.\n   * @method\n   * @param {Boolean} reconnect - enable / disable reconnection\n   * @return {Undefined}\n   */\n    setAutoReconnect(reconnect: boolean)\n    {\n        this.reconnect = reconnect\n    }\n\n    /**\n   * Set the interval between reconnection attempts.\n   * @method\n   * @param {Number} interval - reconnection interval in milliseconds\n   * @return {Undefined}\n   */\n    setReconnectInterval(interval: number)\n    {\n        this.reconnect_interval = interval\n    }\n\n    /**\n   * Set the maximum number of reconnection attempts.\n   * @method\n   * @param {Number} max_reconnects - maximum reconnection attempts\n   * @return {Undefined}\n   */\n    setMaxReconnects(max_reconnects: number)\n    {\n        this.max_reconnects = max_reconnects\n    }\n\n    /**\n   * Connection/Message handler.\n   * @method\n   * @private\n   * @param {String} address - WebSocket API address\n   * @param {Object} options - ws options object\n   * @return {Undefined}\n   */\n    private _connect(\n        address: string,\n        options: IWSClientAdditionalOptions & NodeWebSocket.ClientOptions\n    )\n    {\n        clearTimeout(this.reconnect_timer_id)\n        this.socket = this.webSocketFactory(address, options)\n\n        this.socket.addEventListener(\"open\", () =>\n        {\n            this.ready = true\n            this.emit(\"open\")\n            this.current_reconnects = 0\n        })\n\n        this.socket.addEventListener(\"message\", ({ data: message }) =>\n        {\n            if (message instanceof ArrayBuffer)\n                message = Buffer.from(message).toString()\n\n            try\n            {\n                message = this.dataPack.decode(message)\n            }\n            catch (error)\n            {\n                return\n            }\n\n            // check if any listeners are attached and forward event\n            if (message.notification && this.listeners(message.notification).length)\n            {\n                if (!Object.keys(message.params).length)\n                    return this.emit(message.notification)\n\n                const args = [message.notification]\n\n                if (message.params.constructor === Object) args.push(message.params)\n                // using for-loop instead of unshift/spread because performance is better\n                else\n                    for (let i = 0; i < message.params.length; i++)\n                        args.push(message.params[i])\n\n                // run as microtask so that pending queue messages are resolved first\n                // eslint-disable-next-line prefer-spread\n                return Promise.resolve().then(() =>\n                {\n                    // eslint-disable-next-line prefer-spread\n                    this.emit.apply(this, args)\n                })\n            }\n\n            if (!this.queue[message.id])\n            {\n                // general JSON RPC 2.0 events\n                if (message.method)\n                {\n                    // run as microtask so that pending queue messages are resolved first\n                    return Promise.resolve().then(() =>\n                    {\n                        this.emit(message.method, message?.params)\n                    })\n                }\n\n                return\n            }\n\n            // reject early since server's response is invalid\n            if (\"error\" in message === \"result\" in message)\n                this.queue[message.id].promise[1](\n                    new Error(\n                        \"Server response malformed. Response must include either \\\"result\\\"\" +\n              \" or \\\"error\\\", but not both.\"\n                    )\n                )\n\n            if (this.queue[message.id].timeout)\n                clearTimeout(this.queue[message.id].timeout)\n\n            if (message.error) this.queue[message.id].promise[1](message.error)\n            else this.queue[message.id].promise[0](message.result)\n\n            delete this.queue[message.id]\n        })\n\n        this.socket.addEventListener(\"error\", (error) => this.emit(\"error\", error))\n\n        this.socket.addEventListener(\"close\", ({ code, reason }) =>\n        {\n            if (this.ready)\n            // Delay close event until internal state is updated\n                setTimeout(() => this.emit(\"close\", code, reason), 0)\n\n            this.ready = false\n            this.socket = undefined\n\n            if (code === 1000) return\n\n            this.current_reconnects++\n\n            if (\n                this.reconnect &&\n        (this.max_reconnects > this.current_reconnects ||\n          this.max_reconnects === 0)\n            )\n                this.reconnect_timer_id = setTimeout(\n                    () => this._connect(address, options),\n                    this.reconnect_interval\n                )\n        })\n    }\n}\n","/**\n * \"Server\" wraps the \"ws\" library providing JSON RPC 2.0 support on top.\n * @module Server\n */\n\n\"use strict\"\n\nimport { EventEmitter } from \"eventemitter3\"\nimport url from \"node:url\"\nimport { v1 as uuidv1 } from \"uuid\"\nimport NodeWebSocket, { WebSocketServer } from \"ws\"\n\nimport { DataPack, DefaultDataPack } from \"./utils.js\"\n\ninterface INamespaceEvent {\n  [x: string]: {\n    sockets: Array<string>;\n    protected: boolean;\n  };\n}\n\ninterface IMethod {\n  public: () => void;\n  protected: () => void;\n}\n\ninterface IEvent {\n  public: () => void;\n  protected: () => void;\n}\n\ninterface IRPCError {\n  code: number;\n  message: string;\n  data?: string;\n}\n\ninterface IRPCMethodParams {\n  [x: string]: any;\n}\n\ninterface IRPCMethod {\n  [x: string]: {\n    fn: (params: IRPCMethodParams, socket_id: string) => any;\n    protected: boolean;\n  };\n}\n\ninterface INamespace {\n  [x: string]: {\n    rpc_methods: IRPCMethod;\n    clients: Map<string, IClientWebSocket>;\n    events: INamespaceEvent;\n  };\n}\n\ninterface IClientWebSocket extends NodeWebSocket {\n  _id: string;\n  _authenticated: boolean;\n}\n\ninterface IRPCResult {\n  [x: string]: string;\n}\n\nexport class Server extends EventEmitter\n{\n    private namespaces: INamespace\n    private dataPack: DataPack<any, string>\n    wss: InstanceType<typeof WebSocketServer>\n\n    /**\n   * Instantiate a Server class.\n   * @constructor\n   * @param {Object} options - ws constructor's parameters with rpc\n   * @param {DataPack} dataPack - data pack contains encoder and decoder\n   * @return {Server} - returns a new Server instance\n   */\n    constructor(\n        options: NodeWebSocket.ServerOptions,\n        dataPack?: DataPack<object, string>\n    )\n    {\n        super()\n\n        /**\n     * Stores all connected sockets with a universally unique identifier\n     * in the appropriate namespace.\n     * Stores all rpc methods to specific namespaces. \"/\" by default.\n     * Stores all events as keys and subscribed users in array as value\n     * @private\n     * @name namespaces\n     * @param {Object} namespaces.rpc_methods\n     * @param {Map} namespaces.clients\n     * @param {Object} namespaces.events\n     */\n        this.namespaces = {}\n\n        if (!dataPack) this.dataPack = new DefaultDataPack()\n        else this.dataPack = dataPack\n\n        this.wss = new WebSocketServer(options)\n\n        this.wss.on(\"listening\", () => this.emit(\"listening\"))\n\n        this.wss.on(\"connection\", (socket: IClientWebSocket, request) =>\n        {\n            const u = url.parse(request.url, true)\n            const ns = u.pathname\n\n            if (u.query.socket_id) socket._id = u.query.socket_id as string\n            else socket._id = uuidv1()\n\n            // unauthenticated by default\n            socket[\"_authenticated\"] = false\n\n            // propagate socket errors\n            socket.on(\"error\", (error) => this.emit(\"socket-error\", socket, error))\n\n            // cleanup after the socket gets disconnected\n            socket.on(\"close\", () =>\n            {\n                this.namespaces[ns].clients.delete(socket._id)\n\n                for (const event of Object.keys(this.namespaces[ns].events))\n                {\n                    const index = this.namespaces[ns].events[event].sockets.indexOf(\n                        socket._id\n                    )\n\n                    if (index >= 0)\n                        this.namespaces[ns].events[event].sockets.splice(index, 1)\n                }\n\n                this.emit(\"disconnection\", socket)\n            })\n\n            if (!this.namespaces[ns]) this._generateNamespace(ns)\n\n            // store socket and method\n            this.namespaces[ns].clients.set(socket._id, socket)\n\n            this.emit(\"connection\", socket, request)\n\n            return this._handleRPC(socket, ns)\n        })\n\n        this.wss.on(\"error\", (error) => this.emit(\"error\", error))\n    }\n\n    /**\n   * Registers an RPC method.\n   * @method\n   * @param {String} name - method name\n   * @param {Function} fn - a callee function\n   * @param {String} ns - namespace identifier\n   * @throws {TypeError}\n   * @return {Object} - returns an IMethod object\n   */\n    register(\n        name: string,\n        fn: (params: IRPCMethodParams, socket_id: string) => void,\n        ns = \"/\"\n    )\n    {\n        if (!this.namespaces[ns]) this._generateNamespace(ns)\n\n        this.namespaces[ns].rpc_methods[name] = {\n            fn: fn,\n            protected: false,\n        }\n\n        return {\n            protected: () => this._makeProtectedMethod(name, ns),\n            public: () => this._makePublicMethod(name, ns),\n        } as IMethod\n    }\n\n    /**\n   * Sets an auth method.\n   * @method\n   * @param {Function} fn - an arbitrary auth method\n   * @param {String} ns - namespace identifier\n   * @throws {TypeError}\n   * @return {Undefined}\n   */\n    setAuth(\n        fn: (params: IRPCMethodParams, socket_id: string) => Promise<boolean>,\n        ns = \"/\"\n    )\n    {\n        this.register(\"rpc.login\", fn, ns)\n    }\n\n    /**\n   * Marks an RPC method as protected.\n   * @method\n   * @param {String} name - method name\n   * @param {String} ns - namespace identifier\n   * @return {Undefined}\n   */\n    private _makeProtectedMethod(name: string, ns = \"/\")\n    {\n        this.namespaces[ns].rpc_methods[name].protected = true\n    }\n\n    /**\n   * Marks an RPC method as public.\n   * @method\n   * @param {String} name - method name\n   * @param {String} ns - namespace identifier\n   * @return {Undefined}\n   */\n    private _makePublicMethod(name: string, ns = \"/\")\n    {\n        this.namespaces[ns].rpc_methods[name].protected = false\n    }\n\n    /**\n   * Marks an event as protected.\n   * @method\n   * @param {String} name - event name\n   * @param {String} ns - namespace identifier\n   * @return {Undefined}\n   */\n    private _makeProtectedEvent(name: string, ns = \"/\")\n    {\n        this.namespaces[ns].events[name].protected = true\n    }\n\n    /**\n   * Marks an event as public.\n   * @method\n   * @param {String} name - event name\n   * @param {String} ns - namespace identifier\n   * @return {Undefined}\n   */\n    private _makePublicEvent(name: string, ns = \"/\")\n    {\n        this.namespaces[ns].events[name].protected = false\n    }\n\n    /**\n   * Removes a namespace and closes all connections\n   * @method\n   * @param {String} ns - namespace identifier\n   * @throws {TypeError}\n   * @return {Undefined}\n   */\n    closeNamespace(ns: string)\n    {\n        const namespace = this.namespaces[ns]\n\n        if (namespace)\n        {\n            delete namespace.rpc_methods\n            delete namespace.events\n\n            for (const socket of namespace.clients.values()) socket.close()\n\n            delete this.namespaces[ns]\n        }\n    }\n\n    /**\n   * Creates a new event that can be emitted to clients.\n   * @method\n   * @param {String} name - event name\n   * @param {String} ns - namespace identifier\n   * @throws {TypeError}\n   * @return {Object} - returns an IEvent object\n   */\n    event(name: string, ns = \"/\"): IEvent\n    {\n        if (!this.namespaces[ns]) this._generateNamespace(ns)\n        else\n        {\n            const index = this.namespaces[ns].events[name]\n\n            if (index !== undefined)\n                throw new Error(`Already registered event ${ns}${name}`)\n        }\n\n        this.namespaces[ns].events[name] = {\n            sockets: [],\n            protected: false,\n        }\n\n        // forward emitted event to subscribers\n        this.on(name, (...params) =>\n        {\n            // flatten an object if no spreading is wanted\n            if (params.length === 1 && params[0] instanceof Object)\n                params = params[0]\n\n            for (const socket_id of this.namespaces[ns].events[name].sockets)\n            {\n                const socket = this.namespaces[ns].clients.get(socket_id)\n\n                if (!socket) continue\n\n                socket.send(\n                    this.dataPack.encode({\n                        notification: name,\n                        params,\n                    })\n                )\n            }\n        })\n\n        return {\n            protected: () => this._makeProtectedEvent(name, ns),\n            public: () => this._makePublicEvent(name, ns),\n        }\n    }\n\n    /**\n   * Returns a requested namespace object\n   * @method\n   * @param {String} name - namespace identifier\n   * @throws {TypeError}\n   * @return {Object} - namespace object\n   */\n    of(name: string)\n    {\n        if (!this.namespaces[name]) this._generateNamespace(name)\n\n        const self = this\n\n        return {\n            // self.register convenience method\n            register(\n                fn_name: string,\n                fn: (params: IRPCMethodParams) => void\n            ): IMethod\n            {\n                if (arguments.length !== 2)\n                    throw new Error(\"must provide exactly two arguments\")\n\n                if (typeof fn_name !== \"string\")\n                    throw new Error(\"name must be a string\")\n\n                if (typeof fn !== \"function\")\n                    throw new Error(\"handler must be a function\")\n\n                return self.register(fn_name, fn, name)\n            },\n\n            // self.event convenience method\n            event(ev_name: string): IEvent\n            {\n                if (arguments.length !== 1)\n                    throw new Error(\"must provide exactly one argument\")\n\n                if (typeof ev_name !== \"string\")\n                    throw new Error(\"name must be a string\")\n\n                return self.event(ev_name, name)\n            },\n\n            // self.eventList convenience method\n            get eventList()\n            {\n                return Object.keys(self.namespaces[name].events)\n            },\n\n            /**\n       * Emits a specified event to this namespace.\n       * @inner\n       * @method\n       * @param {String} event - event name\n       * @param {Array} params - event parameters\n       * @return {Undefined}\n       */\n            emit(event: string, ...params: Array<string>)\n            {\n                const nsEvent = self.namespaces[name].events[event]\n\n                if (nsEvent)\n                    for (const socket_id of nsEvent.sockets)\n                    {\n                        const socket = self.namespaces[name].clients.get(socket_id)\n\n                        if (!socket) continue\n\n                        socket.send(\n                            self.dataPack.encode({\n                                notification: event,\n                                params,\n                            })\n                        )\n                    }\n            },\n\n            /**\n       * Returns a name of this namespace.\n       * @inner\n       * @method\n       * @kind constant\n       * @return {String}\n       */\n            get name()\n            {\n                return name\n            },\n\n            /**\n       * Returns a hash of websocket objects connected to this namespace.\n       * @inner\n       * @method\n       * @return {Object}\n       */\n            connected()\n            {\n                const socket_ids = [...self.namespaces[name].clients.keys()]\n\n                return socket_ids.reduce(\n                    (acc, curr) => ({\n                        ...acc,\n                        [curr]: self.namespaces[name].clients.get(curr),\n                    }),\n                    {}\n                )\n            },\n\n            /**\n       * Returns a list of client unique identifiers connected to this namespace.\n       * @inner\n       * @method\n       * @return {Array}\n       */\n            clients()\n            {\n                return self.namespaces[name]\n            },\n        }\n    }\n\n    /**\n   * Lists all created events in a given namespace. Defaults to \"/\".\n   * @method\n   * @param {String} ns - namespaces identifier\n   * @readonly\n   * @return {Array} - returns a list of created events\n   */\n    eventList(ns = \"/\")\n    {\n        if (!this.namespaces[ns]) return []\n\n        return Object.keys(this.namespaces[ns].events)\n    }\n\n    /**\n   * Creates a JSON-RPC 2.0 compliant error\n   * @method\n   * @param {Number} code - indicates the error type that occurred\n   * @param {String} message - provides a short description of the error\n   * @param {String|Object} data - details containing additional information about the error\n   * @return {Object}\n   */\n    createError(code: number, message: string, data: string | object)\n    {\n        return {\n            code: code,\n            message: message,\n            data: data || null,\n        }\n    }\n\n    /**\n   * Closes the server and terminates all clients.\n   * @method\n   * @return {Promise}\n   */\n    close()\n    {\n        return new Promise<void>((resolve, reject) =>\n        {\n            try\n            {\n                this.wss.close()\n                this.emit(\"close\")\n                resolve()\n            }\n            catch (error)\n            {\n                reject(error)\n            }\n        })\n    }\n\n    /**\n   * Handles all WebSocket JSON RPC 2.0 requests.\n   * @private\n   * @param {Object} socket - ws socket instance\n   * @param {String} ns - namespaces identifier\n   * @return {Undefined}\n   */\n    private _handleRPC(socket: IClientWebSocket, ns = \"/\")\n    {\n        socket.on(\"message\", async (data: any) =>\n        {\n            const msg_options: Parameters<NodeWebSocket[\"send\"]>[1] = {}\n\n            if (data instanceof ArrayBuffer)\n            {\n                msg_options.binary = true\n\n                data = Buffer.from(data).toString()\n            }\n\n            if (socket.readyState !== 1) return // TODO: should have debug logs here\n\n            let parsedData: any\n\n            try\n            {\n                parsedData = this.dataPack.decode(data as string)\n            }\n            catch (error)\n            {\n                return socket.send(\n                    this.dataPack.encode({\n                        jsonrpc: \"2.0\",\n                        error: createError(-32700, error.toString()),\n                        id: null,\n                    }),\n                    msg_options\n                )\n            }\n\n            if (Array.isArray(parsedData))\n            {\n                if (!parsedData.length)\n                    return socket.send(\n                        this.dataPack.encode({\n                            jsonrpc: \"2.0\",\n                            error: createError(-32600, \"Invalid array\"),\n                            id: null,\n                        }),\n                        msg_options\n                    )\n\n                const responses = []\n\n                for (const message of parsedData)\n                {\n                    const response = await this._runMethod(message, socket._id, ns)\n\n                    if (!response) continue\n\n                    responses.push(response)\n                }\n\n                if (!responses.length) return\n\n                return socket.send(this.dataPack.encode(responses), msg_options)\n            }\n\n            const response = await this._runMethod(parsedData, socket._id, ns)\n\n            if (!response) return\n\n            return socket.send(this.dataPack.encode(response), msg_options)\n        })\n    }\n\n    /**\n   * Runs a defined RPC method.\n   * @private\n   * @param {Object} message - a message received\n   * @param {Object} socket_id - user's socket id\n   * @param {String} ns - namespaces identifier\n   * @return {Object|undefined}\n   */\n    private async _runMethod(message: any, socket_id: string, ns = \"/\")\n    {\n        if (typeof message !== \"object\" || message === null)\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32600),\n                id: null,\n            }\n\n        if (message.jsonrpc !== \"2.0\")\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32600, \"Invalid JSON RPC version\"),\n                id: message.id || null,\n            }\n\n        if (!message.method)\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32602, \"Method not specified\"),\n                id: message.id || null,\n            }\n\n        if (typeof message.method !== \"string\")\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32600, \"Invalid method name\"),\n                id: message.id || null,\n            }\n\n        if (message.params && typeof message.params === \"string\")\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32600),\n                id: message.id || null,\n            }\n\n        if (message.method === \"rpc.on\")\n        {\n            if (!message.params)\n                return {\n                    jsonrpc: \"2.0\",\n                    error: createError(-32000),\n                    id: message.id || null,\n                }\n\n            const results: IRPCMethodParams = {}\n\n            const event_names = Object.keys(this.namespaces[ns].events)\n\n            for (const name of message.params)\n            {\n                const index = event_names.indexOf(name)\n                const namespace = this.namespaces[ns]\n\n                if (index === -1)\n                {\n                    results[name] = \"provided event invalid\"\n                    continue\n                }\n\n                // reject request if event is protected and if client is not authenticated\n                if (\n                    namespace.events[event_names[index]].protected === true &&\n          namespace.clients.get(socket_id)[\"_authenticated\"] === false\n                )\n                {\n                    return {\n                        jsonrpc: \"2.0\",\n                        error: createError(-32606),\n                        id: message.id || null,\n                    }\n                }\n\n                const socket_index =\n          namespace.events[event_names[index]].sockets.indexOf(socket_id)\n                if (socket_index >= 0)\n                {\n                    results[name] = \"socket has already been subscribed to event\"\n                    continue\n                }\n                namespace.events[event_names[index]].sockets.push(socket_id)\n\n                results[name] = \"ok\"\n            }\n\n            return {\n                jsonrpc: \"2.0\",\n                result: results,\n                id: message.id || null,\n            }\n        }\n        else if (message.method === \"rpc.off\")\n        {\n            if (!message.params)\n                return {\n                    jsonrpc: \"2.0\",\n                    error: createError(-32000),\n                    id: message.id || null,\n                }\n\n            const results: IRPCResult = {}\n\n            for (const name of message.params)\n            {\n                if (!this.namespaces[ns].events[name])\n                {\n                    results[name] = \"provided event invalid\"\n                    continue\n                }\n\n                const index =\n          this.namespaces[ns].events[name].sockets.indexOf(socket_id)\n\n                if (index === -1)\n                {\n                    results[name] = \"not subscribed\"\n                    continue\n                }\n\n                this.namespaces[ns].events[name].sockets.splice(index, 1)\n                results[name] = \"ok\"\n            }\n\n            return {\n                jsonrpc: \"2.0\",\n                result: results,\n                id: message.id || null,\n            }\n        }\n        else if (message.method === \"rpc.login\")\n        {\n            if (!message.params)\n                return {\n                    jsonrpc: \"2.0\",\n                    error: createError(-32604),\n                    id: message.id || null,\n                }\n        }\n\n        if (!this.namespaces[ns].rpc_methods[message.method])\n        {\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32601),\n                id: message.id || null,\n            }\n        }\n\n        let response = null\n\n        // reject request if method is protected and if client is not authenticated\n        if (\n            this.namespaces[ns].rpc_methods[message.method].protected === true &&\n      this.namespaces[ns].clients.get(socket_id)[\"_authenticated\"] === false\n        )\n        {\n            return {\n                jsonrpc: \"2.0\",\n                error: createError(-32605),\n                id: message.id || null,\n            }\n        }\n\n        try\n        {\n            response = await this.namespaces[ns].rpc_methods[message.method].fn(\n                message.params,\n                socket_id\n            )\n        }\n        catch (error)\n        {\n            if (!message.id) return\n\n            if (error instanceof Error)\n                return {\n                    jsonrpc: \"2.0\",\n                    error: {\n                        code: -32000,\n                        message: error.name,\n                        data: error.message,\n                    },\n                    id: message.id,\n                }\n\n            return {\n                jsonrpc: \"2.0\",\n                error: error,\n                id: message.id,\n            }\n        }\n\n        // client sent a notification, so we won't need a reply\n        if (!message.id) return\n\n        // if login middleware returned true, set connection as authenticated\n        if (message.method === \"rpc.login\" && response === true)\n        {\n            const s = this.namespaces[ns].clients.get(socket_id)\n            s[\"_authenticated\"] = true\n            this.namespaces[ns].clients.set(socket_id, s)\n        }\n\n        return {\n            jsonrpc: \"2.0\",\n            result: response,\n            id: message.id,\n        }\n    }\n\n    /**\n   * Generate a new namespace store.\n   * Also preregister some special namespace methods.\n   * @private\n   * @param {String} name - namespaces identifier\n   * @return {undefined}\n   */\n    private _generateNamespace(name: string)\n    {\n        this.namespaces[name] = {\n            rpc_methods: {\n                __listMethods: {\n                    fn: () => Object.keys(this.namespaces[name].rpc_methods),\n                    protected: false,\n                },\n            },\n            clients: new Map(),\n            events: {},\n        }\n    }\n}\n\nconst RPC_ERRORS = new Map([\n    [-32000, \"Event not provided\"],\n    [-32600, \"Invalid Request\"],\n    [-32601, \"Method not found\"],\n    [-32602, \"Invalid params\"],\n    [-32603, \"Internal error\"],\n    [-32604, \"Params not found\"],\n    [-32605, \"Method forbidden\"],\n    [-32606, \"Event forbidden\"],\n    [-32700, \"Parse error\"],\n])\n\n/**\n * Creates a JSON-RPC 2.0-compliant error.\n * @param {Number} code - error code\n * @param {String} details - error details\n * @return {Object}\n */\nexport function createError(code: number, details?: string)\n{\n    const error: IRPCError = {\n        code: code,\n        message: RPC_ERRORS.get(code) || \"Internal Server Error\",\n    }\n\n    if (details) error[\"data\"] = details\n\n    return error\n}\n","\"use strict\"\n\nimport { WebSocket } from \"./lib/client/websocket.js\"\nimport { CommonClient } from \"./lib/client.js\"\nimport {\n    NodeWebSocketTypeOptions,\n    IWSClientAdditionalOptions,\n    ICommonWebSocketFactory,\n} from \"./lib/client/client.types.js\"\n\nexport class Client extends CommonClient\n{\n    constructor(\n        address = \"ws://localhost:8080\",\n        {\n            autoconnect = true,\n            reconnect = true,\n            reconnect_interval = 1000,\n            max_reconnects = 5,\n            ...rest_options\n        }: IWSClientAdditionalOptions & NodeWebSocketTypeOptions = {},\n        generate_request_id?: (\n      method: string,\n      params: object | Array<any>\n    ) => number | string\n    )\n    {\n        super(\n      WebSocket as ICommonWebSocketFactory,\n      address,\n      {\n          autoconnect,\n          reconnect,\n          reconnect_interval,\n          max_reconnects,\n          ...rest_options,\n      },\n      generate_request_id\n        )\n    }\n}\n\nexport * from \"./lib/client.js\"\nexport * from \"./lib/client/websocket.js\"\nexport * from \"./lib/client/client.types.js\"\nexport * from \"./lib/server.js\"\nexport * from \"./lib/utils.js\"\n","/**\n * Short Weierstrass curve methods. The formula is: y² = x³ + ax + b.\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n *   `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n *   `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n *   it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n *     1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n *     which is hard to debug.\n *     2. Params can be generic and we can't enforce them to be constant value:\n *     if somebody creates curve from non-constant params,\n *     it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac as nobleHmac } from '@noble/hashes/hmac.js';\nimport { ahash } from '@noble/hashes/utils';\nimport {\n  _validateObject,\n  _abool2 as abool,\n  _abytes2 as abytes,\n  aInRange,\n  bitLen,\n  bitMask,\n  bytesToHex,\n  bytesToNumberBE,\n  concatBytes,\n  createHmacDrbg,\n  ensureBytes,\n  hexToBytes,\n  inRange,\n  isBytes,\n  memoized,\n  numberToHexUnpadded,\n  randomBytes as randomBytesWeb,\n  type CHash,\n  type Hex,\n  type PrivKey,\n} from '../utils.ts';\nimport {\n  _createCurveFields,\n  mulEndoUnsafe,\n  negateCt,\n  normalizeZ,\n  pippenger,\n  wNAF,\n  type AffinePoint,\n  type BasicCurve,\n  type CurveLengths,\n  type CurvePoint,\n  type CurvePointCons,\n} from './curve.ts';\nimport {\n  Field,\n  FpInvertBatch,\n  getMinHashLength,\n  mapHashToField,\n  nLength,\n  validateField,\n  type IField,\n  type NLength,\n} from './modular.ts';\n\nexport type { AffinePoint };\nexport type HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\n\ntype EndoBasis = [[bigint, bigint], [bigint, bigint]];\n/**\n * When Weierstrass curve has `a=0`, it becomes Koblitz curve.\n * Koblitz curves allow using **efficiently-computable GLV endomorphism ψ**.\n * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n *\n * Endomorphism consists of beta, lambda and splitScalar:\n *\n * 1. GLV endomorphism ψ transforms a point: `P = (x, y) ↦ ψ(P) = (β·x mod p, y)`\n * 2. GLV scalar decomposition transforms a scalar: `k ≡ k₁ + k₂·λ (mod n)`\n * 3. Then these are combined: `k·P = k₁·P + k₂·ψ(P)`\n * 4. Two 128-bit point-by-scalar multiplications + one point addition is faster than\n *    one 256-bit multiplication.\n *\n * where\n * * beta: β ∈ Fₚ with β³ = 1, β ≠ 1\n * * lambda: λ ∈ Fₙ with λ³ = 1, λ ≠ 1\n * * splitScalar decomposes k ↦ k₁, k₂, by using reduced basis vectors.\n *   Gauss lattice reduction calculates them from initial basis vectors `(n, 0), (-λ, 0)`\n *\n * Check out `test/misc/endomorphism.js` and\n * [gist](https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066).\n */\nexport type EndomorphismOpts = {\n  beta: bigint;\n  basises?: EndoBasis;\n  splitScalar?: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\n\n// We construct basis in such way that den is always positive and equals n, but num sign depends on basis (not on secret value)\nconst divNearest = (num: bigint, den: bigint) => (num + (num >= 0 ? den : -den) / _2n) / den;\n\nexport type ScalarEndoParts = { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n\n/**\n * Splits scalar for GLV endomorphism.\n */\nexport function _splitEndoScalar(k: bigint, basis: EndoBasis, n: bigint): ScalarEndoParts {\n  // Split scalar into two such that part is ~half bits: `abs(part) < sqrt(N)`\n  // Since part can be negative, we need to do this on point.\n  // TODO: verifyScalar function which consumes lambda\n  const [[a1, b1], [a2, b2]] = basis;\n  const c1 = divNearest(b2 * k, n);\n  const c2 = divNearest(-b1 * k, n);\n  // |k1|/|k2| is < sqrt(N), but can be negative.\n  // If we do `k1 mod N`, we'll get big scalar (`> sqrt(N)`): so, we do cheaper negation instead.\n  let k1 = k - c1 * a1 - c2 * a2;\n  let k2 = -c1 * b1 - c2 * b2;\n  const k1neg = k1 < _0n;\n  const k2neg = k2 < _0n;\n  if (k1neg) k1 = -k1;\n  if (k2neg) k2 = -k2;\n  // Double check that resulting scalar less than half bits of N: otherwise wNAF will fail.\n  // This should only happen on wrong basises. Also, math inside is too complex and I don't trust it.\n  const MAX_NUM = bitMask(Math.ceil(bitLen(n) / 2)) + _1n; // Half bits of N\n  if (k1 < _0n || k1 >= MAX_NUM || k2 < _0n || k2 >= MAX_NUM) {\n    throw new Error('splitScalar (endomorphism): failed, k=' + k);\n  }\n  return { k1neg, k1, k2neg, k2 };\n}\n\nexport type ECDSASigFormat = 'compact' | 'recovered' | 'der';\nexport type ECDSARecoverOpts = {\n  prehash?: boolean;\n};\nexport type ECDSAVerifyOpts = {\n  prehash?: boolean;\n  lowS?: boolean;\n  format?: ECDSASigFormat;\n};\nexport type ECDSASignOpts = {\n  prehash?: boolean;\n  lowS?: boolean;\n  format?: ECDSASigFormat;\n  extraEntropy?: Uint8Array | boolean;\n};\n\nfunction validateSigFormat(format: string): ECDSASigFormat {\n  if (!['compact', 'recovered', 'der'].includes(format))\n    throw new Error('Signature format must be \"compact\", \"recovered\", or \"der\"');\n  return format as ECDSASigFormat;\n}\n\nfunction validateSigOpts<T extends ECDSASignOpts, D extends Required<ECDSASignOpts>>(\n  opts: T,\n  def: D\n): Required<ECDSASignOpts> {\n  const optsn: ECDSASignOpts = {};\n  for (let optName of Object.keys(def)) {\n    // @ts-ignore\n    optsn[optName] = opts[optName] === undefined ? def[optName] : opts[optName];\n  }\n  abool(optsn.lowS!, 'lowS');\n  abool(optsn.prehash!, 'prehash');\n  if (optsn.format !== undefined) validateSigFormat(optsn.format);\n  return optsn as Required<ECDSASignOpts>;\n}\n\n/** Instance methods for 3D XYZ projective points. */\nexport interface WeierstrassPoint<T> extends CurvePoint<T, WeierstrassPoint<T>> {\n  /** projective X coordinate. Different from affine x. */\n  readonly X: T;\n  /** projective Y coordinate. Different from affine y. */\n  readonly Y: T;\n  /** projective z coordinate */\n  readonly Z: T;\n  /** affine x coordinate. Different from projective X. */\n  get x(): T;\n  /** affine y coordinate. Different from projective Y. */\n  get y(): T;\n  /** Encodes point using IEEE P1363 (DER) encoding. First byte is 2/3/4. Default = isCompressed. */\n  toBytes(isCompressed?: boolean): Uint8Array;\n  toHex(isCompressed?: boolean): string;\n\n  /** @deprecated use `.X` */\n  readonly px: T;\n  /** @deprecated use `.Y` */\n  readonly py: T;\n  /** @deprecated use `.Z` */\n  readonly pz: T;\n  /** @deprecated use `toBytes` */\n  toRawBytes(isCompressed?: boolean): Uint8Array;\n  /** @deprecated use `multiplyUnsafe` */\n  multiplyAndAddUnsafe(\n    Q: WeierstrassPoint<T>,\n    a: bigint,\n    b: bigint\n  ): WeierstrassPoint<T> | undefined;\n  /** @deprecated use `p.y % 2n === 0n` */\n  hasEvenY(): boolean;\n  /** @deprecated use `p.precompute(windowSize)` */\n  _setWindowSize(windowSize: number): void;\n}\n\n/** Static methods for 3D XYZ projective points. */\nexport interface WeierstrassPointCons<T> extends CurvePointCons<WeierstrassPoint<T>> {\n  /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n  new (X: T, Y: T, Z: T): WeierstrassPoint<T>;\n  CURVE(): WeierstrassOpts<T>;\n  /** @deprecated use `Point.BASE.multiply(Point.Fn.fromBytes(privateKey))` */\n  fromPrivateKey(privateKey: PrivKey): WeierstrassPoint<T>;\n  /** @deprecated use `import { normalizeZ } from '@noble/curves/abstract/curve.js';` */\n  normalizeZ(points: WeierstrassPoint<T>[]): WeierstrassPoint<T>[];\n  /** @deprecated use `import { pippenger } from '@noble/curves/abstract/curve.js';` */\n  msm(points: WeierstrassPoint<T>[], scalars: bigint[]): WeierstrassPoint<T>;\n}\n\n/**\n * Weierstrass curve options.\n *\n * * p: prime characteristic (order) of finite field, in which arithmetics is done\n * * n: order of prime subgroup a.k.a total amount of valid curve points\n * * h: cofactor, usually 1. h*n is group order; n is subgroup order\n * * a: formula param, must be in field of p\n * * b: formula param, must be in field of p\n * * Gx: x coordinate of generator point a.k.a. base point\n * * Gy: y coordinate of generator point\n */\nexport type WeierstrassOpts<T> = Readonly<{\n  p: bigint;\n  n: bigint;\n  h: bigint;\n  a: T;\n  b: T;\n  Gx: T;\n  Gy: T;\n}>;\n\n// When a cofactor != 1, there can be an effective methods to:\n// 1. Determine whether a point is torsion-free\n// 2. Clear torsion component\n// wrapPrivateKey: bls12-381 requires mod(n) instead of rejecting keys >= n\nexport type WeierstrassExtraOpts<T> = Partial<{\n  Fp: IField<T>;\n  Fn: IField<bigint>;\n  allowInfinityPoint: boolean;\n  endo: EndomorphismOpts;\n  isTorsionFree: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => boolean;\n  clearCofactor: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => WeierstrassPoint<T>;\n  fromBytes: (bytes: Uint8Array) => AffinePoint<T>;\n  toBytes: (\n    c: WeierstrassPointCons<T>,\n    point: WeierstrassPoint<T>,\n    isCompressed: boolean\n  ) => Uint8Array;\n}>;\n\n/**\n * Options for ECDSA signatures over a Weierstrass curve.\n *\n * * lowS: (default: true) whether produced / verified signatures occupy low half of ecdsaOpts.p. Prevents malleability.\n * * hmac: (default: noble-hashes hmac) function, would be used to init hmac-drbg for k generation.\n * * randomBytes: (default: webcrypto os-level CSPRNG) custom method for fetching secure randomness.\n * * bits2int, bits2int_modN: used in sigs, sometimes overridden by curves\n */\nexport type ECDSAOpts = Partial<{\n  lowS: boolean;\n  hmac: HmacFnSync;\n  randomBytes: (bytesLength?: number) => Uint8Array;\n  bits2int: (bytes: Uint8Array) => bigint;\n  bits2int_modN: (bytes: Uint8Array) => bigint;\n}>;\n\n/**\n * Elliptic Curve Diffie-Hellman interface.\n * Provides keygen, secret-to-public conversion, calculating shared secrets.\n */\nexport interface ECDH {\n  keygen: (seed?: Uint8Array) => { secretKey: Uint8Array; publicKey: Uint8Array };\n  getPublicKey: (secretKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n  getSharedSecret: (secretKeyA: PrivKey, publicKeyB: Hex, isCompressed?: boolean) => Uint8Array;\n  Point: WeierstrassPointCons<bigint>;\n  utils: {\n    isValidSecretKey: (secretKey: PrivKey) => boolean;\n    isValidPublicKey: (publicKey: Uint8Array, isCompressed?: boolean) => boolean;\n    randomSecretKey: (seed?: Uint8Array) => Uint8Array;\n    /** @deprecated use `randomSecretKey` */\n    randomPrivateKey: (seed?: Uint8Array) => Uint8Array;\n    /** @deprecated use `isValidSecretKey` */\n    isValidPrivateKey: (secretKey: PrivKey) => boolean;\n    /** @deprecated use `Point.Fn.fromBytes()` */\n    normPrivateKeyToScalar: (key: PrivKey) => bigint;\n    /** @deprecated use `point.precompute()` */\n    precompute: (windowSize?: number, point?: WeierstrassPoint<bigint>) => WeierstrassPoint<bigint>;\n  };\n  lengths: CurveLengths;\n}\n\n/**\n * ECDSA interface.\n * Only supported for prime fields, not Fp2 (extension fields).\n */\nexport interface ECDSA extends ECDH {\n  sign: (message: Hex, secretKey: PrivKey, opts?: ECDSASignOpts) => ECDSASigRecovered;\n  verify: (\n    signature: Uint8Array,\n    message: Uint8Array,\n    publicKey: Uint8Array,\n    opts?: ECDSAVerifyOpts\n  ) => boolean;\n  recoverPublicKey(signature: Uint8Array, message: Uint8Array, opts?: ECDSARecoverOpts): Uint8Array;\n  Signature: ECDSASignatureCons;\n}\nexport class DERErr extends Error {\n  constructor(m = '') {\n    super(m);\n  }\n}\nexport type IDER = {\n  // asn.1 DER encoding utils\n  Err: typeof DERErr;\n  // Basic building block is TLV (Tag-Length-Value)\n  _tlv: {\n    encode: (tag: number, data: string) => string;\n    // v - value, l - left bytes (unparsed)\n    decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array };\n  };\n  // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n  // since we always use positive integers here. It must always be empty:\n  // - add zero byte if exists\n  // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n  _int: {\n    encode(num: bigint): string;\n    decode(data: Uint8Array): bigint;\n  };\n  toSig(hex: string | Uint8Array): { r: bigint; s: bigint };\n  hexFromSig(sig: { r: bigint; s: bigint }): string;\n};\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n *     [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nexport const DER: IDER = {\n  // asn.1 DER encoding utils\n  Err: DERErr,\n  // Basic building block is TLV (Tag-Length-Value)\n  _tlv: {\n    encode: (tag: number, data: string): string => {\n      const { Err: E } = DER;\n      if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n      if (data.length & 1) throw new E('tlv.encode: unpadded data');\n      const dataLen = data.length / 2;\n      const len = numberToHexUnpadded(dataLen);\n      if ((len.length / 2) & 0b1000_0000) throw new E('tlv.encode: long form length too big');\n      // length of length with long form flag\n      const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 0b1000_0000) : '';\n      const t = numberToHexUnpadded(tag);\n      return t + lenLen + len + data;\n    },\n    // v - value, l - left bytes (unparsed)\n    decode(tag: number, data: Uint8Array): { v: Uint8Array; l: Uint8Array } {\n      const { Err: E } = DER;\n      let pos = 0;\n      if (tag < 0 || tag > 256) throw new E('tlv.encode: wrong tag');\n      if (data.length < 2 || data[pos++] !== tag) throw new E('tlv.decode: wrong tlv');\n      const first = data[pos++];\n      const isLong = !!(first & 0b1000_0000); // First bit of first length byte is flag for short/long form\n      let length = 0;\n      if (!isLong) length = first;\n      else {\n        // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n        const lenLen = first & 0b0111_1111;\n        if (!lenLen) throw new E('tlv.decode(long): indefinite length not supported');\n        if (lenLen > 4) throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n        const lengthBytes = data.subarray(pos, pos + lenLen);\n        if (lengthBytes.length !== lenLen) throw new E('tlv.decode: length bytes not complete');\n        if (lengthBytes[0] === 0) throw new E('tlv.decode(long): zero leftmost byte');\n        for (const b of lengthBytes) length = (length << 8) | b;\n        pos += lenLen;\n        if (length < 128) throw new E('tlv.decode(long): not minimal encoding');\n      }\n      const v = data.subarray(pos, pos + length);\n      if (v.length !== length) throw new E('tlv.decode: wrong value length');\n      return { v, l: data.subarray(pos + length) };\n    },\n  },\n  // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n  // since we always use positive integers here. It must always be empty:\n  // - add zero byte if exists\n  // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n  _int: {\n    encode(num: bigint): string {\n      const { Err: E } = DER;\n      if (num < _0n) throw new E('integer: negative integers are not allowed');\n      let hex = numberToHexUnpadded(num);\n      // Pad with zero byte if negative flag is present\n      if (Number.parseInt(hex[0], 16) & 0b1000) hex = '00' + hex;\n      if (hex.length & 1) throw new E('unexpected DER parsing assertion: unpadded hex');\n      return hex;\n    },\n    decode(data: Uint8Array): bigint {\n      const { Err: E } = DER;\n      if (data[0] & 0b1000_0000) throw new E('invalid signature integer: negative');\n      if (data[0] === 0x00 && !(data[1] & 0b1000_0000))\n        throw new E('invalid signature integer: unnecessary leading zero');\n      return bytesToNumberBE(data);\n    },\n  },\n  toSig(hex: string | Uint8Array): { r: bigint; s: bigint } {\n    // parse DER signature\n    const { Err: E, _int: int, _tlv: tlv } = DER;\n    const data = ensureBytes('signature', hex);\n    const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n    if (seqLeftBytes.length) throw new E('invalid signature: left bytes after parsing');\n    const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n    const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n    if (sLeftBytes.length) throw new E('invalid signature: left bytes after parsing');\n    return { r: int.decode(rBytes), s: int.decode(sBytes) };\n  },\n  hexFromSig(sig: { r: bigint; s: bigint }): string {\n    const { _tlv: tlv, _int: int } = DER;\n    const rs = tlv.encode(0x02, int.encode(sig.r));\n    const ss = tlv.encode(0x02, int.encode(sig.s));\n    const seq = rs + ss;\n    return tlv.encode(0x30, seq);\n  },\n};\n\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n\nexport function _normFnElement(Fn: IField<bigint>, key: PrivKey): bigint {\n  const { BYTES: expected } = Fn;\n  let num: bigint;\n  if (typeof key === 'bigint') {\n    num = key;\n  } else {\n    let bytes = ensureBytes('private key', key);\n    try {\n      num = Fn.fromBytes(bytes);\n    } catch (error) {\n      throw new Error(`invalid private key: expected ui8a of size ${expected}, got ${typeof key}`);\n    }\n  }\n  if (!Fn.isValidNot0(num)) throw new Error('invalid private key: out of range [1..N-1]');\n  return num;\n}\n\n/**\n * Creates weierstrass Point constructor, based on specified curve options.\n *\n * @example\n```js\nconst opts = {\n  p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),\n  n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n  h: BigInt(1),\n  a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),\n  b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),\n  Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n  Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n};\nconst p256_Point = weierstrass(opts);\n```\n */\nexport function weierstrassN<T>(\n  params: WeierstrassOpts<T>,\n  extraOpts: WeierstrassExtraOpts<T> = {}\n): WeierstrassPointCons<T> {\n  const validated = _createCurveFields('weierstrass', params, extraOpts);\n  const { Fp, Fn } = validated;\n  let CURVE = validated.CURVE as WeierstrassOpts<T>;\n  const { h: cofactor, n: CURVE_ORDER } = CURVE;\n  _validateObject(\n    extraOpts,\n    {},\n    {\n      allowInfinityPoint: 'boolean',\n      clearCofactor: 'function',\n      isTorsionFree: 'function',\n      fromBytes: 'function',\n      toBytes: 'function',\n      endo: 'object',\n      wrapPrivateKey: 'boolean',\n    }\n  );\n\n  const { endo } = extraOpts;\n  if (endo) {\n    // validateObject(endo, { beta: 'bigint', splitScalar: 'function' });\n    if (!Fp.is0(CURVE.a) || typeof endo.beta !== 'bigint' || !Array.isArray(endo.basises)) {\n      throw new Error('invalid endo: expected \"beta\": bigint and \"basises\": array');\n    }\n  }\n\n  const lengths = getWLengths(Fp, Fn);\n\n  function assertCompressionIsSupported() {\n    if (!Fp.isOdd) throw new Error('compression is not supported: Field does not have .isOdd()');\n  }\n\n  // Implements IEEE P1363 point encoding\n  function pointToBytes(\n    _c: WeierstrassPointCons<T>,\n    point: WeierstrassPoint<T>,\n    isCompressed: boolean\n  ): Uint8Array {\n    const { x, y } = point.toAffine();\n    const bx = Fp.toBytes(x);\n    abool(isCompressed, 'isCompressed');\n    if (isCompressed) {\n      assertCompressionIsSupported();\n      const hasEvenY = !Fp.isOdd!(y);\n      return concatBytes(pprefix(hasEvenY), bx);\n    } else {\n      return concatBytes(Uint8Array.of(0x04), bx, Fp.toBytes(y));\n    }\n  }\n  function pointFromBytes(bytes: Uint8Array) {\n    abytes(bytes, undefined, 'Point');\n    const { publicKey: comp, publicKeyUncompressed: uncomp } = lengths; // e.g. for 32-byte: 33, 65\n    const length = bytes.length;\n    const head = bytes[0];\n    const tail = bytes.subarray(1);\n    // No actual validation is done here: use .assertValidity()\n    if (length === comp && (head === 0x02 || head === 0x03)) {\n      const x = Fp.fromBytes(tail);\n      if (!Fp.isValid(x)) throw new Error('bad point: is not on curve, wrong x');\n      const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n      let y: T;\n      try {\n        y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n      } catch (sqrtError) {\n        const err = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n        throw new Error('bad point: is not on curve, sqrt error' + err);\n      }\n      assertCompressionIsSupported();\n      const isYOdd = Fp.isOdd!(y); // (y & _1n) === _1n;\n      const isHeadOdd = (head & 1) === 1; // ECDSA-specific\n      if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n      return { x, y };\n    } else if (length === uncomp && head === 0x04) {\n      // TODO: more checks\n      const L = Fp.BYTES;\n      const x = Fp.fromBytes(tail.subarray(0, L));\n      const y = Fp.fromBytes(tail.subarray(L, L * 2));\n      if (!isValidXY(x, y)) throw new Error('bad point: is not on curve');\n      return { x, y };\n    } else {\n      throw new Error(\n        `bad point: got length ${length}, expected compressed=${comp} or uncompressed=${uncomp}`\n      );\n    }\n  }\n\n  const encodePoint = extraOpts.toBytes || pointToBytes;\n  const decodePoint = extraOpts.fromBytes || pointFromBytes;\n  function weierstrassEquation(x: T): T {\n    const x2 = Fp.sqr(x); // x * x\n    const x3 = Fp.mul(x2, x); // x² * x\n    return Fp.add(Fp.add(x3, Fp.mul(x, CURVE.a)), CURVE.b); // x³ + a * x + b\n  }\n\n  // TODO: move top-level\n  /** Checks whether equation holds for given x, y: y² == x³ + ax + b */\n  function isValidXY(x: T, y: T): boolean {\n    const left = Fp.sqr(y); // y²\n    const right = weierstrassEquation(x); // x³ + ax + b\n    return Fp.eql(left, right);\n  }\n\n  // Validate whether the passed curve params are valid.\n  // Test 1: equation y² = x³ + ax + b should work for generator point.\n  if (!isValidXY(CURVE.Gx, CURVE.Gy)) throw new Error('bad curve params: generator point');\n\n  // Test 2: discriminant Δ part should be non-zero: 4a³ + 27b² != 0.\n  // Guarantees curve is genus-1, smooth (non-singular).\n  const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n), _4n);\n  const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n  if (Fp.is0(Fp.add(_4a3, _27b2))) throw new Error('bad curve params: a or b');\n\n  /** Asserts coordinate is valid: 0 <= n < Fp.ORDER. */\n  function acoord(title: string, n: T, banZero = false) {\n    if (!Fp.isValid(n) || (banZero && Fp.is0(n))) throw new Error(`bad point coordinate ${title}`);\n    return n;\n  }\n\n  function aprjpoint(other: unknown) {\n    if (!(other instanceof Point)) throw new Error('ProjectivePoint expected');\n  }\n\n  function splitEndoScalarN(k: bigint) {\n    if (!endo || !endo.basises) throw new Error('no endo');\n    return _splitEndoScalar(k, endo.basises, Fn.ORDER);\n  }\n\n  // Memoized toAffine / validity check. They are heavy. Points are immutable.\n\n  // Converts Projective point to affine (x, y) coordinates.\n  // Can accept precomputed Z^-1 - for example, from invertBatch.\n  // (X, Y, Z) ∋ (x=X/Z, y=Y/Z)\n  const toAffineMemo = memoized((p: Point, iz?: T): AffinePoint<T> => {\n    const { X, Y, Z } = p;\n    // Fast-path for normalized points\n    if (Fp.eql(Z, Fp.ONE)) return { x: X, y: Y };\n    const is0 = p.is0();\n    // If invZ was 0, we return zero point. However we still want to execute\n    // all operations, so we replace invZ with a random number, 1.\n    if (iz == null) iz = is0 ? Fp.ONE : Fp.inv(Z);\n    const x = Fp.mul(X, iz);\n    const y = Fp.mul(Y, iz);\n    const zz = Fp.mul(Z, iz);\n    if (is0) return { x: Fp.ZERO, y: Fp.ZERO };\n    if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n    return { x, y };\n  });\n  // NOTE: on exception this will crash 'cached' and no value will be set.\n  // Otherwise true will be return\n  const assertValidMemo = memoized((p: Point) => {\n    if (p.is0()) {\n      // (0, 1, 0) aka ZERO is invalid in most contexts.\n      // In BLS, ZERO can be serialized, so we allow it.\n      // (0, 0, 0) is invalid representation of ZERO.\n      if (extraOpts.allowInfinityPoint && !Fp.is0(p.Y)) return;\n      throw new Error('bad point: ZERO');\n    }\n    // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n    const { x, y } = p.toAffine();\n    if (!Fp.isValid(x) || !Fp.isValid(y)) throw new Error('bad point: x or y not field elements');\n    if (!isValidXY(x, y)) throw new Error('bad point: equation left != right');\n    if (!p.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n    return true;\n  });\n\n  function finishEndo(\n    endoBeta: EndomorphismOpts['beta'],\n    k1p: Point,\n    k2p: Point,\n    k1neg: boolean,\n    k2neg: boolean\n  ) {\n    k2p = new Point(Fp.mul(k2p.X, endoBeta), k2p.Y, k2p.Z);\n    k1p = negateCt(k1neg, k1p);\n    k2p = negateCt(k2neg, k2p);\n    return k1p.add(k2p);\n  }\n\n  /**\n   * Projective Point works in 3d / projective (homogeneous) coordinates:(X, Y, Z) ∋ (x=X/Z, y=Y/Z).\n   * Default Point works in 2d / affine coordinates: (x, y).\n   * We're doing calculations in projective, because its operations don't require costly inversion.\n   */\n  class Point implements WeierstrassPoint<T> {\n    // base / generator point\n    static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n    // zero / infinity / identity point\n    static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n    // math field\n    static readonly Fp = Fp;\n    // scalar field\n    static readonly Fn = Fn;\n\n    readonly X: T;\n    readonly Y: T;\n    readonly Z: T;\n\n    /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n    constructor(X: T, Y: T, Z: T) {\n      this.X = acoord('x', X);\n      this.Y = acoord('y', Y, true);\n      this.Z = acoord('z', Z);\n      Object.freeze(this);\n    }\n\n    static CURVE(): WeierstrassOpts<T> {\n      return CURVE;\n    }\n\n    /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n    static fromAffine(p: AffinePoint<T>): Point {\n      const { x, y } = p || {};\n      if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n      if (p instanceof Point) throw new Error('projective point not allowed');\n      // (0, 0) would've produced (0, 0, 1) - instead, we need (0, 1, 0)\n      if (Fp.is0(x) && Fp.is0(y)) return Point.ZERO;\n      return new Point(x, y, Fp.ONE);\n    }\n\n    static fromBytes(bytes: Uint8Array): Point {\n      const P = Point.fromAffine(decodePoint(abytes(bytes, undefined, 'point')));\n      P.assertValidity();\n      return P;\n    }\n    static fromHex(hex: Hex): Point {\n      return Point.fromBytes(ensureBytes('pointHex', hex));\n    }\n\n    get x(): T {\n      return this.toAffine().x;\n    }\n    get y(): T {\n      return this.toAffine().y;\n    }\n\n    /**\n     *\n     * @param windowSize\n     * @param isLazy true will defer table computation until the first multiplication\n     * @returns\n     */\n    precompute(windowSize: number = 8, isLazy = true): Point {\n      wnaf.createCache(this, windowSize);\n      if (!isLazy) this.multiply(_3n); // random number\n      return this;\n    }\n\n    // TODO: return `this`\n    /** A point on curve is valid if it conforms to equation. */\n    assertValidity(): void {\n      assertValidMemo(this);\n    }\n\n    hasEvenY(): boolean {\n      const { y } = this.toAffine();\n      if (!Fp.isOdd) throw new Error(\"Field doesn't support isOdd\");\n      return !Fp.isOdd(y);\n    }\n\n    /** Compare one point to another. */\n    equals(other: Point): boolean {\n      aprjpoint(other);\n      const { X: X1, Y: Y1, Z: Z1 } = this;\n      const { X: X2, Y: Y2, Z: Z2 } = other;\n      const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n      const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n      return U1 && U2;\n    }\n\n    /** Flips point to one corresponding to (x, -y) in Affine coordinates. */\n    negate(): Point {\n      return new Point(this.X, Fp.neg(this.Y), this.Z);\n    }\n\n    // Renes-Costello-Batina exception-free doubling formula.\n    // There is 30% faster Jacobian formula, but it is not complete.\n    // https://eprint.iacr.org/2015/1060, algorithm 3\n    // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n    double() {\n      const { a, b } = CURVE;\n      const b3 = Fp.mul(b, _3n);\n      const { X: X1, Y: Y1, Z: Z1 } = this;\n      let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n      let t0 = Fp.mul(X1, X1); // step 1\n      let t1 = Fp.mul(Y1, Y1);\n      let t2 = Fp.mul(Z1, Z1);\n      let t3 = Fp.mul(X1, Y1);\n      t3 = Fp.add(t3, t3); // step 5\n      Z3 = Fp.mul(X1, Z1);\n      Z3 = Fp.add(Z3, Z3);\n      X3 = Fp.mul(a, Z3);\n      Y3 = Fp.mul(b3, t2);\n      Y3 = Fp.add(X3, Y3); // step 10\n      X3 = Fp.sub(t1, Y3);\n      Y3 = Fp.add(t1, Y3);\n      Y3 = Fp.mul(X3, Y3);\n      X3 = Fp.mul(t3, X3);\n      Z3 = Fp.mul(b3, Z3); // step 15\n      t2 = Fp.mul(a, t2);\n      t3 = Fp.sub(t0, t2);\n      t3 = Fp.mul(a, t3);\n      t3 = Fp.add(t3, Z3);\n      Z3 = Fp.add(t0, t0); // step 20\n      t0 = Fp.add(Z3, t0);\n      t0 = Fp.add(t0, t2);\n      t0 = Fp.mul(t0, t3);\n      Y3 = Fp.add(Y3, t0);\n      t2 = Fp.mul(Y1, Z1); // step 25\n      t2 = Fp.add(t2, t2);\n      t0 = Fp.mul(t2, t3);\n      X3 = Fp.sub(X3, t0);\n      Z3 = Fp.mul(t2, t1);\n      Z3 = Fp.add(Z3, Z3); // step 30\n      Z3 = Fp.add(Z3, Z3);\n      return new Point(X3, Y3, Z3);\n    }\n\n    // Renes-Costello-Batina exception-free addition formula.\n    // There is 30% faster Jacobian formula, but it is not complete.\n    // https://eprint.iacr.org/2015/1060, algorithm 1\n    // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n    add(other: Point): Point {\n      aprjpoint(other);\n      const { X: X1, Y: Y1, Z: Z1 } = this;\n      const { X: X2, Y: Y2, Z: Z2 } = other;\n      let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n      const a = CURVE.a;\n      const b3 = Fp.mul(CURVE.b, _3n);\n      let t0 = Fp.mul(X1, X2); // step 1\n      let t1 = Fp.mul(Y1, Y2);\n      let t2 = Fp.mul(Z1, Z2);\n      let t3 = Fp.add(X1, Y1);\n      let t4 = Fp.add(X2, Y2); // step 5\n      t3 = Fp.mul(t3, t4);\n      t4 = Fp.add(t0, t1);\n      t3 = Fp.sub(t3, t4);\n      t4 = Fp.add(X1, Z1);\n      let t5 = Fp.add(X2, Z2); // step 10\n      t4 = Fp.mul(t4, t5);\n      t5 = Fp.add(t0, t2);\n      t4 = Fp.sub(t4, t5);\n      t5 = Fp.add(Y1, Z1);\n      X3 = Fp.add(Y2, Z2); // step 15\n      t5 = Fp.mul(t5, X3);\n      X3 = Fp.add(t1, t2);\n      t5 = Fp.sub(t5, X3);\n      Z3 = Fp.mul(a, t4);\n      X3 = Fp.mul(b3, t2); // step 20\n      Z3 = Fp.add(X3, Z3);\n      X3 = Fp.sub(t1, Z3);\n      Z3 = Fp.add(t1, Z3);\n      Y3 = Fp.mul(X3, Z3);\n      t1 = Fp.add(t0, t0); // step 25\n      t1 = Fp.add(t1, t0);\n      t2 = Fp.mul(a, t2);\n      t4 = Fp.mul(b3, t4);\n      t1 = Fp.add(t1, t2);\n      t2 = Fp.sub(t0, t2); // step 30\n      t2 = Fp.mul(a, t2);\n      t4 = Fp.add(t4, t2);\n      t0 = Fp.mul(t1, t4);\n      Y3 = Fp.add(Y3, t0);\n      t0 = Fp.mul(t5, t4); // step 35\n      X3 = Fp.mul(t3, X3);\n      X3 = Fp.sub(X3, t0);\n      t0 = Fp.mul(t3, t1);\n      Z3 = Fp.mul(t5, Z3);\n      Z3 = Fp.add(Z3, t0); // step 40\n      return new Point(X3, Y3, Z3);\n    }\n\n    subtract(other: Point) {\n      return this.add(other.negate());\n    }\n\n    is0(): boolean {\n      return this.equals(Point.ZERO);\n    }\n\n    /**\n     * Constant time multiplication.\n     * Uses wNAF method. Windowed method may be 10% faster,\n     * but takes 2x longer to generate and consumes 2x memory.\n     * Uses precomputes when available.\n     * Uses endomorphism for Koblitz curves.\n     * @param scalar by which the point would be multiplied\n     * @returns New point\n     */\n    multiply(scalar: bigint): Point {\n      const { endo } = extraOpts;\n      if (!Fn.isValidNot0(scalar)) throw new Error('invalid scalar: out of range'); // 0 is invalid\n      let point: Point, fake: Point; // Fake point is used to const-time mult\n      const mul = (n: bigint) => wnaf.cached(this, n, (p) => normalizeZ(Point, p));\n      /** See docs for {@link EndomorphismOpts} */\n      if (endo) {\n        const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(scalar);\n        const { p: k1p, f: k1f } = mul(k1);\n        const { p: k2p, f: k2f } = mul(k2);\n        fake = k1f.add(k2f);\n        point = finishEndo(endo.beta, k1p, k2p, k1neg, k2neg);\n      } else {\n        const { p, f } = mul(scalar);\n        point = p;\n        fake = f;\n      }\n      // Normalize `z` for both points, but return only real one\n      return normalizeZ(Point, [point, fake])[0];\n    }\n\n    /**\n     * Non-constant-time multiplication. Uses double-and-add algorithm.\n     * It's faster, but should only be used when you don't care about\n     * an exposed secret key e.g. sig verification, which works over *public* keys.\n     */\n    multiplyUnsafe(sc: bigint): Point {\n      const { endo } = extraOpts;\n      const p = this as Point;\n      if (!Fn.isValid(sc)) throw new Error('invalid scalar: out of range'); // 0 is valid\n      if (sc === _0n || p.is0()) return Point.ZERO;\n      if (sc === _1n) return p; // fast-path\n      if (wnaf.hasCache(this)) return this.multiply(sc);\n      if (endo) {\n        const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(sc);\n        const { p1, p2 } = mulEndoUnsafe(Point, p, k1, k2); // 30% faster vs wnaf.unsafe\n        return finishEndo(endo.beta, p1, p2, k1neg, k2neg);\n      } else {\n        return wnaf.unsafe(p, sc);\n      }\n    }\n\n    multiplyAndAddUnsafe(Q: Point, a: bigint, b: bigint): Point | undefined {\n      const sum = this.multiplyUnsafe(a).add(Q.multiplyUnsafe(b));\n      return sum.is0() ? undefined : sum;\n    }\n\n    /**\n     * Converts Projective point to affine (x, y) coordinates.\n     * @param invertedZ Z^-1 (inverted zero) - optional, precomputation is useful for invertBatch\n     */\n    toAffine(invertedZ?: T): AffinePoint<T> {\n      return toAffineMemo(this, invertedZ);\n    }\n\n    /**\n     * Checks whether Point is free of torsion elements (is in prime subgroup).\n     * Always torsion-free for cofactor=1 curves.\n     */\n    isTorsionFree(): boolean {\n      const { isTorsionFree } = extraOpts;\n      if (cofactor === _1n) return true;\n      if (isTorsionFree) return isTorsionFree(Point, this);\n      return wnaf.unsafe(this, CURVE_ORDER).is0();\n    }\n\n    clearCofactor(): Point {\n      const { clearCofactor } = extraOpts;\n      if (cofactor === _1n) return this; // Fast-path\n      if (clearCofactor) return clearCofactor(Point, this) as Point;\n      return this.multiplyUnsafe(cofactor);\n    }\n\n    isSmallOrder(): boolean {\n      // can we use this.clearCofactor()?\n      return this.multiplyUnsafe(cofactor).is0();\n    }\n\n    toBytes(isCompressed = true): Uint8Array {\n      abool(isCompressed, 'isCompressed');\n      this.assertValidity();\n      return encodePoint(Point, this, isCompressed);\n    }\n\n    toHex(isCompressed = true): string {\n      return bytesToHex(this.toBytes(isCompressed));\n    }\n\n    toString() {\n      return `<Point ${this.is0() ? 'ZERO' : this.toHex()}>`;\n    }\n\n    // TODO: remove\n    get px(): T {\n      return this.X;\n    }\n    get py(): T {\n      return this.X;\n    }\n    get pz(): T {\n      return this.Z;\n    }\n    toRawBytes(isCompressed = true): Uint8Array {\n      return this.toBytes(isCompressed);\n    }\n    _setWindowSize(windowSize: number) {\n      this.precompute(windowSize);\n    }\n    static normalizeZ(points: Point[]): Point[] {\n      return normalizeZ(Point, points);\n    }\n    static msm(points: Point[], scalars: bigint[]): Point {\n      return pippenger(Point, Fn, points, scalars);\n    }\n    static fromPrivateKey(privateKey: PrivKey) {\n      return Point.BASE.multiply(_normFnElement(Fn, privateKey));\n    }\n  }\n  const bits = Fn.BITS;\n  const wnaf = new wNAF(Point, extraOpts.endo ? Math.ceil(bits / 2) : bits);\n  Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n  return Point;\n}\n\n/** Methods of ECDSA signature instance. */\nexport interface ECDSASignature {\n  readonly r: bigint;\n  readonly s: bigint;\n  readonly recovery?: number;\n  addRecoveryBit(recovery: number): ECDSASigRecovered;\n  hasHighS(): boolean;\n  toBytes(format?: string): Uint8Array;\n  toHex(format?: string): string;\n\n  /** @deprecated */\n  assertValidity(): void;\n  /** @deprecated */\n  normalizeS(): ECDSASignature;\n  /** @deprecated use standalone method `curve.recoverPublicKey(sig.toBytes('recovered'), msg)` */\n  recoverPublicKey(msgHash: Hex): WeierstrassPoint<bigint>;\n  /** @deprecated use `.toBytes('compact')` */\n  toCompactRawBytes(): Uint8Array;\n  /** @deprecated use `.toBytes('compact')` */\n  toCompactHex(): string;\n  /** @deprecated use `.toBytes('der')` */\n  toDERRawBytes(): Uint8Array;\n  /** @deprecated use `.toBytes('der')` */\n  toDERHex(): string;\n}\nexport type ECDSASigRecovered = ECDSASignature & {\n  readonly recovery: number;\n};\n/** Methods of ECDSA signature constructor. */\nexport type ECDSASignatureCons = {\n  new (r: bigint, s: bigint, recovery?: number): ECDSASignature;\n  fromBytes(bytes: Uint8Array, format?: ECDSASigFormat): ECDSASignature;\n  fromHex(hex: string, format?: ECDSASigFormat): ECDSASignature;\n\n  /** @deprecated use `.fromBytes(bytes, 'compact')` */\n  fromCompact(hex: Hex): ECDSASignature;\n  /** @deprecated use `.fromBytes(bytes, 'der')` */\n  fromDER(hex: Hex): ECDSASignature;\n};\n\n// Points start with byte 0x02 when y is even; otherwise 0x03\nfunction pprefix(hasEvenY: boolean): Uint8Array {\n  return Uint8Array.of(hasEvenY ? 0x02 : 0x03);\n}\n\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nexport function SWUFpSqrtRatio<T>(\n  Fp: IField<T>,\n  Z: T\n): (u: T, v: T) => { isValid: boolean; value: T } {\n  // Generic implementation\n  const q = Fp.ORDER;\n  let l = _0n;\n  for (let o = q - _1n; o % _2n === _0n; o /= _2n) l += _1n;\n  const c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n  // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n  // 2n ** c1 == 2n << (c1-1)\n  const _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n  const _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n  const c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1)  # Integer arithmetic\n  const c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2            # Integer arithmetic\n  const c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1                # Integer arithmetic\n  const c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1)                  # Integer arithmetic\n  const c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n  const c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n  let sqrtRatio = (u: T, v: T): { isValid: boolean; value: T } => {\n    let tv1 = c6; // 1. tv1 = c6\n    let tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n    let tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n    tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n    let tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n    tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n    tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n    tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n    tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n    let tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n    tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n    let isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n    tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n    tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n    tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n    tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n    // 17. for i in (c1, c1 - 1, ..., 2):\n    for (let i = c1; i > _1n; i--) {\n      let tv5 = i - _2n; // 18.    tv5 = i - 2\n      tv5 = _2n << (tv5 - _1n); // 19.    tv5 = 2^tv5\n      let tvv5 = Fp.pow(tv4, tv5); // 20.    tv5 = tv4^tv5\n      const e1 = Fp.eql(tvv5, Fp.ONE); // 21.    e1 = tv5 == 1\n      tv2 = Fp.mul(tv3, tv1); // 22.    tv2 = tv3 * tv1\n      tv1 = Fp.mul(tv1, tv1); // 23.    tv1 = tv1 * tv1\n      tvv5 = Fp.mul(tv4, tv1); // 24.    tv5 = tv4 * tv1\n      tv3 = Fp.cmov(tv2, tv3, e1); // 25.    tv3 = CMOV(tv2, tv3, e1)\n      tv4 = Fp.cmov(tvv5, tv4, e1); // 26.    tv4 = CMOV(tv5, tv4, e1)\n    }\n    return { isValid: isQR, value: tv3 };\n  };\n  if (Fp.ORDER % _4n === _3n) {\n    // sqrt_ratio_3mod4(u, v)\n    const c1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4     # Integer arithmetic\n    const c2 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n    sqrtRatio = (u: T, v: T) => {\n      let tv1 = Fp.sqr(v); // 1. tv1 = v^2\n      const tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n      tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n      let y1 = Fp.pow(tv1, c1); // 4. y1 = tv1^c1\n      y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n      const y2 = Fp.mul(y1, c2); // 6. y2 = y1 * c2\n      const tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n      const isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n      let y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n      return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n    };\n  }\n  // No curves uses that\n  // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n  return sqrtRatio;\n}\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU<T>(\n  Fp: IField<T>,\n  opts: {\n    A: T;\n    B: T;\n    Z: T;\n  }\n): (u: T) => { x: T; y: T } {\n  validateField(Fp);\n  const { A, B, Z } = opts;\n  if (!Fp.isValid(A) || !Fp.isValid(B) || !Fp.isValid(Z))\n    throw new Error('mapToCurveSimpleSWU: invalid opts');\n  const sqrtRatio = SWUFpSqrtRatio(Fp, Z);\n  if (!Fp.isOdd) throw new Error('Field does not have .isOdd()');\n  // Input: u, an element of F.\n  // Output: (x, y), a point on E.\n  return (u: T): { x: T; y: T } => {\n    // prettier-ignore\n    let tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n    tv1 = Fp.sqr(u); // 1.  tv1 = u^2\n    tv1 = Fp.mul(tv1, Z); // 2.  tv1 = Z * tv1\n    tv2 = Fp.sqr(tv1); // 3.  tv2 = tv1^2\n    tv2 = Fp.add(tv2, tv1); // 4.  tv2 = tv2 + tv1\n    tv3 = Fp.add(tv2, Fp.ONE); // 5.  tv3 = tv2 + 1\n    tv3 = Fp.mul(tv3, B); // 6.  tv3 = B * tv3\n    tv4 = Fp.cmov(Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7.  tv4 = CMOV(Z, -tv2, tv2 != 0)\n    tv4 = Fp.mul(tv4, A); // 8.  tv4 = A * tv4\n    tv2 = Fp.sqr(tv3); // 9.  tv2 = tv3^2\n    tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n    tv5 = Fp.mul(tv6, A); // 11. tv5 = A * tv6\n    tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n    tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n    tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n    tv5 = Fp.mul(tv6, B); // 15. tv5 = B * tv6\n    tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n    x = Fp.mul(tv1, tv3); // 17.   x = tv1 * tv3\n    const { isValid, value } = sqrtRatio(tv2, tv6); // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n    y = Fp.mul(tv1, u); // 19.   y = tv1 * u  -> Z * u^3 * y1\n    y = Fp.mul(y, value); // 20.   y = y * y1\n    x = Fp.cmov(x, tv3, isValid); // 21.   x = CMOV(x, tv3, is_gx1_square)\n    y = Fp.cmov(y, value, isValid); // 22.   y = CMOV(y, y1, is_gx1_square)\n    const e1 = Fp.isOdd!(u) === Fp.isOdd!(y); // 23.  e1 = sgn0(u) == sgn0(y)\n    y = Fp.cmov(Fp.neg(y), y, e1); // 24.   y = CMOV(-y, y, e1)\n    const tv4_inv = FpInvertBatch(Fp, [tv4], true)[0];\n    x = Fp.mul(x, tv4_inv); // 25.   x = x / tv4\n    return { x, y };\n  };\n}\n\nfunction getWLengths<T>(Fp: IField<T>, Fn: IField<bigint>) {\n  return {\n    secretKey: Fn.BYTES,\n    publicKey: 1 + Fp.BYTES,\n    publicKeyUncompressed: 1 + 2 * Fp.BYTES,\n    publicKeyHasPrefix: true,\n    signature: 2 * Fn.BYTES,\n  };\n}\n\n/**\n * Sometimes users only need getPublicKey, getSharedSecret, and secret key handling.\n * This helper ensures no signature functionality is present. Less code, smaller bundle size.\n */\nexport function ecdh(\n  Point: WeierstrassPointCons<bigint>,\n  ecdhOpts: { randomBytes?: (bytesLength?: number) => Uint8Array } = {}\n): ECDH {\n  const { Fn } = Point;\n  const randomBytes_ = ecdhOpts.randomBytes || randomBytesWeb;\n  const lengths = Object.assign(getWLengths(Point.Fp, Fn), { seed: getMinHashLength(Fn.ORDER) });\n\n  function isValidSecretKey(secretKey: PrivKey) {\n    try {\n      return !!_normFnElement(Fn, secretKey);\n    } catch (error) {\n      return false;\n    }\n  }\n\n  function isValidPublicKey(publicKey: Uint8Array, isCompressed?: boolean): boolean {\n    const { publicKey: comp, publicKeyUncompressed } = lengths;\n    try {\n      const l = publicKey.length;\n      if (isCompressed === true && l !== comp) return false;\n      if (isCompressed === false && l !== publicKeyUncompressed) return false;\n      return !!Point.fromBytes(publicKey);\n    } catch (error) {\n      return false;\n    }\n  }\n\n  /**\n   * Produces cryptographically secure secret key from random of size\n   * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n   */\n  function randomSecretKey(seed = randomBytes_(lengths.seed)): Uint8Array {\n    return mapHashToField(abytes(seed, lengths.seed, 'seed'), Fn.ORDER);\n  }\n\n  /**\n   * Computes public key for a secret key. Checks for validity of the secret key.\n   * @param isCompressed whether to return compact (default), or full key\n   * @returns Public key, full when isCompressed=false; short when isCompressed=true\n   */\n  function getPublicKey(secretKey: PrivKey, isCompressed = true): Uint8Array {\n    return Point.BASE.multiply(_normFnElement(Fn, secretKey)).toBytes(isCompressed);\n  }\n\n  function keygen(seed?: Uint8Array) {\n    const secretKey = randomSecretKey(seed);\n    return { secretKey, publicKey: getPublicKey(secretKey) };\n  }\n\n  /**\n   * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n   */\n  function isProbPub(item: PrivKey | PubKey): boolean | undefined {\n    if (typeof item === 'bigint') return false;\n    if (item instanceof Point) return true;\n    const { secretKey, publicKey, publicKeyUncompressed } = lengths;\n    if (Fn.allowedLengths || secretKey === publicKey) return undefined;\n    const l = ensureBytes('key', item).length;\n    return l === publicKey || l === publicKeyUncompressed;\n  }\n\n  /**\n   * ECDH (Elliptic Curve Diffie Hellman).\n   * Computes shared public key from secret key A and public key B.\n   * Checks: 1) secret key validity 2) shared key is on-curve.\n   * Does NOT hash the result.\n   * @param isCompressed whether to return compact (default), or full key\n   * @returns shared public key\n   */\n  function getSharedSecret(secretKeyA: PrivKey, publicKeyB: Hex, isCompressed = true): Uint8Array {\n    if (isProbPub(secretKeyA) === true) throw new Error('first arg must be private key');\n    if (isProbPub(publicKeyB) === false) throw new Error('second arg must be public key');\n    const s = _normFnElement(Fn, secretKeyA);\n    const b = Point.fromHex(publicKeyB); // checks for being on-curve\n    return b.multiply(s).toBytes(isCompressed);\n  }\n\n  const utils = {\n    isValidSecretKey,\n    isValidPublicKey,\n    randomSecretKey,\n\n    // TODO: remove\n    isValidPrivateKey: isValidSecretKey,\n    randomPrivateKey: randomSecretKey,\n    normPrivateKeyToScalar: (key: PrivKey) => _normFnElement(Fn, key),\n    precompute(windowSize = 8, point = Point.BASE): WeierstrassPoint<bigint> {\n      return point.precompute(windowSize, false);\n    },\n  };\n\n  return Object.freeze({ getPublicKey, getSharedSecret, keygen, Point, utils, lengths });\n}\n\n/**\n * Creates ECDSA signing interface for given elliptic curve `Point` and `hash` function.\n * We need `hash` for 2 features:\n * 1. Message prehash-ing. NOT used if `sign` / `verify` are called with `prehash: false`\n * 2. k generation in `sign`, using HMAC-drbg(hash)\n *\n * ECDSAOpts are only rarely needed.\n *\n * @example\n * ```js\n * const p256_Point = weierstrass(...);\n * const p256_sha256 = ecdsa(p256_Point, sha256);\n * const p256_sha224 = ecdsa(p256_Point, sha224);\n * const p256_sha224_r = ecdsa(p256_Point, sha224, { randomBytes: (length) => { ... } });\n * ```\n */\nexport function ecdsa(\n  Point: WeierstrassPointCons<bigint>,\n  hash: CHash,\n  ecdsaOpts: ECDSAOpts = {}\n): ECDSA {\n  ahash(hash);\n  _validateObject(\n    ecdsaOpts,\n    {},\n    {\n      hmac: 'function',\n      lowS: 'boolean',\n      randomBytes: 'function',\n      bits2int: 'function',\n      bits2int_modN: 'function',\n    }\n  );\n\n  const randomBytes = ecdsaOpts.randomBytes || randomBytesWeb;\n  const hmac: HmacFnSync =\n    ecdsaOpts.hmac ||\n    (((key, ...msgs) => nobleHmac(hash, key, concatBytes(...msgs))) satisfies HmacFnSync);\n\n  const { Fp, Fn } = Point;\n  const { ORDER: CURVE_ORDER, BITS: fnBits } = Fn;\n  const { keygen, getPublicKey, getSharedSecret, utils, lengths } = ecdh(Point, ecdsaOpts);\n  const defaultSigOpts: Required<ECDSASignOpts> = {\n    prehash: false,\n    lowS: typeof ecdsaOpts.lowS === 'boolean' ? ecdsaOpts.lowS : false,\n    format: undefined as any, //'compact' as ECDSASigFormat,\n    extraEntropy: false,\n  };\n  const defaultSigOpts_format = 'compact';\n\n  function isBiggerThanHalfOrder(number: bigint) {\n    const HALF = CURVE_ORDER >> _1n;\n    return number > HALF;\n  }\n  function validateRS(title: string, num: bigint): bigint {\n    if (!Fn.isValidNot0(num))\n      throw new Error(`invalid signature ${title}: out of range 1..Point.Fn.ORDER`);\n    return num;\n  }\n  function validateSigLength(bytes: Uint8Array, format: ECDSASigFormat) {\n    validateSigFormat(format);\n    const size = lengths.signature!;\n    const sizer = format === 'compact' ? size : format === 'recovered' ? size + 1 : undefined;\n    return abytes(bytes, sizer, `${format} signature`);\n  }\n\n  /**\n   * ECDSA signature with its (r, s) properties. Supports compact, recovered & DER representations.\n   */\n  class Signature implements ECDSASignature {\n    readonly r: bigint;\n    readonly s: bigint;\n    readonly recovery?: number;\n    constructor(r: bigint, s: bigint, recovery?: number) {\n      this.r = validateRS('r', r); // r in [1..N-1];\n      this.s = validateRS('s', s); // s in [1..N-1];\n      if (recovery != null) this.recovery = recovery;\n      Object.freeze(this);\n    }\n\n    static fromBytes(bytes: Uint8Array, format: ECDSASigFormat = defaultSigOpts_format): Signature {\n      validateSigLength(bytes, format);\n      let recid: number | undefined;\n      if (format === 'der') {\n        const { r, s } = DER.toSig(abytes(bytes));\n        return new Signature(r, s);\n      }\n      if (format === 'recovered') {\n        recid = bytes[0];\n        format = 'compact';\n        bytes = bytes.subarray(1);\n      }\n      const L = Fn.BYTES;\n      const r = bytes.subarray(0, L);\n      const s = bytes.subarray(L, L * 2);\n      return new Signature(Fn.fromBytes(r), Fn.fromBytes(s), recid);\n    }\n\n    static fromHex(hex: string, format?: ECDSASigFormat) {\n      return this.fromBytes(hexToBytes(hex), format);\n    }\n\n    addRecoveryBit(recovery: number): RecoveredSignature {\n      return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n    }\n\n    recoverPublicKey(messageHash: Hex): WeierstrassPoint<bigint> {\n      const FIELD_ORDER = Fp.ORDER;\n      const { r, s, recovery: rec } = this;\n      if (rec == null || ![0, 1, 2, 3].includes(rec)) throw new Error('recovery id invalid');\n\n      // ECDSA recovery is hard for cofactor > 1 curves.\n      // In sign, `r = q.x mod n`, and here we recover q.x from r.\n      // While recovering q.x >= n, we need to add r+n for cofactor=1 curves.\n      // However, for cofactor>1, r+n may not get q.x:\n      // r+n*i would need to be done instead where i is unknown.\n      // To easily get i, we either need to:\n      // a. increase amount of valid recid values (4, 5...); OR\n      // b. prohibit non-prime-order signatures (recid > 1).\n      const hasCofactor = CURVE_ORDER * _2n < FIELD_ORDER;\n      if (hasCofactor && rec > 1) throw new Error('recovery id is ambiguous for h>1 curve');\n\n      const radj = rec === 2 || rec === 3 ? r + CURVE_ORDER : r;\n      if (!Fp.isValid(radj)) throw new Error('recovery id 2 or 3 invalid');\n      const x = Fp.toBytes(radj);\n      const R = Point.fromBytes(concatBytes(pprefix((rec & 1) === 0), x));\n      const ir = Fn.inv(radj); // r^-1\n      const h = bits2int_modN(ensureBytes('msgHash', messageHash)); // Truncate hash\n      const u1 = Fn.create(-h * ir); // -hr^-1\n      const u2 = Fn.create(s * ir); // sr^-1\n      // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1). unsafe is fine: there is no private data.\n      const Q = Point.BASE.multiplyUnsafe(u1).add(R.multiplyUnsafe(u2));\n      if (Q.is0()) throw new Error('point at infinify');\n      Q.assertValidity();\n      return Q;\n    }\n\n    // Signatures should be low-s, to prevent malleability.\n    hasHighS(): boolean {\n      return isBiggerThanHalfOrder(this.s);\n    }\n\n    toBytes(format: ECDSASigFormat = defaultSigOpts_format) {\n      validateSigFormat(format);\n      if (format === 'der') return hexToBytes(DER.hexFromSig(this));\n      const r = Fn.toBytes(this.r);\n      const s = Fn.toBytes(this.s);\n      if (format === 'recovered') {\n        if (this.recovery == null) throw new Error('recovery bit must be present');\n        return concatBytes(Uint8Array.of(this.recovery), r, s);\n      }\n      return concatBytes(r, s);\n    }\n\n    toHex(format?: ECDSASigFormat) {\n      return bytesToHex(this.toBytes(format));\n    }\n\n    // TODO: remove\n    assertValidity(): void {}\n    static fromCompact(hex: Hex) {\n      return Signature.fromBytes(ensureBytes('sig', hex), 'compact');\n    }\n    static fromDER(hex: Hex) {\n      return Signature.fromBytes(ensureBytes('sig', hex), 'der');\n    }\n    normalizeS() {\n      return this.hasHighS() ? new Signature(this.r, Fn.neg(this.s), this.recovery) : this;\n    }\n    toDERRawBytes() {\n      return this.toBytes('der');\n    }\n    toDERHex() {\n      return bytesToHex(this.toBytes('der'));\n    }\n    toCompactRawBytes() {\n      return this.toBytes('compact');\n    }\n    toCompactHex() {\n      return bytesToHex(this.toBytes('compact'));\n    }\n  }\n  type RecoveredSignature = Signature & { recovery: number };\n\n  // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n  // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n  // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n  // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n  const bits2int =\n    ecdsaOpts.bits2int ||\n    function bits2int_def(bytes: Uint8Array): bigint {\n      // Our custom check \"just in case\", for protection against DoS\n      if (bytes.length > 8192) throw new Error('input is too large');\n      // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n      // for some cases, since bytes.length * 8 is not actual bitLength.\n      const num = bytesToNumberBE(bytes); // check for == u8 done here\n      const delta = bytes.length * 8 - fnBits; // truncate to nBitLength leftmost bits\n      return delta > 0 ? num >> BigInt(delta) : num;\n    };\n  const bits2int_modN =\n    ecdsaOpts.bits2int_modN ||\n    function bits2int_modN_def(bytes: Uint8Array): bigint {\n      return Fn.create(bits2int(bytes)); // can't use bytesToNumberBE here\n    };\n  // Pads output with zero as per spec\n  const ORDER_MASK = bitMask(fnBits);\n  /** Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`. */\n  function int2octets(num: bigint): Uint8Array {\n    // IMPORTANT: the check ensures working for case `Fn.BYTES != Fn.BITS * 8`\n    aInRange('num < 2^' + fnBits, num, _0n, ORDER_MASK);\n    return Fn.toBytes(num);\n  }\n\n  function validateMsgAndHash(message: Uint8Array, prehash: boolean) {\n    abytes(message, undefined, 'message');\n    return prehash ? abytes(hash(message), undefined, 'prehashed message') : message;\n  }\n\n  /**\n   * Steps A, D of RFC6979 3.2.\n   * Creates RFC6979 seed; converts msg/privKey to numbers.\n   * Used only in sign, not in verify.\n   *\n   * Warning: we cannot assume here that message has same amount of bytes as curve order,\n   * this will be invalid at least for P521. Also it can be bigger for P224 + SHA256.\n   */\n  function prepSig(message: Uint8Array, privateKey: PrivKey, opts: ECDSASignOpts) {\n    if (['recovered', 'canonical'].some((k) => k in opts))\n      throw new Error('sign() legacy options not supported');\n    const { lowS, prehash, extraEntropy } = validateSigOpts(opts, defaultSigOpts);\n    message = validateMsgAndHash(message, prehash); // RFC6979 3.2 A: h1 = H(m)\n    // We can't later call bits2octets, since nested bits2int is broken for curves\n    // with fnBits % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n    // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n    const h1int = bits2int_modN(message);\n    const d = _normFnElement(Fn, privateKey); // validate secret key, convert to bigint\n    const seedArgs = [int2octets(d), int2octets(h1int)];\n    // extraEntropy. RFC6979 3.6: additional k' (optional).\n    if (extraEntropy != null && extraEntropy !== false) {\n      // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n      // gen random bytes OR pass as-is\n      const e = extraEntropy === true ? randomBytes(lengths.secretKey) : extraEntropy;\n      seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n    }\n    const seed = concatBytes(...seedArgs); // Step D of RFC6979 3.2\n    const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n    // Converts signature params into point w r/s, checks result for validity.\n    // To transform k => Signature:\n    // q = k⋅G\n    // r = q.x mod n\n    // s = k^-1(m + rd) mod n\n    // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n    // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n    // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n    function k2sig(kBytes: Uint8Array): RecoveredSignature | undefined {\n      // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n      // Important: all mod() calls here must be done over N\n      const k = bits2int(kBytes); // mod n, not mod p\n      if (!Fn.isValidNot0(k)) return; // Valid scalars (including k) must be in 1..N-1\n      const ik = Fn.inv(k); // k^-1 mod n\n      const q = Point.BASE.multiply(k).toAffine(); // q = k⋅G\n      const r = Fn.create(q.x); // r = q.x mod n\n      if (r === _0n) return;\n      const s = Fn.create(ik * Fn.create(m + r * d)); // Not using blinding here, see comment above\n      if (s === _0n) return;\n      let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n      let normS = s;\n      if (lowS && isBiggerThanHalfOrder(s)) {\n        normS = Fn.neg(s); // if lowS was passed, ensure s is always\n        recovery ^= 1; // // in the bottom half of N\n      }\n      return new Signature(r, normS, recovery) as RecoveredSignature; // use normS, not s\n    }\n    return { seed, k2sig };\n  }\n\n  /**\n   * Signs message hash with a secret key.\n   *\n   * ```\n   * sign(m, d) where\n   *   k = rfc6979_hmac_drbg(m, d)\n   *   (x, y) = G × k\n   *   r = x mod n\n   *   s = (m + dr) / k mod n\n   * ```\n   */\n  function sign(message: Hex, secretKey: PrivKey, opts: ECDSASignOpts = {}): RecoveredSignature {\n    message = ensureBytes('message', message);\n    const { seed, k2sig } = prepSig(message, secretKey, opts); // Steps A, D of RFC6979 3.2.\n    const drbg = createHmacDrbg<RecoveredSignature>(hash.outputLen, Fn.BYTES, hmac);\n    const sig = drbg(seed, k2sig); // Steps B, C, D, E, F, G\n    return sig;\n  }\n\n  function tryParsingSig(sg: Hex | SignatureLike) {\n    // Try to deduce format\n    let sig: Signature | undefined = undefined;\n    const isHex = typeof sg === 'string' || isBytes(sg);\n    const isObj =\n      !isHex &&\n      sg !== null &&\n      typeof sg === 'object' &&\n      typeof sg.r === 'bigint' &&\n      typeof sg.s === 'bigint';\n    if (!isHex && !isObj)\n      throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n    if (isObj) {\n      sig = new Signature(sg.r, sg.s);\n    } else if (isHex) {\n      try {\n        sig = Signature.fromBytes(ensureBytes('sig', sg), 'der');\n      } catch (derError) {\n        if (!(derError instanceof DER.Err)) throw derError;\n      }\n      if (!sig) {\n        try {\n          sig = Signature.fromBytes(ensureBytes('sig', sg), 'compact');\n        } catch (error) {\n          return false;\n        }\n      }\n    }\n    if (!sig) return false;\n    return sig;\n  }\n\n  /**\n   * Verifies a signature against message and public key.\n   * Rejects lowS signatures by default: see {@link ECDSAVerifyOpts}.\n   * Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n   *\n   * ```\n   * verify(r, s, h, P) where\n   *   u1 = hs^-1 mod n\n   *   u2 = rs^-1 mod n\n   *   R = u1⋅G + u2⋅P\n   *   mod(R.x, n) == r\n   * ```\n   */\n  function verify(\n    signature: Hex | SignatureLike,\n    message: Hex,\n    publicKey: Hex,\n    opts: ECDSAVerifyOpts = {}\n  ): boolean {\n    const { lowS, prehash, format } = validateSigOpts(opts, defaultSigOpts);\n    publicKey = ensureBytes('publicKey', publicKey);\n    message = validateMsgAndHash(ensureBytes('message', message), prehash);\n    if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n    const sig =\n      format === undefined\n        ? tryParsingSig(signature)\n        : Signature.fromBytes(ensureBytes('sig', signature as Hex), format);\n    if (sig === false) return false;\n    try {\n      const P = Point.fromBytes(publicKey);\n      if (lowS && sig.hasHighS()) return false;\n      const { r, s } = sig;\n      const h = bits2int_modN(message); // mod n, not mod p\n      const is = Fn.inv(s); // s^-1 mod n\n      const u1 = Fn.create(h * is); // u1 = hs^-1 mod n\n      const u2 = Fn.create(r * is); // u2 = rs^-1 mod n\n      const R = Point.BASE.multiplyUnsafe(u1).add(P.multiplyUnsafe(u2)); // u1⋅G + u2⋅P\n      if (R.is0()) return false;\n      const v = Fn.create(R.x); // v = r.x mod n\n      return v === r;\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function recoverPublicKey(\n    signature: Uint8Array,\n    message: Uint8Array,\n    opts: ECDSARecoverOpts = {}\n  ): Uint8Array {\n    const { prehash } = validateSigOpts(opts, defaultSigOpts);\n    message = validateMsgAndHash(message, prehash);\n    return Signature.fromBytes(signature, 'recovered').recoverPublicKey(message).toBytes();\n  }\n\n  return Object.freeze({\n    keygen,\n    getPublicKey,\n    getSharedSecret,\n    utils,\n    lengths,\n    Point,\n    sign,\n    verify,\n    recoverPublicKey,\n    Signature,\n    hash,\n  });\n}\n\n// TODO: remove everything below\n/** @deprecated use ECDSASignature */\nexport type SignatureType = ECDSASignature;\n/** @deprecated use ECDSASigRecovered */\nexport type RecoveredSignatureType = ECDSASigRecovered;\n/** @deprecated switch to Uint8Array signatures in format 'compact' */\nexport type SignatureLike = { r: bigint; s: bigint };\nexport type ECDSAExtraEntropy = Hex | boolean;\n/** @deprecated use `ECDSAExtraEntropy` */\nexport type Entropy = Hex | boolean;\nexport type BasicWCurve<T> = BasicCurve<T> & {\n  // Params: a, b\n  a: T;\n  b: T;\n\n  // Optional params\n  allowedPrivateKeyLengths?: readonly number[]; // for P521\n  wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n  endo?: EndomorphismOpts;\n  // When a cofactor != 1, there can be an effective methods to:\n  // 1. Determine whether a point is torsion-free\n  isTorsionFree?: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => boolean;\n  // 2. Clear torsion component\n  clearCofactor?: (c: WeierstrassPointCons<T>, point: WeierstrassPoint<T>) => WeierstrassPoint<T>;\n};\n/** @deprecated use ECDSASignOpts */\nexport type SignOpts = ECDSASignOpts;\n/** @deprecated use ECDSASignOpts */\nexport type VerOpts = ECDSAVerifyOpts;\n\n/** @deprecated use WeierstrassPoint */\nexport type ProjPointType<T> = WeierstrassPoint<T>;\n/** @deprecated use WeierstrassPointCons */\nexport type ProjConstructor<T> = WeierstrassPointCons<T>;\n/** @deprecated use ECDSASignatureCons */\nexport type SignatureConstructor = ECDSASignatureCons;\n\n// TODO: remove\nexport type CurvePointsType<T> = BasicWCurve<T> & {\n  fromBytes?: (bytes: Uint8Array) => AffinePoint<T>;\n  toBytes?: (\n    c: WeierstrassPointCons<T>,\n    point: WeierstrassPoint<T>,\n    isCompressed: boolean\n  ) => Uint8Array;\n};\n\n// LegacyWeierstrassOpts\nexport type CurvePointsTypeWithLength<T> = Readonly<CurvePointsType<T> & Partial<NLength>>;\n\n// LegacyWeierstrass\nexport type CurvePointsRes<T> = {\n  Point: WeierstrassPointCons<T>;\n\n  /** @deprecated use `Point.CURVE()` */\n  CURVE: CurvePointsType<T>;\n  /** @deprecated use `Point` */\n  ProjectivePoint: WeierstrassPointCons<T>;\n  /** @deprecated use `Point.Fn.fromBytes(privateKey)` */\n  normPrivateKeyToScalar: (key: PrivKey) => bigint;\n  /** @deprecated */\n  weierstrassEquation: (x: T) => T;\n  /** @deprecated use `Point.Fn.isValidNot0(num)` */\n  isWithinCurveOrder: (num: bigint) => boolean;\n};\n\n// Aliases to legacy types\n// export type CurveType = LegacyECDSAOpts;\n// export type CurveFn = LegacyECDSA;\n// export type CurvePointsRes<T> = LegacyWeierstrass<T>;\n// export type CurvePointsType<T> = LegacyWeierstrassOpts<T>;\n// export type CurvePointsTypeWithLength<T> = LegacyWeierstrassOpts<T>;\n// export type BasicWCurve<T> = LegacyWeierstrassOpts<T>;\n\n/** @deprecated use `Uint8Array` */\nexport type PubKey = Hex | WeierstrassPoint<bigint>;\nexport type CurveType = BasicWCurve<bigint> & {\n  hash: CHash; // CHash not FHash because we need outputLen for DRBG\n  hmac?: HmacFnSync;\n  randomBytes?: (bytesLength?: number) => Uint8Array;\n  lowS?: boolean;\n  bits2int?: (bytes: Uint8Array) => bigint;\n  bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\nexport type CurveFn = {\n  /** @deprecated use `Point.CURVE()` */\n  CURVE: CurvePointsType<bigint>;\n  keygen: ECDSA['keygen'];\n  getPublicKey: ECDSA['getPublicKey'];\n  getSharedSecret: ECDSA['getSharedSecret'];\n  sign: ECDSA['sign'];\n  verify: ECDSA['verify'];\n  Point: WeierstrassPointCons<bigint>;\n  /** @deprecated use `Point` */\n  ProjectivePoint: WeierstrassPointCons<bigint>;\n  Signature: ECDSASignatureCons;\n  utils: ECDSA['utils'];\n  lengths: ECDSA['lengths'];\n};\n/** @deprecated use `weierstrass` in newer releases */\nexport function weierstrassPoints<T>(c: CurvePointsTypeWithLength<T>): CurvePointsRes<T> {\n  const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n  const Point = weierstrassN(CURVE, curveOpts);\n  return _weierstrass_new_output_to_legacy(c, Point);\n}\nexport type WsPointComposed<T> = {\n  CURVE: WeierstrassOpts<T>;\n  curveOpts: WeierstrassExtraOpts<T>;\n};\nexport type WsComposed = {\n  /** @deprecated use `Point.CURVE()` */\n  CURVE: WeierstrassOpts<bigint>;\n  hash: CHash;\n  curveOpts: WeierstrassExtraOpts<bigint>;\n  ecdsaOpts: ECDSAOpts;\n};\nfunction _weierstrass_legacy_opts_to_new<T>(c: CurvePointsType<T>): WsPointComposed<T> {\n  const CURVE: WeierstrassOpts<T> = {\n    a: c.a,\n    b: c.b,\n    p: c.Fp.ORDER,\n    n: c.n,\n    h: c.h,\n    Gx: c.Gx,\n    Gy: c.Gy,\n  };\n  const Fp = c.Fp;\n  let allowedLengths = c.allowedPrivateKeyLengths\n    ? Array.from(new Set(c.allowedPrivateKeyLengths.map((l) => Math.ceil(l / 2))))\n    : undefined;\n  const Fn = Field(CURVE.n, {\n    BITS: c.nBitLength,\n    allowedLengths: allowedLengths,\n    modFromBytes: c.wrapPrivateKey,\n  });\n  const curveOpts: WeierstrassExtraOpts<T> = {\n    Fp,\n    Fn,\n    allowInfinityPoint: c.allowInfinityPoint,\n    endo: c.endo,\n    isTorsionFree: c.isTorsionFree,\n    clearCofactor: c.clearCofactor,\n    fromBytes: c.fromBytes,\n    toBytes: c.toBytes,\n  };\n  return { CURVE, curveOpts };\n}\nfunction _ecdsa_legacy_opts_to_new(c: CurveType): WsComposed {\n  const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n  const ecdsaOpts: ECDSAOpts = {\n    hmac: c.hmac,\n    randomBytes: c.randomBytes,\n    lowS: c.lowS,\n    bits2int: c.bits2int,\n    bits2int_modN: c.bits2int_modN,\n  };\n  return { CURVE, curveOpts, hash: c.hash, ecdsaOpts };\n}\nexport function _legacyHelperEquat<T>(Fp: IField<T>, a: T, b: T): (x: T) => T {\n  /**\n   * y² = x³ + ax + b: Short weierstrass curve formula. Takes x, returns y².\n   * @returns y²\n   */\n  function weierstrassEquation(x: T): T {\n    const x2 = Fp.sqr(x); // x * x\n    const x3 = Fp.mul(x2, x); // x² * x\n    return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x³ + a * x + b\n  }\n  return weierstrassEquation;\n}\nfunction _weierstrass_new_output_to_legacy<T>(\n  c: CurvePointsType<T>,\n  Point: WeierstrassPointCons<T>\n): CurvePointsRes<T> {\n  const { Fp, Fn } = Point;\n  function isWithinCurveOrder(num: bigint): boolean {\n    return inRange(num, _1n, Fn.ORDER);\n  }\n  const weierstrassEquation = _legacyHelperEquat(Fp, c.a, c.b);\n  return Object.assign(\n    {},\n    {\n      CURVE: c,\n      Point: Point,\n      ProjectivePoint: Point,\n      normPrivateKeyToScalar: (key: PrivKey) => _normFnElement(Fn, key),\n      weierstrassEquation,\n      isWithinCurveOrder,\n    }\n  );\n}\nfunction _ecdsa_new_output_to_legacy(c: CurveType, _ecdsa: ECDSA): CurveFn {\n  const Point = _ecdsa.Point;\n  return Object.assign({}, _ecdsa, {\n    ProjectivePoint: Point,\n    CURVE: Object.assign({}, c, nLength(Point.Fn.ORDER, Point.Fn.BITS)),\n  });\n}\n\n// _ecdsa_legacy\nexport function weierstrass(c: CurveType): CurveFn {\n  const { CURVE, curveOpts, hash, ecdsaOpts } = _ecdsa_legacy_opts_to_new(c);\n  const Point = weierstrassN(CURVE, curveOpts);\n  const signs = ecdsa(Point, hash, ecdsaOpts);\n  return _ecdsa_new_output_to_legacy(c, signs);\n}\n","/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { type CurveFn, type CurveType, weierstrass } from './abstract/weierstrass.ts';\nimport type { CHash } from './utils.ts';\n\n/** connects noble-curves to noble-hashes */\nexport function getHash(hash: CHash): { hash: CHash } {\n  return { hash };\n}\n/** Same API as @noble/hashes, with ability to create curve with custom hash */\nexport type CurveDef = Readonly<Omit<CurveType, 'hash'>>;\nexport type CurveFnWithCreate = CurveFn & { create: (hash: CHash) => CurveFn };\n\n/** @deprecated use new `weierstrass()` and `ecdsa()` methods */\nexport function createCurve(curveDef: CurveDef, defHash: CHash): CurveFnWithCreate {\n  const create = (hash: CHash): CurveFn => weierstrass({ ...curveDef, hash: hash });\n  return { ...create(defHash), create };\n}\n","/**\n * SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism ψ,\n * check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha2.js';\nimport { randomBytes } from '@noble/hashes/utils.js';\nimport { createCurve, type CurveFnWithCreate } from './_shortw_utils.ts';\nimport type { CurveLengths } from './abstract/curve.ts';\nimport {\n  createHasher,\n  type H2CHasher,\n  type H2CMethod,\n  isogenyMap,\n} from './abstract/hash-to-curve.ts';\nimport { Field, mapHashToField, mod, pow2 } from './abstract/modular.ts';\nimport {\n  _normFnElement,\n  type EndomorphismOpts,\n  mapToCurveSimpleSWU,\n  type WeierstrassPoint as PointType,\n  type WeierstrassOpts,\n  type WeierstrassPointCons,\n} from './abstract/weierstrass.ts';\nimport type { Hex, PrivKey } from './utils.ts';\nimport {\n  bytesToNumberBE,\n  concatBytes,\n  ensureBytes,\n  inRange,\n  numberToBytesBE,\n  utf8ToBytes,\n} from './utils.ts';\n\n// Seems like generator was produced from some seed:\n// `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`\n// // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n\nconst secp256k1_CURVE: WeierstrassOpts<bigint> = {\n  p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n  n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n  h: BigInt(1),\n  a: BigInt(0),\n  b: BigInt(7),\n  Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n  Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),\n};\n\nconst secp256k1_ENDO: EndomorphismOpts = {\n  beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n  basises: [\n    [BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],\n    [BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],\n  ],\n};\n\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\n\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y: bigint): bigint {\n  const P = secp256k1_CURVE.p;\n  // prettier-ignore\n  const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n  // prettier-ignore\n  const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n  const b2 = (y * y * y) % P; // x^3, 11\n  const b3 = (b2 * b2 * y) % P; // x^7\n  const b6 = (pow2(b3, _3n, P) * b3) % P;\n  const b9 = (pow2(b6, _3n, P) * b3) % P;\n  const b11 = (pow2(b9, _2n, P) * b2) % P;\n  const b22 = (pow2(b11, _11n, P) * b11) % P;\n  const b44 = (pow2(b22, _22n, P) * b22) % P;\n  const b88 = (pow2(b44, _44n, P) * b44) % P;\n  const b176 = (pow2(b88, _88n, P) * b88) % P;\n  const b220 = (pow2(b176, _44n, P) * b44) % P;\n  const b223 = (pow2(b220, _3n, P) * b3) % P;\n  const t1 = (pow2(b223, _23n, P) * b22) % P;\n  const t2 = (pow2(t1, _6n, P) * b2) % P;\n  const root = pow2(t2, _2n, P);\n  if (!Fpk1.eql(Fpk1.sqr(root), y)) throw new Error('Cannot find square root');\n  return root;\n}\n\nconst Fpk1 = Field(secp256k1_CURVE.p, { sqrt: sqrtMod });\n\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = secp256k1.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = secp256k1.sign(msg, secretKey);\n * const isValid = secp256k1.verify(sig, msg, publicKey) === true;\n * ```\n */\nexport const secp256k1: CurveFnWithCreate = createCurve(\n  { ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO },\n  sha256\n);\n\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nconst TAGGED_HASH_PREFIXES: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\n  let tagP = TAGGED_HASH_PREFIXES[tag];\n  if (tagP === undefined) {\n    const tagH = sha256(utf8ToBytes(tag));\n    tagP = concatBytes(tagH, tagH);\n    TAGGED_HASH_PREFIXES[tag] = tagP;\n  }\n  return sha256(concatBytes(tagP, ...messages));\n}\n\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType<bigint>) => point.toBytes(true).slice(1);\nconst Pointk1 = /* @__PURE__ */ (() => secp256k1.Point)();\nconst hasEven = (y: bigint) => y % _2n === _0n;\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\n  const { Fn, BASE } = Pointk1;\n  const d_ = _normFnElement(Fn, priv);\n  const p = BASE.multiply(d_); // P = d'⋅G; 0 < d' < n check is done inside\n  const scalar = hasEven(p.y) ? d_ : Fn.neg(d_);\n  return { scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x: bigint): PointType<bigint> {\n  const Fp = Fpk1;\n  if (!Fp.isValidNot0(x)) throw new Error('invalid x: Fail if x ≥ p');\n  const xx = Fp.create(x * x);\n  const c = Fp.create(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n  let y = Fp.sqrt(c); // Let y = c^(p+1)/4 mod p. Same as sqrt().\n  // Return the unique point P such that x(P) = x and\n  // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n  if (!hasEven(y)) y = Fp.neg(y);\n  const p = Pointk1.fromAffine({ x, y });\n  p.assertValidity();\n  return p;\n}\nconst num = bytesToNumberBE;\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge(...args: Uint8Array[]): bigint {\n  return Pointk1.Fn.create(num(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(secretKey: Hex): Uint8Array {\n  return schnorrGetExtPubKey(secretKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message: Hex, secretKey: PrivKey, auxRand: Hex = randomBytes(32)): Uint8Array {\n  const { Fn } = Pointk1;\n  const m = ensureBytes('message', message);\n  const { bytes: px, scalar: d } = schnorrGetExtPubKey(secretKey); // checks for isWithinCurveOrder\n  const a = ensureBytes('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n  const t = Fn.toBytes(d ^ num(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n  const rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n  // Let k' = int(rand) mod n. Fail if k' = 0. Let R = k'⋅G\n  const { bytes: rx, scalar: k } = schnorrGetExtPubKey(rand);\n  const e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n  const sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n  sig.set(rx, 0);\n  sig.set(Fn.toBytes(Fn.create(k + e * d)), 32);\n  // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n  if (!schnorrVerify(sig, m, px)) throw new Error('sign: Invalid signature produced');\n  return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\n  const { Fn, BASE } = Pointk1;\n  const sig = ensureBytes('signature', signature, 64);\n  const m = ensureBytes('message', message);\n  const pub = ensureBytes('publicKey', publicKey, 32);\n  try {\n    const P = lift_x(num(pub)); // P = lift_x(int(pk)); fail if that fails\n    const r = num(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n    if (!inRange(r, _1n, secp256k1_CURVE.p)) return false;\n    const s = num(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n    if (!inRange(s, _1n, secp256k1_CURVE.n)) return false;\n    // int(challenge(bytes(r)||bytes(P)||m))%n\n    const e = challenge(Fn.toBytes(r), pointToBytes(P), m);\n    // R = s⋅G - e⋅P, where -eP == (n-e)P\n    const R = BASE.multiplyUnsafe(s).add(P.multiplyUnsafe(Fn.neg(e)));\n    const { x, y } = R.toAffine();\n    // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n    if (R.is0() || !hasEven(y) || x !== r) return false;\n    return true;\n  } catch (error) {\n    return false;\n  }\n}\n\nexport type SecpSchnorr = {\n  keygen: (seed?: Uint8Array) => { secretKey: Uint8Array; publicKey: Uint8Array };\n  getPublicKey: typeof schnorrGetPublicKey;\n  sign: typeof schnorrSign;\n  verify: typeof schnorrVerify;\n  Point: WeierstrassPointCons<bigint>;\n  utils: {\n    randomSecretKey: (seed?: Uint8Array) => Uint8Array;\n    pointToBytes: (point: PointType<bigint>) => Uint8Array;\n    lift_x: typeof lift_x;\n    taggedHash: typeof taggedHash;\n\n    /** @deprecated use `randomSecretKey` */\n    randomPrivateKey: (seed?: Uint8Array) => Uint8Array;\n    /** @deprecated use `utils` */\n    numberToBytesBE: typeof numberToBytesBE;\n    /** @deprecated use `utils` */\n    bytesToNumberBE: typeof bytesToNumberBE;\n    /** @deprecated use `modular` */\n    mod: typeof mod;\n  };\n  lengths: CurveLengths;\n};\n/**\n * Schnorr signatures over secp256k1.\n * https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\n * @example\n * ```js\n * import { schnorr } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = schnorr.keygen();\n * // const publicKey = schnorr.getPublicKey(secretKey);\n * const msg = new TextEncoder().encode('hello');\n * const sig = schnorr.sign(msg, secretKey);\n * const isValid = schnorr.verify(sig, msg, publicKey);\n * ```\n */\nexport const schnorr: SecpSchnorr = /* @__PURE__ */ (() => {\n  const size = 32;\n  const seedLength = 48;\n  const randomSecretKey = (seed = randomBytes(seedLength)): Uint8Array => {\n    return mapHashToField(seed, secp256k1_CURVE.n);\n  };\n  // TODO: remove\n  secp256k1.utils.randomSecretKey;\n  function keygen(seed?: Uint8Array) {\n    const secretKey = randomSecretKey(seed);\n    return { secretKey, publicKey: schnorrGetPublicKey(secretKey) };\n  }\n  return {\n    keygen,\n    getPublicKey: schnorrGetPublicKey,\n    sign: schnorrSign,\n    verify: schnorrVerify,\n    Point: Pointk1,\n    utils: {\n      randomSecretKey: randomSecretKey,\n      randomPrivateKey: randomSecretKey,\n      taggedHash,\n\n      // TODO: remove\n      lift_x,\n      pointToBytes,\n      numberToBytesBE,\n      bytesToNumberBE,\n      mod,\n    },\n    lengths: {\n      secretKey: size,\n      publicKey: size,\n      publicKeyHasPrefix: false,\n      signature: size * 2,\n      seed: seedLength,\n    },\n  };\n})();\n\nconst isoMap = /* @__PURE__ */ (() =>\n  isogenyMap(\n    Fpk1,\n    [\n      // xNum\n      [\n        '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n        '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n        '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n        '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n      ],\n      // xDen\n      [\n        '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n        '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n        '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n      ],\n      // yNum\n      [\n        '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n        '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n        '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n        '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n      ],\n      // yDen\n      [\n        '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n        '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n        '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n        '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n      ],\n    ].map((i) => i.map((j) => BigInt(j))) as [bigint[], bigint[], bigint[], bigint[]]\n  ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n  mapToCurveSimpleSWU(Fpk1, {\n    A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n    B: BigInt('1771'),\n    Z: Fpk1.create(BigInt('-11')),\n  }))();\n\n/** Hashing / encoding to secp256k1 points / field. RFC 9380 methods. */\nexport const secp256k1_hasher: H2CHasher<bigint> = /* @__PURE__ */ (() =>\n  createHasher(\n    secp256k1.Point,\n    (scalars: bigint[]) => {\n      const { x, y } = mapSWU(Fpk1.create(scalars[0]));\n      return isoMap(x, y);\n    },\n    {\n      DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n      encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n      p: Fpk1.ORDER,\n      m: 1,\n      k: 128,\n      expand: 'xmd',\n      hash: sha256,\n    }\n  ))();\n\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexport const hashToCurve: H2CMethod<bigint> = /* @__PURE__ */ (() =>\n  secp256k1_hasher.hashToCurve)();\n\n/** @deprecated use `import { secp256k1_hasher } from '@noble/curves/secp256k1.js';` */\nexport const encodeToCurve: H2CMethod<bigint> = /* @__PURE__ */ (() =>\n  secp256k1_hasher.encodeToCurve)();\n","import {ed25519} from '@noble/curves/ed25519';\n\n/**\n * A 64 byte secret key, the first 32 bytes of which is the\n * private scalar and the last 32 bytes is the public key.\n * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n */\ntype Ed25519SecretKey = Uint8Array;\n\n/**\n * Ed25519 Keypair\n */\nexport interface Ed25519Keypair {\n  publicKey: Uint8Array;\n  secretKey: Ed25519SecretKey;\n}\n\nexport const generatePrivateKey = ed25519.utils.randomPrivateKey;\nexport const generateKeypair = (): Ed25519Keypair => {\n  const privateScalar = ed25519.utils.randomPrivateKey();\n  const publicKey = getPublicKey(privateScalar);\n  const secretKey = new Uint8Array(64);\n  secretKey.set(privateScalar);\n  secretKey.set(publicKey, 32);\n  return {\n    publicKey,\n    secretKey,\n  };\n};\nexport const getPublicKey = ed25519.getPublicKey;\nexport function isOnCurve(publicKey: Uint8Array): boolean {\n  try {\n    ed25519.ExtendedPoint.fromHex(publicKey);\n    return true;\n  } catch {\n    return false;\n  }\n}\nexport const sign = (\n  message: Parameters<typeof ed25519.sign>[0],\n  secretKey: Ed25519SecretKey,\n) => ed25519.sign(message, secretKey.slice(0, 32));\nexport const verify = ed25519.verify;\n","import {Buffer} from 'buffer';\n\nexport const toBuffer = (arr: Buffer | Uint8Array | Array<number>): Buffer => {\n  if (Buffer.isBuffer(arr)) {\n    return arr;\n  } else if (arr instanceof Uint8Array) {\n    return Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength);\n  } else {\n    return Buffer.from(arr);\n  }\n};\n","import {Buffer} from 'buffer';\nimport {serialize, deserialize, deserializeUnchecked} from 'borsh';\n\n// Class wrapping a plain object\nexport class Struct {\n  constructor(properties: any) {\n    Object.assign(this, properties);\n  }\n\n  encode(): Buffer {\n    return Buffer.from(serialize(SOLANA_SCHEMA, this));\n  }\n\n  static decode(data: Buffer): any {\n    return deserialize(SOLANA_SCHEMA, this, data);\n  }\n\n  static decodeUnchecked(data: Buffer): any {\n    return deserializeUnchecked(SOLANA_SCHEMA, this, data);\n  }\n}\n\n// Class representing a Rust-compatible enum, since enums are only strings or\n// numbers in pure JS\nexport class Enum extends Struct {\n  enum: string = '';\n  constructor(properties: any) {\n    super(properties);\n    if (Object.keys(properties).length !== 1) {\n      throw new Error('Enum can only take single value');\n    }\n    Object.keys(properties).map(key => {\n      this.enum = key;\n    });\n  }\n}\n\nexport const SOLANA_SCHEMA: Map<Function, any> = new Map();\n","import BN from 'bn.js';\nimport bs58 from 'bs58';\nimport {Buffer} from 'buffer';\nimport {sha256} from '@noble/hashes/sha256';\n\nimport {isOnCurve} from './utils/ed25519';\nimport {Struct, SOLANA_SCHEMA} from './utils/borsh-schema';\nimport {toBuffer} from './utils/to-buffer';\n\n/**\n * Maximum length of derived pubkey seed\n */\nexport const MAX_SEED_LENGTH = 32;\n\n/**\n * Size of public key in bytes\n */\nexport const PUBLIC_KEY_LENGTH = 32;\n\n/**\n * Value to be converted into public key\n */\nexport type PublicKeyInitData =\n  | number\n  | string\n  | Uint8Array\n  | Array<number>\n  | PublicKeyData;\n\n/**\n * JSON object representation of PublicKey class\n */\nexport type PublicKeyData = {\n  /** @internal */\n  _bn: BN;\n};\n\nfunction isPublicKeyData(value: PublicKeyInitData): value is PublicKeyData {\n  return (value as PublicKeyData)._bn !== undefined;\n}\n\n// local counter used by PublicKey.unique()\nlet uniquePublicKeyCounter = 1;\n\n/**\n * A public key\n */\nexport class PublicKey extends Struct {\n  /** @internal */\n  _bn: BN;\n\n  /**\n   * Create a new PublicKey object\n   * @param value ed25519 public key as buffer or base-58 encoded string\n   */\n  constructor(value: PublicKeyInitData) {\n    super({});\n    if (isPublicKeyData(value)) {\n      this._bn = value._bn;\n    } else {\n      if (typeof value === 'string') {\n        // assume base 58 encoding by default\n        const decoded = bs58.decode(value);\n        if (decoded.length != PUBLIC_KEY_LENGTH) {\n          throw new Error(`Invalid public key input`);\n        }\n        this._bn = new BN(decoded);\n      } else {\n        this._bn = new BN(value);\n      }\n\n      if (this._bn.byteLength() > PUBLIC_KEY_LENGTH) {\n        throw new Error(`Invalid public key input`);\n      }\n    }\n  }\n\n  /**\n   * Returns a unique PublicKey for tests and benchmarks using a counter\n   */\n  static unique(): PublicKey {\n    const key = new PublicKey(uniquePublicKeyCounter);\n    uniquePublicKeyCounter += 1;\n    return new PublicKey(key.toBuffer());\n  }\n\n  /**\n   * Default public key value. The base58-encoded string representation is all ones (as seen below)\n   * The underlying BN number is 32 bytes that are all zeros\n   */\n  static default: PublicKey = new PublicKey('11111111111111111111111111111111');\n\n  /**\n   * Checks if two publicKeys are equal\n   */\n  equals(publicKey: PublicKey): boolean {\n    return this._bn.eq(publicKey._bn);\n  }\n\n  /**\n   * Return the base-58 representation of the public key\n   */\n  toBase58(): string {\n    return bs58.encode(this.toBytes());\n  }\n\n  toJSON(): string {\n    return this.toBase58();\n  }\n\n  /**\n   * Return the byte array representation of the public key in big endian\n   */\n  toBytes(): Uint8Array {\n    const buf = this.toBuffer();\n    return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n  }\n\n  /**\n   * Return the Buffer representation of the public key in big endian\n   */\n  toBuffer(): Buffer {\n    const b = this._bn.toArrayLike(Buffer);\n    if (b.length === PUBLIC_KEY_LENGTH) {\n      return b;\n    }\n\n    const zeroPad = Buffer.alloc(32);\n    b.copy(zeroPad, 32 - b.length);\n    return zeroPad;\n  }\n\n  get [Symbol.toStringTag](): string {\n    return `PublicKey(${this.toString()})`;\n  }\n\n  /**\n   * Return the base-58 representation of the public key\n   */\n  toString(): string {\n    return this.toBase58();\n  }\n\n  /**\n   * Derive a public key from another key, a seed, and a program ID.\n   * The program ID will also serve as the owner of the public key, giving\n   * it permission to write data to the account.\n   */\n  /* eslint-disable require-await */\n  static async createWithSeed(\n    fromPublicKey: PublicKey,\n    seed: string,\n    programId: PublicKey,\n  ): Promise<PublicKey> {\n    const buffer = Buffer.concat([\n      fromPublicKey.toBuffer(),\n      Buffer.from(seed),\n      programId.toBuffer(),\n    ]);\n    const publicKeyBytes = sha256(buffer);\n    return new PublicKey(publicKeyBytes);\n  }\n\n  /**\n   * Derive a program address from seeds and a program ID.\n   */\n  /* eslint-disable require-await */\n  static createProgramAddressSync(\n    seeds: Array<Buffer | Uint8Array>,\n    programId: PublicKey,\n  ): PublicKey {\n    let buffer = Buffer.alloc(0);\n    seeds.forEach(function (seed) {\n      if (seed.length > MAX_SEED_LENGTH) {\n        throw new TypeError(`Max seed length exceeded`);\n      }\n      buffer = Buffer.concat([buffer, toBuffer(seed)]);\n    });\n    buffer = Buffer.concat([\n      buffer,\n      programId.toBuffer(),\n      Buffer.from('ProgramDerivedAddress'),\n    ]);\n    const publicKeyBytes = sha256(buffer);\n    if (isOnCurve(publicKeyBytes)) {\n      throw new Error(`Invalid seeds, address must fall off the curve`);\n    }\n    return new PublicKey(publicKeyBytes);\n  }\n\n  /**\n   * Async version of createProgramAddressSync\n   * For backwards compatibility\n   *\n   * @deprecated Use {@link createProgramAddressSync} instead\n   */\n  /* eslint-disable require-await */\n  static async createProgramAddress(\n    seeds: Array<Buffer | Uint8Array>,\n    programId: PublicKey,\n  ): Promise<PublicKey> {\n    return this.createProgramAddressSync(seeds, programId);\n  }\n\n  /**\n   * Find a valid program address\n   *\n   * Valid program addresses must fall off the ed25519 curve.  This function\n   * iterates a nonce until it finds one that when combined with the seeds\n   * results in a valid program address.\n   */\n  static findProgramAddressSync(\n    seeds: Array<Buffer | Uint8Array>,\n    programId: PublicKey,\n  ): [PublicKey, number] {\n    let nonce = 255;\n    let address;\n    while (nonce != 0) {\n      try {\n        const seedsWithNonce = seeds.concat(Buffer.from([nonce]));\n        address = this.createProgramAddressSync(seedsWithNonce, programId);\n      } catch (err) {\n        if (err instanceof TypeError) {\n          throw err;\n        }\n        nonce--;\n        continue;\n      }\n      return [address, nonce];\n    }\n    throw new Error(`Unable to find a viable program address nonce`);\n  }\n\n  /**\n   * Async version of findProgramAddressSync\n   * For backwards compatibility\n   *\n   * @deprecated Use {@link findProgramAddressSync} instead\n   */\n  static async findProgramAddress(\n    seeds: Array<Buffer | Uint8Array>,\n    programId: PublicKey,\n  ): Promise<[PublicKey, number]> {\n    return this.findProgramAddressSync(seeds, programId);\n  }\n\n  /**\n   * Check that a pubkey is on the ed25519 curve.\n   */\n  static isOnCurve(pubkeyData: PublicKeyInitData): boolean {\n    const pubkey = new PublicKey(pubkeyData);\n    return isOnCurve(pubkey.toBytes());\n  }\n}\n\nSOLANA_SCHEMA.set(PublicKey, {\n  kind: 'struct',\n  fields: [['_bn', 'u256']],\n});\n","import {Buffer} from 'buffer';\n\nimport {generatePrivateKey, getPublicKey} from './utils/ed25519';\nimport {toBuffer} from './utils/to-buffer';\nimport {PublicKey} from './publickey';\n\n/**\n * An account key pair (public and secret keys).\n *\n * @deprecated since v1.10.0, please use {@link Keypair} instead.\n */\nexport class Account {\n  /** @internal */\n  private _publicKey: Buffer;\n  /** @internal */\n  private _secretKey: Buffer;\n\n  /**\n   * Create a new Account object\n   *\n   * If the secretKey parameter is not provided a new key pair is randomly\n   * created for the account\n   *\n   * @param secretKey Secret key for the account\n   */\n  constructor(secretKey?: Uint8Array | Array<number>) {\n    if (secretKey) {\n      const secretKeyBuffer = toBuffer(secretKey);\n      if (secretKey.length !== 64) {\n        throw new Error('bad secret key size');\n      }\n      this._publicKey = secretKeyBuffer.slice(32, 64);\n      this._secretKey = secretKeyBuffer.slice(0, 32);\n    } else {\n      this._secretKey = toBuffer(generatePrivateKey());\n      this._publicKey = toBuffer(getPublicKey(this._secretKey));\n    }\n  }\n\n  /**\n   * The public key for this account\n   */\n  get publicKey(): PublicKey {\n    return new PublicKey(this._publicKey);\n  }\n\n  /**\n   * The **unencrypted** secret key for this account. The first 32 bytes\n   * is the private scalar and the last 32 bytes is the public key.\n   * Read more: https://blog.mozilla.org/warner/2011/11/29/ed25519-keys/\n   */\n  get secretKey(): Buffer {\n    return Buffer.concat([this._secretKey, this._publicKey], 64);\n  }\n}\n","import {PublicKey} from './publickey';\n\nexport const BPF_LOADER_DEPRECATED_PROGRAM_ID = new PublicKey(\n  'BPFLoader1111111111111111111111111111111111',\n);\n","/**\n * Maximum over-the-wire size of a Transaction\n *\n * 1280 is IPv6 minimum MTU\n * 40 bytes is the size of the IPv6 header\n * 8 bytes is the size of the fragment header\n */\nexport const PACKET_DATA_SIZE = 1280 - 40 - 8;\n\nexport const VERSION_PREFIX_MASK = 0x7f;\n\nexport const SIGNATURE_LENGTH_IN_BYTES = 64;\n","export class TransactionExpiredBlockheightExceededError extends Error {\n  signature: string;\n\n  constructor(signature: string) {\n    super(`Signature ${signature} has expired: block height exceeded.`);\n    this.signature = signature;\n  }\n}\n\nObject.defineProperty(\n  TransactionExpiredBlockheightExceededError.prototype,\n  'name',\n  {\n    value: 'TransactionExpiredBlockheightExceededError',\n  },\n);\n\nexport class TransactionExpiredTimeoutError extends Error {\n  signature: string;\n\n  constructor(signature: string, timeoutSeconds: number) {\n    super(\n      `Transaction was not confirmed in ${timeoutSeconds.toFixed(\n        2,\n      )} seconds. It is ` +\n        'unknown if it succeeded or failed. Check signature ' +\n        `${signature} using the Solana Explorer or CLI tools.`,\n    );\n    this.signature = signature;\n  }\n}\n\nObject.defineProperty(TransactionExpiredTimeoutError.prototype, 'name', {\n  value: 'TransactionExpiredTimeoutError',\n});\n\nexport class TransactionExpiredNonceInvalidError extends Error {\n  signature: string;\n\n  constructor(signature: string) {\n    super(`Signature ${signature} has expired: the nonce is no longer valid.`);\n    this.signature = signature;\n  }\n}\n\nObject.defineProperty(TransactionExpiredNonceInvalidError.prototype, 'name', {\n  value: 'TransactionExpiredNonceInvalidError',\n});\n","import {LoadedAddresses} from '../connection';\nimport {PublicKey} from '../publickey';\nimport {TransactionInstruction} from '../transaction';\nimport {MessageCompiledInstruction} from './index';\n\nexport type AccountKeysFromLookups = LoadedAddresses;\n\nexport class MessageAccountKeys {\n  staticAccountKeys: Array<PublicKey>;\n  accountKeysFromLookups?: AccountKeysFromLookups;\n\n  constructor(\n    staticAccountKeys: Array<PublicKey>,\n    accountKeysFromLookups?: AccountKeysFromLookups,\n  ) {\n    this.staticAccountKeys = staticAccountKeys;\n    this.accountKeysFromLookups = accountKeysFromLookups;\n  }\n\n  keySegments(): Array<Array<PublicKey>> {\n    const keySegments = [this.staticAccountKeys];\n    if (this.accountKeysFromLookups) {\n      keySegments.push(this.accountKeysFromLookups.writable);\n      keySegments.push(this.accountKeysFromLookups.readonly);\n    }\n    return keySegments;\n  }\n\n  get(index: number): PublicKey | undefined {\n    for (const keySegment of this.keySegments()) {\n      if (index < keySegment.length) {\n        return keySegment[index];\n      } else {\n        index -= keySegment.length;\n      }\n    }\n    return;\n  }\n\n  get length(): number {\n    return this.keySegments().flat().length;\n  }\n\n  compileInstructions(\n    instructions: Array<TransactionInstruction>,\n  ): Array<MessageCompiledInstruction> {\n    // Bail early if any account indexes would overflow a u8\n    const U8_MAX = 255;\n    if (this.length > U8_MAX + 1) {\n      throw new Error('Account index overflow encountered during compilation');\n    }\n\n    const keyIndexMap = new Map();\n    this.keySegments()\n      .flat()\n      .forEach((key, index) => {\n        keyIndexMap.set(key.toBase58(), index);\n      });\n\n    const findKeyIndex = (key: PublicKey) => {\n      const keyIndex = keyIndexMap.get(key.toBase58());\n      if (keyIndex === undefined)\n        throw new Error(\n          'Encountered an unknown instruction account key during compilation',\n        );\n      return keyIndex;\n    };\n\n    return instructions.map((instruction): MessageCompiledInstruction => {\n      return {\n        programIdIndex: findKeyIndex(instruction.programId),\n        accountKeyIndexes: instruction.keys.map(meta =>\n          findKeyIndex(meta.pubkey),\n        ),\n        data: instruction.data,\n      };\n    });\n  }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {VoteAuthorizeWithSeedArgs} from './programs/vote';\n\n/**\n * Layout for a public key\n */\nexport const publicKey = (property: string = 'publicKey') => {\n  return BufferLayout.blob(32, property);\n};\n\n/**\n * Layout for a signature\n */\nexport const signature = (property: string = 'signature') => {\n  return BufferLayout.blob(64, property);\n};\n\n/**\n * Layout for a 64bit unsigned value\n */\nexport const uint64 = (property: string = 'uint64') => {\n  return BufferLayout.blob(8, property);\n};\n\ninterface IRustStringShim\n  extends Omit<\n    BufferLayout.Structure<\n      Readonly<{\n        length: number;\n        lengthPadding: number;\n        chars: Uint8Array;\n      }>\n    >,\n    'decode' | 'encode' | 'replicate'\n  > {\n  alloc: (str: string) => number;\n  decode: (b: Uint8Array, offset?: number) => string;\n  encode: (str: string, b: Uint8Array, offset?: number) => number;\n  replicate: (property: string) => this;\n}\n\n/**\n * Layout for a Rust String type\n */\nexport const rustString = (\n  property: string = 'string',\n): BufferLayout.Layout<string> => {\n  const rsl = BufferLayout.struct<\n    Readonly<{\n      length?: number;\n      lengthPadding?: number;\n      chars: Uint8Array;\n    }>\n  >(\n    [\n      BufferLayout.u32('length'),\n      BufferLayout.u32('lengthPadding'),\n      BufferLayout.blob(BufferLayout.offset(BufferLayout.u32(), -8), 'chars'),\n    ],\n    property,\n  );\n  const _decode = rsl.decode.bind(rsl);\n  const _encode = rsl.encode.bind(rsl);\n\n  const rslShim = rsl as unknown as IRustStringShim;\n\n  rslShim.decode = (b: Uint8Array, offset?: number) => {\n    const data = _decode(b, offset);\n    return data['chars'].toString();\n  };\n\n  rslShim.encode = (str: string, b: Uint8Array, offset?: number) => {\n    const data = {\n      chars: Buffer.from(str, 'utf8'),\n    };\n    return _encode(data, b, offset);\n  };\n\n  rslShim.alloc = (str: string) => {\n    return (\n      BufferLayout.u32().span +\n      BufferLayout.u32().span +\n      Buffer.from(str, 'utf8').length\n    );\n  };\n\n  return rslShim;\n};\n\n/**\n * Layout for an Authorized object\n */\nexport const authorized = (property: string = 'authorized') => {\n  return BufferLayout.struct<\n    Readonly<{\n      staker: Uint8Array;\n      withdrawer: Uint8Array;\n    }>\n  >([publicKey('staker'), publicKey('withdrawer')], property);\n};\n\n/**\n * Layout for a Lockup object\n */\nexport const lockup = (property: string = 'lockup') => {\n  return BufferLayout.struct<\n    Readonly<{\n      custodian: Uint8Array;\n      epoch: number;\n      unixTimestamp: number;\n    }>\n  >(\n    [\n      BufferLayout.ns64('unixTimestamp'),\n      BufferLayout.ns64('epoch'),\n      publicKey('custodian'),\n    ],\n    property,\n  );\n};\n\n/**\n *  Layout for a VoteInit object\n */\nexport const voteInit = (property: string = 'voteInit') => {\n  return BufferLayout.struct<\n    Readonly<{\n      authorizedVoter: Uint8Array;\n      authorizedWithdrawer: Uint8Array;\n      commission: number;\n      nodePubkey: Uint8Array;\n    }>\n  >(\n    [\n      publicKey('nodePubkey'),\n      publicKey('authorizedVoter'),\n      publicKey('authorizedWithdrawer'),\n      BufferLayout.u8('commission'),\n    ],\n    property,\n  );\n};\n\n/**\n *  Layout for a VoteAuthorizeWithSeedArgs object\n */\nexport const voteAuthorizeWithSeedArgs = (\n  property: string = 'voteAuthorizeWithSeedArgs',\n) => {\n  return BufferLayout.struct<VoteAuthorizeWithSeedArgs>(\n    [\n      BufferLayout.u32('voteAuthorizationType'),\n      publicKey('currentAuthorityDerivedKeyOwnerPubkey'),\n      rustString('currentAuthorityDerivedKeySeed'),\n      publicKey('newAuthorized'),\n    ],\n    property,\n  );\n};\n\nexport function getAlloc(type: any, fields: any): number {\n  const getItemAlloc = (item: any): number => {\n    if (item.span >= 0) {\n      return item.span;\n    } else if (typeof item.alloc === 'function') {\n      return item.alloc(fields[item.property]);\n    } else if ('count' in item && 'elementLayout' in item) {\n      const field = fields[item.property];\n      if (Array.isArray(field)) {\n        return field.length * getItemAlloc(item.elementLayout);\n      }\n    } else if ('fields' in item) {\n      // This is a `Structure` whose size needs to be recursively measured.\n      return getAlloc({layout: item}, fields[item.property]);\n    }\n    // Couldn't determine allocated size of layout\n    return 0;\n  };\n\n  let alloc = 0;\n  type.layout.fields.forEach((item: any) => {\n    alloc += getItemAlloc(item);\n  });\n\n  return alloc;\n}\n","export function decodeLength(bytes: Array<number>): number {\n  let len = 0;\n  let size = 0;\n  for (;;) {\n    let elem = bytes.shift() as number;\n    len |= (elem & 0x7f) << (size * 7);\n    size += 1;\n    if ((elem & 0x80) === 0) {\n      break;\n    }\n  }\n  return len;\n}\n\nexport function encodeLength(bytes: Array<number>, len: number) {\n  let rem_len = len;\n  for (;;) {\n    let elem = rem_len & 0x7f;\n    rem_len >>= 7;\n    if (rem_len == 0) {\n      bytes.push(elem);\n      break;\n    } else {\n      elem |= 0x80;\n      bytes.push(elem);\n    }\n  }\n}\n","export default function (\n  condition: unknown,\n  message?: string,\n): asserts condition {\n  if (!condition) {\n    throw new Error(message || 'Assertion failed');\n  }\n}\n","import {MessageHeader, MessageAddressTableLookup} from './index';\nimport {AccountKeysFromLookups} from './account-keys';\nimport {AddressLookupTableAccount} from '../programs';\nimport {TransactionInstruction} from '../transaction';\nimport assert from '../utils/assert';\nimport {PublicKey} from '../publickey';\n\nexport type CompiledKeyMeta = {\n  isSigner: boolean;\n  isWritable: boolean;\n  isInvoked: boolean;\n};\n\ntype KeyMetaMap = Map<string, CompiledKeyMeta>;\n\nexport class CompiledKeys {\n  payer: PublicKey;\n  keyMetaMap: KeyMetaMap;\n\n  constructor(payer: PublicKey, keyMetaMap: KeyMetaMap) {\n    this.payer = payer;\n    this.keyMetaMap = keyMetaMap;\n  }\n\n  static compile(\n    instructions: Array<TransactionInstruction>,\n    payer: PublicKey,\n  ): CompiledKeys {\n    const keyMetaMap: KeyMetaMap = new Map();\n    const getOrInsertDefault = (pubkey: PublicKey): CompiledKeyMeta => {\n      const address = pubkey.toBase58();\n      let keyMeta = keyMetaMap.get(address);\n      if (keyMeta === undefined) {\n        keyMeta = {\n          isSigner: false,\n          isWritable: false,\n          isInvoked: false,\n        };\n        keyMetaMap.set(address, keyMeta);\n      }\n      return keyMeta;\n    };\n\n    const payerKeyMeta = getOrInsertDefault(payer);\n    payerKeyMeta.isSigner = true;\n    payerKeyMeta.isWritable = true;\n\n    for (const ix of instructions) {\n      getOrInsertDefault(ix.programId).isInvoked = true;\n      for (const accountMeta of ix.keys) {\n        const keyMeta = getOrInsertDefault(accountMeta.pubkey);\n        keyMeta.isSigner ||= accountMeta.isSigner;\n        keyMeta.isWritable ||= accountMeta.isWritable;\n      }\n    }\n\n    return new CompiledKeys(payer, keyMetaMap);\n  }\n\n  getMessageComponents(): [MessageHeader, Array<PublicKey>] {\n    const mapEntries = [...this.keyMetaMap.entries()];\n    assert(mapEntries.length <= 256, 'Max static account keys length exceeded');\n\n    const writableSigners = mapEntries.filter(\n      ([, meta]) => meta.isSigner && meta.isWritable,\n    );\n    const readonlySigners = mapEntries.filter(\n      ([, meta]) => meta.isSigner && !meta.isWritable,\n    );\n    const writableNonSigners = mapEntries.filter(\n      ([, meta]) => !meta.isSigner && meta.isWritable,\n    );\n    const readonlyNonSigners = mapEntries.filter(\n      ([, meta]) => !meta.isSigner && !meta.isWritable,\n    );\n\n    const header: MessageHeader = {\n      numRequiredSignatures: writableSigners.length + readonlySigners.length,\n      numReadonlySignedAccounts: readonlySigners.length,\n      numReadonlyUnsignedAccounts: readonlyNonSigners.length,\n    };\n\n    // sanity checks\n    {\n      assert(\n        writableSigners.length > 0,\n        'Expected at least one writable signer key',\n      );\n      const [payerAddress] = writableSigners[0];\n      assert(\n        payerAddress === this.payer.toBase58(),\n        'Expected first writable signer key to be the fee payer',\n      );\n    }\n\n    const staticAccountKeys = [\n      ...writableSigners.map(([address]) => new PublicKey(address)),\n      ...readonlySigners.map(([address]) => new PublicKey(address)),\n      ...writableNonSigners.map(([address]) => new PublicKey(address)),\n      ...readonlyNonSigners.map(([address]) => new PublicKey(address)),\n    ];\n\n    return [header, staticAccountKeys];\n  }\n\n  extractTableLookup(\n    lookupTable: AddressLookupTableAccount,\n  ): [MessageAddressTableLookup, AccountKeysFromLookups] | undefined {\n    const [writableIndexes, drainedWritableKeys] =\n      this.drainKeysFoundInLookupTable(\n        lookupTable.state.addresses,\n        keyMeta =>\n          !keyMeta.isSigner && !keyMeta.isInvoked && keyMeta.isWritable,\n      );\n    const [readonlyIndexes, drainedReadonlyKeys] =\n      this.drainKeysFoundInLookupTable(\n        lookupTable.state.addresses,\n        keyMeta =>\n          !keyMeta.isSigner && !keyMeta.isInvoked && !keyMeta.isWritable,\n      );\n\n    // Don't extract lookup if no keys were found\n    if (writableIndexes.length === 0 && readonlyIndexes.length === 0) {\n      return;\n    }\n\n    return [\n      {\n        accountKey: lookupTable.key,\n        writableIndexes,\n        readonlyIndexes,\n      },\n      {\n        writable: drainedWritableKeys,\n        readonly: drainedReadonlyKeys,\n      },\n    ];\n  }\n\n  /** @internal */\n  private drainKeysFoundInLookupTable(\n    lookupTableEntries: Array<PublicKey>,\n    keyMetaFilter: (keyMeta: CompiledKeyMeta) => boolean,\n  ): [Array<number>, Array<PublicKey>] {\n    const lookupTableIndexes = new Array();\n    const drainedKeys = new Array();\n\n    for (const [address, keyMeta] of this.keyMetaMap.entries()) {\n      if (keyMetaFilter(keyMeta)) {\n        const key = new PublicKey(address);\n        const lookupTableIndex = lookupTableEntries.findIndex(entry =>\n          entry.equals(key),\n        );\n        if (lookupTableIndex >= 0) {\n          assert(lookupTableIndex < 256, 'Max lookup table index exceeded');\n          lookupTableIndexes.push(lookupTableIndex);\n          drainedKeys.push(key);\n          this.keyMetaMap.delete(address);\n        }\n      }\n    }\n\n    return [lookupTableIndexes, drainedKeys];\n  }\n}\n","const END_OF_BUFFER_ERROR_MESSAGE = 'Reached end of buffer unexpectedly';\n\n/**\n * Delegates to `Array#shift`, but throws if the array is zero-length.\n */\nexport function guardedShift<T>(byteArray: T[]): T {\n  if (byteArray.length === 0) {\n    throw new Error(END_OF_BUFFER_ERROR_MESSAGE);\n  }\n  return byteArray.shift() as T;\n}\n\n/**\n * Delegates to `Array#splice`, but throws if the section being spliced out extends past the end of\n * the array.\n */\nexport function guardedSplice<T>(\n  byteArray: T[],\n  ...args:\n    | [start: number, deleteCount?: number]\n    | [start: number, deleteCount: number, ...items: T[]]\n): T[] {\n  const [start] = args;\n  if (\n    args.length === 2 // Implies that `deleteCount` was supplied\n      ? start + (args[1] ?? 0) > byteArray.length\n      : start >= byteArray.length\n  ) {\n    throw new Error(END_OF_BUFFER_ERROR_MESSAGE);\n  }\n  return byteArray.splice(\n    ...(args as Parameters<typeof Array.prototype.splice>),\n  );\n}\n","import bs58 from 'bs58';\nimport {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {PublicKey, PUBLIC_KEY_LENGTH} from '../publickey';\nimport type {Blockhash} from '../blockhash';\nimport * as Layout from '../layout';\nimport {PACKET_DATA_SIZE, VERSION_PREFIX_MASK} from '../transaction/constants';\nimport * as shortvec from '../utils/shortvec-encoding';\nimport {toBuffer} from '../utils/to-buffer';\nimport {\n  MessageHeader,\n  MessageAddressTableLookup,\n  MessageCompiledInstruction,\n} from './index';\nimport {TransactionInstruction} from '../transaction';\nimport {CompiledKeys} from './compiled-keys';\nimport {MessageAccountKeys} from './account-keys';\nimport {guardedShift, guardedSplice} from '../utils/guarded-array-utils';\n\n/**\n * An instruction to execute by a program\n *\n * @property {number} programIdIndex\n * @property {number[]} accounts\n * @property {string} data\n */\nexport type CompiledInstruction = {\n  /** Index into the transaction keys array indicating the program account that executes this instruction */\n  programIdIndex: number;\n  /** Ordered indices into the transaction keys array indicating which accounts to pass to the program */\n  accounts: number[];\n  /** The program input data encoded as base 58 */\n  data: string;\n};\n\n/**\n * Message constructor arguments\n */\nexport type MessageArgs = {\n  /** The message header, identifying signed and read-only `accountKeys` */\n  header: MessageHeader;\n  /** All the account keys used by this transaction */\n  accountKeys: string[] | PublicKey[];\n  /** The hash of a recent ledger block */\n  recentBlockhash: Blockhash;\n  /** Instructions that will be executed in sequence and committed in one atomic transaction if all succeed. */\n  instructions: CompiledInstruction[];\n};\n\nexport type CompileLegacyArgs = {\n  payerKey: PublicKey;\n  instructions: Array<TransactionInstruction>;\n  recentBlockhash: Blockhash;\n};\n\n/**\n * List of instructions to be processed atomically\n */\nexport class Message {\n  header: MessageHeader;\n  accountKeys: PublicKey[];\n  recentBlockhash: Blockhash;\n  instructions: CompiledInstruction[];\n\n  private indexToProgramIds: Map<number, PublicKey> = new Map<\n    number,\n    PublicKey\n  >();\n\n  constructor(args: MessageArgs) {\n    this.header = args.header;\n    this.accountKeys = args.accountKeys.map(account => new PublicKey(account));\n    this.recentBlockhash = args.recentBlockhash;\n    this.instructions = args.instructions;\n    this.instructions.forEach(ix =>\n      this.indexToProgramIds.set(\n        ix.programIdIndex,\n        this.accountKeys[ix.programIdIndex],\n      ),\n    );\n  }\n\n  get version(): 'legacy' {\n    return 'legacy';\n  }\n\n  get staticAccountKeys(): Array<PublicKey> {\n    return this.accountKeys;\n  }\n\n  get compiledInstructions(): Array<MessageCompiledInstruction> {\n    return this.instructions.map(\n      (ix): MessageCompiledInstruction => ({\n        programIdIndex: ix.programIdIndex,\n        accountKeyIndexes: ix.accounts,\n        data: bs58.decode(ix.data),\n      }),\n    );\n  }\n\n  get addressTableLookups(): Array<MessageAddressTableLookup> {\n    return [];\n  }\n\n  getAccountKeys(): MessageAccountKeys {\n    return new MessageAccountKeys(this.staticAccountKeys);\n  }\n\n  static compile(args: CompileLegacyArgs): Message {\n    const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n    const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n    const accountKeys = new MessageAccountKeys(staticAccountKeys);\n    const instructions = accountKeys.compileInstructions(args.instructions).map(\n      (ix: MessageCompiledInstruction): CompiledInstruction => ({\n        programIdIndex: ix.programIdIndex,\n        accounts: ix.accountKeyIndexes,\n        data: bs58.encode(ix.data),\n      }),\n    );\n    return new Message({\n      header,\n      accountKeys: staticAccountKeys,\n      recentBlockhash: args.recentBlockhash,\n      instructions,\n    });\n  }\n\n  isAccountSigner(index: number): boolean {\n    return index < this.header.numRequiredSignatures;\n  }\n\n  isAccountWritable(index: number): boolean {\n    const numSignedAccounts = this.header.numRequiredSignatures;\n    if (index >= this.header.numRequiredSignatures) {\n      const unsignedAccountIndex = index - numSignedAccounts;\n      const numUnsignedAccounts = this.accountKeys.length - numSignedAccounts;\n      const numWritableUnsignedAccounts =\n        numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n      return unsignedAccountIndex < numWritableUnsignedAccounts;\n    } else {\n      const numWritableSignedAccounts =\n        numSignedAccounts - this.header.numReadonlySignedAccounts;\n      return index < numWritableSignedAccounts;\n    }\n  }\n\n  isProgramId(index: number): boolean {\n    return this.indexToProgramIds.has(index);\n  }\n\n  programIds(): PublicKey[] {\n    return [...this.indexToProgramIds.values()];\n  }\n\n  nonProgramIds(): PublicKey[] {\n    return this.accountKeys.filter((_, index) => !this.isProgramId(index));\n  }\n\n  serialize(): Buffer {\n    const numKeys = this.accountKeys.length;\n\n    let keyCount: number[] = [];\n    shortvec.encodeLength(keyCount, numKeys);\n\n    const instructions = this.instructions.map(instruction => {\n      const {accounts, programIdIndex} = instruction;\n      const data = Array.from(bs58.decode(instruction.data));\n\n      let keyIndicesCount: number[] = [];\n      shortvec.encodeLength(keyIndicesCount, accounts.length);\n\n      let dataCount: number[] = [];\n      shortvec.encodeLength(dataCount, data.length);\n\n      return {\n        programIdIndex,\n        keyIndicesCount: Buffer.from(keyIndicesCount),\n        keyIndices: accounts,\n        dataLength: Buffer.from(dataCount),\n        data,\n      };\n    });\n\n    let instructionCount: number[] = [];\n    shortvec.encodeLength(instructionCount, instructions.length);\n    let instructionBuffer = Buffer.alloc(PACKET_DATA_SIZE);\n    Buffer.from(instructionCount).copy(instructionBuffer);\n    let instructionBufferLength = instructionCount.length;\n\n    instructions.forEach(instruction => {\n      const instructionLayout = BufferLayout.struct<\n        Readonly<{\n          data: number[];\n          dataLength: Uint8Array;\n          keyIndices: number[];\n          keyIndicesCount: Uint8Array;\n          programIdIndex: number;\n        }>\n      >([\n        BufferLayout.u8('programIdIndex'),\n\n        BufferLayout.blob(\n          instruction.keyIndicesCount.length,\n          'keyIndicesCount',\n        ),\n        BufferLayout.seq(\n          BufferLayout.u8('keyIndex'),\n          instruction.keyIndices.length,\n          'keyIndices',\n        ),\n        BufferLayout.blob(instruction.dataLength.length, 'dataLength'),\n        BufferLayout.seq(\n          BufferLayout.u8('userdatum'),\n          instruction.data.length,\n          'data',\n        ),\n      ]);\n      const length = instructionLayout.encode(\n        instruction,\n        instructionBuffer,\n        instructionBufferLength,\n      );\n      instructionBufferLength += length;\n    });\n    instructionBuffer = instructionBuffer.slice(0, instructionBufferLength);\n\n    const signDataLayout = BufferLayout.struct<\n      Readonly<{\n        keyCount: Uint8Array;\n        keys: Uint8Array[];\n        numReadonlySignedAccounts: Uint8Array;\n        numReadonlyUnsignedAccounts: Uint8Array;\n        numRequiredSignatures: Uint8Array;\n        recentBlockhash: Uint8Array;\n      }>\n    >([\n      BufferLayout.blob(1, 'numRequiredSignatures'),\n      BufferLayout.blob(1, 'numReadonlySignedAccounts'),\n      BufferLayout.blob(1, 'numReadonlyUnsignedAccounts'),\n      BufferLayout.blob(keyCount.length, 'keyCount'),\n      BufferLayout.seq(Layout.publicKey('key'), numKeys, 'keys'),\n      Layout.publicKey('recentBlockhash'),\n    ]);\n\n    const transaction = {\n      numRequiredSignatures: Buffer.from([this.header.numRequiredSignatures]),\n      numReadonlySignedAccounts: Buffer.from([\n        this.header.numReadonlySignedAccounts,\n      ]),\n      numReadonlyUnsignedAccounts: Buffer.from([\n        this.header.numReadonlyUnsignedAccounts,\n      ]),\n      keyCount: Buffer.from(keyCount),\n      keys: this.accountKeys.map(key => toBuffer(key.toBytes())),\n      recentBlockhash: bs58.decode(this.recentBlockhash),\n    };\n\n    let signData = Buffer.alloc(2048);\n    const length = signDataLayout.encode(transaction, signData);\n    instructionBuffer.copy(signData, length);\n    return signData.slice(0, length + instructionBuffer.length);\n  }\n\n  /**\n   * Decode a compiled message into a Message object.\n   */\n  static from(buffer: Buffer | Uint8Array | Array<number>): Message {\n    // Slice up wire data\n    let byteArray = [...buffer];\n\n    const numRequiredSignatures = guardedShift(byteArray);\n    if (\n      numRequiredSignatures !==\n      (numRequiredSignatures & VERSION_PREFIX_MASK)\n    ) {\n      throw new Error(\n        'Versioned messages must be deserialized with VersionedMessage.deserialize()',\n      );\n    }\n\n    const numReadonlySignedAccounts = guardedShift(byteArray);\n    const numReadonlyUnsignedAccounts = guardedShift(byteArray);\n\n    const accountCount = shortvec.decodeLength(byteArray);\n    let accountKeys = [];\n    for (let i = 0; i < accountCount; i++) {\n      const account = guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH);\n      accountKeys.push(new PublicKey(Buffer.from(account)));\n    }\n\n    const recentBlockhash = guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH);\n\n    const instructionCount = shortvec.decodeLength(byteArray);\n    let instructions: CompiledInstruction[] = [];\n    for (let i = 0; i < instructionCount; i++) {\n      const programIdIndex = guardedShift(byteArray);\n      const accountCount = shortvec.decodeLength(byteArray);\n      const accounts = guardedSplice(byteArray, 0, accountCount);\n      const dataLength = shortvec.decodeLength(byteArray);\n      const dataSlice = guardedSplice(byteArray, 0, dataLength);\n      const data = bs58.encode(Buffer.from(dataSlice));\n      instructions.push({\n        programIdIndex,\n        accounts,\n        data,\n      });\n    }\n\n    const messageArgs = {\n      header: {\n        numRequiredSignatures,\n        numReadonlySignedAccounts,\n        numReadonlyUnsignedAccounts,\n      },\n      recentBlockhash: bs58.encode(Buffer.from(recentBlockhash)),\n      accountKeys,\n      instructions,\n    };\n\n    return new Message(messageArgs);\n  }\n}\n","import bs58 from 'bs58';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport * as Layout from '../layout';\nimport {Blockhash} from '../blockhash';\nimport {\n  MessageHeader,\n  MessageAddressTableLookup,\n  MessageCompiledInstruction,\n} from './index';\nimport {PublicKey, PUBLIC_KEY_LENGTH} from '../publickey';\nimport * as shortvec from '../utils/shortvec-encoding';\nimport assert from '../utils/assert';\nimport {PACKET_DATA_SIZE, VERSION_PREFIX_MASK} from '../transaction/constants';\nimport {TransactionInstruction} from '../transaction';\nimport {AddressLookupTableAccount} from '../programs';\nimport {CompiledKeys} from './compiled-keys';\nimport {AccountKeysFromLookups, MessageAccountKeys} from './account-keys';\nimport {guardedShift, guardedSplice} from '../utils/guarded-array-utils';\n\n/**\n * Message constructor arguments\n */\nexport type MessageV0Args = {\n  /** The message header, identifying signed and read-only `accountKeys` */\n  header: MessageHeader;\n  /** The static account keys used by this transaction */\n  staticAccountKeys: PublicKey[];\n  /** The hash of a recent ledger block */\n  recentBlockhash: Blockhash;\n  /** Instructions that will be executed in sequence and committed in one atomic transaction if all succeed. */\n  compiledInstructions: MessageCompiledInstruction[];\n  /** Instructions that will be executed in sequence and committed in one atomic transaction if all succeed. */\n  addressTableLookups: MessageAddressTableLookup[];\n};\n\nexport type CompileV0Args = {\n  payerKey: PublicKey;\n  instructions: Array<TransactionInstruction>;\n  recentBlockhash: Blockhash;\n  addressLookupTableAccounts?: Array<AddressLookupTableAccount>;\n};\n\nexport type GetAccountKeysArgs =\n  | {\n      accountKeysFromLookups?: AccountKeysFromLookups | null;\n    }\n  | {\n      addressLookupTableAccounts?: AddressLookupTableAccount[] | null;\n    };\n\nexport class MessageV0 {\n  header: MessageHeader;\n  staticAccountKeys: Array<PublicKey>;\n  recentBlockhash: Blockhash;\n  compiledInstructions: Array<MessageCompiledInstruction>;\n  addressTableLookups: Array<MessageAddressTableLookup>;\n\n  constructor(args: MessageV0Args) {\n    this.header = args.header;\n    this.staticAccountKeys = args.staticAccountKeys;\n    this.recentBlockhash = args.recentBlockhash;\n    this.compiledInstructions = args.compiledInstructions;\n    this.addressTableLookups = args.addressTableLookups;\n  }\n\n  get version(): 0 {\n    return 0;\n  }\n\n  get numAccountKeysFromLookups(): number {\n    let count = 0;\n    for (const lookup of this.addressTableLookups) {\n      count += lookup.readonlyIndexes.length + lookup.writableIndexes.length;\n    }\n    return count;\n  }\n\n  getAccountKeys(args?: GetAccountKeysArgs): MessageAccountKeys {\n    let accountKeysFromLookups: AccountKeysFromLookups | undefined;\n    if (\n      args &&\n      'accountKeysFromLookups' in args &&\n      args.accountKeysFromLookups\n    ) {\n      if (\n        this.numAccountKeysFromLookups !=\n        args.accountKeysFromLookups.writable.length +\n          args.accountKeysFromLookups.readonly.length\n      ) {\n        throw new Error(\n          'Failed to get account keys because of a mismatch in the number of account keys from lookups',\n        );\n      }\n      accountKeysFromLookups = args.accountKeysFromLookups;\n    } else if (\n      args &&\n      'addressLookupTableAccounts' in args &&\n      args.addressLookupTableAccounts\n    ) {\n      accountKeysFromLookups = this.resolveAddressTableLookups(\n        args.addressLookupTableAccounts,\n      );\n    } else if (this.addressTableLookups.length > 0) {\n      throw new Error(\n        'Failed to get account keys because address table lookups were not resolved',\n      );\n    }\n    return new MessageAccountKeys(\n      this.staticAccountKeys,\n      accountKeysFromLookups,\n    );\n  }\n\n  isAccountSigner(index: number): boolean {\n    return index < this.header.numRequiredSignatures;\n  }\n\n  isAccountWritable(index: number): boolean {\n    const numSignedAccounts = this.header.numRequiredSignatures;\n    const numStaticAccountKeys = this.staticAccountKeys.length;\n    if (index >= numStaticAccountKeys) {\n      const lookupAccountKeysIndex = index - numStaticAccountKeys;\n      const numWritableLookupAccountKeys = this.addressTableLookups.reduce(\n        (count, lookup) => count + lookup.writableIndexes.length,\n        0,\n      );\n      return lookupAccountKeysIndex < numWritableLookupAccountKeys;\n    } else if (index >= this.header.numRequiredSignatures) {\n      const unsignedAccountIndex = index - numSignedAccounts;\n      const numUnsignedAccounts = numStaticAccountKeys - numSignedAccounts;\n      const numWritableUnsignedAccounts =\n        numUnsignedAccounts - this.header.numReadonlyUnsignedAccounts;\n      return unsignedAccountIndex < numWritableUnsignedAccounts;\n    } else {\n      const numWritableSignedAccounts =\n        numSignedAccounts - this.header.numReadonlySignedAccounts;\n      return index < numWritableSignedAccounts;\n    }\n  }\n\n  resolveAddressTableLookups(\n    addressLookupTableAccounts: AddressLookupTableAccount[],\n  ): AccountKeysFromLookups {\n    const accountKeysFromLookups: AccountKeysFromLookups = {\n      writable: [],\n      readonly: [],\n    };\n\n    for (const tableLookup of this.addressTableLookups) {\n      const tableAccount = addressLookupTableAccounts.find(account =>\n        account.key.equals(tableLookup.accountKey),\n      );\n      if (!tableAccount) {\n        throw new Error(\n          `Failed to find address lookup table account for table key ${tableLookup.accountKey.toBase58()}`,\n        );\n      }\n\n      for (const index of tableLookup.writableIndexes) {\n        if (index < tableAccount.state.addresses.length) {\n          accountKeysFromLookups.writable.push(\n            tableAccount.state.addresses[index],\n          );\n        } else {\n          throw new Error(\n            `Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`,\n          );\n        }\n      }\n\n      for (const index of tableLookup.readonlyIndexes) {\n        if (index < tableAccount.state.addresses.length) {\n          accountKeysFromLookups.readonly.push(\n            tableAccount.state.addresses[index],\n          );\n        } else {\n          throw new Error(\n            `Failed to find address for index ${index} in address lookup table ${tableLookup.accountKey.toBase58()}`,\n          );\n        }\n      }\n    }\n\n    return accountKeysFromLookups;\n  }\n\n  static compile(args: CompileV0Args): MessageV0 {\n    const compiledKeys = CompiledKeys.compile(args.instructions, args.payerKey);\n\n    const addressTableLookups = new Array<MessageAddressTableLookup>();\n    const accountKeysFromLookups: AccountKeysFromLookups = {\n      writable: new Array(),\n      readonly: new Array(),\n    };\n    const lookupTableAccounts = args.addressLookupTableAccounts || [];\n    for (const lookupTable of lookupTableAccounts) {\n      const extractResult = compiledKeys.extractTableLookup(lookupTable);\n      if (extractResult !== undefined) {\n        const [addressTableLookup, {writable, readonly}] = extractResult;\n        addressTableLookups.push(addressTableLookup);\n        accountKeysFromLookups.writable.push(...writable);\n        accountKeysFromLookups.readonly.push(...readonly);\n      }\n    }\n\n    const [header, staticAccountKeys] = compiledKeys.getMessageComponents();\n    const accountKeys = new MessageAccountKeys(\n      staticAccountKeys,\n      accountKeysFromLookups,\n    );\n    const compiledInstructions = accountKeys.compileInstructions(\n      args.instructions,\n    );\n    return new MessageV0({\n      header,\n      staticAccountKeys,\n      recentBlockhash: args.recentBlockhash,\n      compiledInstructions,\n      addressTableLookups,\n    });\n  }\n\n  serialize(): Uint8Array {\n    const encodedStaticAccountKeysLength = Array<number>();\n    shortvec.encodeLength(\n      encodedStaticAccountKeysLength,\n      this.staticAccountKeys.length,\n    );\n\n    const serializedInstructions = this.serializeInstructions();\n    const encodedInstructionsLength = Array<number>();\n    shortvec.encodeLength(\n      encodedInstructionsLength,\n      this.compiledInstructions.length,\n    );\n\n    const serializedAddressTableLookups = this.serializeAddressTableLookups();\n    const encodedAddressTableLookupsLength = Array<number>();\n    shortvec.encodeLength(\n      encodedAddressTableLookupsLength,\n      this.addressTableLookups.length,\n    );\n\n    const messageLayout = BufferLayout.struct<{\n      prefix: number;\n      header: MessageHeader;\n      staticAccountKeysLength: Uint8Array;\n      staticAccountKeys: Array<Uint8Array>;\n      recentBlockhash: Uint8Array;\n      instructionsLength: Uint8Array;\n      serializedInstructions: Uint8Array;\n      addressTableLookupsLength: Uint8Array;\n      serializedAddressTableLookups: Uint8Array;\n    }>([\n      BufferLayout.u8('prefix'),\n      BufferLayout.struct<MessageHeader>(\n        [\n          BufferLayout.u8('numRequiredSignatures'),\n          BufferLayout.u8('numReadonlySignedAccounts'),\n          BufferLayout.u8('numReadonlyUnsignedAccounts'),\n        ],\n        'header',\n      ),\n      BufferLayout.blob(\n        encodedStaticAccountKeysLength.length,\n        'staticAccountKeysLength',\n      ),\n      BufferLayout.seq(\n        Layout.publicKey(),\n        this.staticAccountKeys.length,\n        'staticAccountKeys',\n      ),\n      Layout.publicKey('recentBlockhash'),\n      BufferLayout.blob(encodedInstructionsLength.length, 'instructionsLength'),\n      BufferLayout.blob(\n        serializedInstructions.length,\n        'serializedInstructions',\n      ),\n      BufferLayout.blob(\n        encodedAddressTableLookupsLength.length,\n        'addressTableLookupsLength',\n      ),\n      BufferLayout.blob(\n        serializedAddressTableLookups.length,\n        'serializedAddressTableLookups',\n      ),\n    ]);\n\n    const serializedMessage = new Uint8Array(PACKET_DATA_SIZE);\n    const MESSAGE_VERSION_0_PREFIX = 1 << 7;\n    const serializedMessageLength = messageLayout.encode(\n      {\n        prefix: MESSAGE_VERSION_0_PREFIX,\n        header: this.header,\n        staticAccountKeysLength: new Uint8Array(encodedStaticAccountKeysLength),\n        staticAccountKeys: this.staticAccountKeys.map(key => key.toBytes()),\n        recentBlockhash: bs58.decode(this.recentBlockhash),\n        instructionsLength: new Uint8Array(encodedInstructionsLength),\n        serializedInstructions,\n        addressTableLookupsLength: new Uint8Array(\n          encodedAddressTableLookupsLength,\n        ),\n        serializedAddressTableLookups,\n      },\n      serializedMessage,\n    );\n    return serializedMessage.slice(0, serializedMessageLength);\n  }\n\n  private serializeInstructions(): Uint8Array {\n    let serializedLength = 0;\n    const serializedInstructions = new Uint8Array(PACKET_DATA_SIZE);\n    for (const instruction of this.compiledInstructions) {\n      const encodedAccountKeyIndexesLength = Array<number>();\n      shortvec.encodeLength(\n        encodedAccountKeyIndexesLength,\n        instruction.accountKeyIndexes.length,\n      );\n\n      const encodedDataLength = Array<number>();\n      shortvec.encodeLength(encodedDataLength, instruction.data.length);\n\n      const instructionLayout = BufferLayout.struct<{\n        programIdIndex: number;\n        encodedAccountKeyIndexesLength: Uint8Array;\n        accountKeyIndexes: number[];\n        encodedDataLength: Uint8Array;\n        data: Uint8Array;\n      }>([\n        BufferLayout.u8('programIdIndex'),\n        BufferLayout.blob(\n          encodedAccountKeyIndexesLength.length,\n          'encodedAccountKeyIndexesLength',\n        ),\n        BufferLayout.seq(\n          BufferLayout.u8(),\n          instruction.accountKeyIndexes.length,\n          'accountKeyIndexes',\n        ),\n        BufferLayout.blob(encodedDataLength.length, 'encodedDataLength'),\n        BufferLayout.blob(instruction.data.length, 'data'),\n      ]);\n\n      serializedLength += instructionLayout.encode(\n        {\n          programIdIndex: instruction.programIdIndex,\n          encodedAccountKeyIndexesLength: new Uint8Array(\n            encodedAccountKeyIndexesLength,\n          ),\n          accountKeyIndexes: instruction.accountKeyIndexes,\n          encodedDataLength: new Uint8Array(encodedDataLength),\n          data: instruction.data,\n        },\n        serializedInstructions,\n        serializedLength,\n      );\n    }\n\n    return serializedInstructions.slice(0, serializedLength);\n  }\n\n  private serializeAddressTableLookups(): Uint8Array {\n    let serializedLength = 0;\n    const serializedAddressTableLookups = new Uint8Array(PACKET_DATA_SIZE);\n    for (const lookup of this.addressTableLookups) {\n      const encodedWritableIndexesLength = Array<number>();\n      shortvec.encodeLength(\n        encodedWritableIndexesLength,\n        lookup.writableIndexes.length,\n      );\n\n      const encodedReadonlyIndexesLength = Array<number>();\n      shortvec.encodeLength(\n        encodedReadonlyIndexesLength,\n        lookup.readonlyIndexes.length,\n      );\n\n      const addressTableLookupLayout = BufferLayout.struct<{\n        accountKey: Uint8Array;\n        encodedWritableIndexesLength: Uint8Array;\n        writableIndexes: number[];\n        encodedReadonlyIndexesLength: Uint8Array;\n        readonlyIndexes: number[];\n      }>([\n        Layout.publicKey('accountKey'),\n        BufferLayout.blob(\n          encodedWritableIndexesLength.length,\n          'encodedWritableIndexesLength',\n        ),\n        BufferLayout.seq(\n          BufferLayout.u8(),\n          lookup.writableIndexes.length,\n          'writableIndexes',\n        ),\n        BufferLayout.blob(\n          encodedReadonlyIndexesLength.length,\n          'encodedReadonlyIndexesLength',\n        ),\n        BufferLayout.seq(\n          BufferLayout.u8(),\n          lookup.readonlyIndexes.length,\n          'readonlyIndexes',\n        ),\n      ]);\n\n      serializedLength += addressTableLookupLayout.encode(\n        {\n          accountKey: lookup.accountKey.toBytes(),\n          encodedWritableIndexesLength: new Uint8Array(\n            encodedWritableIndexesLength,\n          ),\n          writableIndexes: lookup.writableIndexes,\n          encodedReadonlyIndexesLength: new Uint8Array(\n            encodedReadonlyIndexesLength,\n          ),\n          readonlyIndexes: lookup.readonlyIndexes,\n        },\n        serializedAddressTableLookups,\n        serializedLength,\n      );\n    }\n\n    return serializedAddressTableLookups.slice(0, serializedLength);\n  }\n\n  static deserialize(serializedMessage: Uint8Array): MessageV0 {\n    let byteArray = [...serializedMessage];\n\n    const prefix = guardedShift(byteArray);\n    const maskedPrefix = prefix & VERSION_PREFIX_MASK;\n    assert(\n      prefix !== maskedPrefix,\n      `Expected versioned message but received legacy message`,\n    );\n\n    const version = maskedPrefix;\n    assert(\n      version === 0,\n      `Expected versioned message with version 0 but found version ${version}`,\n    );\n\n    const header: MessageHeader = {\n      numRequiredSignatures: guardedShift(byteArray),\n      numReadonlySignedAccounts: guardedShift(byteArray),\n      numReadonlyUnsignedAccounts: guardedShift(byteArray),\n    };\n\n    const staticAccountKeys = [];\n    const staticAccountKeysLength = shortvec.decodeLength(byteArray);\n    for (let i = 0; i < staticAccountKeysLength; i++) {\n      staticAccountKeys.push(\n        new PublicKey(guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH)),\n      );\n    }\n\n    const recentBlockhash = bs58.encode(\n      guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH),\n    );\n\n    const instructionCount = shortvec.decodeLength(byteArray);\n    const compiledInstructions: MessageCompiledInstruction[] = [];\n    for (let i = 0; i < instructionCount; i++) {\n      const programIdIndex = guardedShift(byteArray);\n      const accountKeyIndexesLength = shortvec.decodeLength(byteArray);\n      const accountKeyIndexes = guardedSplice(\n        byteArray,\n        0,\n        accountKeyIndexesLength,\n      );\n      const dataLength = shortvec.decodeLength(byteArray);\n      const data = new Uint8Array(guardedSplice(byteArray, 0, dataLength));\n      compiledInstructions.push({\n        programIdIndex,\n        accountKeyIndexes,\n        data,\n      });\n    }\n\n    const addressTableLookupsCount = shortvec.decodeLength(byteArray);\n    const addressTableLookups: MessageAddressTableLookup[] = [];\n    for (let i = 0; i < addressTableLookupsCount; i++) {\n      const accountKey = new PublicKey(\n        guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH),\n      );\n      const writableIndexesLength = shortvec.decodeLength(byteArray);\n      const writableIndexes = guardedSplice(\n        byteArray,\n        0,\n        writableIndexesLength,\n      );\n      const readonlyIndexesLength = shortvec.decodeLength(byteArray);\n      const readonlyIndexes = guardedSplice(\n        byteArray,\n        0,\n        readonlyIndexesLength,\n      );\n      addressTableLookups.push({\n        accountKey,\n        writableIndexes,\n        readonlyIndexes,\n      });\n    }\n\n    return new MessageV0({\n      header,\n      staticAccountKeys,\n      recentBlockhash,\n      compiledInstructions,\n      addressTableLookups,\n    });\n  }\n}\n","import {VERSION_PREFIX_MASK} from '../transaction/constants';\nimport {Message} from './legacy';\nimport {MessageV0} from './v0';\n\nexport type VersionedMessage = Message | MessageV0;\n// eslint-disable-next-line no-redeclare\nexport const VersionedMessage = {\n  deserializeMessageVersion(serializedMessage: Uint8Array): 'legacy' | number {\n    const prefix = serializedMessage[0];\n    const maskedPrefix = prefix & VERSION_PREFIX_MASK;\n\n    // if the highest bit of the prefix is not set, the message is not versioned\n    if (maskedPrefix === prefix) {\n      return 'legacy';\n    }\n\n    // the lower 7 bits of the prefix indicate the message version\n    return maskedPrefix;\n  },\n\n  deserialize: (serializedMessage: Uint8Array): VersionedMessage => {\n    const version =\n      VersionedMessage.deserializeMessageVersion(serializedMessage);\n    if (version === 'legacy') {\n      return Message.from(serializedMessage);\n    }\n\n    if (version === 0) {\n      return MessageV0.deserialize(serializedMessage);\n    } else {\n      throw new Error(\n        `Transaction message version ${version} deserialization is not supported`,\n      );\n    }\n  },\n};\n","import bs58 from 'bs58';\nimport {Buffer} from 'buffer';\n\nimport {PACKET_DATA_SIZE, SIGNATURE_LENGTH_IN_BYTES} from './constants';\nimport {Connection} from '../connection';\nimport {Message} from '../message';\nimport {PublicKey} from '../publickey';\nimport * as shortvec from '../utils/shortvec-encoding';\nimport {toBuffer} from '../utils/to-buffer';\nimport invariant from '../utils/assert';\nimport type {Signer} from '../keypair';\nimport type {Blockhash} from '../blockhash';\nimport type {CompiledInstruction} from '../message';\nimport {sign, verify} from '../utils/ed25519';\nimport {guardedSplice} from '../utils/guarded-array-utils';\n\n/** @internal */\ntype MessageSignednessErrors = {\n  invalid?: PublicKey[];\n  missing?: PublicKey[];\n};\n\n/**\n * Transaction signature as base-58 encoded string\n */\nexport type TransactionSignature = string;\n\nexport const enum TransactionStatus {\n  BLOCKHEIGHT_EXCEEDED,\n  PROCESSED,\n  TIMED_OUT,\n  NONCE_INVALID,\n}\n\n/**\n * Default (empty) signature\n */\nconst DEFAULT_SIGNATURE = Buffer.alloc(SIGNATURE_LENGTH_IN_BYTES).fill(0);\n\n/**\n * Account metadata used to define instructions\n */\nexport type AccountMeta = {\n  /** An account's public key */\n  pubkey: PublicKey;\n  /** True if an instruction requires a transaction signature matching `pubkey` */\n  isSigner: boolean;\n  /** True if the `pubkey` can be loaded as a read-write account. */\n  isWritable: boolean;\n};\n\n/**\n * List of TransactionInstruction object fields that may be initialized at construction\n */\nexport type TransactionInstructionCtorFields = {\n  keys: Array<AccountMeta>;\n  programId: PublicKey;\n  data?: Buffer;\n};\n\n/**\n * Configuration object for Transaction.serialize()\n */\nexport type SerializeConfig = {\n  /** Require all transaction signatures be present (default: true) */\n  requireAllSignatures?: boolean;\n  /** Verify provided signatures (default: true) */\n  verifySignatures?: boolean;\n};\n\n/**\n * @internal\n */\nexport interface TransactionInstructionJSON {\n  keys: {\n    pubkey: string;\n    isSigner: boolean;\n    isWritable: boolean;\n  }[];\n  programId: string;\n  data: number[];\n}\n\n/**\n * Transaction Instruction class\n */\nexport class TransactionInstruction {\n  /**\n   * Public keys to include in this transaction\n   * Boolean represents whether this pubkey needs to sign the transaction\n   */\n  keys: Array<AccountMeta>;\n\n  /**\n   * Program Id to execute\n   */\n  programId: PublicKey;\n\n  /**\n   * Program input\n   */\n  data: Buffer = Buffer.alloc(0);\n\n  constructor(opts: TransactionInstructionCtorFields) {\n    this.programId = opts.programId;\n    this.keys = opts.keys;\n    if (opts.data) {\n      this.data = opts.data;\n    }\n  }\n\n  /**\n   * @internal\n   */\n  toJSON(): TransactionInstructionJSON {\n    return {\n      keys: this.keys.map(({pubkey, isSigner, isWritable}) => ({\n        pubkey: pubkey.toJSON(),\n        isSigner,\n        isWritable,\n      })),\n      programId: this.programId.toJSON(),\n      data: [...this.data],\n    };\n  }\n}\n\n/**\n * Pair of signature and corresponding public key\n */\nexport type SignaturePubkeyPair = {\n  signature: Buffer | null;\n  publicKey: PublicKey;\n};\n\n/**\n * List of Transaction object fields that may be initialized at construction\n */\nexport type TransactionCtorFields_DEPRECATED = {\n  /** Optional nonce information used for offline nonce'd transactions */\n  nonceInfo?: NonceInformation | null;\n  /** The transaction fee payer */\n  feePayer?: PublicKey | null;\n  /** One or more signatures */\n  signatures?: Array<SignaturePubkeyPair>;\n  /** A recent blockhash */\n  recentBlockhash?: Blockhash;\n};\n\n// For backward compatibility; an unfortunate consequence of being\n// forced to over-export types by the documentation generator.\n// See https://github.com/solana-labs/solana/pull/25820\nexport type TransactionCtorFields = TransactionCtorFields_DEPRECATED;\n\n/**\n * Blockhash-based transactions have a lifetime that are defined by\n * the blockhash they include. Any transaction whose blockhash is\n * too old will be rejected.\n */\nexport type TransactionBlockhashCtor = {\n  /** The transaction fee payer */\n  feePayer?: PublicKey | null;\n  /** One or more signatures */\n  signatures?: Array<SignaturePubkeyPair>;\n  /** A recent blockhash */\n  blockhash: Blockhash;\n  /** the last block chain can advance to before tx is declared expired */\n  lastValidBlockHeight: number;\n};\n\n/**\n * Use these options to construct a durable nonce transaction.\n */\nexport type TransactionNonceCtor = {\n  /** The transaction fee payer */\n  feePayer?: PublicKey | null;\n  minContextSlot: number;\n  nonceInfo: NonceInformation;\n  /** One or more signatures */\n  signatures?: Array<SignaturePubkeyPair>;\n};\n\n/**\n * Nonce information to be used to build an offline Transaction.\n */\nexport type NonceInformation = {\n  /** The current blockhash stored in the nonce */\n  nonce: Blockhash;\n  /** AdvanceNonceAccount Instruction */\n  nonceInstruction: TransactionInstruction;\n};\n\n/**\n * @internal\n */\nexport interface TransactionJSON {\n  recentBlockhash: string | null;\n  feePayer: string | null;\n  nonceInfo: {\n    nonce: string;\n    nonceInstruction: TransactionInstructionJSON;\n  } | null;\n  instructions: TransactionInstructionJSON[];\n  signers: string[];\n}\n\n/**\n * Transaction class\n */\nexport class Transaction {\n  /**\n   * Signatures for the transaction.  Typically created by invoking the\n   * `sign()` method\n   */\n  signatures: Array<SignaturePubkeyPair> = [];\n\n  /**\n   * The first (payer) Transaction signature\n   *\n   * @returns {Buffer | null} Buffer of payer's signature\n   */\n  get signature(): Buffer | null {\n    if (this.signatures.length > 0) {\n      return this.signatures[0].signature;\n    }\n    return null;\n  }\n\n  /**\n   * The transaction fee payer\n   */\n  feePayer?: PublicKey;\n\n  /**\n   * The instructions to atomically execute\n   */\n  instructions: Array<TransactionInstruction> = [];\n\n  /**\n   * A recent transaction id. Must be populated by the caller\n   */\n  recentBlockhash?: Blockhash;\n\n  /**\n   * the last block chain can advance to before tx is declared expired\n   * */\n  lastValidBlockHeight?: number;\n\n  /**\n   * Optional Nonce information. If populated, transaction will use a durable\n   * Nonce hash instead of a recentBlockhash. Must be populated by the caller\n   */\n  nonceInfo?: NonceInformation;\n\n  /**\n   * If this is a nonce transaction this represents the minimum slot from which\n   * to evaluate if the nonce has advanced when attempting to confirm the\n   * transaction. This protects against a case where the transaction confirmation\n   * logic loads the nonce account from an old slot and assumes the mismatch in\n   * nonce value implies that the nonce has been advanced.\n   */\n  minNonceContextSlot?: number;\n\n  /**\n   * @internal\n   */\n  _message?: Message;\n\n  /**\n   * @internal\n   */\n  _json?: TransactionJSON;\n\n  // Construct a transaction with a blockhash and lastValidBlockHeight\n  constructor(opts?: TransactionBlockhashCtor);\n\n  // Construct a transaction using a durable nonce\n  constructor(opts?: TransactionNonceCtor);\n\n  /**\n   * @deprecated `TransactionCtorFields` has been deprecated and will be removed in a future version.\n   * Please supply a `TransactionBlockhashCtor` instead.\n   */\n  constructor(opts?: TransactionCtorFields_DEPRECATED);\n\n  /**\n   * Construct an empty Transaction\n   */\n  constructor(\n    opts?:\n      | TransactionBlockhashCtor\n      | TransactionNonceCtor\n      | TransactionCtorFields_DEPRECATED,\n  ) {\n    if (!opts) {\n      return;\n    }\n    if (opts.feePayer) {\n      this.feePayer = opts.feePayer;\n    }\n    if (opts.signatures) {\n      this.signatures = opts.signatures;\n    }\n    if (Object.prototype.hasOwnProperty.call(opts, 'nonceInfo')) {\n      const {minContextSlot, nonceInfo} = opts as TransactionNonceCtor;\n      this.minNonceContextSlot = minContextSlot;\n      this.nonceInfo = nonceInfo;\n    } else if (\n      Object.prototype.hasOwnProperty.call(opts, 'lastValidBlockHeight')\n    ) {\n      const {blockhash, lastValidBlockHeight} =\n        opts as TransactionBlockhashCtor;\n      this.recentBlockhash = blockhash;\n      this.lastValidBlockHeight = lastValidBlockHeight;\n    } else {\n      const {recentBlockhash, nonceInfo} =\n        opts as TransactionCtorFields_DEPRECATED;\n      if (nonceInfo) {\n        this.nonceInfo = nonceInfo;\n      }\n      this.recentBlockhash = recentBlockhash;\n    }\n  }\n\n  /**\n   * @internal\n   */\n  toJSON(): TransactionJSON {\n    return {\n      recentBlockhash: this.recentBlockhash || null,\n      feePayer: this.feePayer ? this.feePayer.toJSON() : null,\n      nonceInfo: this.nonceInfo\n        ? {\n            nonce: this.nonceInfo.nonce,\n            nonceInstruction: this.nonceInfo.nonceInstruction.toJSON(),\n          }\n        : null,\n      instructions: this.instructions.map(instruction => instruction.toJSON()),\n      signers: this.signatures.map(({publicKey}) => {\n        return publicKey.toJSON();\n      }),\n    };\n  }\n\n  /**\n   * Add one or more instructions to this Transaction\n   *\n   * @param {Array< Transaction | TransactionInstruction | TransactionInstructionCtorFields >} items - Instructions to add to the Transaction\n   */\n  add(\n    ...items: Array<\n      Transaction | TransactionInstruction | TransactionInstructionCtorFields\n    >\n  ): Transaction {\n    if (items.length === 0) {\n      throw new Error('No instructions');\n    }\n\n    items.forEach((item: any) => {\n      if ('instructions' in item) {\n        this.instructions = this.instructions.concat(item.instructions);\n      } else if ('data' in item && 'programId' in item && 'keys' in item) {\n        this.instructions.push(item);\n      } else {\n        this.instructions.push(new TransactionInstruction(item));\n      }\n    });\n    return this;\n  }\n\n  /**\n   * Compile transaction data\n   */\n  compileMessage(): Message {\n    if (\n      this._message &&\n      JSON.stringify(this.toJSON()) === JSON.stringify(this._json)\n    ) {\n      return this._message;\n    }\n\n    let recentBlockhash;\n    let instructions: TransactionInstruction[];\n    if (this.nonceInfo) {\n      recentBlockhash = this.nonceInfo.nonce;\n      if (this.instructions[0] != this.nonceInfo.nonceInstruction) {\n        instructions = [this.nonceInfo.nonceInstruction, ...this.instructions];\n      } else {\n        instructions = this.instructions;\n      }\n    } else {\n      recentBlockhash = this.recentBlockhash;\n      instructions = this.instructions;\n    }\n    if (!recentBlockhash) {\n      throw new Error('Transaction recentBlockhash required');\n    }\n\n    if (instructions.length < 1) {\n      console.warn('No instructions provided');\n    }\n\n    let feePayer: PublicKey;\n    if (this.feePayer) {\n      feePayer = this.feePayer;\n    } else if (this.signatures.length > 0 && this.signatures[0].publicKey) {\n      // Use implicit fee payer\n      feePayer = this.signatures[0].publicKey;\n    } else {\n      throw new Error('Transaction fee payer required');\n    }\n\n    for (let i = 0; i < instructions.length; i++) {\n      if (instructions[i].programId === undefined) {\n        throw new Error(\n          `Transaction instruction index ${i} has undefined program id`,\n        );\n      }\n    }\n\n    const programIds: string[] = [];\n    const accountMetas: AccountMeta[] = [];\n    instructions.forEach(instruction => {\n      instruction.keys.forEach(accountMeta => {\n        accountMetas.push({...accountMeta});\n      });\n\n      const programId = instruction.programId.toString();\n      if (!programIds.includes(programId)) {\n        programIds.push(programId);\n      }\n    });\n\n    // Append programID account metas\n    programIds.forEach(programId => {\n      accountMetas.push({\n        pubkey: new PublicKey(programId),\n        isSigner: false,\n        isWritable: false,\n      });\n    });\n\n    // Cull duplicate account metas\n    const uniqueMetas: AccountMeta[] = [];\n    accountMetas.forEach(accountMeta => {\n      const pubkeyString = accountMeta.pubkey.toString();\n      const uniqueIndex = uniqueMetas.findIndex(x => {\n        return x.pubkey.toString() === pubkeyString;\n      });\n      if (uniqueIndex > -1) {\n        uniqueMetas[uniqueIndex].isWritable =\n          uniqueMetas[uniqueIndex].isWritable || accountMeta.isWritable;\n        uniqueMetas[uniqueIndex].isSigner =\n          uniqueMetas[uniqueIndex].isSigner || accountMeta.isSigner;\n      } else {\n        uniqueMetas.push(accountMeta);\n      }\n    });\n\n    // Sort. Prioritizing first by signer, then by writable\n    uniqueMetas.sort(function (x, y) {\n      if (x.isSigner !== y.isSigner) {\n        // Signers always come before non-signers\n        return x.isSigner ? -1 : 1;\n      }\n      if (x.isWritable !== y.isWritable) {\n        // Writable accounts always come before read-only accounts\n        return x.isWritable ? -1 : 1;\n      }\n      // Otherwise, sort by pubkey, stringwise.\n      const options = {\n        localeMatcher: 'best fit',\n        usage: 'sort',\n        sensitivity: 'variant',\n        ignorePunctuation: false,\n        numeric: false,\n        caseFirst: 'lower',\n      } as Intl.CollatorOptions;\n      return x.pubkey\n        .toBase58()\n        .localeCompare(y.pubkey.toBase58(), 'en', options);\n    });\n\n    // Move fee payer to the front\n    const feePayerIndex = uniqueMetas.findIndex(x => {\n      return x.pubkey.equals(feePayer);\n    });\n    if (feePayerIndex > -1) {\n      const [payerMeta] = uniqueMetas.splice(feePayerIndex, 1);\n      payerMeta.isSigner = true;\n      payerMeta.isWritable = true;\n      uniqueMetas.unshift(payerMeta);\n    } else {\n      uniqueMetas.unshift({\n        pubkey: feePayer,\n        isSigner: true,\n        isWritable: true,\n      });\n    }\n\n    // Disallow unknown signers\n    for (const signature of this.signatures) {\n      const uniqueIndex = uniqueMetas.findIndex(x => {\n        return x.pubkey.equals(signature.publicKey);\n      });\n      if (uniqueIndex > -1) {\n        if (!uniqueMetas[uniqueIndex].isSigner) {\n          uniqueMetas[uniqueIndex].isSigner = true;\n          console.warn(\n            'Transaction references a signature that is unnecessary, ' +\n              'only the fee payer and instruction signer accounts should sign a transaction. ' +\n              'This behavior is deprecated and will throw an error in the next major version release.',\n          );\n        }\n      } else {\n        throw new Error(`unknown signer: ${signature.publicKey.toString()}`);\n      }\n    }\n\n    let numRequiredSignatures = 0;\n    let numReadonlySignedAccounts = 0;\n    let numReadonlyUnsignedAccounts = 0;\n\n    // Split out signing from non-signing keys and count header values\n    const signedKeys: string[] = [];\n    const unsignedKeys: string[] = [];\n    uniqueMetas.forEach(({pubkey, isSigner, isWritable}) => {\n      if (isSigner) {\n        signedKeys.push(pubkey.toString());\n        numRequiredSignatures += 1;\n        if (!isWritable) {\n          numReadonlySignedAccounts += 1;\n        }\n      } else {\n        unsignedKeys.push(pubkey.toString());\n        if (!isWritable) {\n          numReadonlyUnsignedAccounts += 1;\n        }\n      }\n    });\n\n    const accountKeys = signedKeys.concat(unsignedKeys);\n    const compiledInstructions: CompiledInstruction[] = instructions.map(\n      instruction => {\n        const {data, programId} = instruction;\n        return {\n          programIdIndex: accountKeys.indexOf(programId.toString()),\n          accounts: instruction.keys.map(meta =>\n            accountKeys.indexOf(meta.pubkey.toString()),\n          ),\n          data: bs58.encode(data),\n        };\n      },\n    );\n\n    compiledInstructions.forEach(instruction => {\n      invariant(instruction.programIdIndex >= 0);\n      instruction.accounts.forEach(keyIndex => invariant(keyIndex >= 0));\n    });\n\n    return new Message({\n      header: {\n        numRequiredSignatures,\n        numReadonlySignedAccounts,\n        numReadonlyUnsignedAccounts,\n      },\n      accountKeys,\n      recentBlockhash,\n      instructions: compiledInstructions,\n    });\n  }\n\n  /**\n   * @internal\n   */\n  _compile(): Message {\n    const message = this.compileMessage();\n    const signedKeys = message.accountKeys.slice(\n      0,\n      message.header.numRequiredSignatures,\n    );\n\n    if (this.signatures.length === signedKeys.length) {\n      const valid = this.signatures.every((pair, index) => {\n        return signedKeys[index].equals(pair.publicKey);\n      });\n\n      if (valid) return message;\n    }\n\n    this.signatures = signedKeys.map(publicKey => ({\n      signature: null,\n      publicKey,\n    }));\n\n    return message;\n  }\n\n  /**\n   * Get a buffer of the Transaction data that need to be covered by signatures\n   */\n  serializeMessage(): Buffer {\n    return this._compile().serialize();\n  }\n\n  /**\n   * Get the estimated fee associated with a transaction\n   *\n   * @param {Connection} connection Connection to RPC Endpoint.\n   *\n   * @returns {Promise<number | null>} The estimated fee for the transaction\n   */\n  async getEstimatedFee(connection: Connection): Promise<number | null> {\n    return (await connection.getFeeForMessage(this.compileMessage())).value;\n  }\n\n  /**\n   * Specify the public keys which will be used to sign the Transaction.\n   * The first signer will be used as the transaction fee payer account.\n   *\n   * Signatures can be added with either `partialSign` or `addSignature`\n   *\n   * @deprecated Deprecated since v0.84.0. Only the fee payer needs to be\n   * specified and it can be set in the Transaction constructor or with the\n   * `feePayer` property.\n   */\n  setSigners(...signers: Array<PublicKey>) {\n    if (signers.length === 0) {\n      throw new Error('No signers');\n    }\n\n    const seen = new Set();\n    this.signatures = signers\n      .filter(publicKey => {\n        const key = publicKey.toString();\n        if (seen.has(key)) {\n          return false;\n        } else {\n          seen.add(key);\n          return true;\n        }\n      })\n      .map(publicKey => ({signature: null, publicKey}));\n  }\n\n  /**\n   * Sign the Transaction with the specified signers. Multiple signatures may\n   * be applied to a Transaction. The first signature is considered \"primary\"\n   * and is used identify and confirm transactions.\n   *\n   * If the Transaction `feePayer` is not set, the first signer will be used\n   * as the transaction fee payer account.\n   *\n   * Transaction fields should not be modified after the first call to `sign`,\n   * as doing so may invalidate the signature and cause the Transaction to be\n   * rejected.\n   *\n   * The Transaction must be assigned a valid `recentBlockhash` before invoking this method\n   *\n   * @param {Array<Signer>} signers Array of signers that will sign the transaction\n   */\n  sign(...signers: Array<Signer>) {\n    if (signers.length === 0) {\n      throw new Error('No signers');\n    }\n\n    // Dedupe signers\n    const seen = new Set();\n    const uniqueSigners = [];\n    for (const signer of signers) {\n      const key = signer.publicKey.toString();\n      if (seen.has(key)) {\n        continue;\n      } else {\n        seen.add(key);\n        uniqueSigners.push(signer);\n      }\n    }\n\n    this.signatures = uniqueSigners.map(signer => ({\n      signature: null,\n      publicKey: signer.publicKey,\n    }));\n\n    const message = this._compile();\n    this._partialSign(message, ...uniqueSigners);\n  }\n\n  /**\n   * Partially sign a transaction with the specified accounts. All accounts must\n   * correspond to either the fee payer or a signer account in the transaction\n   * instructions.\n   *\n   * All the caveats from the `sign` method apply to `partialSign`\n   *\n   * @param {Array<Signer>} signers Array of signers that will sign the transaction\n   */\n  partialSign(...signers: Array<Signer>) {\n    if (signers.length === 0) {\n      throw new Error('No signers');\n    }\n\n    // Dedupe signers\n    const seen = new Set();\n    const uniqueSigners = [];\n    for (const signer of signers) {\n      const key = signer.publicKey.toString();\n      if (seen.has(key)) {\n        continue;\n      } else {\n        seen.add(key);\n        uniqueSigners.push(signer);\n      }\n    }\n\n    const message = this._compile();\n    this._partialSign(message, ...uniqueSigners);\n  }\n\n  /**\n   * @internal\n   */\n  _partialSign(message: Message, ...signers: Array<Signer>) {\n    const signData = message.serialize();\n    signers.forEach(signer => {\n      const signature = sign(signData, signer.secretKey);\n      this._addSignature(signer.publicKey, toBuffer(signature));\n    });\n  }\n\n  /**\n   * Add an externally created signature to a transaction. The public key\n   * must correspond to either the fee payer or a signer account in the transaction\n   * instructions.\n   *\n   * @param {PublicKey} pubkey Public key that will be added to the transaction.\n   * @param {Buffer} signature An externally created signature to add to the transaction.\n   */\n  addSignature(pubkey: PublicKey, signature: Buffer) {\n    this._compile(); // Ensure signatures array is populated\n    this._addSignature(pubkey, signature);\n  }\n\n  /**\n   * @internal\n   */\n  _addSignature(pubkey: PublicKey, signature: Buffer) {\n    invariant(signature.length === 64);\n\n    const index = this.signatures.findIndex(sigpair =>\n      pubkey.equals(sigpair.publicKey),\n    );\n    if (index < 0) {\n      throw new Error(`unknown signer: ${pubkey.toString()}`);\n    }\n\n    this.signatures[index].signature = Buffer.from(signature);\n  }\n\n  /**\n   * Verify signatures of a Transaction\n   * Optional parameter specifies if we're expecting a fully signed Transaction or a partially signed one.\n   * If no boolean is provided, we expect a fully signed Transaction by default.\n   *\n   * @param {boolean} [requireAllSignatures=true] Require a fully signed Transaction\n   */\n  verifySignatures(requireAllSignatures: boolean = true): boolean {\n    const signatureErrors = this._getMessageSignednessErrors(\n      this.serializeMessage(),\n      requireAllSignatures,\n    );\n    return !signatureErrors;\n  }\n\n  /**\n   * @internal\n   */\n  _getMessageSignednessErrors(\n    message: Uint8Array,\n    requireAllSignatures: boolean,\n  ): MessageSignednessErrors | undefined {\n    const errors: MessageSignednessErrors = {};\n    for (const {signature, publicKey} of this.signatures) {\n      if (signature === null) {\n        if (requireAllSignatures) {\n          (errors.missing ||= []).push(publicKey);\n        }\n      } else {\n        if (!verify(signature, message, publicKey.toBytes())) {\n          (errors.invalid ||= []).push(publicKey);\n        }\n      }\n    }\n    return errors.invalid || errors.missing ? errors : undefined;\n  }\n\n  /**\n   * Serialize the Transaction in the wire format.\n   *\n   * @param {Buffer} [config] Config of transaction.\n   *\n   * @returns {Buffer} Signature of transaction in wire format.\n   */\n  serialize(config?: SerializeConfig): Buffer {\n    const {requireAllSignatures, verifySignatures} = Object.assign(\n      {requireAllSignatures: true, verifySignatures: true},\n      config,\n    );\n\n    const signData = this.serializeMessage();\n    if (verifySignatures) {\n      const sigErrors = this._getMessageSignednessErrors(\n        signData,\n        requireAllSignatures,\n      );\n      if (sigErrors) {\n        let errorMessage = 'Signature verification failed.';\n        if (sigErrors.invalid) {\n          errorMessage += `\\nInvalid signature for public key${\n            sigErrors.invalid.length === 1 ? '' : '(s)'\n          } [\\`${sigErrors.invalid.map(p => p.toBase58()).join('`, `')}\\`].`;\n        }\n        if (sigErrors.missing) {\n          errorMessage += `\\nMissing signature for public key${\n            sigErrors.missing.length === 1 ? '' : '(s)'\n          } [\\`${sigErrors.missing.map(p => p.toBase58()).join('`, `')}\\`].`;\n        }\n        throw new Error(errorMessage);\n      }\n    }\n\n    return this._serialize(signData);\n  }\n\n  /**\n   * @internal\n   */\n  _serialize(signData: Buffer): Buffer {\n    const {signatures} = this;\n    const signatureCount: number[] = [];\n    shortvec.encodeLength(signatureCount, signatures.length);\n    const transactionLength =\n      signatureCount.length + signatures.length * 64 + signData.length;\n    const wireTransaction = Buffer.alloc(transactionLength);\n    invariant(signatures.length < 256);\n    Buffer.from(signatureCount).copy(wireTransaction, 0);\n    signatures.forEach(({signature}, index) => {\n      if (signature !== null) {\n        invariant(signature.length === 64, `signature has invalid length`);\n        Buffer.from(signature).copy(\n          wireTransaction,\n          signatureCount.length + index * 64,\n        );\n      }\n    });\n    signData.copy(\n      wireTransaction,\n      signatureCount.length + signatures.length * 64,\n    );\n    invariant(\n      wireTransaction.length <= PACKET_DATA_SIZE,\n      `Transaction too large: ${wireTransaction.length} > ${PACKET_DATA_SIZE}`,\n    );\n    return wireTransaction;\n  }\n\n  /**\n   * Deprecated method\n   * @internal\n   */\n  get keys(): Array<PublicKey> {\n    invariant(this.instructions.length === 1);\n    return this.instructions[0].keys.map(keyObj => keyObj.pubkey);\n  }\n\n  /**\n   * Deprecated method\n   * @internal\n   */\n  get programId(): PublicKey {\n    invariant(this.instructions.length === 1);\n    return this.instructions[0].programId;\n  }\n\n  /**\n   * Deprecated method\n   * @internal\n   */\n  get data(): Buffer {\n    invariant(this.instructions.length === 1);\n    return this.instructions[0].data;\n  }\n\n  /**\n   * Parse a wire transaction into a Transaction object.\n   *\n   * @param {Buffer | Uint8Array | Array<number>} buffer Signature of wire Transaction\n   *\n   * @returns {Transaction} Transaction associated with the signature\n   */\n  static from(buffer: Buffer | Uint8Array | Array<number>): Transaction {\n    // Slice up wire data\n    let byteArray = [...buffer];\n\n    const signatureCount = shortvec.decodeLength(byteArray);\n    let signatures = [];\n    for (let i = 0; i < signatureCount; i++) {\n      const signature = guardedSplice(byteArray, 0, SIGNATURE_LENGTH_IN_BYTES);\n      signatures.push(bs58.encode(Buffer.from(signature)));\n    }\n\n    return Transaction.populate(Message.from(byteArray), signatures);\n  }\n\n  /**\n   * Populate Transaction object from message and signatures\n   *\n   * @param {Message} message Message of transaction\n   * @param {Array<string>} signatures List of signatures to assign to the transaction\n   *\n   * @returns {Transaction} The populated Transaction\n   */\n  static populate(\n    message: Message,\n    signatures: Array<string> = [],\n  ): Transaction {\n    const transaction = new Transaction();\n    transaction.recentBlockhash = message.recentBlockhash;\n    if (message.header.numRequiredSignatures > 0) {\n      transaction.feePayer = message.accountKeys[0];\n    }\n    signatures.forEach((signature, index) => {\n      const sigPubkeyPair = {\n        signature:\n          signature == bs58.encode(DEFAULT_SIGNATURE)\n            ? null\n            : bs58.decode(signature),\n        publicKey: message.accountKeys[index],\n      };\n      transaction.signatures.push(sigPubkeyPair);\n    });\n\n    message.instructions.forEach(instruction => {\n      const keys = instruction.accounts.map(account => {\n        const pubkey = message.accountKeys[account];\n        return {\n          pubkey,\n          isSigner:\n            transaction.signatures.some(\n              keyObj => keyObj.publicKey.toString() === pubkey.toString(),\n            ) || message.isAccountSigner(account),\n          isWritable: message.isAccountWritable(account),\n        };\n      });\n\n      transaction.instructions.push(\n        new TransactionInstruction({\n          keys,\n          programId: message.accountKeys[instruction.programIdIndex],\n          data: bs58.decode(instruction.data),\n        }),\n      );\n    });\n\n    transaction._message = message;\n    transaction._json = transaction.toJSON();\n\n    return transaction;\n  }\n}\n","import {AccountKeysFromLookups} from '../message/account-keys';\nimport assert from '../utils/assert';\nimport {toBuffer} from '../utils/to-buffer';\nimport {Blockhash} from '../blockhash';\nimport {Message, MessageV0, VersionedMessage} from '../message';\nimport {PublicKey} from '../publickey';\nimport {AddressLookupTableAccount} from '../programs';\nimport {AccountMeta, TransactionInstruction} from './legacy';\n\nexport type TransactionMessageArgs = {\n  payerKey: PublicKey;\n  instructions: Array<TransactionInstruction>;\n  recentBlockhash: Blockhash;\n};\n\nexport type DecompileArgs =\n  | {\n      accountKeysFromLookups: AccountKeysFromLookups;\n    }\n  | {\n      addressLookupTableAccounts: AddressLookupTableAccount[];\n    };\n\nexport class TransactionMessage {\n  payerKey: PublicKey;\n  instructions: Array<TransactionInstruction>;\n  recentBlockhash: Blockhash;\n\n  constructor(args: TransactionMessageArgs) {\n    this.payerKey = args.payerKey;\n    this.instructions = args.instructions;\n    this.recentBlockhash = args.recentBlockhash;\n  }\n\n  static decompile(\n    message: VersionedMessage,\n    args?: DecompileArgs,\n  ): TransactionMessage {\n    const {header, compiledInstructions, recentBlockhash} = message;\n\n    const {\n      numRequiredSignatures,\n      numReadonlySignedAccounts,\n      numReadonlyUnsignedAccounts,\n    } = header;\n\n    const numWritableSignedAccounts =\n      numRequiredSignatures - numReadonlySignedAccounts;\n    assert(numWritableSignedAccounts > 0, 'Message header is invalid');\n\n    const numWritableUnsignedAccounts =\n      message.staticAccountKeys.length -\n      numRequiredSignatures -\n      numReadonlyUnsignedAccounts;\n    assert(numWritableUnsignedAccounts >= 0, 'Message header is invalid');\n\n    const accountKeys = message.getAccountKeys(args);\n    const payerKey = accountKeys.get(0);\n    if (payerKey === undefined) {\n      throw new Error(\n        'Failed to decompile message because no account keys were found',\n      );\n    }\n\n    const instructions: TransactionInstruction[] = [];\n    for (const compiledIx of compiledInstructions) {\n      const keys: AccountMeta[] = [];\n\n      for (const keyIndex of compiledIx.accountKeyIndexes) {\n        const pubkey = accountKeys.get(keyIndex);\n        if (pubkey === undefined) {\n          throw new Error(\n            `Failed to find key for account key index ${keyIndex}`,\n          );\n        }\n\n        const isSigner = keyIndex < numRequiredSignatures;\n\n        let isWritable;\n        if (isSigner) {\n          isWritable = keyIndex < numWritableSignedAccounts;\n        } else if (keyIndex < accountKeys.staticAccountKeys.length) {\n          isWritable =\n            keyIndex - numRequiredSignatures < numWritableUnsignedAccounts;\n        } else {\n          isWritable =\n            keyIndex - accountKeys.staticAccountKeys.length <\n            // accountKeysFromLookups cannot be undefined because we already found a pubkey for this index above\n            accountKeys.accountKeysFromLookups!.writable.length;\n        }\n\n        keys.push({\n          pubkey,\n          isSigner: keyIndex < header.numRequiredSignatures,\n          isWritable,\n        });\n      }\n\n      const programId = accountKeys.get(compiledIx.programIdIndex);\n      if (programId === undefined) {\n        throw new Error(\n          `Failed to find program id for program id index ${compiledIx.programIdIndex}`,\n        );\n      }\n\n      instructions.push(\n        new TransactionInstruction({\n          programId,\n          data: toBuffer(compiledIx.data),\n          keys,\n        }),\n      );\n    }\n\n    return new TransactionMessage({\n      payerKey,\n      instructions,\n      recentBlockhash,\n    });\n  }\n\n  compileToLegacyMessage(): Message {\n    return Message.compile({\n      payerKey: this.payerKey,\n      recentBlockhash: this.recentBlockhash,\n      instructions: this.instructions,\n    });\n  }\n\n  compileToV0Message(\n    addressLookupTableAccounts?: AddressLookupTableAccount[],\n  ): MessageV0 {\n    return MessageV0.compile({\n      payerKey: this.payerKey,\n      recentBlockhash: this.recentBlockhash,\n      instructions: this.instructions,\n      addressLookupTableAccounts,\n    });\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {Signer} from '../keypair';\nimport assert from '../utils/assert';\nimport {VersionedMessage} from '../message/versioned';\nimport {SIGNATURE_LENGTH_IN_BYTES} from './constants';\nimport * as shortvec from '../utils/shortvec-encoding';\nimport * as Layout from '../layout';\nimport {sign} from '../utils/ed25519';\nimport {PublicKey} from '../publickey';\nimport {guardedSplice} from '../utils/guarded-array-utils';\n\nexport type TransactionVersion = 'legacy' | 0;\n\n/**\n * Versioned transaction class\n */\nexport class VersionedTransaction {\n  signatures: Array<Uint8Array>;\n  message: VersionedMessage;\n\n  get version(): TransactionVersion {\n    return this.message.version;\n  }\n\n  constructor(message: VersionedMessage, signatures?: Array<Uint8Array>) {\n    if (signatures !== undefined) {\n      assert(\n        signatures.length === message.header.numRequiredSignatures,\n        'Expected signatures length to be equal to the number of required signatures',\n      );\n      this.signatures = signatures;\n    } else {\n      const defaultSignatures = [];\n      for (let i = 0; i < message.header.numRequiredSignatures; i++) {\n        defaultSignatures.push(new Uint8Array(SIGNATURE_LENGTH_IN_BYTES));\n      }\n      this.signatures = defaultSignatures;\n    }\n    this.message = message;\n  }\n\n  serialize(): Uint8Array {\n    const serializedMessage = this.message.serialize();\n\n    const encodedSignaturesLength = Array<number>();\n    shortvec.encodeLength(encodedSignaturesLength, this.signatures.length);\n\n    const transactionLayout = BufferLayout.struct<{\n      encodedSignaturesLength: Uint8Array;\n      signatures: Array<Uint8Array>;\n      serializedMessage: Uint8Array;\n    }>([\n      BufferLayout.blob(\n        encodedSignaturesLength.length,\n        'encodedSignaturesLength',\n      ),\n      BufferLayout.seq(\n        Layout.signature(),\n        this.signatures.length,\n        'signatures',\n      ),\n      BufferLayout.blob(serializedMessage.length, 'serializedMessage'),\n    ]);\n\n    const serializedTransaction = new Uint8Array(2048);\n    const serializedTransactionLength = transactionLayout.encode(\n      {\n        encodedSignaturesLength: new Uint8Array(encodedSignaturesLength),\n        signatures: this.signatures,\n        serializedMessage,\n      },\n      serializedTransaction,\n    );\n\n    return serializedTransaction.slice(0, serializedTransactionLength);\n  }\n\n  static deserialize(serializedTransaction: Uint8Array): VersionedTransaction {\n    let byteArray = [...serializedTransaction];\n\n    const signatures = [];\n    const signaturesLength = shortvec.decodeLength(byteArray);\n    for (let i = 0; i < signaturesLength; i++) {\n      signatures.push(\n        new Uint8Array(guardedSplice(byteArray, 0, SIGNATURE_LENGTH_IN_BYTES)),\n      );\n    }\n\n    const message = VersionedMessage.deserialize(new Uint8Array(byteArray));\n    return new VersionedTransaction(message, signatures);\n  }\n\n  sign(signers: Array<Signer>) {\n    const messageData = this.message.serialize();\n    const signerPubkeys = this.message.staticAccountKeys.slice(\n      0,\n      this.message.header.numRequiredSignatures,\n    );\n    for (const signer of signers) {\n      const signerIndex = signerPubkeys.findIndex(pubkey =>\n        pubkey.equals(signer.publicKey),\n      );\n      assert(\n        signerIndex >= 0,\n        `Cannot sign with non signer key ${signer.publicKey.toBase58()}`,\n      );\n      this.signatures[signerIndex] = sign(messageData, signer.secretKey);\n    }\n  }\n\n  addSignature(publicKey: PublicKey, signature: Uint8Array) {\n    assert(signature.byteLength === 64, 'Signature must be 64 bytes long');\n    const signerPubkeys = this.message.staticAccountKeys.slice(\n      0,\n      this.message.header.numRequiredSignatures,\n    );\n    const signerIndex = signerPubkeys.findIndex(pubkey =>\n      pubkey.equals(publicKey),\n    );\n    assert(\n      signerIndex >= 0,\n      `Can not add signature; \\`${publicKey.toBase58()}\\` is not required to sign this transaction`,\n    );\n    this.signatures[signerIndex] = signature;\n  }\n}\n","// TODO: These constants should be removed in favor of reading them out of a\n// Syscall account\n\n/**\n * @internal\n */\nexport const NUM_TICKS_PER_SECOND = 160;\n\n/**\n * @internal\n */\nexport const DEFAULT_TICKS_PER_SLOT = 64;\n\n/**\n * @internal\n */\nexport const NUM_SLOTS_PER_SECOND =\n  NUM_TICKS_PER_SECOND / DEFAULT_TICKS_PER_SLOT;\n\n/**\n * @internal\n */\nexport const MS_PER_SLOT = 1000 / NUM_SLOTS_PER_SECOND;\n","import {PublicKey} from './publickey';\n\nexport const SYSVAR_CLOCK_PUBKEY = new PublicKey(\n  'SysvarC1ock11111111111111111111111111111111',\n);\n\nexport const SYSVAR_EPOCH_SCHEDULE_PUBKEY = new PublicKey(\n  'SysvarEpochSchedu1e111111111111111111111111',\n);\n\nexport const SYSVAR_INSTRUCTIONS_PUBKEY = new PublicKey(\n  'Sysvar1nstructions1111111111111111111111111',\n);\n\nexport const SYSVAR_RECENT_BLOCKHASHES_PUBKEY = new PublicKey(\n  'SysvarRecentB1ockHashes11111111111111111111',\n);\n\nexport const SYSVAR_RENT_PUBKEY = new PublicKey(\n  'SysvarRent111111111111111111111111111111111',\n);\n\nexport const SYSVAR_REWARDS_PUBKEY = new PublicKey(\n  'SysvarRewards111111111111111111111111111111',\n);\n\nexport const SYSVAR_SLOT_HASHES_PUBKEY = new PublicKey(\n  'SysvarS1otHashes111111111111111111111111111',\n);\n\nexport const SYSVAR_SLOT_HISTORY_PUBKEY = new PublicKey(\n  'SysvarS1otHistory11111111111111111111111111',\n);\n\nexport const SYSVAR_STAKE_HISTORY_PUBKEY = new PublicKey(\n  'SysvarStakeHistory1111111111111111111111111',\n);\n","import {Connection} from './connection';\nimport {TransactionSignature} from './transaction';\n\nexport class SendTransactionError extends Error {\n  private signature: TransactionSignature;\n  private transactionMessage: string;\n  private transactionLogs: string[] | Promise<string[]> | undefined;\n\n  constructor({\n    action,\n    signature,\n    transactionMessage,\n    logs,\n  }: {\n    action: 'send' | 'simulate';\n    signature: TransactionSignature;\n    transactionMessage: string;\n    logs?: string[];\n  }) {\n    const maybeLogsOutput = logs\n      ? `Logs: \\n${JSON.stringify(logs.slice(-10), null, 2)}. `\n      : '';\n    const guideText =\n      '\\nCatch the `SendTransactionError` and call `getLogs()` on it for full details.';\n    let message: string;\n    switch (action) {\n      case 'send':\n        message =\n          `Transaction ${signature} resulted in an error. \\n` +\n          `${transactionMessage}. ` +\n          maybeLogsOutput +\n          guideText;\n        break;\n      case 'simulate':\n        message =\n          `Simulation failed. \\nMessage: ${transactionMessage}. \\n` +\n          maybeLogsOutput +\n          guideText;\n        break;\n      default: {\n        message = `Unknown action '${((a: never) => a)(action)}'`;\n      }\n    }\n    super(message);\n\n    this.signature = signature;\n    this.transactionMessage = transactionMessage;\n    this.transactionLogs = logs ? logs : undefined;\n  }\n\n  get transactionError(): {message: string; logs?: string[]} {\n    return {\n      message: this.transactionMessage,\n      logs: Array.isArray(this.transactionLogs)\n        ? this.transactionLogs\n        : undefined,\n    };\n  }\n\n  /* @deprecated Use `await getLogs()` instead */\n  get logs(): string[] | undefined {\n    const cachedLogs = this.transactionLogs;\n    if (\n      cachedLogs != null &&\n      typeof cachedLogs === 'object' &&\n      'then' in cachedLogs\n    ) {\n      return undefined;\n    }\n    return cachedLogs;\n  }\n\n  async getLogs(connection: Connection): Promise<string[]> {\n    if (!Array.isArray(this.transactionLogs)) {\n      this.transactionLogs = new Promise((resolve, reject) => {\n        connection\n          .getTransaction(this.signature)\n          .then(tx => {\n            if (tx && tx.meta && tx.meta.logMessages) {\n              const logs = tx.meta.logMessages;\n              this.transactionLogs = logs;\n              resolve(logs);\n            } else {\n              reject(new Error('Log messages not found'));\n            }\n          })\n          .catch(reject);\n      });\n    }\n    return await this.transactionLogs;\n  }\n}\n\n// Keep in sync with client/src/rpc_custom_errors.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nexport const SolanaJSONRPCErrorCode = {\n  JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n  JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n  JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n  JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n  JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n  JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n  JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n  JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n  JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n  JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n  JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n  JSON_RPC_SCAN_ERROR: -32012,\n  JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n  JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n  JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n  JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016,\n} as const;\nexport type SolanaJSONRPCErrorCodeEnum =\n  (typeof SolanaJSONRPCErrorCode)[keyof typeof SolanaJSONRPCErrorCode];\n\nexport class SolanaJSONRPCError extends Error {\n  code: SolanaJSONRPCErrorCodeEnum | unknown;\n  data?: any;\n  constructor(\n    {\n      code,\n      message,\n      data,\n    }: Readonly<{code: unknown; message: string; data?: any}>,\n    customMessage?: string,\n  ) {\n    super(customMessage != null ? `${customMessage}: ${message}` : message);\n    this.code = code;\n    this.data = data;\n    this.name = 'SolanaJSONRPCError';\n  }\n}\n","import {Connection, SignatureResult} from '../connection';\nimport {Transaction} from '../transaction';\nimport type {ConfirmOptions} from '../connection';\nimport type {Signer} from '../keypair';\nimport type {TransactionSignature} from '../transaction';\nimport {SendTransactionError} from '../errors';\n\n/**\n * Sign, send and confirm a transaction.\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Transaction} transaction\n * @param {Array<Signer>} signers\n * @param {ConfirmOptions} [options]\n * @returns {Promise<TransactionSignature>}\n */\nexport async function sendAndConfirmTransaction(\n  connection: Connection,\n  transaction: Transaction,\n  signers: Array<Signer>,\n  options?: ConfirmOptions &\n    Readonly<{\n      // A signal that, when aborted, cancels any outstanding transaction confirmation operations\n      abortSignal?: AbortSignal;\n    }>,\n): Promise<TransactionSignature> {\n  const sendOptions = options && {\n    skipPreflight: options.skipPreflight,\n    preflightCommitment: options.preflightCommitment || options.commitment,\n    maxRetries: options.maxRetries,\n    minContextSlot: options.minContextSlot,\n  };\n\n  const signature = await connection.sendTransaction(\n    transaction,\n    signers,\n    sendOptions,\n  );\n\n  let status: SignatureResult;\n  if (\n    transaction.recentBlockhash != null &&\n    transaction.lastValidBlockHeight != null\n  ) {\n    status = (\n      await connection.confirmTransaction(\n        {\n          abortSignal: options?.abortSignal,\n          signature: signature,\n          blockhash: transaction.recentBlockhash,\n          lastValidBlockHeight: transaction.lastValidBlockHeight,\n        },\n        options && options.commitment,\n      )\n    ).value;\n  } else if (\n    transaction.minNonceContextSlot != null &&\n    transaction.nonceInfo != null\n  ) {\n    const {nonceInstruction} = transaction.nonceInfo;\n    const nonceAccountPubkey = nonceInstruction.keys[0].pubkey;\n    status = (\n      await connection.confirmTransaction(\n        {\n          abortSignal: options?.abortSignal,\n          minContextSlot: transaction.minNonceContextSlot,\n          nonceAccountPubkey,\n          nonceValue: transaction.nonceInfo.nonce,\n          signature,\n        },\n        options && options.commitment,\n      )\n    ).value;\n  } else {\n    if (options?.abortSignal != null) {\n      console.warn(\n        'sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was ' +\n          'supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` ' +\n          'or a combination of `nonceInfo` and `minNonceContextSlot` are abortable.',\n      );\n    }\n    status = (\n      await connection.confirmTransaction(\n        signature,\n        options && options.commitment,\n      )\n    ).value;\n  }\n\n  if (status.err) {\n    if (signature != null) {\n      throw new SendTransactionError({\n        action: 'send',\n        signature: signature,\n        transactionMessage: `Status: (${JSON.stringify(status)})`,\n      });\n    }\n    throw new Error(\n      `Transaction ${signature} failed (${JSON.stringify(status)})`,\n    );\n  }\n\n  return signature;\n}\n","// zzz\nexport function sleep(ms: number): Promise<void> {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport * as Layout from './layout';\n\nexport interface IInstructionInputData {\n  readonly instruction: number;\n}\n\n/**\n * @internal\n */\nexport type InstructionType<TInputData extends IInstructionInputData> = {\n  /** The Instruction index (from solana upstream program) */\n  index: number;\n  /** The BufferLayout to use to build data */\n  layout: BufferLayout.Layout<TInputData>;\n};\n\n/**\n * Populate a buffer of instruction data using an InstructionType\n * @internal\n */\nexport function encodeData<TInputData extends IInstructionInputData>(\n  type: InstructionType<TInputData>,\n  fields?: any,\n): Buffer {\n  const allocLength =\n    type.layout.span >= 0 ? type.layout.span : Layout.getAlloc(type, fields);\n  const data = Buffer.alloc(allocLength);\n  const layoutFields = Object.assign({instruction: type.index}, fields);\n  type.layout.encode(layoutFields, data);\n  return data;\n}\n\n/**\n * Decode instruction data buffer using an InstructionType\n * @internal\n */\nexport function decodeData<TInputData extends IInstructionInputData>(\n  type: InstructionType<TInputData>,\n  buffer: Buffer,\n): TInputData {\n  let data: TInputData;\n  try {\n    data = type.layout.decode(buffer);\n  } catch (err) {\n    throw new Error('invalid instruction; ' + err);\n  }\n\n  if (data.instruction !== type.index) {\n    throw new Error(\n      `invalid instruction; instruction index mismatch ${data.instruction} != ${type.index}`,\n    );\n  }\n\n  return data;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\n/**\n * https://github.com/solana-labs/solana/blob/90bedd7e067b5b8f3ddbb45da00a4e9cabb22c62/sdk/src/fee_calculator.rs#L7-L11\n *\n * @internal\n */\nexport const FeeCalculatorLayout = BufferLayout.nu64('lamportsPerSignature');\n\n/**\n * Calculator for transaction fees.\n *\n * @deprecated Deprecated since Solana v1.8.0.\n */\nexport interface FeeCalculator {\n  /** Cost in lamports to validate a signature. */\n  lamportsPerSignature: number;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\nimport {Buffer} from 'buffer';\n\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport type {FeeCalculator} from './fee-calculator';\nimport {FeeCalculatorLayout} from './fee-calculator';\nimport {toBuffer} from './utils/to-buffer';\n\n/**\n * See https://github.com/solana-labs/solana/blob/0ea2843ec9cdc517572b8e62c959f41b55cf4453/sdk/src/nonce_state.rs#L29-L32\n *\n * @internal\n */\nconst NonceAccountLayout = BufferLayout.struct<\n  Readonly<{\n    authorizedPubkey: Uint8Array;\n    feeCalculator: Readonly<{\n      lamportsPerSignature: number;\n    }>;\n    nonce: Uint8Array;\n    state: number;\n    version: number;\n  }>\n>([\n  BufferLayout.u32('version'),\n  BufferLayout.u32('state'),\n  Layout.publicKey('authorizedPubkey'),\n  Layout.publicKey('nonce'),\n  BufferLayout.struct<Readonly<{lamportsPerSignature: number}>>(\n    [FeeCalculatorLayout],\n    'feeCalculator',\n  ),\n]);\n\nexport const NONCE_ACCOUNT_LENGTH = NonceAccountLayout.span;\n\n/**\n * A durable nonce is a 32 byte value encoded as a base58 string.\n */\nexport type DurableNonce = string;\n\ntype NonceAccountArgs = {\n  authorizedPubkey: PublicKey;\n  nonce: DurableNonce;\n  feeCalculator: FeeCalculator;\n};\n\n/**\n * NonceAccount class\n */\nexport class NonceAccount {\n  authorizedPubkey: PublicKey;\n  nonce: DurableNonce;\n  feeCalculator: FeeCalculator;\n\n  /**\n   * @internal\n   */\n  constructor(args: NonceAccountArgs) {\n    this.authorizedPubkey = args.authorizedPubkey;\n    this.nonce = args.nonce;\n    this.feeCalculator = args.feeCalculator;\n  }\n\n  /**\n   * Deserialize NonceAccount from the account data.\n   *\n   * @param buffer account data\n   * @return NonceAccount\n   */\n  static fromAccountData(\n    buffer: Buffer | Uint8Array | Array<number>,\n  ): NonceAccount {\n    const nonceAccount = NonceAccountLayout.decode(toBuffer(buffer), 0);\n    return new NonceAccount({\n      authorizedPubkey: new PublicKey(nonceAccount.authorizedPubkey),\n      nonce: new PublicKey(nonceAccount.nonce).toString(),\n      feeCalculator: nonceAccount.feeCalculator,\n    });\n  }\n}\n","import {Buffer} from 'buffer';\nimport {blob, Layout} from '@solana/buffer-layout';\nimport {getU64Codec} from '@solana/codecs-numbers';\n\nexport function u64(property?: string): Layout<bigint> {\n  const layout = blob(8 /* bytes */, property);\n  const decode = layout.decode.bind(layout);\n  const encode = layout.encode.bind(layout);\n\n  const bigIntLayout = layout as Layout<unknown> as Layout<bigint>;\n  const codec = getU64Codec();\n\n  bigIntLayout.decode = (buffer: Buffer, offset: number) => {\n    const src = decode(buffer as Uint8Array, offset);\n    return codec.decode(src);\n  };\n\n  bigIntLayout.encode = (bigInt: bigint, buffer: Buffer, offset: number) => {\n    const src = codec.encode(bigInt) as Uint8Array;\n    return encode(src, buffer as Uint8Array, offset);\n  };\n\n  return bigIntLayout;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {\n  encodeData,\n  decodeData,\n  InstructionType,\n  IInstructionInputData,\n} from '../instruction';\nimport * as Layout from '../layout';\nimport {NONCE_ACCOUNT_LENGTH} from '../nonce-account';\nimport {PublicKey} from '../publickey';\nimport {SYSVAR_RECENT_BLOCKHASHES_PUBKEY, SYSVAR_RENT_PUBKEY} from '../sysvar';\nimport {Transaction, TransactionInstruction} from '../transaction';\nimport {toBuffer} from '../utils/to-buffer';\nimport {u64} from '../utils/bigint';\n\n/**\n * Create account system transaction params\n */\nexport type CreateAccountParams = {\n  /** The account that will transfer lamports to the created account */\n  fromPubkey: PublicKey;\n  /** Public key of the created account */\n  newAccountPubkey: PublicKey;\n  /** Amount of lamports to transfer to the created account */\n  lamports: number;\n  /** Amount of space in bytes to allocate to the created account */\n  space: number;\n  /** Public key of the program to assign as the owner of the created account */\n  programId: PublicKey;\n};\n\n/**\n * Transfer system transaction params\n */\nexport type TransferParams = {\n  /** Account that will transfer lamports */\n  fromPubkey: PublicKey;\n  /** Account that will receive transferred lamports */\n  toPubkey: PublicKey;\n  /** Amount of lamports to transfer */\n  lamports: number | bigint;\n};\n\n/**\n * Assign system transaction params\n */\nexport type AssignParams = {\n  /** Public key of the account which will be assigned a new owner */\n  accountPubkey: PublicKey;\n  /** Public key of the program to assign as the owner */\n  programId: PublicKey;\n};\n\n/**\n * Create account with seed system transaction params\n */\nexport type CreateAccountWithSeedParams = {\n  /** The account that will transfer lamports to the created account */\n  fromPubkey: PublicKey;\n  /** Public key of the created account. Must be pre-calculated with PublicKey.createWithSeed() */\n  newAccountPubkey: PublicKey;\n  /** Base public key to use to derive the address of the created account. Must be the same as the base key used to create `newAccountPubkey` */\n  basePubkey: PublicKey;\n  /** Seed to use to derive the address of the created account. Must be the same as the seed used to create `newAccountPubkey` */\n  seed: string;\n  /** Amount of lamports to transfer to the created account */\n  lamports: number;\n  /** Amount of space in bytes to allocate to the created account */\n  space: number;\n  /** Public key of the program to assign as the owner of the created account */\n  programId: PublicKey;\n};\n\n/**\n * Create nonce account system transaction params\n */\nexport type CreateNonceAccountParams = {\n  /** The account that will transfer lamports to the created nonce account */\n  fromPubkey: PublicKey;\n  /** Public key of the created nonce account */\n  noncePubkey: PublicKey;\n  /** Public key to set as authority of the created nonce account */\n  authorizedPubkey: PublicKey;\n  /** Amount of lamports to transfer to the created nonce account */\n  lamports: number;\n};\n\n/**\n * Create nonce account with seed system transaction params\n */\nexport type CreateNonceAccountWithSeedParams = {\n  /** The account that will transfer lamports to the created nonce account */\n  fromPubkey: PublicKey;\n  /** Public key of the created nonce account */\n  noncePubkey: PublicKey;\n  /** Public key to set as authority of the created nonce account */\n  authorizedPubkey: PublicKey;\n  /** Amount of lamports to transfer to the created nonce account */\n  lamports: number;\n  /** Base public key to use to derive the address of the nonce account */\n  basePubkey: PublicKey;\n  /** Seed to use to derive the address of the nonce account */\n  seed: string;\n};\n\n/**\n * Initialize nonce account system instruction params\n */\nexport type InitializeNonceParams = {\n  /** Nonce account which will be initialized */\n  noncePubkey: PublicKey;\n  /** Public key to set as authority of the initialized nonce account */\n  authorizedPubkey: PublicKey;\n};\n\n/**\n * Advance nonce account system instruction params\n */\nexport type AdvanceNonceParams = {\n  /** Nonce account */\n  noncePubkey: PublicKey;\n  /** Public key of the nonce authority */\n  authorizedPubkey: PublicKey;\n};\n\n/**\n * Withdraw nonce account system transaction params\n */\nexport type WithdrawNonceParams = {\n  /** Nonce account */\n  noncePubkey: PublicKey;\n  /** Public key of the nonce authority */\n  authorizedPubkey: PublicKey;\n  /** Public key of the account which will receive the withdrawn nonce account balance */\n  toPubkey: PublicKey;\n  /** Amount of lamports to withdraw from the nonce account */\n  lamports: number;\n};\n\n/**\n * Authorize nonce account system transaction params\n */\nexport type AuthorizeNonceParams = {\n  /** Nonce account */\n  noncePubkey: PublicKey;\n  /** Public key of the current nonce authority */\n  authorizedPubkey: PublicKey;\n  /** Public key to set as the new nonce authority */\n  newAuthorizedPubkey: PublicKey;\n};\n\n/**\n * Allocate account system transaction params\n */\nexport type AllocateParams = {\n  /** Account to allocate */\n  accountPubkey: PublicKey;\n  /** Amount of space in bytes to allocate */\n  space: number;\n};\n\n/**\n * Allocate account with seed system transaction params\n */\nexport type AllocateWithSeedParams = {\n  /** Account to allocate */\n  accountPubkey: PublicKey;\n  /** Base public key to use to derive the address of the allocated account */\n  basePubkey: PublicKey;\n  /** Seed to use to derive the address of the allocated account */\n  seed: string;\n  /** Amount of space in bytes to allocate */\n  space: number;\n  /** Public key of the program to assign as the owner of the allocated account */\n  programId: PublicKey;\n};\n\n/**\n * Assign account with seed system transaction params\n */\nexport type AssignWithSeedParams = {\n  /** Public key of the account which will be assigned a new owner */\n  accountPubkey: PublicKey;\n  /** Base public key to use to derive the address of the assigned account */\n  basePubkey: PublicKey;\n  /** Seed to use to derive the address of the assigned account */\n  seed: string;\n  /** Public key of the program to assign as the owner */\n  programId: PublicKey;\n};\n\n/**\n * Transfer with seed system transaction params\n */\nexport type TransferWithSeedParams = {\n  /** Account that will transfer lamports */\n  fromPubkey: PublicKey;\n  /** Base public key to use to derive the funding account address */\n  basePubkey: PublicKey;\n  /** Account that will receive transferred lamports */\n  toPubkey: PublicKey;\n  /** Amount of lamports to transfer */\n  lamports: number | bigint;\n  /** Seed to use to derive the funding account address */\n  seed: string;\n  /** Program id to use to derive the funding account address */\n  programId: PublicKey;\n};\n\n/** Decoded transfer system transaction instruction */\nexport type DecodedTransferInstruction = {\n  /** Account that will transfer lamports */\n  fromPubkey: PublicKey;\n  /** Account that will receive transferred lamports */\n  toPubkey: PublicKey;\n  /** Amount of lamports to transfer */\n  lamports: bigint;\n};\n\n/** Decoded transferWithSeed system transaction instruction */\nexport type DecodedTransferWithSeedInstruction = {\n  /** Account that will transfer lamports */\n  fromPubkey: PublicKey;\n  /** Base public key to use to derive the funding account address */\n  basePubkey: PublicKey;\n  /** Account that will receive transferred lamports */\n  toPubkey: PublicKey;\n  /** Amount of lamports to transfer */\n  lamports: bigint;\n  /** Seed to use to derive the funding account address */\n  seed: string;\n  /** Program id to use to derive the funding account address */\n  programId: PublicKey;\n};\n\n/**\n * System Instruction class\n */\nexport class SystemInstruction {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Decode a system instruction and retrieve the instruction type.\n   */\n  static decodeInstructionType(\n    instruction: TransactionInstruction,\n  ): SystemInstructionType {\n    this.checkProgramId(instruction.programId);\n\n    const instructionTypeLayout = BufferLayout.u32('instruction');\n    const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n    let type: SystemInstructionType | undefined;\n    for (const [ixType, layout] of Object.entries(SYSTEM_INSTRUCTION_LAYOUTS)) {\n      if (layout.index == typeIndex) {\n        type = ixType as SystemInstructionType;\n        break;\n      }\n    }\n\n    if (!type) {\n      throw new Error('Instruction type incorrect; not a SystemInstruction');\n    }\n\n    return type;\n  }\n\n  /**\n   * Decode a create account system instruction and retrieve the instruction params.\n   */\n  static decodeCreateAccount(\n    instruction: TransactionInstruction,\n  ): CreateAccountParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {lamports, space, programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.Create,\n      instruction.data,\n    );\n\n    return {\n      fromPubkey: instruction.keys[0].pubkey,\n      newAccountPubkey: instruction.keys[1].pubkey,\n      lamports,\n      space,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode a transfer system instruction and retrieve the instruction params.\n   */\n  static decodeTransfer(\n    instruction: TransactionInstruction,\n  ): DecodedTransferInstruction {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {lamports} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.Transfer,\n      instruction.data,\n    );\n\n    return {\n      fromPubkey: instruction.keys[0].pubkey,\n      toPubkey: instruction.keys[1].pubkey,\n      lamports,\n    };\n  }\n\n  /**\n   * Decode a transfer with seed system instruction and retrieve the instruction params.\n   */\n  static decodeTransferWithSeed(\n    instruction: TransactionInstruction,\n  ): DecodedTransferWithSeedInstruction {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    const {lamports, seed, programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed,\n      instruction.data,\n    );\n\n    return {\n      fromPubkey: instruction.keys[0].pubkey,\n      basePubkey: instruction.keys[1].pubkey,\n      toPubkey: instruction.keys[2].pubkey,\n      lamports,\n      seed,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode an allocate system instruction and retrieve the instruction params.\n   */\n  static decodeAllocate(instruction: TransactionInstruction): AllocateParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 1);\n\n    const {space} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.Allocate,\n      instruction.data,\n    );\n\n    return {\n      accountPubkey: instruction.keys[0].pubkey,\n      space,\n    };\n  }\n\n  /**\n   * Decode an allocate with seed system instruction and retrieve the instruction params.\n   */\n  static decodeAllocateWithSeed(\n    instruction: TransactionInstruction,\n  ): AllocateWithSeedParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 1);\n\n    const {base, seed, space, programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed,\n      instruction.data,\n    );\n\n    return {\n      accountPubkey: instruction.keys[0].pubkey,\n      basePubkey: new PublicKey(base),\n      seed,\n      space,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode an assign system instruction and retrieve the instruction params.\n   */\n  static decodeAssign(instruction: TransactionInstruction): AssignParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 1);\n\n    const {programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.Assign,\n      instruction.data,\n    );\n\n    return {\n      accountPubkey: instruction.keys[0].pubkey,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode an assign with seed system instruction and retrieve the instruction params.\n   */\n  static decodeAssignWithSeed(\n    instruction: TransactionInstruction,\n  ): AssignWithSeedParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 1);\n\n    const {base, seed, programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed,\n      instruction.data,\n    );\n\n    return {\n      accountPubkey: instruction.keys[0].pubkey,\n      basePubkey: new PublicKey(base),\n      seed,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode a create account with seed system instruction and retrieve the instruction params.\n   */\n  static decodeCreateWithSeed(\n    instruction: TransactionInstruction,\n  ): CreateAccountWithSeedParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {base, seed, lamports, space, programId} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed,\n      instruction.data,\n    );\n\n    return {\n      fromPubkey: instruction.keys[0].pubkey,\n      newAccountPubkey: instruction.keys[1].pubkey,\n      basePubkey: new PublicKey(base),\n      seed,\n      lamports,\n      space,\n      programId: new PublicKey(programId),\n    };\n  }\n\n  /**\n   * Decode a nonce initialize system instruction and retrieve the instruction params.\n   */\n  static decodeNonceInitialize(\n    instruction: TransactionInstruction,\n  ): InitializeNonceParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    const {authorized} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount,\n      instruction.data,\n    );\n\n    return {\n      noncePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: new PublicKey(authorized),\n    };\n  }\n\n  /**\n   * Decode a nonce advance system instruction and retrieve the instruction params.\n   */\n  static decodeNonceAdvance(\n    instruction: TransactionInstruction,\n  ): AdvanceNonceParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount,\n      instruction.data,\n    );\n\n    return {\n      noncePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: instruction.keys[2].pubkey,\n    };\n  }\n\n  /**\n   * Decode a nonce withdraw system instruction and retrieve the instruction params.\n   */\n  static decodeNonceWithdraw(\n    instruction: TransactionInstruction,\n  ): WithdrawNonceParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 5);\n\n    const {lamports} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount,\n      instruction.data,\n    );\n\n    return {\n      noncePubkey: instruction.keys[0].pubkey,\n      toPubkey: instruction.keys[1].pubkey,\n      authorizedPubkey: instruction.keys[4].pubkey,\n      lamports,\n    };\n  }\n\n  /**\n   * Decode a nonce authorize system instruction and retrieve the instruction params.\n   */\n  static decodeNonceAuthorize(\n    instruction: TransactionInstruction,\n  ): AuthorizeNonceParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {authorized} = decodeData(\n      SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount,\n      instruction.data,\n    );\n\n    return {\n      noncePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: instruction.keys[1].pubkey,\n      newAuthorizedPubkey: new PublicKey(authorized),\n    };\n  }\n\n  /**\n   * @internal\n   */\n  static checkProgramId(programId: PublicKey) {\n    if (!programId.equals(SystemProgram.programId)) {\n      throw new Error('invalid instruction; programId is not SystemProgram');\n    }\n  }\n\n  /**\n   * @internal\n   */\n  static checkKeyLength(keys: Array<any>, expectedLength: number) {\n    if (keys.length < expectedLength) {\n      throw new Error(\n        `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n      );\n    }\n  }\n}\n\n/**\n * An enumeration of valid SystemInstructionType's\n */\nexport type SystemInstructionType =\n  // FIXME\n  // It would be preferable for this type to be `keyof SystemInstructionInputData`\n  // but Typedoc does not transpile `keyof` expressions.\n  // See https://github.com/TypeStrong/typedoc/issues/1894\n  | 'AdvanceNonceAccount'\n  | 'Allocate'\n  | 'AllocateWithSeed'\n  | 'Assign'\n  | 'AssignWithSeed'\n  | 'AuthorizeNonceAccount'\n  | 'Create'\n  | 'CreateWithSeed'\n  | 'InitializeNonceAccount'\n  | 'Transfer'\n  | 'TransferWithSeed'\n  | 'WithdrawNonceAccount'\n  | 'UpgradeNonceAccount';\n\ntype SystemInstructionInputData = {\n  AdvanceNonceAccount: IInstructionInputData;\n  Allocate: IInstructionInputData & {\n    space: number;\n  };\n  AllocateWithSeed: IInstructionInputData & {\n    base: Uint8Array;\n    programId: Uint8Array;\n    seed: string;\n    space: number;\n  };\n  Assign: IInstructionInputData & {\n    programId: Uint8Array;\n  };\n  AssignWithSeed: IInstructionInputData & {\n    base: Uint8Array;\n    seed: string;\n    programId: Uint8Array;\n  };\n  AuthorizeNonceAccount: IInstructionInputData & {\n    authorized: Uint8Array;\n  };\n  Create: IInstructionInputData & {\n    lamports: number;\n    programId: Uint8Array;\n    space: number;\n  };\n  CreateWithSeed: IInstructionInputData & {\n    base: Uint8Array;\n    lamports: number;\n    programId: Uint8Array;\n    seed: string;\n    space: number;\n  };\n  InitializeNonceAccount: IInstructionInputData & {\n    authorized: Uint8Array;\n  };\n  Transfer: IInstructionInputData & {\n    lamports: bigint;\n  };\n  TransferWithSeed: IInstructionInputData & {\n    lamports: bigint;\n    programId: Uint8Array;\n    seed: string;\n  };\n  WithdrawNonceAccount: IInstructionInputData & {\n    lamports: number;\n  };\n  UpgradeNonceAccount: IInstructionInputData;\n};\n\n/**\n * An enumeration of valid system InstructionType's\n * @internal\n */\nexport const SYSTEM_INSTRUCTION_LAYOUTS = Object.freeze<{\n  [Instruction in SystemInstructionType]: InstructionType<\n    SystemInstructionInputData[Instruction]\n  >;\n}>({\n  Create: {\n    index: 0,\n    layout: BufferLayout.struct<SystemInstructionInputData['Create']>([\n      BufferLayout.u32('instruction'),\n      BufferLayout.ns64('lamports'),\n      BufferLayout.ns64('space'),\n      Layout.publicKey('programId'),\n    ]),\n  },\n  Assign: {\n    index: 1,\n    layout: BufferLayout.struct<SystemInstructionInputData['Assign']>([\n      BufferLayout.u32('instruction'),\n      Layout.publicKey('programId'),\n    ]),\n  },\n  Transfer: {\n    index: 2,\n    layout: BufferLayout.struct<SystemInstructionInputData['Transfer']>([\n      BufferLayout.u32('instruction'),\n      u64('lamports'),\n    ]),\n  },\n  CreateWithSeed: {\n    index: 3,\n    layout: BufferLayout.struct<SystemInstructionInputData['CreateWithSeed']>([\n      BufferLayout.u32('instruction'),\n      Layout.publicKey('base'),\n      Layout.rustString('seed'),\n      BufferLayout.ns64('lamports'),\n      BufferLayout.ns64('space'),\n      Layout.publicKey('programId'),\n    ]),\n  },\n  AdvanceNonceAccount: {\n    index: 4,\n    layout: BufferLayout.struct<\n      SystemInstructionInputData['AdvanceNonceAccount']\n    >([BufferLayout.u32('instruction')]),\n  },\n  WithdrawNonceAccount: {\n    index: 5,\n    layout: BufferLayout.struct<\n      SystemInstructionInputData['WithdrawNonceAccount']\n    >([BufferLayout.u32('instruction'), BufferLayout.ns64('lamports')]),\n  },\n  InitializeNonceAccount: {\n    index: 6,\n    layout: BufferLayout.struct<\n      SystemInstructionInputData['InitializeNonceAccount']\n    >([BufferLayout.u32('instruction'), Layout.publicKey('authorized')]),\n  },\n  AuthorizeNonceAccount: {\n    index: 7,\n    layout: BufferLayout.struct<\n      SystemInstructionInputData['AuthorizeNonceAccount']\n    >([BufferLayout.u32('instruction'), Layout.publicKey('authorized')]),\n  },\n  Allocate: {\n    index: 8,\n    layout: BufferLayout.struct<SystemInstructionInputData['Allocate']>([\n      BufferLayout.u32('instruction'),\n      BufferLayout.ns64('space'),\n    ]),\n  },\n  AllocateWithSeed: {\n    index: 9,\n    layout: BufferLayout.struct<SystemInstructionInputData['AllocateWithSeed']>(\n      [\n        BufferLayout.u32('instruction'),\n        Layout.publicKey('base'),\n        Layout.rustString('seed'),\n        BufferLayout.ns64('space'),\n        Layout.publicKey('programId'),\n      ],\n    ),\n  },\n  AssignWithSeed: {\n    index: 10,\n    layout: BufferLayout.struct<SystemInstructionInputData['AssignWithSeed']>([\n      BufferLayout.u32('instruction'),\n      Layout.publicKey('base'),\n      Layout.rustString('seed'),\n      Layout.publicKey('programId'),\n    ]),\n  },\n  TransferWithSeed: {\n    index: 11,\n    layout: BufferLayout.struct<SystemInstructionInputData['TransferWithSeed']>(\n      [\n        BufferLayout.u32('instruction'),\n        u64('lamports'),\n        Layout.rustString('seed'),\n        Layout.publicKey('programId'),\n      ],\n    ),\n  },\n  UpgradeNonceAccount: {\n    index: 12,\n    layout: BufferLayout.struct<\n      SystemInstructionInputData['UpgradeNonceAccount']\n    >([BufferLayout.u32('instruction')]),\n  },\n});\n\n/**\n * Factory class for transactions to interact with the System program\n */\nexport class SystemProgram {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the System program\n   */\n  static programId: PublicKey = new PublicKey(\n    '11111111111111111111111111111111',\n  );\n\n  /**\n   * Generate a transaction instruction that creates a new account\n   */\n  static createAccount(params: CreateAccountParams): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.Create;\n    const data = encodeData(type, {\n      lamports: params.lamports,\n      space: params.space,\n      programId: toBuffer(params.programId.toBuffer()),\n    });\n\n    return new TransactionInstruction({\n      keys: [\n        {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n        {pubkey: params.newAccountPubkey, isSigner: true, isWritable: true},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction instruction that transfers lamports from one account to another\n   */\n  static transfer(\n    params: TransferParams | TransferWithSeedParams,\n  ): TransactionInstruction {\n    let data;\n    let keys;\n    if ('basePubkey' in params) {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.TransferWithSeed;\n      data = encodeData(type, {\n        lamports: BigInt(params.lamports),\n        seed: params.seed,\n        programId: toBuffer(params.programId.toBuffer()),\n      });\n      keys = [\n        {pubkey: params.fromPubkey, isSigner: false, isWritable: true},\n        {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n        {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n      ];\n    } else {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.Transfer;\n      data = encodeData(type, {lamports: BigInt(params.lamports)});\n      keys = [\n        {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n        {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n      ];\n    }\n\n    return new TransactionInstruction({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction instruction that assigns an account to a program\n   */\n  static assign(\n    params: AssignParams | AssignWithSeedParams,\n  ): TransactionInstruction {\n    let data;\n    let keys;\n    if ('basePubkey' in params) {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.AssignWithSeed;\n      data = encodeData(type, {\n        base: toBuffer(params.basePubkey.toBuffer()),\n        seed: params.seed,\n        programId: toBuffer(params.programId.toBuffer()),\n      });\n      keys = [\n        {pubkey: params.accountPubkey, isSigner: false, isWritable: true},\n        {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n      ];\n    } else {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.Assign;\n      data = encodeData(type, {\n        programId: toBuffer(params.programId.toBuffer()),\n      });\n      keys = [{pubkey: params.accountPubkey, isSigner: true, isWritable: true}];\n    }\n\n    return new TransactionInstruction({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction instruction that creates a new account at\n   *   an address generated with `from`, a seed, and programId\n   */\n  static createAccountWithSeed(\n    params: CreateAccountWithSeedParams,\n  ): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.CreateWithSeed;\n    const data = encodeData(type, {\n      base: toBuffer(params.basePubkey.toBuffer()),\n      seed: params.seed,\n      lamports: params.lamports,\n      space: params.space,\n      programId: toBuffer(params.programId.toBuffer()),\n    });\n    let keys = [\n      {pubkey: params.fromPubkey, isSigner: true, isWritable: true},\n      {pubkey: params.newAccountPubkey, isSigner: false, isWritable: true},\n    ];\n    if (!params.basePubkey.equals(params.fromPubkey)) {\n      keys.push({\n        pubkey: params.basePubkey,\n        isSigner: true,\n        isWritable: false,\n      });\n    }\n\n    return new TransactionInstruction({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction that creates a new Nonce account\n   */\n  static createNonceAccount(\n    params: CreateNonceAccountParams | CreateNonceAccountWithSeedParams,\n  ): Transaction {\n    const transaction = new Transaction();\n    if ('basePubkey' in params && 'seed' in params) {\n      transaction.add(\n        SystemProgram.createAccountWithSeed({\n          fromPubkey: params.fromPubkey,\n          newAccountPubkey: params.noncePubkey,\n          basePubkey: params.basePubkey,\n          seed: params.seed,\n          lamports: params.lamports,\n          space: NONCE_ACCOUNT_LENGTH,\n          programId: this.programId,\n        }),\n      );\n    } else {\n      transaction.add(\n        SystemProgram.createAccount({\n          fromPubkey: params.fromPubkey,\n          newAccountPubkey: params.noncePubkey,\n          lamports: params.lamports,\n          space: NONCE_ACCOUNT_LENGTH,\n          programId: this.programId,\n        }),\n      );\n    }\n\n    const initParams = {\n      noncePubkey: params.noncePubkey,\n      authorizedPubkey: params.authorizedPubkey,\n    };\n\n    transaction.add(this.nonceInitialize(initParams));\n    return transaction;\n  }\n\n  /**\n   * Generate an instruction to initialize a Nonce account\n   */\n  static nonceInitialize(\n    params: InitializeNonceParams,\n  ): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.InitializeNonceAccount;\n    const data = encodeData(type, {\n      authorized: toBuffer(params.authorizedPubkey.toBuffer()),\n    });\n    const instructionData = {\n      keys: [\n        {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n        {\n          pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    };\n    return new TransactionInstruction(instructionData);\n  }\n\n  /**\n   * Generate an instruction to advance the nonce in a Nonce account\n   */\n  static nonceAdvance(params: AdvanceNonceParams): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.AdvanceNonceAccount;\n    const data = encodeData(type);\n    const instructionData = {\n      keys: [\n        {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n        {\n          pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    };\n    return new TransactionInstruction(instructionData);\n  }\n\n  /**\n   * Generate a transaction instruction that withdraws lamports from a Nonce account\n   */\n  static nonceWithdraw(params: WithdrawNonceParams): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.WithdrawNonceAccount;\n    const data = encodeData(type, {lamports: params.lamports});\n\n    return new TransactionInstruction({\n      keys: [\n        {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n        {pubkey: params.toPubkey, isSigner: false, isWritable: true},\n        {\n          pubkey: SYSVAR_RECENT_BLOCKHASHES_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {\n          pubkey: SYSVAR_RENT_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction instruction that authorizes a new PublicKey as the authority\n   * on a Nonce account.\n   */\n  static nonceAuthorize(params: AuthorizeNonceParams): TransactionInstruction {\n    const type = SYSTEM_INSTRUCTION_LAYOUTS.AuthorizeNonceAccount;\n    const data = encodeData(type, {\n      authorized: toBuffer(params.newAuthorizedPubkey.toBuffer()),\n    });\n\n    return new TransactionInstruction({\n      keys: [\n        {pubkey: params.noncePubkey, isSigner: false, isWritable: true},\n        {pubkey: params.authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction instruction that allocates space in an account without funding\n   */\n  static allocate(\n    params: AllocateParams | AllocateWithSeedParams,\n  ): TransactionInstruction {\n    let data;\n    let keys;\n    if ('basePubkey' in params) {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.AllocateWithSeed;\n      data = encodeData(type, {\n        base: toBuffer(params.basePubkey.toBuffer()),\n        seed: params.seed,\n        space: params.space,\n        programId: toBuffer(params.programId.toBuffer()),\n      });\n      keys = [\n        {pubkey: params.accountPubkey, isSigner: false, isWritable: true},\n        {pubkey: params.basePubkey, isSigner: true, isWritable: false},\n      ];\n    } else {\n      const type = SYSTEM_INSTRUCTION_LAYOUTS.Allocate;\n      data = encodeData(type, {\n        space: params.space,\n      });\n      keys = [{pubkey: params.accountPubkey, isSigner: true, isWritable: true}];\n    }\n\n    return new TransactionInstruction({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {PublicKey} from './publickey';\nimport {Transaction, PACKET_DATA_SIZE} from './transaction';\nimport {MS_PER_SLOT} from './timing';\nimport {SYSVAR_RENT_PUBKEY} from './sysvar';\nimport {sendAndConfirmTransaction} from './utils/send-and-confirm-transaction';\nimport {sleep} from './utils/sleep';\nimport type {Connection} from './connection';\nimport type {Signer} from './keypair';\nimport {SystemProgram} from './programs/system';\nimport {IInstructionInputData} from './instruction';\n\n// Keep program chunks under PACKET_DATA_SIZE, leaving enough room for the\n// rest of the Transaction fields\n//\n// TODO: replace 300 with a proper constant for the size of the other\n// Transaction fields\nconst CHUNK_SIZE = PACKET_DATA_SIZE - 300;\n\n/**\n * Program loader interface\n */\nexport class Loader {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Amount of program data placed in each load Transaction\n   */\n  static chunkSize: number = CHUNK_SIZE;\n\n  /**\n   * Minimum number of signatures required to load a program not including\n   * retries\n   *\n   * Can be used to calculate transaction fees\n   */\n  static getMinNumSignatures(dataLength: number): number {\n    return (\n      2 * // Every transaction requires two signatures (payer + program)\n      (Math.ceil(dataLength / Loader.chunkSize) +\n        1 + // Add one for Create transaction\n        1) // Add one for Finalize transaction\n    );\n  }\n\n  /**\n   * Loads a generic program\n   *\n   * @param connection The connection to use\n   * @param payer System account that pays to load the program\n   * @param program Account to load the program into\n   * @param programId Public key that identifies the loader\n   * @param data Program octets\n   * @return true if program was loaded successfully, false if program was already loaded\n   */\n  static async load(\n    connection: Connection,\n    payer: Signer,\n    program: Signer,\n    programId: PublicKey,\n    data: Buffer | Uint8Array | Array<number>,\n  ): Promise<boolean> {\n    {\n      const balanceNeeded = await connection.getMinimumBalanceForRentExemption(\n        data.length,\n      );\n\n      // Fetch program account info to check if it has already been created\n      const programInfo = await connection.getAccountInfo(\n        program.publicKey,\n        'confirmed',\n      );\n\n      let transaction: Transaction | null = null;\n      if (programInfo !== null) {\n        if (programInfo.executable) {\n          console.error('Program load failed, account is already executable');\n          return false;\n        }\n\n        if (programInfo.data.length !== data.length) {\n          transaction = transaction || new Transaction();\n          transaction.add(\n            SystemProgram.allocate({\n              accountPubkey: program.publicKey,\n              space: data.length,\n            }),\n          );\n        }\n\n        if (!programInfo.owner.equals(programId)) {\n          transaction = transaction || new Transaction();\n          transaction.add(\n            SystemProgram.assign({\n              accountPubkey: program.publicKey,\n              programId,\n            }),\n          );\n        }\n\n        if (programInfo.lamports < balanceNeeded) {\n          transaction = transaction || new Transaction();\n          transaction.add(\n            SystemProgram.transfer({\n              fromPubkey: payer.publicKey,\n              toPubkey: program.publicKey,\n              lamports: balanceNeeded - programInfo.lamports,\n            }),\n          );\n        }\n      } else {\n        transaction = new Transaction().add(\n          SystemProgram.createAccount({\n            fromPubkey: payer.publicKey,\n            newAccountPubkey: program.publicKey,\n            lamports: balanceNeeded > 0 ? balanceNeeded : 1,\n            space: data.length,\n            programId,\n          }),\n        );\n      }\n\n      // If the account is already created correctly, skip this step\n      // and proceed directly to loading instructions\n      if (transaction !== null) {\n        await sendAndConfirmTransaction(\n          connection,\n          transaction,\n          [payer, program],\n          {\n            commitment: 'confirmed',\n          },\n        );\n      }\n    }\n\n    const dataLayout = BufferLayout.struct<\n      Readonly<{\n        bytes: number[];\n        bytesLength: number;\n        bytesLengthPadding: number;\n        instruction: number;\n        offset: number;\n      }>\n    >([\n      BufferLayout.u32('instruction'),\n      BufferLayout.u32('offset'),\n      BufferLayout.u32('bytesLength'),\n      BufferLayout.u32('bytesLengthPadding'),\n      BufferLayout.seq(\n        BufferLayout.u8('byte'),\n        BufferLayout.offset(BufferLayout.u32(), -8),\n        'bytes',\n      ),\n    ]);\n\n    const chunkSize = Loader.chunkSize;\n    let offset = 0;\n    let array = data;\n    let transactions = [];\n    while (array.length > 0) {\n      const bytes = array.slice(0, chunkSize);\n      const data = Buffer.alloc(chunkSize + 16);\n      dataLayout.encode(\n        {\n          instruction: 0, // Load instruction\n          offset,\n          bytes: bytes as number[],\n          bytesLength: 0,\n          bytesLengthPadding: 0,\n        },\n        data,\n      );\n\n      const transaction = new Transaction().add({\n        keys: [{pubkey: program.publicKey, isSigner: true, isWritable: true}],\n        programId,\n        data,\n      });\n      transactions.push(\n        sendAndConfirmTransaction(connection, transaction, [payer, program], {\n          commitment: 'confirmed',\n        }),\n      );\n\n      // Delay between sends in an attempt to reduce rate limit errors\n      if (connection._rpcEndpoint.includes('solana.com')) {\n        const REQUESTS_PER_SECOND = 4;\n        await sleep(1000 / REQUESTS_PER_SECOND);\n      }\n\n      offset += chunkSize;\n      array = array.slice(chunkSize);\n    }\n    await Promise.all(transactions);\n\n    // Finalize the account loaded with program data for execution\n    {\n      const dataLayout = BufferLayout.struct<IInstructionInputData>([\n        BufferLayout.u32('instruction'),\n      ]);\n\n      const data = Buffer.alloc(dataLayout.span);\n      dataLayout.encode(\n        {\n          instruction: 1, // Finalize instruction\n        },\n        data,\n      );\n\n      const transaction = new Transaction().add({\n        keys: [\n          {pubkey: program.publicKey, isSigner: true, isWritable: true},\n          {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n        ],\n        programId,\n        data,\n      });\n      const deployCommitment = 'processed';\n      const finalizeSignature = await connection.sendTransaction(\n        transaction,\n        [payer, program],\n        {preflightCommitment: deployCommitment},\n      );\n      const {context, value} = await connection.confirmTransaction(\n        {\n          signature: finalizeSignature,\n          lastValidBlockHeight: transaction.lastValidBlockHeight!,\n          blockhash: transaction.recentBlockhash!,\n        },\n        deployCommitment,\n      );\n      if (value.err) {\n        throw new Error(\n          `Transaction ${finalizeSignature} failed (${JSON.stringify(value)})`,\n        );\n      }\n      // We prevent programs from being usable until the slot after their deployment.\n      // See https://github.com/solana-labs/solana/pull/29654\n      while (\n        true // eslint-disable-line no-constant-condition\n      ) {\n        try {\n          const currentSlot = await connection.getSlot({\n            commitment: deployCommitment,\n          });\n          if (currentSlot > context.slot) {\n            break;\n          }\n        } catch {\n          /* empty */\n        }\n        await new Promise(resolve =>\n          setTimeout(resolve, Math.round(MS_PER_SLOT / 2)),\n        );\n      }\n    }\n\n    // success\n    return true;\n  }\n}\n","import type {Buffer} from 'buffer';\n\nimport {PublicKey} from './publickey';\nimport {Loader} from './loader';\nimport type {Connection} from './connection';\nimport type {Signer} from './keypair';\n\n/**\n * @deprecated Deprecated since Solana v1.17.20.\n */\nexport const BPF_LOADER_PROGRAM_ID = new PublicKey(\n  'BPFLoader2111111111111111111111111111111111',\n);\n\n/**\n * Factory class for transactions to interact with a program loader\n *\n * @deprecated Deprecated since Solana v1.17.20.\n */\nexport class BpfLoader {\n  /**\n   * Minimum number of signatures required to load a program not including\n   * retries\n   *\n   * Can be used to calculate transaction fees\n   */\n  static getMinNumSignatures(dataLength: number): number {\n    return Loader.getMinNumSignatures(dataLength);\n  }\n\n  /**\n   * Load a SBF program\n   *\n   * @param connection The connection to use\n   * @param payer Account that will pay program loading fees\n   * @param program Account to load the program into\n   * @param elf The entire ELF containing the SBF program\n   * @param loaderProgramId The program id of the BPF loader to use\n   * @return true if program was loaded successfully, false if program was already loaded\n   */\n  static load(\n    connection: Connection,\n    payer: Signer,\n    program: Signer,\n    elf: Buffer | Uint8Array | Array<number>,\n    loaderProgramId: PublicKey,\n  ): Promise<boolean> {\n    return Loader.load(connection, payer, program, loaderProgramId, elf);\n  }\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isFinite(val)) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'weeks':\n    case 'week':\n    case 'w':\n      return n * w;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (msAbs >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (msAbs >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (msAbs >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return plural(ms, msAbs, d, 'day');\n  }\n  if (msAbs >= h) {\n    return plural(ms, msAbs, h, 'hour');\n  }\n  if (msAbs >= m) {\n    return plural(ms, msAbs, m, 'minute');\n  }\n  if (msAbs >= s) {\n    return plural(ms, msAbs, s, 'second');\n  }\n  return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n  var isPlural = msAbs >= n * 1.5;\n  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","/*!\n * humanize-ms - index.js\n * Copyright(c) 2014 dead_horse <dead_horse@qq.com>\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module dependencies.\n */\n\nvar util = require('util');\nvar ms = require('ms');\n\nmodule.exports = function (t) {\n  if (typeof t === 'number') return t;\n  var r = ms(t);\n  if (r === undefined) {\n    var err = new Error(util.format('humanize-ms(%j) result undefined', t));\n    console.warn(err.stack);\n  }\n  return r;\n};\n","'use strict';\n\nmodule.exports = {\n  // agent\n  CURRENT_ID: Symbol('agentkeepalive#currentId'),\n  CREATE_ID: Symbol('agentkeepalive#createId'),\n  INIT_SOCKET: Symbol('agentkeepalive#initSocket'),\n  CREATE_HTTPS_CONNECTION: Symbol('agentkeepalive#createHttpsConnection'),\n  // socket\n  SOCKET_CREATED_TIME: Symbol('agentkeepalive#socketCreatedTime'),\n  SOCKET_NAME: Symbol('agentkeepalive#socketName'),\n  SOCKET_REQUEST_COUNT: Symbol('agentkeepalive#socketRequestCount'),\n  SOCKET_REQUEST_FINISHED_COUNT: Symbol('agentkeepalive#socketRequestFinishedCount'),\n};\n","'use strict';\n\nconst OriginalAgent = require('http').Agent;\nconst ms = require('humanize-ms');\nconst debug = require('util').debuglog('agentkeepalive');\nconst {\n  INIT_SOCKET,\n  CURRENT_ID,\n  CREATE_ID,\n  SOCKET_CREATED_TIME,\n  SOCKET_NAME,\n  SOCKET_REQUEST_COUNT,\n  SOCKET_REQUEST_FINISHED_COUNT,\n} = require('./constants');\n\n// OriginalAgent come from\n// - https://github.com/nodejs/node/blob/v8.12.0/lib/_http_agent.js\n// - https://github.com/nodejs/node/blob/v10.12.0/lib/_http_agent.js\n\n// node <= 10\nlet defaultTimeoutListenerCount = 1;\nconst majorVersion = parseInt(process.version.split('.', 1)[0].substring(1));\nif (majorVersion >= 11 && majorVersion <= 12) {\n  defaultTimeoutListenerCount = 2;\n} else if (majorVersion >= 13) {\n  defaultTimeoutListenerCount = 3;\n}\n\nfunction deprecate(message) {\n  console.log('[agentkeepalive:deprecated] %s', message);\n}\n\nclass Agent extends OriginalAgent {\n  constructor(options) {\n    options = options || {};\n    options.keepAlive = options.keepAlive !== false;\n    // default is keep-alive and 4s free socket timeout\n    // see https://medium.com/ssense-tech/reduce-networking-errors-in-nodejs-23b4eb9f2d83\n    if (options.freeSocketTimeout === undefined) {\n      options.freeSocketTimeout = 4000;\n    }\n    // Legacy API: keepAliveTimeout should be rename to `freeSocketTimeout`\n    if (options.keepAliveTimeout) {\n      deprecate('options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead');\n      options.freeSocketTimeout = options.keepAliveTimeout;\n      delete options.keepAliveTimeout;\n    }\n    // Legacy API: freeSocketKeepAliveTimeout should be rename to `freeSocketTimeout`\n    if (options.freeSocketKeepAliveTimeout) {\n      deprecate('options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead');\n      options.freeSocketTimeout = options.freeSocketKeepAliveTimeout;\n      delete options.freeSocketKeepAliveTimeout;\n    }\n\n    // Sets the socket to timeout after timeout milliseconds of inactivity on the socket.\n    // By default is double free socket timeout.\n    if (options.timeout === undefined) {\n      // make sure socket default inactivity timeout >= 8s\n      options.timeout = Math.max(options.freeSocketTimeout * 2, 8000);\n    }\n\n    // support humanize format\n    options.timeout = ms(options.timeout);\n    options.freeSocketTimeout = ms(options.freeSocketTimeout);\n    options.socketActiveTTL = options.socketActiveTTL ? ms(options.socketActiveTTL) : 0;\n\n    super(options);\n\n    this[CURRENT_ID] = 0;\n\n    // create socket success counter\n    this.createSocketCount = 0;\n    this.createSocketCountLastCheck = 0;\n\n    this.createSocketErrorCount = 0;\n    this.createSocketErrorCountLastCheck = 0;\n\n    this.closeSocketCount = 0;\n    this.closeSocketCountLastCheck = 0;\n\n    // socket error event count\n    this.errorSocketCount = 0;\n    this.errorSocketCountLastCheck = 0;\n\n    // request finished counter\n    this.requestCount = 0;\n    this.requestCountLastCheck = 0;\n\n    // including free socket timeout counter\n    this.timeoutSocketCount = 0;\n    this.timeoutSocketCountLastCheck = 0;\n\n    this.on('free', socket => {\n      // https://github.com/nodejs/node/pull/32000\n      // Node.js native agent will check socket timeout eqs agent.options.timeout.\n      // Use the ttl or freeSocketTimeout to overwrite.\n      const timeout = this.calcSocketTimeout(socket);\n      if (timeout > 0 && socket.timeout !== timeout) {\n        socket.setTimeout(timeout);\n      }\n    });\n  }\n\n  get freeSocketKeepAliveTimeout() {\n    deprecate('agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead');\n    return this.options.freeSocketTimeout;\n  }\n\n  get timeout() {\n    deprecate('agent.timeout is deprecated, please use agent.options.timeout instead');\n    return this.options.timeout;\n  }\n\n  get socketActiveTTL() {\n    deprecate('agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead');\n    return this.options.socketActiveTTL;\n  }\n\n  calcSocketTimeout(socket) {\n    /**\n     * return <= 0: should free socket\n     * return > 0: should update socket timeout\n     * return undefined: not find custom timeout\n     */\n    let freeSocketTimeout = this.options.freeSocketTimeout;\n    const socketActiveTTL = this.options.socketActiveTTL;\n    if (socketActiveTTL) {\n      // check socketActiveTTL\n      const aliveTime = Date.now() - socket[SOCKET_CREATED_TIME];\n      const diff = socketActiveTTL - aliveTime;\n      if (diff <= 0) {\n        return diff;\n      }\n      if (freeSocketTimeout && diff < freeSocketTimeout) {\n        freeSocketTimeout = diff;\n      }\n    }\n    // set freeSocketTimeout\n    if (freeSocketTimeout) {\n      // set free keepalive timer\n      // try to use socket custom freeSocketTimeout first, support headers['keep-alive']\n      // https://github.com/node-modules/urllib/blob/b76053020923f4d99a1c93cf2e16e0c5ba10bacf/lib/urllib.js#L498\n      const customFreeSocketTimeout = socket.freeSocketTimeout || socket.freeSocketKeepAliveTimeout;\n      return customFreeSocketTimeout || freeSocketTimeout;\n    }\n  }\n\n  keepSocketAlive(socket) {\n    const result = super.keepSocketAlive(socket);\n    // should not keepAlive, do nothing\n    if (!result) return result;\n\n    const customTimeout = this.calcSocketTimeout(socket);\n    if (typeof customTimeout === 'undefined') {\n      return true;\n    }\n    if (customTimeout <= 0) {\n      debug('%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s',\n        socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], customTimeout);\n      return false;\n    }\n    if (socket.timeout !== customTimeout) {\n      socket.setTimeout(customTimeout);\n    }\n    return true;\n  }\n\n  // only call on addRequest\n  reuseSocket(...args) {\n    // reuseSocket(socket, req)\n    super.reuseSocket(...args);\n    const socket = args[0];\n    const req = args[1];\n    req.reusedSocket = true;\n    const agentTimeout = this.options.timeout;\n    if (getSocketTimeout(socket) !== agentTimeout) {\n      // reset timeout before use\n      socket.setTimeout(agentTimeout);\n      debug('%s reset timeout to %sms', socket[SOCKET_NAME], agentTimeout);\n    }\n    socket[SOCKET_REQUEST_COUNT]++;\n    debug('%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms',\n      socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT],\n      getSocketTimeout(socket));\n  }\n\n  [CREATE_ID]() {\n    const id = this[CURRENT_ID]++;\n    if (this[CURRENT_ID] === Number.MAX_SAFE_INTEGER) this[CURRENT_ID] = 0;\n    return id;\n  }\n\n  [INIT_SOCKET](socket, options) {\n    // bugfix here.\n    // https on node 8, 10 won't set agent.options.timeout by default\n    // TODO: need to fix on node itself\n    if (options.timeout) {\n      const timeout = getSocketTimeout(socket);\n      if (!timeout) {\n        socket.setTimeout(options.timeout);\n      }\n    }\n\n    if (this.options.keepAlive) {\n      // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/\n      // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html\n      socket.setNoDelay(true);\n    }\n    this.createSocketCount++;\n    if (this.options.socketActiveTTL) {\n      socket[SOCKET_CREATED_TIME] = Date.now();\n    }\n    // don't show the hole '-----BEGIN CERTIFICATE----' key string\n    socket[SOCKET_NAME] = `sock[${this[CREATE_ID]()}#${options._agentKey}]`.split('-----BEGIN', 1)[0];\n    socket[SOCKET_REQUEST_COUNT] = 1;\n    socket[SOCKET_REQUEST_FINISHED_COUNT] = 0;\n    installListeners(this, socket, options);\n  }\n\n  createConnection(options, oncreate) {\n    let called = false;\n    const onNewCreate = (err, socket) => {\n      if (called) return;\n      called = true;\n\n      if (err) {\n        this.createSocketErrorCount++;\n        return oncreate(err);\n      }\n      this[INIT_SOCKET](socket, options);\n      oncreate(err, socket);\n    };\n\n    const newSocket = super.createConnection(options, onNewCreate);\n    if (newSocket) onNewCreate(null, newSocket);\n    return newSocket;\n  }\n\n  get statusChanged() {\n    const changed = this.createSocketCount !== this.createSocketCountLastCheck ||\n      this.createSocketErrorCount !== this.createSocketErrorCountLastCheck ||\n      this.closeSocketCount !== this.closeSocketCountLastCheck ||\n      this.errorSocketCount !== this.errorSocketCountLastCheck ||\n      this.timeoutSocketCount !== this.timeoutSocketCountLastCheck ||\n      this.requestCount !== this.requestCountLastCheck;\n    if (changed) {\n      this.createSocketCountLastCheck = this.createSocketCount;\n      this.createSocketErrorCountLastCheck = this.createSocketErrorCount;\n      this.closeSocketCountLastCheck = this.closeSocketCount;\n      this.errorSocketCountLastCheck = this.errorSocketCount;\n      this.timeoutSocketCountLastCheck = this.timeoutSocketCount;\n      this.requestCountLastCheck = this.requestCount;\n    }\n    return changed;\n  }\n\n  getCurrentStatus() {\n    return {\n      createSocketCount: this.createSocketCount,\n      createSocketErrorCount: this.createSocketErrorCount,\n      closeSocketCount: this.closeSocketCount,\n      errorSocketCount: this.errorSocketCount,\n      timeoutSocketCount: this.timeoutSocketCount,\n      requestCount: this.requestCount,\n      freeSockets: inspect(this.freeSockets),\n      sockets: inspect(this.sockets),\n      requests: inspect(this.requests),\n    };\n  }\n}\n\n// node 8 don't has timeout attribute on socket\n// https://github.com/nodejs/node/pull/21204/files#diff-e6ef024c3775d787c38487a6309e491dR408\nfunction getSocketTimeout(socket) {\n  return socket.timeout || socket._idleTimeout;\n}\n\nfunction installListeners(agent, socket, options) {\n  debug('%s create, timeout %sms', socket[SOCKET_NAME], getSocketTimeout(socket));\n\n  // listener socket events: close, timeout, error, free\n  function onFree() {\n    // create and socket.emit('free') logic\n    // https://github.com/nodejs/node/blob/master/lib/_http_agent.js#L311\n    // no req on the socket, it should be the new socket\n    if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) return;\n\n    socket[SOCKET_REQUEST_FINISHED_COUNT]++;\n    agent.requestCount++;\n    debug('%s(requests: %s, finished: %s) free',\n      socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]);\n\n    // should reuse on pedding requests?\n    const name = agent.getName(options);\n    if (socket.writable && agent.requests[name] && agent.requests[name].length) {\n      // will be reuse on agent free listener\n      socket[SOCKET_REQUEST_COUNT]++;\n      debug('%s(requests: %s, finished: %s) will be reuse on agent free event',\n        socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]);\n    }\n  }\n  socket.on('free', onFree);\n\n  function onClose(isError) {\n    debug('%s(requests: %s, finished: %s) close, isError: %s',\n      socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], isError);\n    agent.closeSocketCount++;\n  }\n  socket.on('close', onClose);\n\n  // start socket timeout handler\n  function onTimeout() {\n    // onTimeout and emitRequestTimeout(_http_client.js)\n    // https://github.com/nodejs/node/blob/v12.x/lib/_http_client.js#L711\n    const listenerCount = socket.listeners('timeout').length;\n    // node <= 10, default listenerCount is 1, onTimeout\n    // 11 < node <= 12, default listenerCount is 2, onTimeout and emitRequestTimeout\n    // node >= 13, default listenerCount is 3, onTimeout,\n    //   onTimeout(https://github.com/nodejs/node/pull/32000/files#diff-5f7fb0850412c6be189faeddea6c5359R333)\n    //   and emitRequestTimeout\n    const timeout = getSocketTimeout(socket);\n    const req = socket._httpMessage;\n    const reqTimeoutListenerCount = req && req.listeners('timeout').length || 0;\n    debug('%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s',\n      socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT],\n      timeout, listenerCount, defaultTimeoutListenerCount, !!req, reqTimeoutListenerCount);\n    if (debug.enabled) {\n      debug('timeout listeners: %s', socket.listeners('timeout').map(f => f.name).join(', '));\n    }\n    agent.timeoutSocketCount++;\n    const name = agent.getName(options);\n    if (agent.freeSockets[name] && agent.freeSockets[name].indexOf(socket) !== -1) {\n      // free socket timeout, destroy quietly\n      socket.destroy();\n      // Remove it from freeSockets list immediately to prevent new requests\n      // from being sent through this socket.\n      agent.removeSocket(socket, options);\n      debug('%s is free, destroy quietly', socket[SOCKET_NAME]);\n    } else {\n      // if there is no any request socket timeout handler,\n      // agent need to handle socket timeout itself.\n      //\n      // custom request socket timeout handle logic must follow these rules:\n      //  1. Destroy socket first\n      //  2. Must emit socket 'agentRemove' event tell agent remove socket\n      //     from freeSockets list immediately.\n      //     Otherise you may be get 'socket hang up' error when reuse\n      //     free socket and timeout happen in the same time.\n      if (reqTimeoutListenerCount === 0) {\n        const error = new Error('Socket timeout');\n        error.code = 'ERR_SOCKET_TIMEOUT';\n        error.timeout = timeout;\n        // must manually call socket.end() or socket.destroy() to end the connection.\n        // https://nodejs.org/dist/latest-v10.x/docs/api/net.html#net_socket_settimeout_timeout_callback\n        socket.destroy(error);\n        agent.removeSocket(socket, options);\n        debug('%s destroy with timeout error', socket[SOCKET_NAME]);\n      }\n    }\n  }\n  socket.on('timeout', onTimeout);\n\n  function onError(err) {\n    const listenerCount = socket.listeners('error').length;\n    debug('%s(requests: %s, finished: %s) error: %s, listenerCount: %s',\n      socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT],\n      err, listenerCount);\n    agent.errorSocketCount++;\n    if (listenerCount === 1) {\n      // if socket don't contain error event handler, don't catch it, emit it again\n      debug('%s emit uncaught error event', socket[SOCKET_NAME]);\n      socket.removeListener('error', onError);\n      socket.emit('error', err);\n    }\n  }\n  socket.on('error', onError);\n\n  function onRemove() {\n    debug('%s(requests: %s, finished: %s) agentRemove',\n      socket[SOCKET_NAME],\n      socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]);\n    // We need this function for cases like HTTP 'upgrade'\n    // (defined by WebSockets) where we need to remove a socket from the\n    // pool because it'll be locked up indefinitely\n    socket.removeListener('close', onClose);\n    socket.removeListener('error', onError);\n    socket.removeListener('free', onFree);\n    socket.removeListener('timeout', onTimeout);\n    socket.removeListener('agentRemove', onRemove);\n  }\n  socket.on('agentRemove', onRemove);\n}\n\nmodule.exports = Agent;\n\nfunction inspect(obj) {\n  const res = {};\n  for (const key in obj) {\n    res[key] = obj[key].length;\n  }\n  return res;\n}\n","'use strict';\n\nconst OriginalHttpsAgent = require('https').Agent;\nconst HttpAgent = require('./agent');\nconst {\n  INIT_SOCKET,\n  CREATE_HTTPS_CONNECTION,\n} = require('./constants');\n\nclass HttpsAgent extends HttpAgent {\n  constructor(options) {\n    super(options);\n\n    this.defaultPort = 443;\n    this.protocol = 'https:';\n    this.maxCachedSessions = this.options.maxCachedSessions;\n    /* istanbul ignore next */\n    if (this.maxCachedSessions === undefined) {\n      this.maxCachedSessions = 100;\n    }\n\n    this._sessionCache = {\n      map: {},\n      list: [],\n    };\n  }\n\n  createConnection(options, oncreate) {\n    const socket = this[CREATE_HTTPS_CONNECTION](options, oncreate);\n    this[INIT_SOCKET](socket, options);\n    return socket;\n  }\n}\n\n// https://github.com/nodejs/node/blob/master/lib/https.js#L89\nHttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection;\n\n[\n  'getName',\n  '_getSession',\n  '_cacheSession',\n  // https://github.com/nodejs/node/pull/4982\n  '_evictSession',\n].forEach(function(method) {\n  /* istanbul ignore next */\n  if (typeof OriginalHttpsAgent.prototype[method] === 'function') {\n    HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method];\n  }\n});\n\nmodule.exports = HttpsAgent;\n","'use strict';\n\nmodule.exports = require('./lib/agent');\nmodule.exports.HttpsAgent = require('./lib/https_agent');\nmodule.exports.constants = require('./lib/constants');\n","var objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n\t\tvar keys = [];\n\t\tfor (var name in obj) {\n\t\t\tkeys.push(name);\n\t\t}\n\t\treturn keys;\n\t};\n\nfunction stringify(val, isArrayProp) {\n\tvar i, max, str, keys, key, propVal, toStr;\n\tif (val === true) {\n\t\treturn \"true\";\n\t}\n\tif (val === false) {\n\t\treturn \"false\";\n\t}\n\tswitch (typeof val) {\n\t\tcase \"object\":\n\t\t\tif (val === null) {\n\t\t\t\treturn null;\n\t\t\t} else if (val.toJSON && typeof val.toJSON === \"function\") {\n\t\t\t\treturn stringify(val.toJSON(), isArrayProp);\n\t\t\t} else {\n\t\t\t\ttoStr = objToString.call(val);\n\t\t\t\tif (toStr === \"[object Array]\") {\n\t\t\t\t\tstr = '[';\n\t\t\t\t\tmax = val.length - 1;\n\t\t\t\t\tfor(i = 0; i < max; i++) {\n\t\t\t\t\t\tstr += stringify(val[i], true) + ',';\n\t\t\t\t\t}\n\t\t\t\t\tif (max > -1) {\n\t\t\t\t\t\tstr += stringify(val[i], true);\n\t\t\t\t\t}\n\t\t\t\t\treturn str + ']';\n\t\t\t\t} else if (toStr === \"[object Object]\") {\n\t\t\t\t\t// only object is left\n\t\t\t\t\tkeys = objKeys(val).sort();\n\t\t\t\t\tmax = keys.length;\n\t\t\t\t\tstr = \"\";\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile (i < max) {\n\t\t\t\t\t\tkey = keys[i];\n\t\t\t\t\t\tpropVal = stringify(val[key], false);\n\t\t\t\t\t\tif (propVal !== undefined) {\n\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\tstr += ',';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += JSON.stringify(key) + ':' + propVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\treturn '{' + str + '}';\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"function\":\n\t\tcase \"undefined\":\n\t\t\treturn isArrayProp ? null : undefined;\n\t\tcase \"string\":\n\t\t\treturn JSON.stringify(val);\n\t\tdefault:\n\t\t\treturn isFinite(val) ? val : null;\n\t}\n}\n\nmodule.exports = function(val) {\n\tvar returnVal = stringify(val, false);\n\tif (returnVal !== undefined) {\n\t\treturn ''+ returnVal;\n\t}\n};\n","const MINIMUM_SLOT_PER_EPOCH = 32;\n\n// Returns the number of trailing zeros in the binary representation of self.\nfunction trailingZeros(n: number) {\n  let trailingZeros = 0;\n  while (n > 1) {\n    n /= 2;\n    trailingZeros++;\n  }\n  return trailingZeros;\n}\n\n// Returns the smallest power of two greater than or equal to n\nfunction nextPowerOfTwo(n: number) {\n  if (n === 0) return 1;\n  n--;\n  n |= n >> 1;\n  n |= n >> 2;\n  n |= n >> 4;\n  n |= n >> 8;\n  n |= n >> 16;\n  n |= n >> 32;\n  return n + 1;\n}\n\n/**\n * Epoch schedule\n * (see https://docs.solana.com/terminology#epoch)\n * Can be retrieved with the {@link Connection.getEpochSchedule} method\n */\nexport class EpochSchedule {\n  /** The maximum number of slots in each epoch */\n  public slotsPerEpoch: number;\n  /** The number of slots before beginning of an epoch to calculate a leader schedule for that epoch */\n  public leaderScheduleSlotOffset: number;\n  /** Indicates whether epochs start short and grow */\n  public warmup: boolean;\n  /** The first epoch with `slotsPerEpoch` slots */\n  public firstNormalEpoch: number;\n  /** The first slot of `firstNormalEpoch` */\n  public firstNormalSlot: number;\n\n  constructor(\n    slotsPerEpoch: number,\n    leaderScheduleSlotOffset: number,\n    warmup: boolean,\n    firstNormalEpoch: number,\n    firstNormalSlot: number,\n  ) {\n    this.slotsPerEpoch = slotsPerEpoch;\n    this.leaderScheduleSlotOffset = leaderScheduleSlotOffset;\n    this.warmup = warmup;\n    this.firstNormalEpoch = firstNormalEpoch;\n    this.firstNormalSlot = firstNormalSlot;\n  }\n\n  getEpoch(slot: number): number {\n    return this.getEpochAndSlotIndex(slot)[0];\n  }\n\n  getEpochAndSlotIndex(slot: number): [number, number] {\n    if (slot < this.firstNormalSlot) {\n      const epoch =\n        trailingZeros(nextPowerOfTwo(slot + MINIMUM_SLOT_PER_EPOCH + 1)) -\n        trailingZeros(MINIMUM_SLOT_PER_EPOCH) -\n        1;\n\n      const epochLen = this.getSlotsInEpoch(epoch);\n      const slotIndex = slot - (epochLen - MINIMUM_SLOT_PER_EPOCH);\n      return [epoch, slotIndex];\n    } else {\n      const normalSlotIndex = slot - this.firstNormalSlot;\n      const normalEpochIndex = Math.floor(normalSlotIndex / this.slotsPerEpoch);\n      const epoch = this.firstNormalEpoch + normalEpochIndex;\n      const slotIndex = normalSlotIndex % this.slotsPerEpoch;\n      return [epoch, slotIndex];\n    }\n  }\n\n  getFirstSlotInEpoch(epoch: number): number {\n    if (epoch <= this.firstNormalEpoch) {\n      return (Math.pow(2, epoch) - 1) * MINIMUM_SLOT_PER_EPOCH;\n    } else {\n      return (\n        (epoch - this.firstNormalEpoch) * this.slotsPerEpoch +\n        this.firstNormalSlot\n      );\n    }\n  }\n\n  getLastSlotInEpoch(epoch: number): number {\n    return this.getFirstSlotInEpoch(epoch) + this.getSlotsInEpoch(epoch) - 1;\n  }\n\n  getSlotsInEpoch(epoch: number) {\n    if (epoch < this.firstNormalEpoch) {\n      return Math.pow(2, epoch + trailingZeros(MINIMUM_SLOT_PER_EPOCH));\n    } else {\n      return this.slotsPerEpoch;\n    }\n  }\n}\n","import * as nodeFetch from 'node-fetch';\n\nexport default (typeof globalThis.fetch === 'function'\n  ? // The Fetch API is supported experimentally in Node 17.5+ and natively in Node 18+.\n    globalThis.fetch\n  : // Otherwise use the polyfill.\n    async function (\n      input: nodeFetch.RequestInfo,\n      init?: nodeFetch.RequestInit,\n    ): Promise<nodeFetch.Response> {\n      const processedInput =\n        typeof input === 'string' && input.slice(0, 2) === '//'\n          ? 'https:' + input\n          : input;\n      return await nodeFetch.default(processedInput, init);\n    }) as typeof globalThis.fetch;\n","import {\n  CommonClient,\n  ICommonWebSocket,\n  IWSClientAdditionalOptions,\n  NodeWebSocketType,\n  NodeWebSocketTypeOptions,\n  WebSocket as createRpc,\n} from 'rpc-websockets';\n\ninterface IHasReadyState {\n  readyState: WebSocket['readyState'];\n}\n\nexport default class RpcWebSocketClient extends CommonClient {\n  private underlyingSocket: IHasReadyState | undefined;\n  constructor(\n    address?: string,\n    options?: IWSClientAdditionalOptions & NodeWebSocketTypeOptions,\n    generate_request_id?: (\n      method: string,\n      params: object | Array<any>,\n    ) => number,\n  ) {\n    const webSocketFactory = (url: string) => {\n      const rpc = createRpc(url, {\n        autoconnect: true,\n        max_reconnects: 5,\n        reconnect: true,\n        reconnect_interval: 1000,\n        ...options,\n      });\n      if ('socket' in rpc) {\n        this.underlyingSocket = rpc.socket as ReturnType<typeof createRpc>;\n      } else {\n        this.underlyingSocket = rpc as NodeWebSocketType;\n      }\n      return rpc as ICommonWebSocket;\n    };\n    super(webSocketFactory, address, options, generate_request_id);\n  }\n  call(\n    ...args: Parameters<CommonClient['call']>\n  ): ReturnType<CommonClient['call']> {\n    const readyState = this.underlyingSocket?.readyState;\n    if (readyState === 1 /* WebSocket.OPEN */) {\n      return super.call(...args);\n    }\n    return Promise.reject(\n      new Error(\n        'Tried to call a JSON-RPC method `' +\n          args[0] +\n          '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' +\n          readyState +\n          ')',\n      ),\n    );\n  }\n  notify(\n    ...args: Parameters<CommonClient['notify']>\n  ): ReturnType<CommonClient['notify']> {\n    const readyState = this.underlyingSocket?.readyState;\n    if (readyState === 1 /* WebSocket.OPEN */) {\n      return super.notify(...args);\n    }\n    return Promise.reject(\n      new Error(\n        'Tried to send a JSON-RPC notification `' +\n          args[0] +\n          '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' +\n          readyState +\n          ')',\n      ),\n    );\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nexport interface IAccountStateData {\n  readonly typeIndex: number;\n}\n\n/**\n * @internal\n */\nexport type AccountType<TInputData extends IAccountStateData> = {\n  /** The account type index (from solana upstream program) */\n  index: number;\n  /** The BufferLayout to use to build data */\n  layout: BufferLayout.Layout<TInputData>;\n};\n\n/**\n * Decode account data buffer using an AccountType\n * @internal\n */\nexport function decodeData<TAccountStateData extends IAccountStateData>(\n  type: AccountType<TAccountStateData>,\n  data: Uint8Array,\n): TAccountStateData {\n  let decoded: TAccountStateData;\n  try {\n    decoded = type.layout.decode(data);\n  } catch (err) {\n    throw new Error('invalid instruction; ' + err);\n  }\n\n  if (decoded.typeIndex !== type.index) {\n    throw new Error(\n      `invalid account data; account type mismatch ${decoded.typeIndex} != ${type.index}`,\n    );\n  }\n\n  return decoded;\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport assert from '../../utils/assert';\nimport * as Layout from '../../layout';\nimport {PublicKey} from '../../publickey';\nimport {u64} from '../../utils/bigint';\nimport {decodeData} from '../../account-data';\n\nexport type AddressLookupTableState = {\n  deactivationSlot: bigint;\n  lastExtendedSlot: number;\n  lastExtendedSlotStartIndex: number;\n  authority?: PublicKey;\n  addresses: Array<PublicKey>;\n};\n\nexport type AddressLookupTableAccountArgs = {\n  key: PublicKey;\n  state: AddressLookupTableState;\n};\n\n/// The serialized size of lookup table metadata\nconst LOOKUP_TABLE_META_SIZE = 56;\n\nexport class AddressLookupTableAccount {\n  key: PublicKey;\n  state: AddressLookupTableState;\n\n  constructor(args: AddressLookupTableAccountArgs) {\n    this.key = args.key;\n    this.state = args.state;\n  }\n\n  isActive(): boolean {\n    const U64_MAX = BigInt('0xffffffffffffffff');\n    return this.state.deactivationSlot === U64_MAX;\n  }\n\n  static deserialize(accountData: Uint8Array): AddressLookupTableState {\n    const meta = decodeData(LookupTableMetaLayout, accountData);\n\n    const serializedAddressesLen = accountData.length - LOOKUP_TABLE_META_SIZE;\n    assert(serializedAddressesLen >= 0, 'lookup table is invalid');\n    assert(serializedAddressesLen % 32 === 0, 'lookup table is invalid');\n\n    const numSerializedAddresses = serializedAddressesLen / 32;\n    const {addresses} = BufferLayout.struct<{addresses: Array<Uint8Array>}>([\n      BufferLayout.seq(Layout.publicKey(), numSerializedAddresses, 'addresses'),\n    ]).decode(accountData.slice(LOOKUP_TABLE_META_SIZE));\n\n    return {\n      deactivationSlot: meta.deactivationSlot,\n      lastExtendedSlot: meta.lastExtendedSlot,\n      lastExtendedSlotStartIndex: meta.lastExtendedStartIndex,\n      authority:\n        meta.authority.length !== 0\n          ? new PublicKey(meta.authority[0])\n          : undefined,\n      addresses: addresses.map(address => new PublicKey(address)),\n    };\n  }\n}\n\nconst LookupTableMetaLayout = {\n  index: 1,\n  layout: BufferLayout.struct<{\n    typeIndex: number;\n    deactivationSlot: bigint;\n    lastExtendedSlot: number;\n    lastExtendedStartIndex: number;\n    authority: Array<Uint8Array>;\n  }>([\n    BufferLayout.u32('typeIndex'),\n    u64('deactivationSlot'),\n    BufferLayout.nu64('lastExtendedSlot'),\n    BufferLayout.u8('lastExtendedStartIndex'),\n    BufferLayout.u8(), // option\n    BufferLayout.seq(\n      Layout.publicKey(),\n      BufferLayout.offset(BufferLayout.u8(), -1),\n      'authority',\n    ),\n  ]),\n};\n","const URL_RE = /^[^:]+:\\/\\/([^:[]+|\\[[^\\]]+\\])(:\\d+)?(.*)/i;\n\nexport function makeWebsocketUrl(endpoint: string) {\n  const matches = endpoint.match(URL_RE);\n  if (matches == null) {\n    throw TypeError(`Failed to validate endpoint URL \\`${endpoint}\\``);\n  }\n  const [\n    _, // eslint-disable-line @typescript-eslint/no-unused-vars\n    hostish,\n    portWithColon,\n    rest,\n  ] = matches;\n  const protocol = endpoint.startsWith('https:') ? 'wss:' : 'ws:';\n  const startPort =\n    portWithColon == null ? null : parseInt(portWithColon.slice(1), 10);\n  const websocketPort =\n    // Only shift the port by +1 as a convention for ws(s) only if given endpoint\n    // is explicitly specifying the endpoint port (HTTP-based RPC), assuming\n    // we're directly trying to connect to agave-validator's ws listening port.\n    // When the endpoint omits the port, we're connecting to the protocol\n    // default ports: http(80) or https(443) and it's assumed we're behind a reverse\n    // proxy which manages WebSocket upgrade and backend port redirection.\n    startPort == null ? '' : `:${startPort + 1}`;\n  return `${protocol}//${hostish}${websocketPort}${rest}`;\n}\n","import HttpKeepAliveAgent, {\n  HttpsAgent as HttpsKeepAliveAgent,\n} from 'agentkeepalive';\nimport bs58 from 'bs58';\nimport {Buffer} from 'buffer';\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\nimport type {Agent as NodeHttpAgent} from 'http';\nimport {Agent as NodeHttpsAgent} from 'https';\nimport {\n  type as pick,\n  number,\n  string,\n  array,\n  boolean,\n  literal,\n  record,\n  union,\n  optional,\n  nullable,\n  coerce,\n  instance,\n  create,\n  tuple,\n  unknown,\n  any,\n} from 'superstruct';\nimport type {Struct} from 'superstruct';\nimport RpcClient from 'jayson/lib/client/browser';\nimport {JSONRPCError} from 'jayson';\n\nimport {EpochSchedule} from './epoch-schedule';\nimport {SendTransactionError, SolanaJSONRPCError} from './errors';\nimport fetchImpl from './fetch-impl';\nimport {DurableNonce, NonceAccount} from './nonce-account';\nimport {PublicKey} from './publickey';\nimport {Signer} from './keypair';\nimport RpcWebSocketClient from './rpc-websocket';\nimport {MS_PER_SLOT} from './timing';\nimport {\n  Transaction,\n  TransactionStatus,\n  TransactionVersion,\n  VersionedTransaction,\n} from './transaction';\nimport {Message, MessageHeader, MessageV0, VersionedMessage} from './message';\nimport {AddressLookupTableAccount} from './programs/address-lookup-table/state';\nimport assert from './utils/assert';\nimport {sleep} from './utils/sleep';\nimport {toBuffer} from './utils/to-buffer';\nimport {\n  TransactionExpiredBlockheightExceededError,\n  TransactionExpiredNonceInvalidError,\n  TransactionExpiredTimeoutError,\n} from './transaction/expiry-custom-errors';\nimport {makeWebsocketUrl} from './utils/makeWebsocketUrl';\nimport type {Blockhash} from './blockhash';\nimport type {FeeCalculator} from './fee-calculator';\nimport type {TransactionSignature} from './transaction';\nimport type {CompiledInstruction} from './message';\n\nconst PublicKeyFromString = coerce(\n  instance(PublicKey),\n  string(),\n  value => new PublicKey(value),\n);\n\nconst RawAccountDataResult = tuple([string(), literal('base64')]);\n\nconst BufferFromRawAccountData = coerce(\n  instance(Buffer),\n  RawAccountDataResult,\n  value => Buffer.from(value[0], 'base64'),\n);\n\n/**\n * Attempt to use a recent blockhash for up to 30 seconds\n * @internal\n */\nexport const BLOCKHASH_CACHE_TIMEOUT_MS = 30 * 1000;\n\n/**\n * HACK.\n * Copied from rpc-websockets/dist/lib/client.\n * Otherwise, `yarn build` fails with:\n * https://gist.github.com/steveluscher/c057eca81d479ef705cdb53162f9971d\n */\ninterface IWSRequestParams {\n  [x: string]: any;\n  [x: number]: any;\n}\n\ntype ClientSubscriptionId = number;\n/** @internal */ type ServerSubscriptionId = number;\n/** @internal */ type SubscriptionConfigHash = string;\n/** @internal */ type SubscriptionDisposeFn = () => Promise<void>;\n/** @internal */ type SubscriptionStateChangeCallback = (\n  nextState: StatefulSubscription['state'],\n) => void;\n/** @internal */ type SubscriptionStateChangeDisposeFn = () => void;\n/**\n * @internal\n * Every subscription contains the args used to open the subscription with\n * the server, and a list of callers interested in notifications.\n */\ntype BaseSubscription<TMethod = SubscriptionConfig['method']> = Readonly<{\n  args: IWSRequestParams;\n  callbacks: Set<Extract<SubscriptionConfig, {method: TMethod}>['callback']>;\n}>;\n/**\n * @internal\n * A subscription may be in various states of connectedness. Only when it is\n * fully connected will it have a server subscription id associated with it.\n * This id can be returned to the server to unsubscribe the client entirely.\n */\ntype StatefulSubscription = Readonly<\n  // New subscriptions that have not yet been\n  // sent to the server start in this state.\n  | {\n      state: 'pending';\n    }\n  // These subscriptions have been sent to the server\n  // and are waiting for the server to acknowledge them.\n  | {\n      state: 'subscribing';\n    }\n  // These subscriptions have been acknowledged by the\n  // server and have been assigned server subscription ids.\n  | {\n      serverSubscriptionId: ServerSubscriptionId;\n      state: 'subscribed';\n    }\n  // These subscriptions are intended to be torn down and\n  // are waiting on an acknowledgement from the server.\n  | {\n      serverSubscriptionId: ServerSubscriptionId;\n      state: 'unsubscribing';\n    }\n  // The request to tear down these subscriptions has been\n  // acknowledged by the server. The `serverSubscriptionId`\n  // is the id of the now-dead subscription.\n  | {\n      serverSubscriptionId: ServerSubscriptionId;\n      state: 'unsubscribed';\n    }\n>;\n/**\n * A type that encapsulates a subscription's RPC method\n * names and notification (callback) signature.\n */\ntype SubscriptionConfig = Readonly<\n  | {\n      callback: AccountChangeCallback;\n      method: 'accountSubscribe';\n      unsubscribeMethod: 'accountUnsubscribe';\n    }\n  | {\n      callback: LogsCallback;\n      method: 'logsSubscribe';\n      unsubscribeMethod: 'logsUnsubscribe';\n    }\n  | {\n      callback: ProgramAccountChangeCallback;\n      method: 'programSubscribe';\n      unsubscribeMethod: 'programUnsubscribe';\n    }\n  | {\n      callback: RootChangeCallback;\n      method: 'rootSubscribe';\n      unsubscribeMethod: 'rootUnsubscribe';\n    }\n  | {\n      callback: SignatureSubscriptionCallback;\n      method: 'signatureSubscribe';\n      unsubscribeMethod: 'signatureUnsubscribe';\n    }\n  | {\n      callback: SlotChangeCallback;\n      method: 'slotSubscribe';\n      unsubscribeMethod: 'slotUnsubscribe';\n    }\n  | {\n      callback: SlotUpdateCallback;\n      method: 'slotsUpdatesSubscribe';\n      unsubscribeMethod: 'slotsUpdatesUnsubscribe';\n    }\n>;\n/**\n * @internal\n * Utility type that keeps tagged unions intact while omitting properties.\n */\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n  ? Omit<T, K>\n  : never;\n/**\n * @internal\n * This type represents a single subscribable 'topic.' It's made up of:\n *\n * - The args used to open the subscription with the server,\n * - The state of the subscription, in terms of its connectedness, and\n * - The set of callbacks to call when the server publishes notifications\n *\n * This record gets indexed by `SubscriptionConfigHash` and is used to\n * set up subscriptions, fan out notifications, and track subscription state.\n */\ntype Subscription = BaseSubscription &\n  StatefulSubscription &\n  DistributiveOmit<SubscriptionConfig, 'callback'>;\n\ntype RpcRequest = (methodName: string, args: Array<any>) => Promise<any>;\n\ntype RpcBatchRequest = (requests: RpcParams[]) => Promise<any[]>;\n\n/**\n * @internal\n */\nexport type RpcParams = {\n  methodName: string;\n  args: Array<any>;\n};\n\nexport type TokenAccountsFilter =\n  | {\n      mint: PublicKey;\n    }\n  | {\n      programId: PublicKey;\n    };\n\n/**\n * Extra contextual information for RPC responses\n */\nexport type Context = {\n  slot: number;\n};\n\n/**\n * Options for sending transactions\n */\nexport type SendOptions = {\n  /** disable transaction verification step */\n  skipPreflight?: boolean;\n  /** preflight commitment level */\n  preflightCommitment?: Commitment;\n  /** Maximum number of times for the RPC node to retry sending the transaction to the leader. */\n  maxRetries?: number;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Options for confirming transactions\n */\nexport type ConfirmOptions = {\n  /** disable transaction verification step */\n  skipPreflight?: boolean;\n  /** desired commitment level */\n  commitment?: Commitment;\n  /** preflight commitment level */\n  preflightCommitment?: Commitment;\n  /** Maximum number of times for the RPC node to retry sending the transaction to the leader. */\n  maxRetries?: number;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Options for getConfirmedSignaturesForAddress2\n */\nexport type ConfirmedSignaturesForAddress2Options = {\n  /**\n   * Start searching backwards from this transaction signature.\n   * @remarks If not provided the search starts from the highest max confirmed block.\n   */\n  before?: TransactionSignature;\n  /** Search until this transaction signature is reached, if found before `limit`. */\n  until?: TransactionSignature;\n  /** Maximum transaction signatures to return (between 1 and 1,000, default: 1,000). */\n  limit?: number;\n};\n\n/**\n * Options for getSignaturesForAddress\n */\nexport type SignaturesForAddressOptions = {\n  /**\n   * Start searching backwards from this transaction signature.\n   * @remarks If not provided the search starts from the highest max confirmed block.\n   */\n  before?: TransactionSignature;\n  /** Search until this transaction signature is reached, if found before `limit`. */\n  until?: TransactionSignature;\n  /** Maximum transaction signatures to return (between 1 and 1,000, default: 1,000). */\n  limit?: number;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * RPC Response with extra contextual information\n */\nexport type RpcResponseAndContext<T> = {\n  /** response context */\n  context: Context;\n  /** response value */\n  value: T;\n};\n\nexport type BlockhashWithExpiryBlockHeight = Readonly<{\n  blockhash: Blockhash;\n  lastValidBlockHeight: number;\n}>;\n\n/**\n * A strategy for confirming transactions that uses the last valid\n * block height for a given blockhash to check for transaction expiration.\n */\nexport type BlockheightBasedTransactionConfirmationStrategy =\n  BaseTransactionConfirmationStrategy & BlockhashWithExpiryBlockHeight;\n\n/**\n * A strategy for confirming durable nonce transactions.\n */\nexport type DurableNonceTransactionConfirmationStrategy =\n  BaseTransactionConfirmationStrategy & {\n    /**\n     * The lowest slot at which to fetch the nonce value from the\n     * nonce account. This should be no lower than the slot at\n     * which the last-known value of the nonce was fetched.\n     */\n    minContextSlot: number;\n    /**\n     * The account where the current value of the nonce is stored.\n     */\n    nonceAccountPubkey: PublicKey;\n    /**\n     * The nonce value that was used to sign the transaction\n     * for which confirmation is being sought.\n     */\n    nonceValue: DurableNonce;\n  };\n\n/**\n * Properties shared by all transaction confirmation strategies\n */\nexport type BaseTransactionConfirmationStrategy = Readonly<{\n  /** A signal that, when aborted, cancels any outstanding transaction confirmation operations */\n  abortSignal?: AbortSignal;\n  signature: TransactionSignature;\n}>;\n\n/**\n * This type represents all transaction confirmation strategies\n */\nexport type TransactionConfirmationStrategy =\n  | BlockheightBasedTransactionConfirmationStrategy\n  | DurableNonceTransactionConfirmationStrategy;\n\n/* @internal */\nfunction assertEndpointUrl(putativeUrl: string) {\n  if (/^https?:/.test(putativeUrl) === false) {\n    throw new TypeError('Endpoint URL must start with `http:` or `https:`.');\n  }\n  return putativeUrl;\n}\n\n/** @internal */\nfunction extractCommitmentFromConfig<TConfig>(\n  commitmentOrConfig?: Commitment | ({commitment?: Commitment} & TConfig),\n) {\n  let commitment: Commitment | undefined;\n  let config: Omit<TConfig, 'commitment'> | undefined;\n  if (typeof commitmentOrConfig === 'string') {\n    commitment = commitmentOrConfig;\n  } else if (commitmentOrConfig) {\n    const {commitment: specifiedCommitment, ...specifiedConfig} =\n      commitmentOrConfig;\n    commitment = specifiedCommitment;\n    config = specifiedConfig;\n  }\n  return {commitment, config};\n}\n\n/**\n * @internal\n */\nfunction applyDefaultMemcmpEncodingToFilters(\n  filters: GetProgramAccountsFilter[],\n): GetProgramAccountsFilter[] {\n  return filters.map(filter =>\n    'memcmp' in filter\n      ? {\n          ...filter,\n          memcmp: {\n            ...filter.memcmp,\n            encoding: filter.memcmp.encoding ?? 'base58',\n          },\n        }\n      : filter,\n  );\n}\n\n/**\n * @internal\n */\nfunction createRpcResult<T, U>(result: Struct<T, U>) {\n  return union([\n    pick({\n      jsonrpc: literal('2.0'),\n      id: string(),\n      result,\n    }),\n    pick({\n      jsonrpc: literal('2.0'),\n      id: string(),\n      error: pick({\n        code: unknown(),\n        message: string(),\n        data: optional(any()),\n      }),\n    }),\n  ]);\n}\n\nconst UnknownRpcResult = createRpcResult(unknown());\n\n/**\n * @internal\n */\nfunction jsonRpcResult<T, U>(schema: Struct<T, U>) {\n  return coerce(createRpcResult(schema), UnknownRpcResult, value => {\n    if ('error' in value) {\n      return value;\n    } else {\n      return {\n        ...value,\n        result: create(value.result, schema),\n      };\n    }\n  });\n}\n\n/**\n * @internal\n */\nfunction jsonRpcResultAndContext<T, U>(value: Struct<T, U>) {\n  return jsonRpcResult(\n    pick({\n      context: pick({\n        slot: number(),\n      }),\n      value,\n    }),\n  );\n}\n\n/**\n * @internal\n */\nfunction notificationResultAndContext<T, U>(value: Struct<T, U>) {\n  return pick({\n    context: pick({\n      slot: number(),\n    }),\n    value,\n  });\n}\n\n/**\n * @internal\n */\nfunction versionedMessageFromResponse(\n  version: TransactionVersion | undefined,\n  response: MessageResponse,\n): VersionedMessage {\n  if (version === 0) {\n    return new MessageV0({\n      header: response.header,\n      staticAccountKeys: response.accountKeys.map(\n        accountKey => new PublicKey(accountKey),\n      ),\n      recentBlockhash: response.recentBlockhash,\n      compiledInstructions: response.instructions.map(ix => ({\n        programIdIndex: ix.programIdIndex,\n        accountKeyIndexes: ix.accounts,\n        data: bs58.decode(ix.data),\n      })),\n      addressTableLookups: response.addressTableLookups!,\n    });\n  } else {\n    return new Message(response);\n  }\n}\n\n/**\n * The level of commitment desired when querying state\n * <pre>\n *   'processed': Query the most recent block which has reached 1 confirmation by the connected node\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * </pre>\n */\nexport type Commitment =\n  | 'processed'\n  | 'confirmed'\n  | 'finalized'\n  | 'recent' // Deprecated as of v1.5.5\n  | 'single' // Deprecated as of v1.5.5\n  | 'singleGossip' // Deprecated as of v1.5.5\n  | 'root' // Deprecated as of v1.5.5\n  | 'max'; // Deprecated as of v1.5.5\n\n/**\n * A subset of Commitment levels, which are at least optimistically confirmed\n * <pre>\n *   'confirmed': Query the most recent block which has reached 1 confirmation by the cluster\n *   'finalized': Query the most recent block which has been finalized by the cluster\n * </pre>\n */\nexport type Finality = 'confirmed' | 'finalized';\n\n/**\n * Filter for largest accounts query\n * <pre>\n *   'circulating':    Return the largest accounts that are part of the circulating supply\n *   'nonCirculating': Return the largest accounts that are not part of the circulating supply\n * </pre>\n */\nexport type LargestAccountsFilter = 'circulating' | 'nonCirculating';\n\n/**\n * Configuration object for changing `getAccountInfo` query behavior\n */\nexport type GetAccountInfoConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n  /** Optional data slice to limit the returned account data */\n  dataSlice?: DataSlice;\n};\n\n/**\n * Configuration object for changing `getBalance` query behavior\n */\nexport type GetBalanceConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getBlock` query behavior\n */\nexport type GetBlockConfig = {\n  /** The level of finality desired */\n  commitment?: Finality;\n  /**\n   * Whether to populate the rewards array. If parameter not provided, the default includes rewards.\n   */\n  rewards?: boolean;\n  /**\n   * Level of transaction detail to return, either \"full\", \"accounts\", \"signatures\", or \"none\". If\n   * parameter not provided, the default detail level is \"full\". If \"accounts\" are requested,\n   * transaction details only include signatures and an annotated list of accounts in each\n   * transaction. Transaction metadata is limited to only: fee, err, pre_balances, post_balances,\n   * pre_token_balances, and post_token_balances.\n   */\n  transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/**\n * Configuration object for changing `getBlock` query behavior\n */\nexport type GetVersionedBlockConfig = {\n  /** The level of finality desired */\n  commitment?: Finality;\n  /** The max transaction version to return in responses. If the requested transaction is a higher version, an error will be returned */\n  maxSupportedTransactionVersion?: number;\n  /**\n   * Whether to populate the rewards array. If parameter not provided, the default includes rewards.\n   */\n  rewards?: boolean;\n  /**\n   * Level of transaction detail to return, either \"full\", \"accounts\", \"signatures\", or \"none\". If\n   * parameter not provided, the default detail level is \"full\". If \"accounts\" are requested,\n   * transaction details only include signatures and an annotated list of accounts in each\n   * transaction. Transaction metadata is limited to only: fee, err, pre_balances, post_balances,\n   * pre_token_balances, and post_token_balances.\n   */\n  transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/**\n * Configuration object for changing `getStakeMinimumDelegation` query behavior\n */\nexport type GetStakeMinimumDelegationConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n};\n\n/**\n * Configuration object for changing `getBlockHeight` query behavior\n */\nexport type GetBlockHeightConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getEpochInfo` query behavior\n */\nexport type GetEpochInfoConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getInflationReward` query behavior\n */\nexport type GetInflationRewardConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** An epoch for which the reward occurs. If omitted, the previous epoch will be used */\n  epoch?: number;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getLatestBlockhash` query behavior\n */\nexport type GetLatestBlockhashConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `isBlockhashValid` query behavior\n */\nexport type IsBlockhashValidConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getSlot` query behavior\n */\nexport type GetSlotConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getSlotLeader` query behavior\n */\nexport type GetSlotLeaderConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\nexport type GetTransactionConfig = {\n  /** The level of finality desired */\n  commitment?: Finality;\n};\n\n/**\n * Configuration object for changing `getTransaction` query behavior\n */\nexport type GetVersionedTransactionConfig = {\n  /** The level of finality desired */\n  commitment?: Finality;\n  /** The max transaction version to return in responses. If the requested transaction is a higher version, an error will be returned */\n  maxSupportedTransactionVersion?: number;\n};\n\n/**\n * Configuration object for changing `getLargestAccounts` query behavior\n */\nexport type GetLargestAccountsConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** Filter largest accounts by whether they are part of the circulating supply */\n  filter?: LargestAccountsFilter;\n};\n\n/**\n * Configuration object for changing `getSupply` request behavior\n */\nexport type GetSupplyConfig = {\n  /** The level of commitment desired */\n  commitment?: Commitment;\n  /** Exclude non circulating accounts list from response */\n  excludeNonCirculatingAccountsList?: boolean;\n};\n\n/**\n * Configuration object for changing query behavior\n */\nexport type SignatureStatusConfig = {\n  /** enable searching status history, not needed for recent transactions */\n  searchTransactionHistory: boolean;\n};\n\n/**\n * Information describing a cluster node\n */\nexport type ContactInfo = {\n  /** Identity public key of the node */\n  pubkey: string;\n  /** Gossip network address for the node */\n  gossip: string | null;\n  /** TPU network address for the node (null if not available) */\n  tpu: string | null;\n  /** JSON RPC network address for the node (null if not available) */\n  rpc: string | null;\n  /** Software version of the node (null if not available) */\n  version: string | null;\n};\n\n/**\n * Information describing a vote account\n */\nexport type VoteAccountInfo = {\n  /** Public key of the vote account */\n  votePubkey: string;\n  /** Identity public key of the node voting with this account */\n  nodePubkey: string;\n  /** The stake, in lamports, delegated to this vote account and activated */\n  activatedStake: number;\n  /** Whether the vote account is staked for this epoch */\n  epochVoteAccount: boolean;\n  /** Recent epoch voting credit history for this voter */\n  epochCredits: Array<[number, number, number]>;\n  /** A percentage (0-100) of rewards payout owed to the voter */\n  commission: number;\n  /** Most recent slot voted on by this vote account */\n  lastVote: number;\n};\n\n/**\n * A collection of cluster vote accounts\n */\nexport type VoteAccountStatus = {\n  /** Active vote accounts */\n  current: Array<VoteAccountInfo>;\n  /** Inactive vote accounts */\n  delinquent: Array<VoteAccountInfo>;\n};\n\n/**\n * Network Inflation\n * (see https://docs.solana.com/implemented-proposals/ed_overview)\n */\nexport type InflationGovernor = {\n  foundation: number;\n  foundationTerm: number;\n  initial: number;\n  taper: number;\n  terminal: number;\n};\n\nconst GetInflationGovernorResult = pick({\n  foundation: number(),\n  foundationTerm: number(),\n  initial: number(),\n  taper: number(),\n  terminal: number(),\n});\n\n/**\n * The inflation reward for an epoch\n */\nexport type InflationReward = {\n  /** epoch for which the reward occurs */\n  epoch: number;\n  /** the slot in which the rewards are effective */\n  effectiveSlot: number;\n  /** reward amount in lamports */\n  amount: number;\n  /** post balance of the account in lamports */\n  postBalance: number;\n  /** vote account commission when the reward was credited */\n  commission?: number | null;\n};\n\n/**\n * Expected JSON RPC response for the \"getInflationReward\" message\n */\nconst GetInflationRewardResult = jsonRpcResult(\n  array(\n    nullable(\n      pick({\n        epoch: number(),\n        effectiveSlot: number(),\n        amount: number(),\n        postBalance: number(),\n        commission: optional(nullable(number())),\n      }),\n    ),\n  ),\n);\n\nexport type RecentPrioritizationFees = {\n  /** slot in which the fee was observed */\n  slot: number;\n  /** the per-compute-unit fee paid by at least one successfully landed transaction, specified in increments of 0.000001 lamports*/\n  prioritizationFee: number;\n};\n\n/**\n * Configuration object for changing `getRecentPrioritizationFees` query behavior\n */\nexport type GetRecentPrioritizationFeesConfig = {\n  /**\n   * If this parameter is provided, the response will reflect a fee to land a transaction locking\n   * all of the provided accounts as writable.\n   */\n  lockedWritableAccounts?: PublicKey[];\n};\n\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\nconst GetRecentPrioritizationFeesResult = array(\n  pick({\n    slot: number(),\n    prioritizationFee: number(),\n  }),\n);\n\nexport type InflationRate = {\n  /** total inflation */\n  total: number;\n  /** inflation allocated to validators */\n  validator: number;\n  /** inflation allocated to the foundation */\n  foundation: number;\n  /** epoch for which these values are valid */\n  epoch: number;\n};\n\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\nconst GetInflationRateResult = pick({\n  total: number(),\n  validator: number(),\n  foundation: number(),\n  epoch: number(),\n});\n\n/**\n * Information about the current epoch\n */\nexport type EpochInfo = {\n  epoch: number;\n  slotIndex: number;\n  slotsInEpoch: number;\n  absoluteSlot: number;\n  blockHeight?: number;\n  transactionCount?: number;\n};\n\nconst GetEpochInfoResult = pick({\n  epoch: number(),\n  slotIndex: number(),\n  slotsInEpoch: number(),\n  absoluteSlot: number(),\n  blockHeight: optional(number()),\n  transactionCount: optional(number()),\n});\n\nconst GetEpochScheduleResult = pick({\n  slotsPerEpoch: number(),\n  leaderScheduleSlotOffset: number(),\n  warmup: boolean(),\n  firstNormalEpoch: number(),\n  firstNormalSlot: number(),\n});\n\n/**\n * Leader schedule\n * (see https://docs.solana.com/terminology#leader-schedule)\n */\nexport type LeaderSchedule = {\n  [address: string]: number[];\n};\n\nconst GetLeaderScheduleResult = record(string(), array(number()));\n\n/**\n * Transaction error or null\n */\nconst TransactionErrorResult = nullable(union([pick({}), string()]));\n\n/**\n * Signature status for a transaction\n */\nconst SignatureStatusResult = pick({\n  err: TransactionErrorResult,\n});\n\n/**\n * Transaction signature received notification\n */\nconst SignatureReceivedResult = literal('receivedSignature');\n\n/**\n * Version info for a node\n */\nexport type Version = {\n  /** Version of solana-core */\n  'solana-core': string;\n  'feature-set'?: number;\n};\n\nconst VersionResult = pick({\n  'solana-core': string(),\n  'feature-set': optional(number()),\n});\n\nexport type SimulatedTransactionAccountInfo = {\n  /** `true` if this account's data contains a loaded program */\n  executable: boolean;\n  /** Identifier of the program that owns the account */\n  owner: string;\n  /** Number of lamports assigned to the account */\n  lamports: number;\n  /** Optional data assigned to the account */\n  data: string[];\n  /** Optional rent epoch info for account */\n  rentEpoch?: number;\n};\n\nexport type TransactionReturnDataEncoding = 'base64';\n\nexport type TransactionReturnData = {\n  programId: string;\n  data: [string, TransactionReturnDataEncoding];\n};\n\nexport type SimulateTransactionConfig = {\n  /** Optional parameter used to enable signature verification before simulation */\n  sigVerify?: boolean;\n  /** Optional parameter used to replace the simulated transaction's recent blockhash with the latest blockhash */\n  replaceRecentBlockhash?: boolean;\n  /** Optional parameter used to set the commitment level when selecting the latest block */\n  commitment?: Commitment;\n  /** Optional parameter used to specify a list of base58-encoded account addresses to return post simulation state for */\n  accounts?: {\n    /** The encoding of the returned account's data */\n    encoding: 'base64';\n    addresses: string[];\n  };\n  /** Optional parameter used to specify the minimum block slot that can be used for simulation */\n  minContextSlot?: number;\n  /** Optional parameter used to include inner instructions in the simulation */\n  innerInstructions?: boolean;\n};\n\nexport type SimulatedTransactionResponse = {\n  err: TransactionError | string | null;\n  logs: Array<string> | null;\n  accounts?: (SimulatedTransactionAccountInfo | null)[] | null;\n  unitsConsumed?: number;\n  returnData?: TransactionReturnData | null;\n  innerInstructions?: ParsedInnerInstruction[] | null;\n};\nconst ParsedInstructionStruct = pick({\n  program: string(),\n  programId: PublicKeyFromString,\n  parsed: unknown(),\n});\n\nconst PartiallyDecodedInstructionStruct = pick({\n  programId: PublicKeyFromString,\n  accounts: array(PublicKeyFromString),\n  data: string(),\n});\n\nconst SimulatedTransactionResponseStruct = jsonRpcResultAndContext(\n  pick({\n    err: nullable(union([pick({}), string()])),\n    logs: nullable(array(string())),\n    accounts: optional(\n      nullable(\n        array(\n          nullable(\n            pick({\n              executable: boolean(),\n              owner: string(),\n              lamports: number(),\n              data: array(string()),\n              rentEpoch: optional(number()),\n            }),\n          ),\n        ),\n      ),\n    ),\n    unitsConsumed: optional(number()),\n    returnData: optional(\n      nullable(\n        pick({\n          programId: string(),\n          data: tuple([string(), literal('base64')]),\n        }),\n      ),\n    ),\n    innerInstructions: optional(\n      nullable(\n        array(\n          pick({\n            index: number(),\n            instructions: array(\n              union([\n                ParsedInstructionStruct,\n                PartiallyDecodedInstructionStruct,\n              ]),\n            ),\n          }),\n        ),\n      ),\n    ),\n  }),\n);\n\nexport type ParsedInnerInstruction = {\n  index: number;\n  instructions: (ParsedInstruction | PartiallyDecodedInstruction)[];\n};\n\nexport type TokenBalance = {\n  accountIndex: number;\n  mint: string;\n  owner?: string;\n  programId?: string;\n  uiTokenAmount: TokenAmount;\n};\n\n/**\n * Metadata for a parsed confirmed transaction on the ledger\n *\n * @deprecated Deprecated since RPC v1.8.0. Please use {@link ParsedTransactionMeta} instead.\n */\nexport type ParsedConfirmedTransactionMeta = ParsedTransactionMeta;\n\n/**\n * Collection of addresses loaded by a transaction using address table lookups\n */\nexport type LoadedAddresses = {\n  writable: Array<PublicKey>;\n  readonly: Array<PublicKey>;\n};\n\n/**\n * Metadata for a parsed transaction on the ledger\n */\nexport type ParsedTransactionMeta = {\n  /** The fee charged for processing the transaction */\n  fee: number;\n  /** An array of cross program invoked parsed instructions */\n  innerInstructions?: ParsedInnerInstruction[] | null;\n  /** The balances of the transaction accounts before processing */\n  preBalances: Array<number>;\n  /** The balances of the transaction accounts after processing */\n  postBalances: Array<number>;\n  /** An array of program log messages emitted during a transaction */\n  logMessages?: Array<string> | null;\n  /** The token balances of the transaction accounts before processing */\n  preTokenBalances?: Array<TokenBalance> | null;\n  /** The token balances of the transaction accounts after processing */\n  postTokenBalances?: Array<TokenBalance> | null;\n  /** The error result of transaction processing */\n  err: TransactionError | null;\n  /** The collection of addresses loaded using address lookup tables */\n  loadedAddresses?: LoadedAddresses;\n  /** The compute units consumed after processing the transaction */\n  computeUnitsConsumed?: number;\n  /** The cost units consumed after processing the transaction */\n  costUnits?: number;\n};\n\nexport type CompiledInnerInstruction = {\n  index: number;\n  instructions: CompiledInstruction[];\n};\n\n/**\n * Metadata for a confirmed transaction on the ledger\n */\nexport type ConfirmedTransactionMeta = {\n  /** The fee charged for processing the transaction */\n  fee: number;\n  /** An array of cross program invoked instructions */\n  innerInstructions?: CompiledInnerInstruction[] | null;\n  /** The balances of the transaction accounts before processing */\n  preBalances: Array<number>;\n  /** The balances of the transaction accounts after processing */\n  postBalances: Array<number>;\n  /** An array of program log messages emitted during a transaction */\n  logMessages?: Array<string> | null;\n  /** The token balances of the transaction accounts before processing */\n  preTokenBalances?: Array<TokenBalance> | null;\n  /** The token balances of the transaction accounts after processing */\n  postTokenBalances?: Array<TokenBalance> | null;\n  /** The error result of transaction processing */\n  err: TransactionError | null;\n  /** The collection of addresses loaded using address lookup tables */\n  loadedAddresses?: LoadedAddresses;\n  /** The compute units consumed after processing the transaction */\n  computeUnitsConsumed?: number;\n  /** The cost units consumed after processing the transaction */\n  costUnits?: number;\n};\n\n/**\n * A processed transaction from the RPC API\n */\nexport type TransactionResponse = {\n  /** The slot during which the transaction was processed */\n  slot: number;\n  /** The transaction */\n  transaction: {\n    /** The transaction message */\n    message: Message;\n    /** The transaction signatures */\n    signatures: string[];\n  };\n  /** Metadata produced from the transaction */\n  meta: ConfirmedTransactionMeta | null;\n  /** The unix timestamp of when the transaction was processed */\n  blockTime?: number | null;\n};\n\n/**\n * A processed transaction from the RPC API\n */\nexport type VersionedTransactionResponse = {\n  /** The slot during which the transaction was processed */\n  slot: number;\n  /** The transaction */\n  transaction: {\n    /** The transaction message */\n    message: VersionedMessage;\n    /** The transaction signatures */\n    signatures: string[];\n  };\n  /** Metadata produced from the transaction */\n  meta: ConfirmedTransactionMeta | null;\n  /** The unix timestamp of when the transaction was processed */\n  blockTime?: number | null;\n  /** The transaction version */\n  version?: TransactionVersion;\n};\n\n/**\n * A processed transaction message from the RPC API\n */\ntype MessageResponse = {\n  accountKeys: string[];\n  header: MessageHeader;\n  instructions: CompiledInstruction[];\n  recentBlockhash: string;\n  addressTableLookups?: ParsedAddressTableLookup[];\n};\n\n/**\n * A confirmed transaction on the ledger\n *\n * @deprecated Deprecated since RPC v1.8.0.\n */\nexport type ConfirmedTransaction = {\n  /** The slot during which the transaction was processed */\n  slot: number;\n  /** The details of the transaction */\n  transaction: Transaction;\n  /** Metadata produced from the transaction */\n  meta: ConfirmedTransactionMeta | null;\n  /** The unix timestamp of when the transaction was processed */\n  blockTime?: number | null;\n};\n\n/**\n * A partially decoded transaction instruction\n */\nexport type PartiallyDecodedInstruction = {\n  /** Program id called by this instruction */\n  programId: PublicKey;\n  /** Public keys of accounts passed to this instruction */\n  accounts: Array<PublicKey>;\n  /** Raw base-58 instruction data */\n  data: string;\n};\n\n/**\n * A parsed transaction message account\n */\nexport type ParsedMessageAccount = {\n  /** Public key of the account */\n  pubkey: PublicKey;\n  /** Indicates if the account signed the transaction */\n  signer: boolean;\n  /** Indicates if the account is writable for this transaction */\n  writable: boolean;\n  /** Indicates if the account key came from the transaction or a lookup table */\n  source?: 'transaction' | 'lookupTable';\n};\n\n/**\n * A parsed transaction instruction\n */\nexport type ParsedInstruction = {\n  /** Name of the program for this instruction */\n  program: string;\n  /** ID of the program for this instruction */\n  programId: PublicKey;\n  /** Parsed instruction info */\n  parsed: any;\n};\n\n/**\n * A parsed address table lookup\n */\nexport type ParsedAddressTableLookup = {\n  /** Address lookup table account key */\n  accountKey: PublicKey;\n  /** Parsed instruction info */\n  writableIndexes: number[];\n  /** Parsed instruction info */\n  readonlyIndexes: number[];\n};\n\n/**\n * A parsed transaction message\n */\nexport type ParsedMessage = {\n  /** Accounts used in the instructions */\n  accountKeys: ParsedMessageAccount[];\n  /** The atomically executed instructions for the transaction */\n  instructions: (ParsedInstruction | PartiallyDecodedInstruction)[];\n  /** Recent blockhash */\n  recentBlockhash: string;\n  /** Address table lookups used to load additional accounts */\n  addressTableLookups?: ParsedAddressTableLookup[] | null;\n};\n\n/**\n * A parsed transaction\n */\nexport type ParsedTransaction = {\n  /** Signatures for the transaction */\n  signatures: Array<string>;\n  /** Message of the transaction */\n  message: ParsedMessage;\n};\n\n/**\n * A parsed and confirmed transaction on the ledger\n *\n * @deprecated Deprecated since RPC v1.8.0. Please use {@link ParsedTransactionWithMeta} instead.\n */\nexport type ParsedConfirmedTransaction = ParsedTransactionWithMeta;\n\n/**\n * A parsed transaction on the ledger with meta\n */\nexport type ParsedTransactionWithMeta = {\n  /** The slot during which the transaction was processed */\n  slot: number;\n  /** The details of the transaction */\n  transaction: ParsedTransaction;\n  /** Metadata produced from the transaction */\n  meta: ParsedTransactionMeta | null;\n  /** The unix timestamp of when the transaction was processed */\n  blockTime?: number | null;\n  /** The version of the transaction message */\n  version?: TransactionVersion;\n};\n\n/**\n * A processed block fetched from the RPC API\n */\nexport type BlockResponse = {\n  /** Blockhash of this block */\n  blockhash: Blockhash;\n  /** Blockhash of this block's parent */\n  previousBlockhash: Blockhash;\n  /** Slot index of this block's parent */\n  parentSlot: number;\n  /** Vector of transactions with status meta and original message */\n  transactions: Array<{\n    /** The transaction */\n    transaction: {\n      /** The transaction message */\n      message: Message;\n      /** The transaction signatures */\n      signatures: string[];\n    };\n    /** Metadata produced from the transaction */\n    meta: ConfirmedTransactionMeta | null;\n    /** The transaction version */\n    version?: TransactionVersion;\n  }>;\n  /** Vector of block rewards */\n  rewards?: Array<{\n    /** Public key of reward recipient */\n    pubkey: string;\n    /** Reward value in lamports */\n    lamports: number;\n    /** Account balance after reward is applied */\n    postBalance: number | null;\n    /** Type of reward received */\n    rewardType: string | null;\n    /** Vote account commission when the reward was credited, only present for voting and staking rewards */\n    commission?: number | null;\n  }>;\n  /** The unix timestamp of when the block was processed */\n  blockTime: number | null;\n};\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\nexport type AccountsModeBlockResponse = VersionedAccountsModeBlockResponse;\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\nexport type NoneModeBlockResponse = VersionedNoneModeBlockResponse;\n\n/**\n * A block with parsed transactions\n */\nexport type ParsedBlockResponse = {\n  /** Blockhash of this block */\n  blockhash: Blockhash;\n  /** Blockhash of this block's parent */\n  previousBlockhash: Blockhash;\n  /** Slot index of this block's parent */\n  parentSlot: number;\n  /** Vector of transactions with status meta and original message */\n  transactions: Array<{\n    /** The details of the transaction */\n    transaction: ParsedTransaction;\n    /** Metadata produced from the transaction */\n    meta: ParsedTransactionMeta | null;\n    /** The transaction version */\n    version?: TransactionVersion;\n  }>;\n  /** Vector of block rewards */\n  rewards?: Array<{\n    /** Public key of reward recipient */\n    pubkey: string;\n    /** Reward value in lamports */\n    lamports: number;\n    /** Account balance after reward is applied */\n    postBalance: number | null;\n    /** Type of reward received */\n    rewardType: string | null;\n    /** Vote account commission when the reward was credited, only present for voting and staking rewards */\n    commission?: number | null;\n  }>;\n  /** The unix timestamp of when the block was processed */\n  blockTime: number | null;\n  /** The number of blocks beneath this block */\n  blockHeight: number | null;\n};\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `accounts`\n */\nexport type ParsedAccountsModeBlockResponse = Omit<\n  ParsedBlockResponse,\n  'transactions'\n> & {\n  transactions: Array<\n    Omit<ParsedBlockResponse['transactions'][number], 'transaction'> & {\n      transaction: Pick<\n        ParsedBlockResponse['transactions'][number]['transaction'],\n        'signatures'\n      > & {\n        accountKeys: ParsedMessageAccount[];\n      };\n    }\n  >;\n};\n\n/**\n * A block with parsed transactions where the `transactionDetails` mode is `none`\n */\nexport type ParsedNoneModeBlockResponse = Omit<\n  ParsedBlockResponse,\n  'transactions'\n>;\n\n/**\n * A processed block fetched from the RPC API\n */\nexport type VersionedBlockResponse = {\n  /** Blockhash of this block */\n  blockhash: Blockhash;\n  /** Blockhash of this block's parent */\n  previousBlockhash: Blockhash;\n  /** Slot index of this block's parent */\n  parentSlot: number;\n  /** Vector of transactions with status meta and original message */\n  transactions: Array<{\n    /** The transaction */\n    transaction: {\n      /** The transaction message */\n      message: VersionedMessage;\n      /** The transaction signatures */\n      signatures: string[];\n    };\n    /** Metadata produced from the transaction */\n    meta: ConfirmedTransactionMeta | null;\n    /** The transaction version */\n    version?: TransactionVersion;\n  }>;\n  /** Vector of block rewards */\n  rewards?: Array<{\n    /** Public key of reward recipient */\n    pubkey: string;\n    /** Reward value in lamports */\n    lamports: number;\n    /** Account balance after reward is applied */\n    postBalance: number | null;\n    /** Type of reward received */\n    rewardType: string | null;\n    /** Vote account commission when the reward was credited, only present for voting and staking rewards */\n    commission?: number | null;\n  }>;\n  /** The unix timestamp of when the block was processed */\n  blockTime: number | null;\n};\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `accounts`\n */\nexport type VersionedAccountsModeBlockResponse = Omit<\n  VersionedBlockResponse,\n  'transactions'\n> & {\n  transactions: Array<\n    Omit<VersionedBlockResponse['transactions'][number], 'transaction'> & {\n      transaction: Pick<\n        VersionedBlockResponse['transactions'][number]['transaction'],\n        'signatures'\n      > & {\n        accountKeys: ParsedMessageAccount[];\n      };\n    }\n  >;\n};\n\n/**\n * A processed block fetched from the RPC API where the `transactionDetails` mode is `none`\n */\nexport type VersionedNoneModeBlockResponse = Omit<\n  VersionedBlockResponse,\n  'transactions'\n>;\n\n/**\n * A confirmed block on the ledger\n *\n * @deprecated Deprecated since RPC v1.8.0.\n */\nexport type ConfirmedBlock = {\n  /** Blockhash of this block */\n  blockhash: Blockhash;\n  /** Blockhash of this block's parent */\n  previousBlockhash: Blockhash;\n  /** Slot index of this block's parent */\n  parentSlot: number;\n  /** Vector of transactions and status metas */\n  transactions: Array<{\n    transaction: Transaction;\n    meta: ConfirmedTransactionMeta | null;\n  }>;\n  /** Vector of block rewards */\n  rewards?: Array<{\n    pubkey: string;\n    lamports: number;\n    postBalance: number | null;\n    rewardType: string | null;\n    commission?: number | null;\n  }>;\n  /** The unix timestamp of when the block was processed */\n  blockTime: number | null;\n};\n\n/**\n * A Block on the ledger with signatures only\n */\nexport type BlockSignatures = {\n  /** Blockhash of this block */\n  blockhash: Blockhash;\n  /** Blockhash of this block's parent */\n  previousBlockhash: Blockhash;\n  /** Slot index of this block's parent */\n  parentSlot: number;\n  /** Vector of signatures */\n  signatures: Array<string>;\n  /** The unix timestamp of when the block was processed */\n  blockTime: number | null;\n};\n\n/**\n * recent block production information\n */\nexport type BlockProduction = Readonly<{\n  /** a dictionary of validator identities, as base-58 encoded strings. Value is a two element array containing the number of leader slots and the number of blocks produced */\n  byIdentity: Readonly<Record<string, ReadonlyArray<number>>>;\n  /** Block production slot range */\n  range: Readonly<{\n    /** first slot of the block production information (inclusive) */\n    firstSlot: number;\n    /** last slot of block production information (inclusive) */\n    lastSlot: number;\n  }>;\n}>;\n\nexport type GetBlockProductionConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** Slot range to return block production for. If parameter not provided, defaults to current epoch. */\n  range?: {\n    /** first slot to return block production information for (inclusive) */\n    firstSlot: number;\n    /** last slot to return block production information for (inclusive). If parameter not provided, defaults to the highest slot */\n    lastSlot?: number;\n  };\n  /** Only return results for this validator identity (base-58 encoded) */\n  identity?: string;\n};\n\n/**\n * Expected JSON RPC response for the \"getBlockProduction\" message\n */\nconst BlockProductionResponseStruct = jsonRpcResultAndContext(\n  pick({\n    byIdentity: record(string(), array(number())),\n    range: pick({\n      firstSlot: number(),\n      lastSlot: number(),\n    }),\n  }),\n);\n\n/**\n * A performance sample\n */\nexport type PerfSample = {\n  /** Slot number of sample */\n  slot: number;\n  /** Number of transactions in a sample window */\n  numTransactions: number;\n  /** Number of slots in a sample window */\n  numSlots: number;\n  /** Sample window in seconds */\n  samplePeriodSecs: number;\n};\n\nfunction createRpcClient(\n  url: string,\n  httpHeaders?: HttpHeaders,\n  customFetch?: FetchFn,\n  fetchMiddleware?: FetchMiddleware,\n  disableRetryOnRateLimit?: boolean,\n  httpAgent?: NodeHttpAgent | NodeHttpsAgent | false,\n): RpcClient {\n  const fetch = customFetch ? customFetch : fetchImpl;\n  let agent: NodeHttpAgent | NodeHttpsAgent | undefined;\n  if (process.env.BROWSER) {\n    if (httpAgent != null) {\n      console.warn(\n        'You have supplied an `httpAgent` when creating a `Connection` in a browser environment.' +\n          'It has been ignored; `httpAgent` is only used in Node environments.',\n      );\n    }\n  } else {\n    if (httpAgent == null) {\n      if (process.env.NODE_ENV !== 'test') {\n        const agentOptions = {\n          // One second fewer than the Solana RPC's keepalive timeout.\n          // Read more: https://github.com/solana-labs/solana/issues/27859#issuecomment-1340097889\n          freeSocketTimeout: 19000,\n          keepAlive: true,\n          maxSockets: 25,\n        };\n        if (url.startsWith('https:')) {\n          agent = new HttpsKeepAliveAgent(agentOptions);\n        } else {\n          agent = new HttpKeepAliveAgent(agentOptions);\n        }\n      }\n    } else {\n      if (httpAgent !== false) {\n        const isHttps = url.startsWith('https:');\n        if (isHttps && !(httpAgent instanceof NodeHttpsAgent)) {\n          throw new Error(\n            'The endpoint `' +\n              url +\n              '` can only be paired with an `https.Agent`. You have, instead, supplied an ' +\n              '`http.Agent` through `httpAgent`.',\n          );\n        } else if (!isHttps && httpAgent instanceof NodeHttpsAgent) {\n          throw new Error(\n            'The endpoint `' +\n              url +\n              '` can only be paired with an `http.Agent`. You have, instead, supplied an ' +\n              '`https.Agent` through `httpAgent`.',\n          );\n        }\n        agent = httpAgent;\n      }\n    }\n  }\n\n  let fetchWithMiddleware: FetchFn | undefined;\n\n  if (fetchMiddleware) {\n    fetchWithMiddleware = async (info, init) => {\n      const modifiedFetchArgs = await new Promise<Parameters<FetchFn>>(\n        (resolve, reject) => {\n          try {\n            fetchMiddleware(info, init, (modifiedInfo, modifiedInit) =>\n              resolve([modifiedInfo, modifiedInit]),\n            );\n          } catch (error) {\n            reject(error);\n          }\n        },\n      );\n      return await fetch(...modifiedFetchArgs);\n    };\n  }\n\n  const clientBrowser = new RpcClient(async (request, callback) => {\n    const options = {\n      method: 'POST',\n      body: request,\n      agent,\n      headers: Object.assign(\n        {\n          'Content-Type': 'application/json',\n        },\n        httpHeaders || {},\n        COMMON_HTTP_HEADERS,\n      ),\n    };\n\n    try {\n      let too_many_requests_retries = 5;\n      let res: Response;\n      let waitTime = 500;\n      for (;;) {\n        if (fetchWithMiddleware) {\n          res = await fetchWithMiddleware(url, options);\n        } else {\n          res = await fetch(url, options);\n        }\n\n        if (res.status !== 429 /* Too many requests */) {\n          break;\n        }\n        if (disableRetryOnRateLimit === true) {\n          break;\n        }\n        too_many_requests_retries -= 1;\n        if (too_many_requests_retries === 0) {\n          break;\n        }\n        console.error(\n          `Server responded with ${res.status} ${res.statusText}.  Retrying after ${waitTime}ms delay...`,\n        );\n        await sleep(waitTime);\n        waitTime *= 2;\n      }\n\n      const text = await res.text();\n      if (res.ok) {\n        callback(null, text);\n      } else {\n        callback(new Error(`${res.status} ${res.statusText}: ${text}`));\n      }\n    } catch (err) {\n      if (err instanceof Error) callback(err);\n    }\n  }, {});\n\n  return clientBrowser;\n}\n\nfunction createRpcRequest(client: RpcClient): RpcRequest {\n  return (method, args) => {\n    return new Promise((resolve, reject) => {\n      client.request(method, args, (err: any, response: any) => {\n        if (err) {\n          reject(err);\n          return;\n        }\n        resolve(response);\n      });\n    });\n  };\n}\n\nfunction createRpcBatchRequest(client: RpcClient): RpcBatchRequest {\n  return (requests: RpcParams[]) => {\n    return new Promise((resolve, reject) => {\n      // Do nothing if requests is empty\n      if (requests.length === 0) resolve([]);\n\n      const batch = requests.map((params: RpcParams) => {\n        return client.request(params.methodName, params.args);\n      });\n\n      client.request(batch, (err: any, response: any) => {\n        if (err) {\n          reject(err);\n          return;\n        }\n        resolve(response);\n      });\n    });\n  };\n}\n\n/**\n * Expected JSON RPC response for the \"getInflationGovernor\" message\n */\nconst GetInflationGovernorRpcResult = jsonRpcResult(GetInflationGovernorResult);\n\n/**\n * Expected JSON RPC response for the \"getInflationRate\" message\n */\nconst GetInflationRateRpcResult = jsonRpcResult(GetInflationRateResult);\n\n/**\n * Expected JSON RPC response for the \"getRecentPrioritizationFees\" message\n */\nconst GetRecentPrioritizationFeesRpcResult = jsonRpcResult(\n  GetRecentPrioritizationFeesResult,\n);\n\n/**\n * Expected JSON RPC response for the \"getEpochInfo\" message\n */\nconst GetEpochInfoRpcResult = jsonRpcResult(GetEpochInfoResult);\n\n/**\n * Expected JSON RPC response for the \"getEpochSchedule\" message\n */\nconst GetEpochScheduleRpcResult = jsonRpcResult(GetEpochScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"getLeaderSchedule\" message\n */\nconst GetLeaderScheduleRpcResult = jsonRpcResult(GetLeaderScheduleResult);\n\n/**\n * Expected JSON RPC response for the \"minimumLedgerSlot\" and \"getFirstAvailableBlock\" messages\n */\nconst SlotRpcResult = jsonRpcResult(number());\n\n/**\n * Supply\n */\nexport type Supply = {\n  /** Total supply in lamports */\n  total: number;\n  /** Circulating supply in lamports */\n  circulating: number;\n  /** Non-circulating supply in lamports */\n  nonCirculating: number;\n  /** List of non-circulating account addresses */\n  nonCirculatingAccounts: Array<PublicKey>;\n};\n\n/**\n * Expected JSON RPC response for the \"getSupply\" message\n */\nconst GetSupplyRpcResult = jsonRpcResultAndContext(\n  pick({\n    total: number(),\n    circulating: number(),\n    nonCirculating: number(),\n    nonCirculatingAccounts: array(PublicKeyFromString),\n  }),\n);\n\n/**\n * Token amount object which returns a token amount in different formats\n * for various client use cases.\n */\nexport type TokenAmount = {\n  /** Raw amount of tokens as string ignoring decimals */\n  amount: string;\n  /** Number of decimals configured for token's mint */\n  decimals: number;\n  /** Token amount as float, accounts for decimals */\n  uiAmount: number | null;\n  /** Token amount as string, accounts for decimals */\n  uiAmountString?: string;\n};\n\n/**\n * Expected JSON RPC structure for token amounts\n */\nconst TokenAmountResult = pick({\n  amount: string(),\n  uiAmount: nullable(number()),\n  decimals: number(),\n  uiAmountString: optional(string()),\n});\n\n/**\n * Token address and balance.\n */\nexport type TokenAccountBalancePair = {\n  /** Address of the token account */\n  address: PublicKey;\n  /** Raw amount of tokens as string ignoring decimals */\n  amount: string;\n  /** Number of decimals configured for token's mint */\n  decimals: number;\n  /** Token amount as float, accounts for decimals */\n  uiAmount: number | null;\n  /** Token amount as string, accounts for decimals */\n  uiAmountString?: string;\n};\n\n/**\n * Expected JSON RPC response for the \"getTokenLargestAccounts\" message\n */\nconst GetTokenLargestAccountsResult = jsonRpcResultAndContext(\n  array(\n    pick({\n      address: PublicKeyFromString,\n      amount: string(),\n      uiAmount: nullable(number()),\n      decimals: number(),\n      uiAmountString: optional(string()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message\n */\nconst GetTokenAccountsByOwner = jsonRpcResultAndContext(\n  array(\n    pick({\n      pubkey: PublicKeyFromString,\n      account: pick({\n        executable: boolean(),\n        owner: PublicKeyFromString,\n        lamports: number(),\n        data: BufferFromRawAccountData,\n        rentEpoch: number(),\n      }),\n    }),\n  ),\n);\n\nconst ParsedAccountDataResult = pick({\n  program: string(),\n  parsed: unknown(),\n  space: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"getTokenAccountsByOwner\" message with parsed data\n */\nconst GetParsedTokenAccountsByOwner = jsonRpcResultAndContext(\n  array(\n    pick({\n      pubkey: PublicKeyFromString,\n      account: pick({\n        executable: boolean(),\n        owner: PublicKeyFromString,\n        lamports: number(),\n        data: ParsedAccountDataResult,\n        rentEpoch: number(),\n      }),\n    }),\n  ),\n);\n\n/**\n * Pair of an account address and its balance\n */\nexport type AccountBalancePair = {\n  address: PublicKey;\n  lamports: number;\n};\n\n/**\n * Expected JSON RPC response for the \"getLargestAccounts\" message\n */\nconst GetLargestAccountsRpcResult = jsonRpcResultAndContext(\n  array(\n    pick({\n      lamports: number(),\n      address: PublicKeyFromString,\n    }),\n  ),\n);\n\n/**\n * @internal\n */\nconst AccountInfoResult = pick({\n  executable: boolean(),\n  owner: PublicKeyFromString,\n  lamports: number(),\n  data: BufferFromRawAccountData,\n  rentEpoch: number(),\n});\n\n/**\n * @internal\n */\nconst KeyedAccountInfoResult = pick({\n  pubkey: PublicKeyFromString,\n  account: AccountInfoResult,\n});\n\nconst ParsedOrRawAccountData = coerce(\n  union([instance(Buffer), ParsedAccountDataResult]),\n  union([RawAccountDataResult, ParsedAccountDataResult]),\n  value => {\n    if (Array.isArray(value)) {\n      return create(value, BufferFromRawAccountData);\n    } else {\n      return value;\n    }\n  },\n);\n\n/**\n * @internal\n */\nconst ParsedAccountInfoResult = pick({\n  executable: boolean(),\n  owner: PublicKeyFromString,\n  lamports: number(),\n  data: ParsedOrRawAccountData,\n  rentEpoch: number(),\n});\n\nconst KeyedParsedAccountInfoResult = pick({\n  pubkey: PublicKeyFromString,\n  account: ParsedAccountInfoResult,\n});\n\n/**\n * @internal\n */\nconst StakeActivationResult = pick({\n  state: union([\n    literal('active'),\n    literal('inactive'),\n    literal('activating'),\n    literal('deactivating'),\n  ]),\n  active: number(),\n  inactive: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"getConfirmedSignaturesForAddress2\" message\n */\n\nconst GetConfirmedSignaturesForAddress2RpcResult = jsonRpcResult(\n  array(\n    pick({\n      signature: string(),\n      slot: number(),\n      err: TransactionErrorResult,\n      memo: nullable(string()),\n      blockTime: optional(nullable(number())),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getSignaturesForAddress\" message\n */\nconst GetSignaturesForAddressRpcResult = jsonRpcResult(\n  array(\n    pick({\n      signature: string(),\n      slot: number(),\n      err: TransactionErrorResult,\n      memo: nullable(string()),\n      blockTime: optional(nullable(number())),\n    }),\n  ),\n);\n\n/***\n * Expected JSON RPC response for the \"accountNotification\" message\n */\nconst AccountNotificationResult = pick({\n  subscription: number(),\n  result: notificationResultAndContext(AccountInfoResult),\n});\n\n/**\n * @internal\n */\nconst ProgramAccountInfoResult = pick({\n  pubkey: PublicKeyFromString,\n  account: AccountInfoResult,\n});\n\n/***\n * Expected JSON RPC response for the \"programNotification\" message\n */\nconst ProgramAccountNotificationResult = pick({\n  subscription: number(),\n  result: notificationResultAndContext(ProgramAccountInfoResult),\n});\n\n/**\n * @internal\n */\nconst SlotInfoResult = pick({\n  parent: number(),\n  slot: number(),\n  root: number(),\n});\n\n/**\n * Expected JSON RPC response for the \"slotNotification\" message\n */\nconst SlotNotificationResult = pick({\n  subscription: number(),\n  result: SlotInfoResult,\n});\n\n/**\n * Slot updates which can be used for tracking the live progress of a cluster.\n * - `\"firstShredReceived\"`: connected node received the first shred of a block.\n * Indicates that a new block that is being produced.\n * - `\"completed\"`: connected node has received all shreds of a block. Indicates\n * a block was recently produced.\n * - `\"optimisticConfirmation\"`: block was optimistically confirmed by the\n * cluster. It is not guaranteed that an optimistic confirmation notification\n * will be sent for every finalized blocks.\n * - `\"root\"`: the connected node rooted this block.\n * - `\"createdBank\"`: the connected node has started validating this block.\n * - `\"frozen\"`: the connected node has validated this block.\n * - `\"dead\"`: the connected node failed to validate this block.\n */\nexport type SlotUpdate =\n  | {\n      type: 'firstShredReceived';\n      slot: number;\n      timestamp: number;\n    }\n  | {\n      type: 'completed';\n      slot: number;\n      timestamp: number;\n    }\n  | {\n      type: 'createdBank';\n      slot: number;\n      timestamp: number;\n      parent: number;\n    }\n  | {\n      type: 'frozen';\n      slot: number;\n      timestamp: number;\n      stats: {\n        numTransactionEntries: number;\n        numSuccessfulTransactions: number;\n        numFailedTransactions: number;\n        maxTransactionsPerEntry: number;\n      };\n    }\n  | {\n      type: 'dead';\n      slot: number;\n      timestamp: number;\n      err: string;\n    }\n  | {\n      type: 'optimisticConfirmation';\n      slot: number;\n      timestamp: number;\n    }\n  | {\n      type: 'root';\n      slot: number;\n      timestamp: number;\n    };\n\n/**\n * @internal\n */\nconst SlotUpdateResult = union([\n  pick({\n    type: union([\n      literal('firstShredReceived'),\n      literal('completed'),\n      literal('optimisticConfirmation'),\n      literal('root'),\n    ]),\n    slot: number(),\n    timestamp: number(),\n  }),\n  pick({\n    type: literal('createdBank'),\n    parent: number(),\n    slot: number(),\n    timestamp: number(),\n  }),\n  pick({\n    type: literal('frozen'),\n    slot: number(),\n    timestamp: number(),\n    stats: pick({\n      numTransactionEntries: number(),\n      numSuccessfulTransactions: number(),\n      numFailedTransactions: number(),\n      maxTransactionsPerEntry: number(),\n    }),\n  }),\n  pick({\n    type: literal('dead'),\n    slot: number(),\n    timestamp: number(),\n    err: string(),\n  }),\n]);\n\n/**\n * Expected JSON RPC response for the \"slotsUpdatesNotification\" message\n */\nconst SlotUpdateNotificationResult = pick({\n  subscription: number(),\n  result: SlotUpdateResult,\n});\n\n/**\n * Expected JSON RPC response for the \"signatureNotification\" message\n */\nconst SignatureNotificationResult = pick({\n  subscription: number(),\n  result: notificationResultAndContext(\n    union([SignatureStatusResult, SignatureReceivedResult]),\n  ),\n});\n\n/**\n * Expected JSON RPC response for the \"rootNotification\" message\n */\nconst RootNotificationResult = pick({\n  subscription: number(),\n  result: number(),\n});\n\nconst ContactInfoResult = pick({\n  pubkey: string(),\n  gossip: nullable(string()),\n  tpu: nullable(string()),\n  rpc: nullable(string()),\n  version: nullable(string()),\n});\n\nconst VoteAccountInfoResult = pick({\n  votePubkey: string(),\n  nodePubkey: string(),\n  activatedStake: number(),\n  epochVoteAccount: boolean(),\n  epochCredits: array(tuple([number(), number(), number()])),\n  commission: number(),\n  lastVote: number(),\n  rootSlot: nullable(number()),\n});\n\n/**\n * Expected JSON RPC response for the \"getVoteAccounts\" message\n */\nconst GetVoteAccounts = jsonRpcResult(\n  pick({\n    current: array(VoteAccountInfoResult),\n    delinquent: array(VoteAccountInfoResult),\n  }),\n);\n\nconst ConfirmationStatus = union([\n  literal('processed'),\n  literal('confirmed'),\n  literal('finalized'),\n]);\n\nconst SignatureStatusResponse = pick({\n  slot: number(),\n  confirmations: nullable(number()),\n  err: TransactionErrorResult,\n  confirmationStatus: optional(ConfirmationStatus),\n});\n\n/**\n * Expected JSON RPC response for the \"getSignatureStatuses\" message\n */\nconst GetSignatureStatusesRpcResult = jsonRpcResultAndContext(\n  array(nullable(SignatureStatusResponse)),\n);\n\n/**\n * Expected JSON RPC response for the \"getMinimumBalanceForRentExemption\" message\n */\nconst GetMinimumBalanceForRentExemptionRpcResult = jsonRpcResult(number());\n\nconst AddressTableLookupStruct = pick({\n  accountKey: PublicKeyFromString,\n  writableIndexes: array(number()),\n  readonlyIndexes: array(number()),\n});\n\nconst ConfirmedTransactionResult = pick({\n  signatures: array(string()),\n  message: pick({\n    accountKeys: array(string()),\n    header: pick({\n      numRequiredSignatures: number(),\n      numReadonlySignedAccounts: number(),\n      numReadonlyUnsignedAccounts: number(),\n    }),\n    instructions: array(\n      pick({\n        accounts: array(number()),\n        data: string(),\n        programIdIndex: number(),\n      }),\n    ),\n    recentBlockhash: string(),\n    addressTableLookups: optional(array(AddressTableLookupStruct)),\n  }),\n});\n\nconst AnnotatedAccountKey = pick({\n  pubkey: PublicKeyFromString,\n  signer: boolean(),\n  writable: boolean(),\n  source: optional(union([literal('transaction'), literal('lookupTable')])),\n});\n\nconst ConfirmedTransactionAccountsModeResult = pick({\n  accountKeys: array(AnnotatedAccountKey),\n  signatures: array(string()),\n});\n\nconst ParsedInstructionResult = pick({\n  parsed: unknown(),\n  program: string(),\n  programId: PublicKeyFromString,\n});\n\nconst RawInstructionResult = pick({\n  accounts: array(PublicKeyFromString),\n  data: string(),\n  programId: PublicKeyFromString,\n});\n\nconst InstructionResult = union([\n  RawInstructionResult,\n  ParsedInstructionResult,\n]);\n\nconst UnknownInstructionResult = union([\n  pick({\n    parsed: unknown(),\n    program: string(),\n    programId: string(),\n  }),\n  pick({\n    accounts: array(string()),\n    data: string(),\n    programId: string(),\n  }),\n]);\n\nconst ParsedOrRawInstruction = coerce(\n  InstructionResult,\n  UnknownInstructionResult,\n  value => {\n    if ('accounts' in value) {\n      return create(value, RawInstructionResult);\n    } else {\n      return create(value, ParsedInstructionResult);\n    }\n  },\n);\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionResult = pick({\n  signatures: array(string()),\n  message: pick({\n    accountKeys: array(AnnotatedAccountKey),\n    instructions: array(ParsedOrRawInstruction),\n    recentBlockhash: string(),\n    addressTableLookups: optional(nullable(array(AddressTableLookupStruct))),\n  }),\n});\n\nconst TokenBalanceResult = pick({\n  accountIndex: number(),\n  mint: string(),\n  owner: optional(string()),\n  programId: optional(string()),\n  uiTokenAmount: TokenAmountResult,\n});\n\nconst LoadedAddressesResult = pick({\n  writable: array(PublicKeyFromString),\n  readonly: array(PublicKeyFromString),\n});\n\n/**\n * @internal\n */\nconst ConfirmedTransactionMetaResult = pick({\n  err: TransactionErrorResult,\n  fee: number(),\n  innerInstructions: optional(\n    nullable(\n      array(\n        pick({\n          index: number(),\n          instructions: array(\n            pick({\n              accounts: array(number()),\n              data: string(),\n              programIdIndex: number(),\n            }),\n          ),\n        }),\n      ),\n    ),\n  ),\n  preBalances: array(number()),\n  postBalances: array(number()),\n  logMessages: optional(nullable(array(string()))),\n  preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n  postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n  loadedAddresses: optional(LoadedAddressesResult),\n  computeUnitsConsumed: optional(number()),\n  costUnits: optional(number()),\n});\n\n/**\n * @internal\n */\nconst ParsedConfirmedTransactionMetaResult = pick({\n  err: TransactionErrorResult,\n  fee: number(),\n  innerInstructions: optional(\n    nullable(\n      array(\n        pick({\n          index: number(),\n          instructions: array(ParsedOrRawInstruction),\n        }),\n      ),\n    ),\n  ),\n  preBalances: array(number()),\n  postBalances: array(number()),\n  logMessages: optional(nullable(array(string()))),\n  preTokenBalances: optional(nullable(array(TokenBalanceResult))),\n  postTokenBalances: optional(nullable(array(TokenBalanceResult))),\n  loadedAddresses: optional(LoadedAddressesResult),\n  computeUnitsConsumed: optional(number()),\n  costUnits: optional(number()),\n});\n\nconst TransactionVersionStruct = union([literal(0), literal('legacy')]);\n\n/** @internal */\nconst RewardsResult = pick({\n  pubkey: string(),\n  lamports: number(),\n  postBalance: nullable(number()),\n  rewardType: nullable(string()),\n  commission: optional(nullable(number())),\n});\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      transactions: array(\n        pick({\n          transaction: ConfirmedTransactionResult,\n          meta: nullable(ConfirmedTransactionMetaResult),\n          version: optional(TransactionVersionStruct),\n        }),\n      ),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `none`\n */\nconst GetNoneModeBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message when `transactionDetails` is `accounts`\n */\nconst GetAccountsModeBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      transactions: array(\n        pick({\n          transaction: ConfirmedTransactionAccountsModeResult,\n          meta: nullable(ConfirmedTransactionMetaResult),\n          version: optional(TransactionVersionStruct),\n        }),\n      ),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message\n */\nconst GetParsedBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      transactions: array(\n        pick({\n          transaction: ParsedConfirmedTransactionResult,\n          meta: nullable(ParsedConfirmedTransactionMetaResult),\n          version: optional(TransactionVersionStruct),\n        }),\n      ),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message  when `transactionDetails` is `accounts`\n */\nconst GetParsedAccountsModeBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      transactions: array(\n        pick({\n          transaction: ConfirmedTransactionAccountsModeResult,\n          meta: nullable(ParsedConfirmedTransactionMetaResult),\n          version: optional(TransactionVersionStruct),\n        }),\n      ),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected parsed JSON RPC response for the \"getBlock\" message  when `transactionDetails` is `none`\n */\nconst GetParsedNoneModeBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n      blockHeight: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getConfirmedBlock\" message\n *\n * @deprecated Deprecated since RPC v1.8.0. Please use {@link GetBlockRpcResult} instead.\n */\nconst GetConfirmedBlockRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      transactions: array(\n        pick({\n          transaction: ConfirmedTransactionResult,\n          meta: nullable(ConfirmedTransactionMetaResult),\n        }),\n      ),\n      rewards: optional(array(RewardsResult)),\n      blockTime: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getBlock\" message\n */\nconst GetBlockSignaturesRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      blockhash: string(),\n      previousBlockhash: string(),\n      parentSlot: number(),\n      signatures: array(string()),\n      blockTime: nullable(number()),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getTransaction\" message\n */\nconst GetTransactionRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      slot: number(),\n      meta: nullable(ConfirmedTransactionMetaResult),\n      blockTime: optional(nullable(number())),\n      transaction: ConfirmedTransactionResult,\n      version: optional(TransactionVersionStruct),\n    }),\n  ),\n);\n\n/**\n * Expected parsed JSON RPC response for the \"getTransaction\" message\n */\nconst GetParsedTransactionRpcResult = jsonRpcResult(\n  nullable(\n    pick({\n      slot: number(),\n      transaction: ParsedConfirmedTransactionResult,\n      meta: nullable(ParsedConfirmedTransactionMetaResult),\n      blockTime: optional(nullable(number())),\n      version: optional(TransactionVersionStruct),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"getLatestBlockhash\" message\n */\nconst GetLatestBlockhashRpcResult = jsonRpcResultAndContext(\n  pick({\n    blockhash: string(),\n    lastValidBlockHeight: number(),\n  }),\n);\n\n/**\n * Expected JSON RPC response for the \"isBlockhashValid\" message\n */\nconst IsBlockhashValidRpcResult = jsonRpcResultAndContext(boolean());\n\nconst PerfSampleResult = pick({\n  slot: number(),\n  numTransactions: number(),\n  numSlots: number(),\n  samplePeriodSecs: number(),\n});\n\n/*\n * Expected JSON RPC response for \"getRecentPerformanceSamples\" message\n */\nconst GetRecentPerformanceSamplesRpcResult = jsonRpcResult(\n  array(PerfSampleResult),\n);\n\n/**\n * Expected JSON RPC response for the \"getFeeCalculatorForBlockhash\" message\n */\nconst GetFeeCalculatorRpcResult = jsonRpcResultAndContext(\n  nullable(\n    pick({\n      feeCalculator: pick({\n        lamportsPerSignature: number(),\n      }),\n    }),\n  ),\n);\n\n/**\n * Expected JSON RPC response for the \"requestAirdrop\" message\n */\nconst RequestAirdropRpcResult = jsonRpcResult(string());\n\n/**\n * Expected JSON RPC response for the \"sendTransaction\" message\n */\nconst SendTransactionRpcResult = jsonRpcResult(string());\n\n/**\n * Information about the latest slot being processed by a node\n */\nexport type SlotInfo = {\n  /** Currently processing slot */\n  slot: number;\n  /** Parent of the current slot */\n  parent: number;\n  /** The root block of the current slot's fork */\n  root: number;\n};\n\n/**\n * Parsed account data\n */\nexport type ParsedAccountData = {\n  /** Name of the program that owns this account */\n  program: string;\n  /** Parsed account data */\n  parsed: any;\n  /** Space used by account data */\n  space: number;\n};\n\n/**\n * Stake Activation data\n */\nexport type StakeActivationData = {\n  /** the stake account's activation state */\n  state: 'active' | 'inactive' | 'activating' | 'deactivating';\n  /** stake active during the epoch */\n  active: number;\n  /** stake inactive during the epoch */\n  inactive: number;\n};\n\n/**\n * Data slice argument for getProgramAccounts\n */\nexport type DataSlice = {\n  /** offset of data slice */\n  offset: number;\n  /** length of data slice */\n  length: number;\n};\n\n/**\n * Memory comparison filter for getProgramAccounts\n */\nexport type MemcmpFilter = {\n  memcmp: {\n    /** offset into program account data to start comparison */\n    offset: number;\n  } & (\n    | {\n        encoding?: 'base58'; // Base-58 is the default when not supplied.\n        /** data to match, as base-58 encoded string and limited to less than 129 bytes */\n        bytes: string;\n      }\n    | {\n        encoding: 'base64';\n        /** data to match, as base-64 encoded string */\n        bytes: string;\n      }\n  );\n};\n\n/**\n * Data size comparison filter for getProgramAccounts\n */\nexport type DataSizeFilter = {\n  /** Size of data for program account data length comparison */\n  dataSize: number;\n};\n\n/**\n * A filter object for getProgramAccounts\n */\nexport type GetProgramAccountsFilter = MemcmpFilter | DataSizeFilter;\n\n/**\n * Configuration object for getProgramAccounts requests\n */\nexport type GetProgramAccountsConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** Optional encoding for account data (default base64)\n   * To use \"jsonParsed\" encoding, please refer to `getParsedProgramAccounts` in connection.ts\n   * */\n  encoding?: 'base64';\n  /** Optional data slice to limit the returned account data */\n  dataSlice?: DataSlice;\n  /** Optional array of filters to apply to accounts */\n  filters?: GetProgramAccountsFilter[];\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n  /** wrap the result in an RpcResponse JSON object */\n  withContext?: boolean;\n};\n\nexport type GetProgramAccountsResponse = readonly Readonly<{\n  account: AccountInfo<Buffer>;\n  /** the account Pubkey as base-58 encoded string */\n  pubkey: PublicKey;\n}>[];\n\n/**\n * Configuration object for getParsedProgramAccounts\n */\nexport type GetParsedProgramAccountsConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** Optional array of filters to apply to accounts */\n  filters?: GetProgramAccountsFilter[];\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for getMultipleAccounts\n */\nexport type GetMultipleAccountsConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n  /** Optional data slice to limit the returned account data */\n  dataSlice?: DataSlice;\n};\n\n/**\n * Configuration object for `getStakeActivation`\n */\nexport type GetStakeActivationConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** Epoch for which to calculate activation details. If parameter not provided, defaults to current epoch */\n  epoch?: number;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for `getStakeActivation`\n */\nexport type GetTokenAccountsByOwnerConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for `getStakeActivation`\n */\nexport type GetTransactionCountConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for `getNonce`\n */\nexport type GetNonceConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\n/**\n * Configuration object for `getNonceAndContext`\n */\nexport type GetNonceAndContextConfig = {\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** The minimum slot that the request can be evaluated at */\n  minContextSlot?: number;\n};\n\nexport type AccountSubscriptionConfig = Readonly<{\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /**\n   * Encoding format for Account data\n   *   - `base58` is slow.\n   *   - `jsonParsed` encoding attempts to use program-specific state parsers to return more\n   *      human-readable and explicit account state data\n   *   - If `jsonParsed` is requested but a parser cannot be found, the field falls back to `base64`\n   *     encoding, detectable when the `data` field is type `string`.\n   */\n  encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n}>;\n\nexport type ProgramAccountSubscriptionConfig = Readonly<{\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /**\n   * Encoding format for Account data\n   *   - `base58` is slow.\n   *   - `jsonParsed` encoding attempts to use program-specific state parsers to return more\n   *      human-readable and explicit account state data\n   *   - If `jsonParsed` is requested but a parser cannot be found, the field falls back to `base64`\n   *     encoding, detectable when the `data` field is type `string`.\n   */\n  encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n  /**\n   * Filter results using various filter objects\n   * The resultant account must meet ALL filter criteria to be included in the returned results\n   */\n  filters?: GetProgramAccountsFilter[];\n}>;\n\n/**\n * Information describing an account\n */\nexport type AccountInfo<T> = {\n  /** `true` if this account's data contains a loaded program */\n  executable: boolean;\n  /** Identifier of the program that owns the account */\n  owner: PublicKey;\n  /** Number of lamports assigned to the account */\n  lamports: number;\n  /** Optional data assigned to the account */\n  data: T;\n  /** Optional rent epoch info for account */\n  rentEpoch?: number;\n};\n\n/**\n * Account information identified by pubkey\n */\nexport type KeyedAccountInfo = {\n  accountId: PublicKey;\n  accountInfo: AccountInfo<Buffer>;\n};\n\n/**\n * Callback function for account change notifications\n */\nexport type AccountChangeCallback = (\n  accountInfo: AccountInfo<Buffer>,\n  context: Context,\n) => void;\n\n/**\n * Callback function for program account change notifications\n */\nexport type ProgramAccountChangeCallback = (\n  keyedAccountInfo: KeyedAccountInfo,\n  context: Context,\n) => void;\n\n/**\n * Callback function for slot change notifications\n */\nexport type SlotChangeCallback = (slotInfo: SlotInfo) => void;\n\n/**\n * Callback function for slot update notifications\n */\nexport type SlotUpdateCallback = (slotUpdate: SlotUpdate) => void;\n\n/**\n * Callback function for signature status notifications\n */\nexport type SignatureResultCallback = (\n  signatureResult: SignatureResult,\n  context: Context,\n) => void;\n\n/**\n * Signature status notification with transaction result\n */\nexport type SignatureStatusNotification = {\n  type: 'status';\n  result: SignatureResult;\n};\n\n/**\n * Signature received notification\n */\nexport type SignatureReceivedNotification = {\n  type: 'received';\n};\n\n/**\n * Callback function for signature notifications\n */\nexport type SignatureSubscriptionCallback = (\n  notification: SignatureStatusNotification | SignatureReceivedNotification,\n  context: Context,\n) => void;\n\n/**\n * Signature subscription options\n */\nexport type SignatureSubscriptionOptions = {\n  commitment?: Commitment;\n  enableReceivedNotification?: boolean;\n};\n\n/**\n * Callback function for root change notifications\n */\nexport type RootChangeCallback = (root: number) => void;\n\n/**\n * @internal\n */\nconst LogsResult = pick({\n  err: TransactionErrorResult,\n  logs: array(string()),\n  signature: string(),\n});\n\n/**\n * Logs result.\n */\nexport type Logs = {\n  err: TransactionError | null;\n  logs: string[];\n  signature: string;\n};\n\n/**\n * Expected JSON RPC response for the \"logsNotification\" message.\n */\nconst LogsNotificationResult = pick({\n  result: notificationResultAndContext(LogsResult),\n  subscription: number(),\n});\n\n/**\n * Filter for log subscriptions.\n */\nexport type LogsFilter = PublicKey | 'all' | 'allWithVotes';\n\n/**\n * Callback function for log notifications.\n */\nexport type LogsCallback = (logs: Logs, ctx: Context) => void;\n\n/**\n * Signature result\n */\nexport type SignatureResult = {\n  err: TransactionError | null;\n};\n\n/**\n * Transaction error\n */\nexport type TransactionError = {} | string;\n\n/**\n * Transaction confirmation status\n * <pre>\n *   'processed': Transaction landed in a block which has reached 1 confirmation by the connected node\n *   'confirmed': Transaction landed in a block which has reached 1 confirmation by the cluster\n *   'finalized': Transaction landed in a block which has been finalized by the cluster\n * </pre>\n */\nexport type TransactionConfirmationStatus =\n  | 'processed'\n  | 'confirmed'\n  | 'finalized';\n\n/**\n * Signature status\n */\nexport type SignatureStatus = {\n  /** when the transaction was processed */\n  slot: number;\n  /** the number of blocks that have been confirmed and voted on in the fork containing `slot` */\n  confirmations: number | null;\n  /** transaction error, if any */\n  err: TransactionError | null;\n  /** cluster confirmation status, if data available. Possible responses: `processed`, `confirmed`, `finalized` */\n  confirmationStatus?: TransactionConfirmationStatus;\n};\n\n/**\n * A confirmed signature with its status\n */\nexport type ConfirmedSignatureInfo = {\n  /** the transaction signature */\n  signature: string;\n  /** when the transaction was processed */\n  slot: number;\n  /** error, if any */\n  err: TransactionError | null;\n  /** memo associated with the transaction, if any */\n  memo: string | null;\n  /** The unix timestamp of when the transaction was processed */\n  blockTime?: number | null;\n  /** Cluster confirmation status, if available. Possible values: `processed`, `confirmed`, `finalized` */\n  confirmationStatus?: TransactionConfirmationStatus;\n};\n\n/**\n * An object defining headers to be passed to the RPC server\n */\nexport type HttpHeaders = {\n  [header: string]: string;\n} & {\n  // Prohibited headers; for internal use only.\n  'solana-client'?: never;\n};\n\n/**\n * The type of the JavaScript `fetch()` API\n */\nexport type FetchFn = typeof fetchImpl;\n\n/**\n * A callback used to augment the outgoing HTTP request\n */\nexport type FetchMiddleware = (\n  info: Parameters<FetchFn>[0],\n  init: Parameters<FetchFn>[1],\n  fetch: (...a: Parameters<FetchFn>) => void,\n) => void;\n\n/**\n * Configuration for instantiating a Connection\n */\nexport type ConnectionConfig = {\n  /**\n   * An `http.Agent` that will be used to manage socket connections (eg. to implement connection\n   * persistence). Set this to `false` to create a connection that uses no agent. This applies to\n   * Node environments only.\n   */\n  httpAgent?: NodeHttpAgent | NodeHttpsAgent | false;\n  /** Optional commitment level */\n  commitment?: Commitment;\n  /** Optional endpoint URL to the fullnode JSON RPC PubSub WebSocket Endpoint */\n  wsEndpoint?: string;\n  /** Optional HTTP headers object */\n  httpHeaders?: HttpHeaders;\n  /** Optional custom fetch function */\n  fetch?: FetchFn;\n  /** Optional fetch middleware callback */\n  fetchMiddleware?: FetchMiddleware;\n  /** Optional Disable retrying calls when server responds with HTTP 429 (Too Many Requests) */\n  disableRetryOnRateLimit?: boolean;\n  /** time to allow for the server to initially process a transaction (in milliseconds) */\n  confirmTransactionInitialTimeout?: number;\n};\n\n/** @internal */\nconst COMMON_HTTP_HEADERS = {\n  'solana-client': `js/${process.env.npm_package_version ?? 'UNKNOWN'}`,\n};\n\n/**\n * A connection to a fullnode JSON RPC endpoint\n */\nexport class Connection {\n  /** @internal */ _commitment?: Commitment;\n  /** @internal */ _confirmTransactionInitialTimeout?: number;\n  /** @internal */ _rpcEndpoint: string;\n  /** @internal */ _rpcWsEndpoint: string;\n  /** @internal */ _rpcClient: RpcClient;\n  /** @internal */ _rpcRequest: RpcRequest;\n  /** @internal */ _rpcBatchRequest: RpcBatchRequest;\n  /** @internal */ _rpcWebSocket: RpcWebSocketClient;\n  /** @internal */ _rpcWebSocketConnected: boolean = false;\n  /** @internal */ _rpcWebSocketHeartbeat: ReturnType<\n    typeof setInterval\n  > | null = null;\n  /** @internal */ _rpcWebSocketIdleTimeout: ReturnType<\n    typeof setTimeout\n  > | null = null;\n  /** @internal\n   * A number that we increment every time an active connection closes.\n   * Used to determine whether the same socket connection that was open\n   * when an async operation started is the same one that's active when\n   * its continuation fires.\n   *\n   */ private _rpcWebSocketGeneration: number = 0;\n\n  /** @internal */ _disableBlockhashCaching: boolean = false;\n  /** @internal */ _pollingBlockhash: boolean = false;\n  /** @internal */ _blockhashInfo: {\n    latestBlockhash: BlockhashWithExpiryBlockHeight | null;\n    lastFetch: number;\n    simulatedSignatures: Array<string>;\n    transactionSignatures: Array<string>;\n  } = {\n    latestBlockhash: null,\n    lastFetch: 0,\n    transactionSignatures: [],\n    simulatedSignatures: [],\n  };\n\n  /** @internal */ private _nextClientSubscriptionId: ClientSubscriptionId = 0;\n  /** @internal */ private _subscriptionDisposeFunctionsByClientSubscriptionId: {\n    [clientSubscriptionId: ClientSubscriptionId]:\n      | SubscriptionDisposeFn\n      | undefined;\n  } = {};\n  /** @internal */ private _subscriptionHashByClientSubscriptionId: {\n    [clientSubscriptionId: ClientSubscriptionId]:\n      | SubscriptionConfigHash\n      | undefined;\n  } = {};\n  /** @internal */ private _subscriptionStateChangeCallbacksByHash: {\n    [hash: SubscriptionConfigHash]:\n      | Set<SubscriptionStateChangeCallback>\n      | undefined;\n  } = {};\n  /** @internal */ private _subscriptionCallbacksByServerSubscriptionId: {\n    [serverSubscriptionId: ServerSubscriptionId]:\n      | Set<SubscriptionConfig['callback']>\n      | undefined;\n  } = {};\n  /** @internal */ private _subscriptionsByHash: {\n    [hash: SubscriptionConfigHash]: Subscription | undefined;\n  } = {};\n  /**\n   * Special case.\n   * After a signature is processed, RPCs automatically dispose of the\n   * subscription on the server side. We need to track which of these\n   * subscriptions have been disposed in such a way, so that we know\n   * whether the client is dealing with a not-yet-processed signature\n   * (in which case we must tear down the server subscription) or an\n   * already-processed signature (in which case the client can simply\n   * clear out the subscription locally without telling the server).\n   *\n   * NOTE: There is a proposal to eliminate this special case, here:\n   * https://github.com/solana-labs/solana/issues/18892\n   */\n  /** @internal */ private _subscriptionsAutoDisposedByRpc: Set<ServerSubscriptionId> =\n    new Set();\n\n  /**\n   * Establish a JSON RPC connection\n   *\n   * @param endpoint URL to the fullnode JSON RPC endpoint\n   * @param commitmentOrConfig optional default commitment level or optional ConnectionConfig configuration object\n   */\n  constructor(\n    endpoint: string,\n    commitmentOrConfig?: Commitment | ConnectionConfig,\n  ) {\n    let wsEndpoint;\n    let httpHeaders;\n    let fetch;\n    let fetchMiddleware;\n    let disableRetryOnRateLimit;\n    let httpAgent;\n    if (commitmentOrConfig && typeof commitmentOrConfig === 'string') {\n      this._commitment = commitmentOrConfig;\n    } else if (commitmentOrConfig) {\n      this._commitment = commitmentOrConfig.commitment;\n      this._confirmTransactionInitialTimeout =\n        commitmentOrConfig.confirmTransactionInitialTimeout;\n      wsEndpoint = commitmentOrConfig.wsEndpoint;\n      httpHeaders = commitmentOrConfig.httpHeaders;\n      fetch = commitmentOrConfig.fetch;\n      fetchMiddleware = commitmentOrConfig.fetchMiddleware;\n      disableRetryOnRateLimit = commitmentOrConfig.disableRetryOnRateLimit;\n      httpAgent = commitmentOrConfig.httpAgent;\n    }\n\n    this._rpcEndpoint = assertEndpointUrl(endpoint);\n    this._rpcWsEndpoint = wsEndpoint || makeWebsocketUrl(endpoint);\n\n    this._rpcClient = createRpcClient(\n      endpoint,\n      httpHeaders,\n      fetch,\n      fetchMiddleware,\n      disableRetryOnRateLimit,\n      httpAgent,\n    );\n    this._rpcRequest = createRpcRequest(this._rpcClient);\n    this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);\n\n    this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {\n      autoconnect: false,\n      max_reconnects: Infinity,\n    });\n    this._rpcWebSocket.on('open', this._wsOnOpen.bind(this));\n    this._rpcWebSocket.on('error', this._wsOnError.bind(this));\n    this._rpcWebSocket.on('close', this._wsOnClose.bind(this));\n    this._rpcWebSocket.on(\n      'accountNotification',\n      this._wsOnAccountNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'programNotification',\n      this._wsOnProgramAccountNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'slotNotification',\n      this._wsOnSlotNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'slotsUpdatesNotification',\n      this._wsOnSlotUpdatesNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'signatureNotification',\n      this._wsOnSignatureNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'rootNotification',\n      this._wsOnRootNotification.bind(this),\n    );\n    this._rpcWebSocket.on(\n      'logsNotification',\n      this._wsOnLogsNotification.bind(this),\n    );\n  }\n\n  /**\n   * The default commitment used for requests\n   */\n  get commitment(): Commitment | undefined {\n    return this._commitment;\n  }\n\n  /**\n   * The RPC endpoint\n   */\n  get rpcEndpoint(): string {\n    return this._rpcEndpoint;\n  }\n\n  /**\n   * Fetch the balance for the specified public key, return with context\n   */\n  async getBalanceAndContext(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetBalanceConfig,\n  ): Promise<RpcResponseAndContext<number>> {\n    /** @internal */\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [publicKey.toBase58()],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getBalance', args);\n    const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get balance for ${publicKey.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the balance for the specified public key\n   */\n  async getBalance(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetBalanceConfig,\n  ): Promise<number> {\n    return await this.getBalanceAndContext(publicKey, commitmentOrConfig)\n      .then(x => x.value)\n      .catch(e => {\n        throw new Error(\n          'failed to get balance of account ' + publicKey.toBase58() + ': ' + e,\n        );\n      });\n  }\n\n  /**\n   * Fetch the estimated production time of a block\n   */\n  async getBlockTime(slot: number): Promise<number | null> {\n    const unsafeRes = await this._rpcRequest('getBlockTime', [slot]);\n    const res = create(unsafeRes, jsonRpcResult(nullable(number())));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get block time for slot ${slot}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the lowest slot that the node has information about in its ledger.\n   * This value may increase over time if the node is configured to purge older ledger data\n   */\n  async getMinimumLedgerSlot(): Promise<number> {\n    const unsafeRes = await this._rpcRequest('minimumLedgerSlot', []);\n    const res = create(unsafeRes, jsonRpcResult(number()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get minimum ledger slot',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the slot of the lowest confirmed block that has not been purged from the ledger\n   */\n  async getFirstAvailableBlock(): Promise<number> {\n    const unsafeRes = await this._rpcRequest('getFirstAvailableBlock', []);\n    const res = create(unsafeRes, SlotRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get first available block',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch information about the current supply\n   */\n  async getSupply(\n    config?: GetSupplyConfig | Commitment,\n  ): Promise<RpcResponseAndContext<Supply>> {\n    let configArg: GetSupplyConfig = {};\n    if (typeof config === 'string') {\n      configArg = {commitment: config};\n    } else if (config) {\n      configArg = {\n        ...config,\n        commitment: (config && config.commitment) || this.commitment,\n      };\n    } else {\n      configArg = {\n        commitment: this.commitment,\n      };\n    }\n\n    const unsafeRes = await this._rpcRequest('getSupply', [configArg]);\n    const res = create(unsafeRes, GetSupplyRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get supply');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current supply of a token mint\n   */\n  async getTokenSupply(\n    tokenMintAddress: PublicKey,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<TokenAmount>> {\n    const args = this._buildArgs([tokenMintAddress.toBase58()], commitment);\n    const unsafeRes = await this._rpcRequest('getTokenSupply', args);\n    const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get token supply');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current balance of a token account\n   */\n  async getTokenAccountBalance(\n    tokenAddress: PublicKey,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<TokenAmount>> {\n    const args = this._buildArgs([tokenAddress.toBase58()], commitment);\n    const unsafeRes = await this._rpcRequest('getTokenAccountBalance', args);\n    const res = create(unsafeRes, jsonRpcResultAndContext(TokenAmountResult));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get token account balance',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the token accounts owned by the specified account\n   *\n   * @return {Promise<RpcResponseAndContext<GetProgramAccountsResponse>}\n   */\n  async getTokenAccountsByOwner(\n    ownerAddress: PublicKey,\n    filter: TokenAccountsFilter,\n    commitmentOrConfig?: Commitment | GetTokenAccountsByOwnerConfig,\n  ): Promise<RpcResponseAndContext<GetProgramAccountsResponse>> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    let _args: any[] = [ownerAddress.toBase58()];\n    if ('mint' in filter) {\n      _args.push({mint: filter.mint.toBase58()});\n    } else {\n      _args.push({programId: filter.programId.toBase58()});\n    }\n\n    const args = this._buildArgs(_args, commitment, 'base64', config);\n    const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n    const res = create(unsafeRes, GetTokenAccountsByOwner);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get token accounts owned by account ${ownerAddress.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch parsed token accounts owned by the specified account\n   *\n   * @return {Promise<RpcResponseAndContext<Array<{pubkey: PublicKey, account: AccountInfo<ParsedAccountData>}>>>}\n   */\n  async getParsedTokenAccountsByOwner(\n    ownerAddress: PublicKey,\n    filter: TokenAccountsFilter,\n    commitment?: Commitment,\n  ): Promise<\n    RpcResponseAndContext<\n      Array<{pubkey: PublicKey; account: AccountInfo<ParsedAccountData>}>\n    >\n  > {\n    let _args: any[] = [ownerAddress.toBase58()];\n    if ('mint' in filter) {\n      _args.push({mint: filter.mint.toBase58()});\n    } else {\n      _args.push({programId: filter.programId.toBase58()});\n    }\n\n    const args = this._buildArgs(_args, commitment, 'jsonParsed');\n    const unsafeRes = await this._rpcRequest('getTokenAccountsByOwner', args);\n    const res = create(unsafeRes, GetParsedTokenAccountsByOwner);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get token accounts owned by account ${ownerAddress.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the 20 largest accounts with their current balances\n   */\n  async getLargestAccounts(\n    config?: GetLargestAccountsConfig,\n  ): Promise<RpcResponseAndContext<Array<AccountBalancePair>>> {\n    const arg = {\n      ...config,\n      commitment: (config && config.commitment) || this.commitment,\n    };\n    const args = arg.filter || arg.commitment ? [arg] : [];\n    const unsafeRes = await this._rpcRequest('getLargestAccounts', args);\n    const res = create(unsafeRes, GetLargestAccountsRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get largest accounts');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the 20 largest token accounts with their current balances\n   * for a given mint.\n   */\n  async getTokenLargestAccounts(\n    mintAddress: PublicKey,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<Array<TokenAccountBalancePair>>> {\n    const args = this._buildArgs([mintAddress.toBase58()], commitment);\n    const unsafeRes = await this._rpcRequest('getTokenLargestAccounts', args);\n    const res = create(unsafeRes, GetTokenLargestAccountsResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get token largest accounts',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the account info for the specified public key, return with context\n   */\n  async getAccountInfoAndContext(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetAccountInfoConfig,\n  ): Promise<RpcResponseAndContext<AccountInfo<Buffer> | null>> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [publicKey.toBase58()],\n      commitment,\n      'base64',\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n    const res = create(\n      unsafeRes,\n      jsonRpcResultAndContext(nullable(AccountInfoResult)),\n    );\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get info about account ${publicKey.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch parsed account info for the specified public key\n   */\n  async getParsedAccountInfo(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetAccountInfoConfig,\n  ): Promise<\n    RpcResponseAndContext<AccountInfo<Buffer | ParsedAccountData> | null>\n  > {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [publicKey.toBase58()],\n      commitment,\n      'jsonParsed',\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getAccountInfo', args);\n    const res = create(\n      unsafeRes,\n      jsonRpcResultAndContext(nullable(ParsedAccountInfoResult)),\n    );\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get info about account ${publicKey.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the account info for the specified public key\n   */\n  async getAccountInfo(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetAccountInfoConfig,\n  ): Promise<AccountInfo<Buffer> | null> {\n    try {\n      const res = await this.getAccountInfoAndContext(\n        publicKey,\n        commitmentOrConfig,\n      );\n      return res.value;\n    } catch (e) {\n      throw new Error(\n        'failed to get info about account ' + publicKey.toBase58() + ': ' + e,\n      );\n    }\n  }\n\n  /**\n   * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n   */\n  async getMultipleParsedAccounts(\n    publicKeys: PublicKey[],\n    rawConfig?: GetMultipleAccountsConfig,\n  ): Promise<\n    RpcResponseAndContext<(AccountInfo<Buffer | ParsedAccountData> | null)[]>\n  > {\n    const {commitment, config} = extractCommitmentFromConfig(rawConfig);\n    const keys = publicKeys.map(key => key.toBase58());\n    const args = this._buildArgs([keys], commitment, 'jsonParsed', config);\n    const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n    const res = create(\n      unsafeRes,\n      jsonRpcResultAndContext(array(nullable(ParsedAccountInfoResult))),\n    );\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get info for accounts ${keys}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the account info for multiple accounts specified by an array of public keys, return with context\n   */\n  async getMultipleAccountsInfoAndContext(\n    publicKeys: PublicKey[],\n    commitmentOrConfig?: Commitment | GetMultipleAccountsConfig,\n  ): Promise<RpcResponseAndContext<(AccountInfo<Buffer> | null)[]>> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const keys = publicKeys.map(key => key.toBase58());\n    const args = this._buildArgs([keys], commitment, 'base64', config);\n    const unsafeRes = await this._rpcRequest('getMultipleAccounts', args);\n    const res = create(\n      unsafeRes,\n      jsonRpcResultAndContext(array(nullable(AccountInfoResult))),\n    );\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get info for accounts ${keys}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the account info for multiple accounts specified by an array of public keys\n   */\n  async getMultipleAccountsInfo(\n    publicKeys: PublicKey[],\n    commitmentOrConfig?: Commitment | GetMultipleAccountsConfig,\n  ): Promise<(AccountInfo<Buffer> | null)[]> {\n    const res = await this.getMultipleAccountsInfoAndContext(\n      publicKeys,\n      commitmentOrConfig,\n    );\n    return res.value;\n  }\n\n  /**\n   * Returns epoch activation information for a stake account that has been delegated\n   *\n   * @deprecated Deprecated since RPC v1.18; will be removed in a future version.\n   */\n  async getStakeActivation(\n    publicKey: PublicKey,\n    commitmentOrConfig?: Commitment | GetStakeActivationConfig,\n    epoch?: number,\n  ): Promise<StakeActivationData> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [publicKey.toBase58()],\n      commitment,\n      undefined /* encoding */,\n      {\n        ...config,\n        epoch: epoch != null ? epoch : config?.epoch,\n      },\n    );\n\n    const unsafeRes = await this._rpcRequest('getStakeActivation', args);\n    const res = create(unsafeRes, jsonRpcResult(StakeActivationResult));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get Stake Activation ${publicKey.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch all the accounts owned by the specified program id\n   *\n   * @return {Promise<Array<{pubkey: PublicKey, account: AccountInfo<Buffer>}>>}\n   */\n  async getProgramAccounts(\n    programId: PublicKey,\n    configOrCommitment: GetProgramAccountsConfig &\n      Readonly<{withContext: true}>,\n  ): Promise<RpcResponseAndContext<GetProgramAccountsResponse>>;\n  // eslint-disable-next-line no-dupe-class-members\n  async getProgramAccounts(\n    programId: PublicKey,\n    configOrCommitment?: GetProgramAccountsConfig | Commitment,\n  ): Promise<GetProgramAccountsResponse>;\n  // eslint-disable-next-line no-dupe-class-members\n  async getProgramAccounts(\n    programId: PublicKey,\n    configOrCommitment?: GetProgramAccountsConfig | Commitment,\n  ): Promise<\n    | GetProgramAccountsResponse\n    | RpcResponseAndContext<GetProgramAccountsResponse>\n  > {\n    const {commitment, config} =\n      extractCommitmentFromConfig(configOrCommitment);\n    const {encoding, ...configWithoutEncoding} = config || {};\n    const args = this._buildArgs(\n      [programId.toBase58()],\n      commitment,\n      encoding || 'base64',\n      {\n        ...configWithoutEncoding,\n        ...(configWithoutEncoding.filters\n          ? {\n              filters: applyDefaultMemcmpEncodingToFilters(\n                configWithoutEncoding.filters,\n              ),\n            }\n          : null),\n      },\n    );\n    const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n    const baseSchema = array(KeyedAccountInfoResult);\n    const res =\n      configWithoutEncoding.withContext === true\n        ? create(unsafeRes, jsonRpcResultAndContext(baseSchema))\n        : create(unsafeRes, jsonRpcResult(baseSchema));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get accounts owned by program ${programId.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch and parse all the accounts owned by the specified program id\n   *\n   * @return {Promise<Array<{pubkey: PublicKey, account: AccountInfo<Buffer | ParsedAccountData>}>>}\n   */\n  async getParsedProgramAccounts(\n    programId: PublicKey,\n    configOrCommitment?: GetParsedProgramAccountsConfig | Commitment,\n  ): Promise<\n    Array<{\n      pubkey: PublicKey;\n      account: AccountInfo<Buffer | ParsedAccountData>;\n    }>\n  > {\n    const {commitment, config} =\n      extractCommitmentFromConfig(configOrCommitment);\n    const args = this._buildArgs(\n      [programId.toBase58()],\n      commitment,\n      'jsonParsed',\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getProgramAccounts', args);\n    const res = create(\n      unsafeRes,\n      jsonRpcResult(array(KeyedParsedAccountInfoResult)),\n    );\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get accounts owned by program ${programId.toBase58()}`,\n      );\n    }\n    return res.result;\n  }\n\n  confirmTransaction(\n    strategy: TransactionConfirmationStrategy,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<SignatureResult>>;\n\n  /** @deprecated Instead, call `confirmTransaction` and pass in {@link TransactionConfirmationStrategy} */\n  // eslint-disable-next-line no-dupe-class-members\n  confirmTransaction(\n    strategy: TransactionSignature,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<SignatureResult>>;\n\n  // eslint-disable-next-line no-dupe-class-members\n  async confirmTransaction(\n    strategy: TransactionConfirmationStrategy | TransactionSignature,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<SignatureResult>> {\n    let rawSignature: string;\n\n    if (typeof strategy == 'string') {\n      rawSignature = strategy;\n    } else {\n      const config = strategy as TransactionConfirmationStrategy;\n\n      if (config.abortSignal?.aborted) {\n        return Promise.reject(config.abortSignal.reason);\n      }\n      rawSignature = config.signature;\n    }\n\n    let decodedSignature;\n\n    try {\n      decodedSignature = bs58.decode(rawSignature);\n    } catch (err) {\n      throw new Error('signature must be base58 encoded: ' + rawSignature);\n    }\n\n    assert(decodedSignature.length === 64, 'signature has invalid length');\n\n    if (typeof strategy === 'string') {\n      return await this.confirmTransactionUsingLegacyTimeoutStrategy({\n        commitment: commitment || this.commitment,\n        signature: rawSignature,\n      });\n    } else if ('lastValidBlockHeight' in strategy) {\n      return await this.confirmTransactionUsingBlockHeightExceedanceStrategy({\n        commitment: commitment || this.commitment,\n        strategy,\n      });\n    } else {\n      return await this.confirmTransactionUsingDurableNonceStrategy({\n        commitment: commitment || this.commitment,\n        strategy,\n      });\n    }\n  }\n\n  private getCancellationPromise(signal?: AbortSignal): Promise<never> {\n    return new Promise<never>((_, reject) => {\n      if (signal == null) {\n        return;\n      }\n      if (signal.aborted) {\n        reject(signal.reason);\n      } else {\n        signal.addEventListener('abort', () => {\n          reject(signal.reason);\n        });\n      }\n    });\n  }\n\n  private getTransactionConfirmationPromise({\n    commitment,\n    signature,\n  }: {\n    commitment?: Commitment;\n    signature: string;\n  }): {\n    abortConfirmation(): void;\n    confirmationPromise: Promise<{\n      __type: TransactionStatus.PROCESSED;\n      response: RpcResponseAndContext<SignatureResult>;\n    }>;\n  } {\n    let signatureSubscriptionId: number | undefined;\n    let disposeSignatureSubscriptionStateChangeObserver:\n      | SubscriptionStateChangeDisposeFn\n      | undefined;\n    let done = false;\n    const confirmationPromise = new Promise<{\n      __type: TransactionStatus.PROCESSED;\n      response: RpcResponseAndContext<SignatureResult>;\n    }>((resolve, reject) => {\n      try {\n        signatureSubscriptionId = this.onSignature(\n          signature,\n          (result: SignatureResult, context: Context) => {\n            signatureSubscriptionId = undefined;\n            const response = {\n              context,\n              value: result,\n            };\n            resolve({__type: TransactionStatus.PROCESSED, response});\n          },\n          commitment,\n        );\n        const subscriptionSetupPromise = new Promise<void>(\n          resolveSubscriptionSetup => {\n            if (signatureSubscriptionId == null) {\n              resolveSubscriptionSetup();\n            } else {\n              disposeSignatureSubscriptionStateChangeObserver =\n                this._onSubscriptionStateChange(\n                  signatureSubscriptionId,\n                  nextState => {\n                    if (nextState === 'subscribed') {\n                      resolveSubscriptionSetup();\n                    }\n                  },\n                );\n            }\n          },\n        );\n        (async () => {\n          await subscriptionSetupPromise;\n          if (done) return;\n          const response = await this.getSignatureStatus(signature);\n          if (done) return;\n          if (response == null) {\n            return;\n          }\n          const {context, value} = response;\n          if (value == null) {\n            return;\n          }\n          if (value?.err) {\n            reject(value.err);\n          } else {\n            switch (commitment) {\n              case 'confirmed':\n              case 'single':\n              case 'singleGossip': {\n                if (value.confirmationStatus === 'processed') {\n                  return;\n                }\n                break;\n              }\n              case 'finalized':\n              case 'max':\n              case 'root': {\n                if (\n                  value.confirmationStatus === 'processed' ||\n                  value.confirmationStatus === 'confirmed'\n                ) {\n                  return;\n                }\n                break;\n              }\n              // exhaust enums to ensure full coverage\n              case 'processed':\n              case 'recent':\n            }\n            done = true;\n            resolve({\n              __type: TransactionStatus.PROCESSED,\n              response: {\n                context,\n                value,\n              },\n            });\n          }\n        })();\n      } catch (err) {\n        reject(err);\n      }\n    });\n    const abortConfirmation = () => {\n      if (disposeSignatureSubscriptionStateChangeObserver) {\n        disposeSignatureSubscriptionStateChangeObserver();\n        disposeSignatureSubscriptionStateChangeObserver = undefined;\n      }\n      if (signatureSubscriptionId != null) {\n        this.removeSignatureListener(signatureSubscriptionId);\n        signatureSubscriptionId = undefined;\n      }\n    };\n    return {abortConfirmation, confirmationPromise};\n  }\n\n  private async confirmTransactionUsingBlockHeightExceedanceStrategy({\n    commitment,\n    strategy: {abortSignal, lastValidBlockHeight, signature},\n  }: {\n    commitment?: Commitment;\n    strategy: BlockheightBasedTransactionConfirmationStrategy;\n  }) {\n    let done: boolean = false;\n    const expiryPromise = new Promise<{\n      __type: TransactionStatus.BLOCKHEIGHT_EXCEEDED;\n    }>(resolve => {\n      const checkBlockHeight = async () => {\n        try {\n          const blockHeight = await this.getBlockHeight(commitment);\n          return blockHeight;\n        } catch (_e) {\n          return -1;\n        }\n      };\n      (async () => {\n        let currentBlockHeight = await checkBlockHeight();\n        if (done) return;\n        while (currentBlockHeight <= lastValidBlockHeight) {\n          await sleep(1000);\n          if (done) return;\n          currentBlockHeight = await checkBlockHeight();\n          if (done) return;\n        }\n        resolve({__type: TransactionStatus.BLOCKHEIGHT_EXCEEDED});\n      })();\n    });\n    const {abortConfirmation, confirmationPromise} =\n      this.getTransactionConfirmationPromise({commitment, signature});\n    const cancellationPromise = this.getCancellationPromise(abortSignal);\n    let result: RpcResponseAndContext<SignatureResult>;\n    try {\n      const outcome = await Promise.race([\n        cancellationPromise,\n        confirmationPromise,\n        expiryPromise,\n      ]);\n      if (outcome.__type === TransactionStatus.PROCESSED) {\n        result = outcome.response;\n      } else {\n        throw new TransactionExpiredBlockheightExceededError(signature);\n      }\n    } finally {\n      done = true;\n      abortConfirmation();\n    }\n    return result;\n  }\n\n  private async confirmTransactionUsingDurableNonceStrategy({\n    commitment,\n    strategy: {\n      abortSignal,\n      minContextSlot,\n      nonceAccountPubkey,\n      nonceValue,\n      signature,\n    },\n  }: {\n    commitment?: Commitment;\n    strategy: DurableNonceTransactionConfirmationStrategy;\n  }) {\n    let done: boolean = false;\n    const expiryPromise = new Promise<{\n      __type: TransactionStatus.NONCE_INVALID;\n      slotInWhichNonceDidAdvance: number | null;\n    }>(resolve => {\n      let currentNonceValue: string | undefined = nonceValue;\n      let lastCheckedSlot: number | null = null;\n      const getCurrentNonceValue = async () => {\n        try {\n          const {context, value: nonceAccount} = await this.getNonceAndContext(\n            nonceAccountPubkey,\n            {\n              commitment,\n              minContextSlot,\n            },\n          );\n          lastCheckedSlot = context.slot;\n          return nonceAccount?.nonce;\n        } catch (e) {\n          // If for whatever reason we can't reach/read the nonce\n          // account, just keep using the last-known value.\n          return currentNonceValue;\n        }\n      };\n      (async () => {\n        currentNonceValue = await getCurrentNonceValue();\n        if (done) return;\n        while (\n          true // eslint-disable-line no-constant-condition\n        ) {\n          if (nonceValue !== currentNonceValue) {\n            resolve({\n              __type: TransactionStatus.NONCE_INVALID,\n              slotInWhichNonceDidAdvance: lastCheckedSlot,\n            });\n            return;\n          }\n          await sleep(2000);\n          if (done) return;\n          currentNonceValue = await getCurrentNonceValue();\n          if (done) return;\n        }\n      })();\n    });\n    const {abortConfirmation, confirmationPromise} =\n      this.getTransactionConfirmationPromise({commitment, signature});\n    const cancellationPromise = this.getCancellationPromise(abortSignal);\n    let result: RpcResponseAndContext<SignatureResult>;\n    try {\n      const outcome = await Promise.race([\n        cancellationPromise,\n        confirmationPromise,\n        expiryPromise,\n      ]);\n      if (outcome.__type === TransactionStatus.PROCESSED) {\n        result = outcome.response;\n      } else {\n        // Double check that the transaction is indeed unconfirmed.\n        let signatureStatus:\n          | RpcResponseAndContext<SignatureStatus | null>\n          | null\n          | undefined;\n        while (\n          true // eslint-disable-line no-constant-condition\n        ) {\n          const status = await this.getSignatureStatus(signature);\n          if (status == null) {\n            break;\n          }\n          if (\n            status.context.slot <\n            (outcome.slotInWhichNonceDidAdvance ?? minContextSlot)\n          ) {\n            await sleep(400);\n            continue;\n          }\n          signatureStatus = status;\n          break;\n        }\n        if (signatureStatus?.value) {\n          const commitmentForStatus = commitment || 'finalized';\n          const {confirmationStatus} = signatureStatus.value;\n          switch (commitmentForStatus) {\n            case 'processed':\n            case 'recent':\n              if (\n                confirmationStatus !== 'processed' &&\n                confirmationStatus !== 'confirmed' &&\n                confirmationStatus !== 'finalized'\n              ) {\n                throw new TransactionExpiredNonceInvalidError(signature);\n              }\n              break;\n            case 'confirmed':\n            case 'single':\n            case 'singleGossip':\n              if (\n                confirmationStatus !== 'confirmed' &&\n                confirmationStatus !== 'finalized'\n              ) {\n                throw new TransactionExpiredNonceInvalidError(signature);\n              }\n              break;\n            case 'finalized':\n            case 'max':\n            case 'root':\n              if (confirmationStatus !== 'finalized') {\n                throw new TransactionExpiredNonceInvalidError(signature);\n              }\n              break;\n            default:\n              // Exhaustive switch.\n              // eslint-disable-next-line @typescript-eslint/no-unused-vars\n              ((_: never) => {})(commitmentForStatus);\n          }\n          result = {\n            context: signatureStatus.context,\n            value: {err: signatureStatus.value.err},\n          };\n        } else {\n          throw new TransactionExpiredNonceInvalidError(signature);\n        }\n      }\n    } finally {\n      done = true;\n      abortConfirmation();\n    }\n    return result;\n  }\n\n  private async confirmTransactionUsingLegacyTimeoutStrategy({\n    commitment,\n    signature,\n  }: {\n    commitment?: Commitment;\n    signature: string;\n  }) {\n    let timeoutId;\n    const expiryPromise = new Promise<{\n      __type: TransactionStatus.TIMED_OUT;\n      timeoutMs: number;\n    }>(resolve => {\n      let timeoutMs = this._confirmTransactionInitialTimeout || 60 * 1000;\n      switch (commitment) {\n        case 'processed':\n        case 'recent':\n        case 'single':\n        case 'confirmed':\n        case 'singleGossip': {\n          timeoutMs = this._confirmTransactionInitialTimeout || 30 * 1000;\n          break;\n        }\n        // exhaust enums to ensure full coverage\n        case 'finalized':\n        case 'max':\n        case 'root':\n      }\n      timeoutId = setTimeout(\n        () => resolve({__type: TransactionStatus.TIMED_OUT, timeoutMs}),\n        timeoutMs,\n      );\n    });\n    const {abortConfirmation, confirmationPromise} =\n      this.getTransactionConfirmationPromise({\n        commitment,\n        signature,\n      });\n    let result: RpcResponseAndContext<SignatureResult>;\n    try {\n      const outcome = await Promise.race([confirmationPromise, expiryPromise]);\n      if (outcome.__type === TransactionStatus.PROCESSED) {\n        result = outcome.response;\n      } else {\n        throw new TransactionExpiredTimeoutError(\n          signature,\n          outcome.timeoutMs / 1000,\n        );\n      }\n    } finally {\n      clearTimeout(timeoutId);\n      abortConfirmation();\n    }\n    return result;\n  }\n\n  /**\n   * Return the list of nodes that are currently participating in the cluster\n   */\n  async getClusterNodes(): Promise<Array<ContactInfo>> {\n    const unsafeRes = await this._rpcRequest('getClusterNodes', []);\n    const res = create(unsafeRes, jsonRpcResult(array(ContactInfoResult)));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get cluster nodes');\n    }\n    return res.result;\n  }\n\n  /**\n   * Return the list of nodes that are currently participating in the cluster\n   */\n  async getVoteAccounts(commitment?: Commitment): Promise<VoteAccountStatus> {\n    const args = this._buildArgs([], commitment);\n    const unsafeRes = await this._rpcRequest('getVoteAccounts', args);\n    const res = create(unsafeRes, GetVoteAccounts);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get vote accounts');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current slot that the node is processing\n   */\n  async getSlot(\n    commitmentOrConfig?: Commitment | GetSlotConfig,\n  ): Promise<number> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getSlot', args);\n    const res = create(unsafeRes, jsonRpcResult(number()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get slot');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current slot leader of the cluster\n   */\n  async getSlotLeader(\n    commitmentOrConfig?: Commitment | GetSlotLeaderConfig,\n  ): Promise<string> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getSlotLeader', args);\n    const res = create(unsafeRes, jsonRpcResult(string()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get slot leader');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch `limit` number of slot leaders starting from `startSlot`\n   *\n   * @param startSlot fetch slot leaders starting from this slot\n   * @param limit number of slot leaders to return\n   */\n  async getSlotLeaders(\n    startSlot: number,\n    limit: number,\n  ): Promise<Array<PublicKey>> {\n    const args = [startSlot, limit];\n    const unsafeRes = await this._rpcRequest('getSlotLeaders', args);\n    const res = create(unsafeRes, jsonRpcResult(array(PublicKeyFromString)));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get slot leaders');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current status of a signature\n   */\n  async getSignatureStatus(\n    signature: TransactionSignature,\n    config?: SignatureStatusConfig,\n  ): Promise<RpcResponseAndContext<SignatureStatus | null>> {\n    const {context, value: values} = await this.getSignatureStatuses(\n      [signature],\n      config,\n    );\n    assert(values.length === 1);\n    const value = values[0];\n    return {context, value};\n  }\n\n  /**\n   * Fetch the current statuses of a batch of signatures\n   */\n  async getSignatureStatuses(\n    signatures: Array<TransactionSignature>,\n    config?: SignatureStatusConfig,\n  ): Promise<RpcResponseAndContext<Array<SignatureStatus | null>>> {\n    const params: any[] = [signatures];\n    if (config) {\n      params.push(config);\n    }\n    const unsafeRes = await this._rpcRequest('getSignatureStatuses', params);\n    const res = create(unsafeRes, GetSignatureStatusesRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get signature status');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current transaction count of the cluster\n   */\n  async getTransactionCount(\n    commitmentOrConfig?: Commitment | GetTransactionCountConfig,\n  ): Promise<number> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getTransactionCount', args);\n    const res = create(unsafeRes, jsonRpcResult(number()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get transaction count',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the current total currency supply of the cluster in lamports\n   *\n   * @deprecated Deprecated since RPC v1.2.8. Please use {@link getSupply} instead.\n   */\n  async getTotalSupply(commitment?: Commitment): Promise<number> {\n    const result = await this.getSupply({\n      commitment,\n      excludeNonCirculatingAccountsList: true,\n    });\n    return result.value.total;\n  }\n\n  /**\n   * Fetch the cluster InflationGovernor parameters\n   */\n  async getInflationGovernor(\n    commitment?: Commitment,\n  ): Promise<InflationGovernor> {\n    const args = this._buildArgs([], commitment);\n    const unsafeRes = await this._rpcRequest('getInflationGovernor', args);\n    const res = create(unsafeRes, GetInflationGovernorRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get inflation');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the inflation reward for a list of addresses for an epoch\n   */\n  async getInflationReward(\n    addresses: PublicKey[],\n    epoch?: number,\n    commitmentOrConfig?: Commitment | GetInflationRewardConfig,\n  ): Promise<(InflationReward | null)[]> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [addresses.map(pubkey => pubkey.toBase58())],\n      commitment,\n      undefined /* encoding */,\n      {\n        ...config,\n        epoch: epoch != null ? epoch : config?.epoch,\n      },\n    );\n    const unsafeRes = await this._rpcRequest('getInflationReward', args);\n    const res = create(unsafeRes, GetInflationRewardResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get inflation reward');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the specific inflation values for the current epoch\n   */\n  async getInflationRate(): Promise<InflationRate> {\n    const unsafeRes = await this._rpcRequest('getInflationRate', []);\n    const res = create(unsafeRes, GetInflationRateRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get inflation rate');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the Epoch Info parameters\n   */\n  async getEpochInfo(\n    commitmentOrConfig?: Commitment | GetEpochInfoConfig,\n  ): Promise<EpochInfo> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getEpochInfo', args);\n    const res = create(unsafeRes, GetEpochInfoRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get epoch info');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the Epoch Schedule parameters\n   */\n  async getEpochSchedule(): Promise<EpochSchedule> {\n    const unsafeRes = await this._rpcRequest('getEpochSchedule', []);\n    const res = create(unsafeRes, GetEpochScheduleRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get epoch schedule');\n    }\n    const epochSchedule = res.result;\n    return new EpochSchedule(\n      epochSchedule.slotsPerEpoch,\n      epochSchedule.leaderScheduleSlotOffset,\n      epochSchedule.warmup,\n      epochSchedule.firstNormalEpoch,\n      epochSchedule.firstNormalSlot,\n    );\n  }\n\n  /**\n   * Fetch the leader schedule for the current epoch\n   * @return {Promise<RpcResponseAndContext<LeaderSchedule>>}\n   */\n  async getLeaderSchedule(): Promise<LeaderSchedule> {\n    const unsafeRes = await this._rpcRequest('getLeaderSchedule', []);\n    const res = create(unsafeRes, GetLeaderScheduleRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get leader schedule');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the minimum balance needed to exempt an account of `dataLength`\n   * size from rent\n   */\n  async getMinimumBalanceForRentExemption(\n    dataLength: number,\n    commitment?: Commitment,\n  ): Promise<number> {\n    const args = this._buildArgs([dataLength], commitment);\n    const unsafeRes = await this._rpcRequest(\n      'getMinimumBalanceForRentExemption',\n      args,\n    );\n    const res = create(unsafeRes, GetMinimumBalanceForRentExemptionRpcResult);\n    if ('error' in res) {\n      console.warn('Unable to fetch minimum balance for rent exemption');\n      return 0;\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch a recent blockhash from the cluster, return with context\n   * @return {Promise<RpcResponseAndContext<{blockhash: Blockhash, feeCalculator: FeeCalculator}>>}\n   *\n   * @deprecated Deprecated since RPC v1.9.0. Please use {@link getLatestBlockhash} instead.\n   */\n  async getRecentBlockhashAndContext(commitment?: Commitment): Promise<\n    RpcResponseAndContext<{\n      blockhash: Blockhash;\n      feeCalculator: FeeCalculator;\n    }>\n  > {\n    const {\n      context,\n      value: {blockhash},\n    } = await this.getLatestBlockhashAndContext(commitment);\n    const feeCalculator = {\n      get lamportsPerSignature(): number {\n        throw new Error(\n          'The capability to fetch `lamportsPerSignature` using the `getRecentBlockhash` API is ' +\n            'no longer offered by the network. Use the `getFeeForMessage` API to obtain the fee ' +\n            'for a given message.',\n        );\n      },\n      toJSON() {\n        return {};\n      },\n    };\n    return {\n      context,\n      value: {\n        blockhash,\n        feeCalculator,\n      },\n    };\n  }\n\n  /**\n   * Fetch recent performance samples\n   * @return {Promise<Array<PerfSample>>}\n   */\n  async getRecentPerformanceSamples(\n    limit?: number,\n  ): Promise<Array<PerfSample>> {\n    const unsafeRes = await this._rpcRequest(\n      'getRecentPerformanceSamples',\n      limit ? [limit] : [],\n    );\n    const res = create(unsafeRes, GetRecentPerformanceSamplesRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get recent performance samples',\n      );\n    }\n\n    return res.result;\n  }\n\n  /**\n   * Fetch the fee calculator for a recent blockhash from the cluster, return with context\n   *\n   * @deprecated Deprecated since RPC v1.9.0. Please use {@link getFeeForMessage} instead.\n   */\n  async getFeeCalculatorForBlockhash(\n    blockhash: Blockhash,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<FeeCalculator | null>> {\n    const args = this._buildArgs([blockhash], commitment);\n    const unsafeRes = await this._rpcRequest(\n      'getFeeCalculatorForBlockhash',\n      args,\n    );\n\n    const res = create(unsafeRes, GetFeeCalculatorRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get fee calculator');\n    }\n    const {context, value} = res.result;\n    return {\n      context,\n      value: value !== null ? value.feeCalculator : null,\n    };\n  }\n\n  /**\n   * Fetch the fee for a message from the cluster, return with context\n   */\n  async getFeeForMessage(\n    message: VersionedMessage,\n    commitment?: Commitment,\n  ): Promise<RpcResponseAndContext<number | null>> {\n    const wireMessage = toBuffer(message.serialize()).toString('base64');\n    const args = this._buildArgs([wireMessage], commitment);\n    const unsafeRes = await this._rpcRequest('getFeeForMessage', args);\n\n    const res = create(unsafeRes, jsonRpcResultAndContext(nullable(number())));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get fee for message');\n    }\n    if (res.result === null) {\n      throw new Error('invalid blockhash');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch a list of prioritization fees from recent blocks.\n   */\n  async getRecentPrioritizationFees(\n    config?: GetRecentPrioritizationFeesConfig,\n  ): Promise<RecentPrioritizationFees[]> {\n    const accounts = config?.lockedWritableAccounts?.map(key => key.toBase58());\n    const args = accounts?.length ? [accounts] : [];\n    const unsafeRes = await this._rpcRequest(\n      'getRecentPrioritizationFees',\n      args,\n    );\n    const res = create(unsafeRes, GetRecentPrioritizationFeesRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get recent prioritization fees',\n      );\n    }\n    return res.result;\n  }\n  /**\n   * Fetch a recent blockhash from the cluster\n   * @return {Promise<{blockhash: Blockhash, feeCalculator: FeeCalculator}>}\n   *\n   * @deprecated Deprecated since RPC v1.8.0. Please use {@link getLatestBlockhash} instead.\n   */\n  async getRecentBlockhash(\n    commitment?: Commitment,\n  ): Promise<{blockhash: Blockhash; feeCalculator: FeeCalculator}> {\n    try {\n      const res = await this.getRecentBlockhashAndContext(commitment);\n      return res.value;\n    } catch (e) {\n      throw new Error('failed to get recent blockhash: ' + e);\n    }\n  }\n\n  /**\n   * Fetch the latest blockhash from the cluster\n   * @return {Promise<BlockhashWithExpiryBlockHeight>}\n   */\n  async getLatestBlockhash(\n    commitmentOrConfig?: Commitment | GetLatestBlockhashConfig,\n  ): Promise<BlockhashWithExpiryBlockHeight> {\n    try {\n      const res = await this.getLatestBlockhashAndContext(commitmentOrConfig);\n      return res.value;\n    } catch (e) {\n      throw new Error('failed to get recent blockhash: ' + e);\n    }\n  }\n\n  /**\n   * Fetch the latest blockhash from the cluster\n   * @return {Promise<BlockhashWithExpiryBlockHeight>}\n   */\n  async getLatestBlockhashAndContext(\n    commitmentOrConfig?: Commitment | GetLatestBlockhashConfig,\n  ): Promise<RpcResponseAndContext<BlockhashWithExpiryBlockHeight>> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getLatestBlockhash', args);\n    const res = create(unsafeRes, GetLatestBlockhashRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get latest blockhash');\n    }\n    return res.result;\n  }\n\n  /**\n   * Returns whether a blockhash is still valid or not\n   */\n  async isBlockhashValid(\n    blockhash: Blockhash,\n    rawConfig?: IsBlockhashValidConfig,\n  ): Promise<RpcResponseAndContext<boolean>> {\n    const {commitment, config} = extractCommitmentFromConfig(rawConfig);\n    const args = this._buildArgs(\n      [blockhash],\n      commitment,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('isBlockhashValid', args);\n    const res = create(unsafeRes, IsBlockhashValidRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to determine if the blockhash `' + blockhash + '`is valid',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the node version\n   */\n  async getVersion(): Promise<Version> {\n    const unsafeRes = await this._rpcRequest('getVersion', []);\n    const res = create(unsafeRes, jsonRpcResult(VersionResult));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get version');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch the genesis hash\n   */\n  async getGenesisHash(): Promise<string> {\n    const unsafeRes = await this._rpcRequest('getGenesisHash', []);\n    const res = create(unsafeRes, jsonRpcResult(string()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get genesis hash');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch a processed block from the cluster.\n   *\n   * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n   * setting the `maxSupportedTransactionVersion` property.\n   */\n  async getBlock(\n    slot: number,\n    rawConfig?: GetBlockConfig,\n  ): Promise<BlockResponse | null>;\n\n  /**\n   * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n   * setting the `maxSupportedTransactionVersion` property.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig: GetBlockConfig & {transactionDetails: 'accounts'},\n  ): Promise<AccountsModeBlockResponse | null>;\n\n  /**\n   * @deprecated Instead, call `getBlock` using a `GetVersionedBlockConfig` by\n   * setting the `maxSupportedTransactionVersion` property.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig: GetBlockConfig & {transactionDetails: 'none'},\n  ): Promise<NoneModeBlockResponse | null>;\n\n  /**\n   * Fetch a processed block from the cluster.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig?: GetVersionedBlockConfig,\n  ): Promise<VersionedBlockResponse | null>;\n\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig: GetVersionedBlockConfig & {transactionDetails: 'accounts'},\n  ): Promise<VersionedAccountsModeBlockResponse | null>;\n\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig: GetVersionedBlockConfig & {transactionDetails: 'none'},\n  ): Promise<VersionedNoneModeBlockResponse | null>;\n\n  /**\n   * Fetch a processed block from the cluster.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getBlock(\n    slot: number,\n    rawConfig?: GetVersionedBlockConfig,\n  ): Promise<\n    | VersionedBlockResponse\n    | VersionedAccountsModeBlockResponse\n    | VersionedNoneModeBlockResponse\n    | null\n  > {\n    const {commitment, config} = extractCommitmentFromConfig(rawConfig);\n    const args = this._buildArgsAtLeastConfirmed(\n      [slot],\n      commitment as Finality,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getBlock', args);\n    try {\n      switch (config?.transactionDetails) {\n        case 'accounts': {\n          const res = create(unsafeRes, GetAccountsModeBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          return res.result;\n        }\n        case 'none': {\n          const res = create(unsafeRes, GetNoneModeBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          return res.result;\n        }\n        default: {\n          const res = create(unsafeRes, GetBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          const {result} = res;\n          return result\n            ? {\n                ...result,\n                transactions: result.transactions.map(\n                  ({transaction, meta, version}) => ({\n                    meta,\n                    transaction: {\n                      ...transaction,\n                      message: versionedMessageFromResponse(\n                        version,\n                        transaction.message,\n                      ),\n                    },\n                    version,\n                  }),\n                ),\n              }\n            : null;\n        }\n      }\n    } catch (e) {\n      throw new SolanaJSONRPCError(\n        e as JSONRPCError,\n        'failed to get confirmed block',\n      );\n    }\n  }\n\n  /**\n   * Fetch parsed transaction details for a confirmed or finalized block\n   */\n  async getParsedBlock(\n    slot: number,\n    rawConfig?: GetVersionedBlockConfig,\n  ): Promise<ParsedAccountsModeBlockResponse>;\n\n  // eslint-disable-next-line no-dupe-class-members\n  async getParsedBlock(\n    slot: number,\n    rawConfig: GetVersionedBlockConfig & {transactionDetails: 'accounts'},\n  ): Promise<ParsedAccountsModeBlockResponse>;\n\n  // eslint-disable-next-line no-dupe-class-members\n  async getParsedBlock(\n    slot: number,\n    rawConfig: GetVersionedBlockConfig & {transactionDetails: 'none'},\n  ): Promise<ParsedNoneModeBlockResponse>;\n  // eslint-disable-next-line no-dupe-class-members\n  async getParsedBlock(\n    slot: number,\n    rawConfig?: GetVersionedBlockConfig,\n  ): Promise<\n    | ParsedBlockResponse\n    | ParsedAccountsModeBlockResponse\n    | ParsedNoneModeBlockResponse\n    | null\n  > {\n    const {commitment, config} = extractCommitmentFromConfig(rawConfig);\n    const args = this._buildArgsAtLeastConfirmed(\n      [slot],\n      commitment as Finality,\n      'jsonParsed',\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getBlock', args);\n    try {\n      switch (config?.transactionDetails) {\n        case 'accounts': {\n          const res = create(unsafeRes, GetParsedAccountsModeBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          return res.result;\n        }\n        case 'none': {\n          const res = create(unsafeRes, GetParsedNoneModeBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          return res.result;\n        }\n        default: {\n          const res = create(unsafeRes, GetParsedBlockRpcResult);\n          if ('error' in res) {\n            throw res.error;\n          }\n          return res.result;\n        }\n      }\n    } catch (e) {\n      throw new SolanaJSONRPCError(e as JSONRPCError, 'failed to get block');\n    }\n  }\n\n  /*\n   * Returns the current block height of the node\n   */\n  getBlockHeight = (() => {\n    const requestPromises: {[hash: string]: Promise<number>} = {};\n    return async (\n      commitmentOrConfig?: Commitment | GetBlockHeightConfig,\n    ): Promise<number> => {\n      const {commitment, config} =\n        extractCommitmentFromConfig(commitmentOrConfig);\n      const args = this._buildArgs(\n        [],\n        commitment,\n        undefined /* encoding */,\n        config,\n      );\n      const requestHash = fastStableStringify(args);\n      requestPromises[requestHash] =\n        requestPromises[requestHash] ??\n        (async () => {\n          try {\n            const unsafeRes = await this._rpcRequest('getBlockHeight', args);\n            const res = create(unsafeRes, jsonRpcResult(number()));\n            if ('error' in res) {\n              throw new SolanaJSONRPCError(\n                res.error,\n                'failed to get block height information',\n              );\n            }\n            return res.result;\n          } finally {\n            delete requestPromises[requestHash];\n          }\n        })();\n      return await requestPromises[requestHash];\n    };\n  })();\n\n  /*\n   * Returns recent block production information from the current or previous epoch\n   */\n  async getBlockProduction(\n    configOrCommitment?: GetBlockProductionConfig | Commitment,\n  ): Promise<RpcResponseAndContext<BlockProduction>> {\n    let extra: Omit<GetBlockProductionConfig, 'commitment'> | undefined;\n    let commitment: Commitment | undefined;\n\n    if (typeof configOrCommitment === 'string') {\n      commitment = configOrCommitment;\n    } else if (configOrCommitment) {\n      const {commitment: c, ...rest} = configOrCommitment;\n      commitment = c;\n      extra = rest;\n    }\n\n    const args = this._buildArgs([], commitment, 'base64', extra);\n    const unsafeRes = await this._rpcRequest('getBlockProduction', args);\n    const res = create(unsafeRes, BlockProductionResponseStruct);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get block production information',\n      );\n    }\n\n    return res.result;\n  }\n\n  /**\n   * Fetch a confirmed or finalized transaction from the cluster.\n   *\n   * @deprecated Instead, call `getTransaction` using a\n   * `GetVersionedTransactionConfig` by setting the\n   * `maxSupportedTransactionVersion` property.\n   */\n  async getTransaction(\n    signature: string,\n    rawConfig?: GetTransactionConfig,\n  ): Promise<TransactionResponse | null>;\n\n  /**\n   * Fetch a confirmed or finalized transaction from the cluster.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getTransaction(\n    signature: string,\n    rawConfig: GetVersionedTransactionConfig,\n  ): Promise<VersionedTransactionResponse | null>;\n\n  /**\n   * Fetch a confirmed or finalized transaction from the cluster.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getTransaction(\n    signature: string,\n    rawConfig?: GetVersionedTransactionConfig,\n  ): Promise<VersionedTransactionResponse | null> {\n    const {commitment, config} = extractCommitmentFromConfig(rawConfig);\n    const args = this._buildArgsAtLeastConfirmed(\n      [signature],\n      commitment as Finality,\n      undefined /* encoding */,\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getTransaction', args);\n    const res = create(unsafeRes, GetTransactionRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n    }\n\n    const result = res.result;\n    if (!result) return result;\n\n    return {\n      ...result,\n      transaction: {\n        ...result.transaction,\n        message: versionedMessageFromResponse(\n          result.version,\n          result.transaction.message,\n        ),\n      },\n    };\n  }\n\n  /**\n   * Fetch parsed transaction details for a confirmed or finalized transaction\n   */\n  async getParsedTransaction(\n    signature: TransactionSignature,\n    commitmentOrConfig?: GetVersionedTransactionConfig | Finality,\n  ): Promise<ParsedTransactionWithMeta | null> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgsAtLeastConfirmed(\n      [signature],\n      commitment as Finality,\n      'jsonParsed',\n      config,\n    );\n    const unsafeRes = await this._rpcRequest('getTransaction', args);\n    const res = create(unsafeRes, GetParsedTransactionRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch parsed transaction details for a batch of confirmed transactions\n   */\n  async getParsedTransactions(\n    signatures: TransactionSignature[],\n    commitmentOrConfig?: GetVersionedTransactionConfig | Finality,\n  ): Promise<(ParsedTransactionWithMeta | null)[]> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const batch = signatures.map(signature => {\n      const args = this._buildArgsAtLeastConfirmed(\n        [signature],\n        commitment as Finality,\n        'jsonParsed',\n        config,\n      );\n      return {\n        methodName: 'getTransaction',\n        args,\n      };\n    });\n\n    const unsafeRes = await this._rpcBatchRequest(batch);\n    const res = unsafeRes.map((unsafeRes: any) => {\n      const res = create(unsafeRes, GetParsedTransactionRpcResult);\n      if ('error' in res) {\n        throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n      }\n      return res.result;\n    });\n\n    return res;\n  }\n\n  /**\n   * Fetch transaction details for a batch of confirmed transactions.\n   * Similar to {@link getParsedTransactions} but returns a {@link TransactionResponse}.\n   *\n   * @deprecated Instead, call `getTransactions` using a\n   * `GetVersionedTransactionConfig` by setting the\n   * `maxSupportedTransactionVersion` property.\n   */\n  async getTransactions(\n    signatures: TransactionSignature[],\n    commitmentOrConfig?: GetTransactionConfig | Finality,\n  ): Promise<(TransactionResponse | null)[]>;\n\n  /**\n   * Fetch transaction details for a batch of confirmed transactions.\n   * Similar to {@link getParsedTransactions} but returns a {@link\n   * VersionedTransactionResponse}.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getTransactions(\n    signatures: TransactionSignature[],\n    commitmentOrConfig: GetVersionedTransactionConfig | Finality,\n  ): Promise<(VersionedTransactionResponse | null)[]>;\n\n  /**\n   * Fetch transaction details for a batch of confirmed transactions.\n   * Similar to {@link getParsedTransactions} but returns a {@link\n   * VersionedTransactionResponse}.\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async getTransactions(\n    signatures: TransactionSignature[],\n    commitmentOrConfig: GetVersionedTransactionConfig | Finality,\n  ): Promise<(VersionedTransactionResponse | null)[]> {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const batch = signatures.map(signature => {\n      const args = this._buildArgsAtLeastConfirmed(\n        [signature],\n        commitment as Finality,\n        undefined /* encoding */,\n        config,\n      );\n      return {\n        methodName: 'getTransaction',\n        args,\n      };\n    });\n\n    const unsafeRes = await this._rpcBatchRequest(batch);\n    const res = unsafeRes.map((unsafeRes: any) => {\n      const res = create(unsafeRes, GetTransactionRpcResult);\n      if ('error' in res) {\n        throw new SolanaJSONRPCError(res.error, 'failed to get transactions');\n      }\n      const result = res.result;\n      if (!result) return result;\n\n      return {\n        ...result,\n        transaction: {\n          ...result.transaction,\n          message: versionedMessageFromResponse(\n            result.version,\n            result.transaction.message,\n          ),\n        },\n      };\n    });\n\n    return res;\n  }\n\n  /**\n   * Fetch a list of Transactions and transaction statuses from the cluster\n   * for a confirmed block.\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getBlock} instead.\n   */\n  async getConfirmedBlock(\n    slot: number,\n    commitment?: Finality,\n  ): Promise<ConfirmedBlock> {\n    const args = this._buildArgsAtLeastConfirmed([slot], commitment);\n    const unsafeRes = await this._rpcRequest('getBlock', args);\n    const res = create(unsafeRes, GetConfirmedBlockRpcResult);\n\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n    }\n\n    const result = res.result;\n    if (!result) {\n      throw new Error('Confirmed block ' + slot + ' not found');\n    }\n\n    const block = {\n      ...result,\n      transactions: result.transactions.map(({transaction, meta}) => {\n        const message = new Message(transaction.message);\n        return {\n          meta,\n          transaction: {\n            ...transaction,\n            message,\n          },\n        };\n      }),\n    };\n\n    return {\n      ...block,\n      transactions: block.transactions.map(({transaction, meta}) => {\n        return {\n          meta,\n          transaction: Transaction.populate(\n            transaction.message,\n            transaction.signatures,\n          ),\n        };\n      }),\n    };\n  }\n\n  /**\n   * Fetch confirmed blocks between two slots\n   */\n  async getBlocks(\n    startSlot: number,\n    endSlot?: number,\n    commitment?: Finality,\n  ): Promise<Array<number>> {\n    const args = this._buildArgsAtLeastConfirmed(\n      endSlot !== undefined ? [startSlot, endSlot] : [startSlot],\n      commitment,\n    );\n    const unsafeRes = await this._rpcRequest('getBlocks', args);\n    const res = create(unsafeRes, jsonRpcResult(array(number())));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get blocks');\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch a list of Signatures from the cluster for a block, excluding rewards\n   */\n  async getBlockSignatures(\n    slot: number,\n    commitment?: Finality,\n  ): Promise<BlockSignatures> {\n    const args = this._buildArgsAtLeastConfirmed(\n      [slot],\n      commitment,\n      undefined,\n      {\n        transactionDetails: 'signatures',\n        rewards: false,\n      },\n    );\n    const unsafeRes = await this._rpcRequest('getBlock', args);\n    const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get block');\n    }\n    const result = res.result;\n    if (!result) {\n      throw new Error('Block ' + slot + ' not found');\n    }\n    return result;\n  }\n\n  /**\n   * Fetch a list of Signatures from the cluster for a confirmed block, excluding rewards\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getBlockSignatures} instead.\n   */\n  async getConfirmedBlockSignatures(\n    slot: number,\n    commitment?: Finality,\n  ): Promise<BlockSignatures> {\n    const args = this._buildArgsAtLeastConfirmed(\n      [slot],\n      commitment,\n      undefined,\n      {\n        transactionDetails: 'signatures',\n        rewards: false,\n      },\n    );\n    const unsafeRes = await this._rpcRequest('getBlock', args);\n    const res = create(unsafeRes, GetBlockSignaturesRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get confirmed block');\n    }\n    const result = res.result;\n    if (!result) {\n      throw new Error('Confirmed block ' + slot + ' not found');\n    }\n    return result;\n  }\n\n  /**\n   * Fetch a transaction details for a confirmed transaction\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getTransaction} instead.\n   */\n  async getConfirmedTransaction(\n    signature: TransactionSignature,\n    commitment?: Finality,\n  ): Promise<ConfirmedTransaction | null> {\n    const args = this._buildArgsAtLeastConfirmed([signature], commitment);\n    const unsafeRes = await this._rpcRequest('getTransaction', args);\n    const res = create(unsafeRes, GetTransactionRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(res.error, 'failed to get transaction');\n    }\n\n    const result = res.result;\n    if (!result) return result;\n\n    const message = new Message(result.transaction.message);\n    const signatures = result.transaction.signatures;\n    return {\n      ...result,\n      transaction: Transaction.populate(message, signatures),\n    };\n  }\n\n  /**\n   * Fetch parsed transaction details for a confirmed transaction\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getParsedTransaction} instead.\n   */\n  async getParsedConfirmedTransaction(\n    signature: TransactionSignature,\n    commitment?: Finality,\n  ): Promise<ParsedConfirmedTransaction | null> {\n    const args = this._buildArgsAtLeastConfirmed(\n      [signature],\n      commitment,\n      'jsonParsed',\n    );\n    const unsafeRes = await this._rpcRequest('getTransaction', args);\n    const res = create(unsafeRes, GetParsedTransactionRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get confirmed transaction',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Fetch parsed transaction details for a batch of confirmed transactions\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getParsedTransactions} instead.\n   */\n  async getParsedConfirmedTransactions(\n    signatures: TransactionSignature[],\n    commitment?: Finality,\n  ): Promise<(ParsedConfirmedTransaction | null)[]> {\n    const batch = signatures.map(signature => {\n      const args = this._buildArgsAtLeastConfirmed(\n        [signature],\n        commitment,\n        'jsonParsed',\n      );\n      return {\n        methodName: 'getTransaction',\n        args,\n      };\n    });\n\n    const unsafeRes = await this._rpcBatchRequest(batch);\n    const res = unsafeRes.map((unsafeRes: any) => {\n      const res = create(unsafeRes, GetParsedTransactionRpcResult);\n      if ('error' in res) {\n        throw new SolanaJSONRPCError(\n          res.error,\n          'failed to get confirmed transactions',\n        );\n      }\n      return res.result;\n    });\n\n    return res;\n  }\n\n  /**\n   * Fetch a list of all the confirmed signatures for transactions involving an address\n   * within a specified slot range. Max range allowed is 10,000 slots.\n   *\n   * @deprecated Deprecated since RPC v1.3. Please use {@link getConfirmedSignaturesForAddress2} instead.\n   *\n   * @param address queried address\n   * @param startSlot start slot, inclusive\n   * @param endSlot end slot, inclusive\n   */\n  async getConfirmedSignaturesForAddress(\n    address: PublicKey,\n    startSlot: number,\n    endSlot: number,\n  ): Promise<Array<TransactionSignature>> {\n    let options: any = {};\n\n    let firstAvailableBlock = await this.getFirstAvailableBlock();\n    while (!('until' in options)) {\n      startSlot--;\n      if (startSlot <= 0 || startSlot < firstAvailableBlock) {\n        break;\n      }\n\n      try {\n        const block = await this.getConfirmedBlockSignatures(\n          startSlot,\n          'finalized',\n        );\n        if (block.signatures.length > 0) {\n          options.until =\n            block.signatures[block.signatures.length - 1].toString();\n        }\n      } catch (err) {\n        if (err instanceof Error && err.message.includes('skipped')) {\n          continue;\n        } else {\n          throw err;\n        }\n      }\n    }\n\n    let highestConfirmedRoot = await this.getSlot('finalized');\n    while (!('before' in options)) {\n      endSlot++;\n      if (endSlot > highestConfirmedRoot) {\n        break;\n      }\n\n      try {\n        const block = await this.getConfirmedBlockSignatures(endSlot);\n        if (block.signatures.length > 0) {\n          options.before =\n            block.signatures[block.signatures.length - 1].toString();\n        }\n      } catch (err) {\n        if (err instanceof Error && err.message.includes('skipped')) {\n          continue;\n        } else {\n          throw err;\n        }\n      }\n    }\n\n    const confirmedSignatureInfo = await this.getConfirmedSignaturesForAddress2(\n      address,\n      options,\n    );\n    return confirmedSignatureInfo.map(info => info.signature);\n  }\n\n  /**\n   * Returns confirmed signatures for transactions involving an\n   * address backwards in time from the provided signature or most recent confirmed block\n   *\n   * @deprecated Deprecated since RPC v1.7.0. Please use {@link getSignaturesForAddress} instead.\n   */\n  async getConfirmedSignaturesForAddress2(\n    address: PublicKey,\n    options?: ConfirmedSignaturesForAddress2Options,\n    commitment?: Finality,\n  ): Promise<Array<ConfirmedSignatureInfo>> {\n    const args = this._buildArgsAtLeastConfirmed(\n      [address.toBase58()],\n      commitment,\n      undefined,\n      options,\n    );\n    const unsafeRes = await this._rpcRequest(\n      'getConfirmedSignaturesForAddress2',\n      args,\n    );\n    const res = create(unsafeRes, GetConfirmedSignaturesForAddress2RpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get confirmed signatures for address',\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Returns confirmed signatures for transactions involving an\n   * address backwards in time from the provided signature or most recent confirmed block\n   *\n   *\n   * @param address queried address\n   * @param options\n   */\n  async getSignaturesForAddress(\n    address: PublicKey,\n    options?: SignaturesForAddressOptions,\n    commitment?: Finality,\n  ): Promise<Array<ConfirmedSignatureInfo>> {\n    const args = this._buildArgsAtLeastConfirmed(\n      [address.toBase58()],\n      commitment,\n      undefined,\n      options,\n    );\n    const unsafeRes = await this._rpcRequest('getSignaturesForAddress', args);\n    const res = create(unsafeRes, GetSignaturesForAddressRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        'failed to get signatures for address',\n      );\n    }\n    return res.result;\n  }\n\n  async getAddressLookupTable(\n    accountKey: PublicKey,\n    config?: GetAccountInfoConfig,\n  ): Promise<RpcResponseAndContext<AddressLookupTableAccount | null>> {\n    const {context, value: accountInfo} = await this.getAccountInfoAndContext(\n      accountKey,\n      config,\n    );\n\n    let value = null;\n    if (accountInfo !== null) {\n      value = new AddressLookupTableAccount({\n        key: accountKey,\n        state: AddressLookupTableAccount.deserialize(accountInfo.data),\n      });\n    }\n\n    return {\n      context,\n      value,\n    };\n  }\n\n  /**\n   * Fetch the contents of a Nonce account from the cluster, return with context\n   */\n  async getNonceAndContext(\n    nonceAccount: PublicKey,\n    commitmentOrConfig?: Commitment | GetNonceAndContextConfig,\n  ): Promise<RpcResponseAndContext<NonceAccount | null>> {\n    const {context, value: accountInfo} = await this.getAccountInfoAndContext(\n      nonceAccount,\n      commitmentOrConfig,\n    );\n\n    let value = null;\n    if (accountInfo !== null) {\n      value = NonceAccount.fromAccountData(accountInfo.data);\n    }\n\n    return {\n      context,\n      value,\n    };\n  }\n\n  /**\n   * Fetch the contents of a Nonce account from the cluster\n   */\n  async getNonce(\n    nonceAccount: PublicKey,\n    commitmentOrConfig?: Commitment | GetNonceConfig,\n  ): Promise<NonceAccount | null> {\n    return await this.getNonceAndContext(nonceAccount, commitmentOrConfig)\n      .then(x => x.value)\n      .catch(e => {\n        throw new Error(\n          'failed to get nonce for account ' +\n            nonceAccount.toBase58() +\n            ': ' +\n            e,\n        );\n      });\n  }\n\n  /**\n   * Request an allocation of lamports to the specified address\n   *\n   * ```typescript\n   * import { Connection, PublicKey, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\n   *\n   * (async () => {\n   *   const connection = new Connection(\"https://api.testnet.solana.com\", \"confirmed\");\n   *   const myAddress = new PublicKey(\"2nr1bHFT86W9tGnyvmYW4vcHKsQB3sVQfnddasz4kExM\");\n   *   const signature = await connection.requestAirdrop(myAddress, LAMPORTS_PER_SOL);\n   *   await connection.confirmTransaction(signature);\n   * })();\n   * ```\n   */\n  async requestAirdrop(\n    to: PublicKey,\n    lamports: number,\n  ): Promise<TransactionSignature> {\n    const unsafeRes = await this._rpcRequest('requestAirdrop', [\n      to.toBase58(),\n      lamports,\n    ]);\n    const res = create(unsafeRes, RequestAirdropRpcResult);\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `airdrop to ${to.toBase58()} failed`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * @internal\n   */\n  async _blockhashWithExpiryBlockHeight(\n    disableCache: boolean,\n  ): Promise<BlockhashWithExpiryBlockHeight> {\n    if (!disableCache) {\n      // Wait for polling to finish\n      while (this._pollingBlockhash) {\n        await sleep(100);\n      }\n      const timeSinceFetch = Date.now() - this._blockhashInfo.lastFetch;\n      const expired = timeSinceFetch >= BLOCKHASH_CACHE_TIMEOUT_MS;\n      if (this._blockhashInfo.latestBlockhash !== null && !expired) {\n        return this._blockhashInfo.latestBlockhash;\n      }\n    }\n\n    return await this._pollNewBlockhash();\n  }\n\n  /**\n   * @internal\n   */\n  async _pollNewBlockhash(): Promise<BlockhashWithExpiryBlockHeight> {\n    this._pollingBlockhash = true;\n    try {\n      const startTime = Date.now();\n      const cachedLatestBlockhash = this._blockhashInfo.latestBlockhash;\n      const cachedBlockhash = cachedLatestBlockhash\n        ? cachedLatestBlockhash.blockhash\n        : null;\n      for (let i = 0; i < 50; i++) {\n        const latestBlockhash = await this.getLatestBlockhash('finalized');\n\n        if (cachedBlockhash !== latestBlockhash.blockhash) {\n          this._blockhashInfo = {\n            latestBlockhash,\n            lastFetch: Date.now(),\n            transactionSignatures: [],\n            simulatedSignatures: [],\n          };\n          return latestBlockhash;\n        }\n\n        // Sleep for approximately half a slot\n        await sleep(MS_PER_SLOT / 2);\n      }\n\n      throw new Error(\n        `Unable to obtain a new blockhash after ${Date.now() - startTime}ms`,\n      );\n    } finally {\n      this._pollingBlockhash = false;\n    }\n  }\n\n  /**\n   * get the stake minimum delegation\n   */\n  async getStakeMinimumDelegation(\n    config?: GetStakeMinimumDelegationConfig,\n  ): Promise<RpcResponseAndContext<number>> {\n    const {commitment, config: configArg} = extractCommitmentFromConfig(config);\n    const args = this._buildArgs([], commitment, 'base64', configArg);\n    const unsafeRes = await this._rpcRequest('getStakeMinimumDelegation', args);\n    const res = create(unsafeRes, jsonRpcResultAndContext(number()));\n    if ('error' in res) {\n      throw new SolanaJSONRPCError(\n        res.error,\n        `failed to get stake minimum delegation`,\n      );\n    }\n    return res.result;\n  }\n\n  /**\n   * Simulate a transaction\n   *\n   * @deprecated Instead, call {@link simulateTransaction} with {@link\n   * VersionedTransaction} and {@link SimulateTransactionConfig} parameters\n   */\n  simulateTransaction(\n    transactionOrMessage: Transaction | Message,\n    signers?: Array<Signer>,\n    includeAccounts?: boolean | Array<PublicKey>,\n  ): Promise<RpcResponseAndContext<SimulatedTransactionResponse>>;\n\n  /**\n   * Simulate a transaction\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  simulateTransaction(\n    transaction: VersionedTransaction,\n    config?: SimulateTransactionConfig,\n  ): Promise<RpcResponseAndContext<SimulatedTransactionResponse>>;\n\n  /**\n   * Simulate a transaction\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async simulateTransaction(\n    transactionOrMessage: VersionedTransaction | Transaction | Message,\n    configOrSigners?: SimulateTransactionConfig | Array<Signer>,\n    includeAccounts?: boolean | Array<PublicKey>,\n  ): Promise<RpcResponseAndContext<SimulatedTransactionResponse>> {\n    if ('message' in transactionOrMessage) {\n      const versionedTx = transactionOrMessage;\n      const wireTransaction = versionedTx.serialize();\n      const encodedTransaction =\n        Buffer.from(wireTransaction).toString('base64');\n      if (Array.isArray(configOrSigners) || includeAccounts !== undefined) {\n        throw new Error('Invalid arguments');\n      }\n\n      const config: any = configOrSigners || {};\n      config.encoding = 'base64';\n      if (!('commitment' in config)) {\n        config.commitment = this.commitment;\n      }\n\n      if (\n        configOrSigners &&\n        typeof configOrSigners === 'object' &&\n        'innerInstructions' in configOrSigners\n      ) {\n        config.innerInstructions = configOrSigners.innerInstructions;\n      }\n\n      const args = [encodedTransaction, config];\n      const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n      const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n      if ('error' in res) {\n        throw new Error('failed to simulate transaction: ' + res.error.message);\n      }\n      return res.result;\n    }\n\n    let transaction;\n    if (transactionOrMessage instanceof Transaction) {\n      let originalTx: Transaction = transactionOrMessage;\n      transaction = new Transaction();\n      transaction.feePayer = originalTx.feePayer;\n      transaction.instructions = transactionOrMessage.instructions;\n      transaction.nonceInfo = originalTx.nonceInfo;\n      transaction.signatures = originalTx.signatures;\n    } else {\n      transaction = Transaction.populate(transactionOrMessage);\n      // HACK: this function relies on mutating the populated transaction\n      transaction._message = transaction._json = undefined;\n    }\n\n    if (configOrSigners !== undefined && !Array.isArray(configOrSigners)) {\n      throw new Error('Invalid arguments');\n    }\n\n    const signers = configOrSigners;\n    if (transaction.nonceInfo && signers) {\n      transaction.sign(...signers);\n    } else {\n      let disableCache = this._disableBlockhashCaching;\n      for (;;) {\n        const latestBlockhash =\n          await this._blockhashWithExpiryBlockHeight(disableCache);\n        transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n        transaction.recentBlockhash = latestBlockhash.blockhash;\n\n        if (!signers) break;\n\n        transaction.sign(...signers);\n        if (!transaction.signature) {\n          throw new Error('!signature'); // should never happen\n        }\n\n        const signature = transaction.signature.toString('base64');\n        if (\n          !this._blockhashInfo.simulatedSignatures.includes(signature) &&\n          !this._blockhashInfo.transactionSignatures.includes(signature)\n        ) {\n          // The signature of this transaction has not been seen before with the\n          // current recentBlockhash, all done. Let's break\n          this._blockhashInfo.simulatedSignatures.push(signature);\n          break;\n        } else {\n          // This transaction would be treated as duplicate (its derived signature\n          // matched to one of already recorded signatures).\n          // So, we must fetch a new blockhash for a different signature by disabling\n          // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n          disableCache = true;\n        }\n      }\n    }\n\n    const message = transaction._compile();\n    const signData = message.serialize();\n    const wireTransaction = transaction._serialize(signData);\n    const encodedTransaction = wireTransaction.toString('base64');\n    const config: any = {\n      encoding: 'base64',\n      commitment: this.commitment,\n    };\n\n    if (includeAccounts) {\n      const addresses = (\n        Array.isArray(includeAccounts)\n          ? includeAccounts\n          : message.nonProgramIds()\n      ).map(key => key.toBase58());\n\n      config['accounts'] = {\n        encoding: 'base64',\n        addresses,\n      };\n    }\n\n    if (signers) {\n      config.sigVerify = true;\n    }\n\n    if (\n      configOrSigners &&\n      typeof configOrSigners === 'object' &&\n      'innerInstructions' in configOrSigners\n    ) {\n      config.innerInstructions = configOrSigners.innerInstructions;\n    }\n\n    const args = [encodedTransaction, config];\n    const unsafeRes = await this._rpcRequest('simulateTransaction', args);\n    const res = create(unsafeRes, SimulatedTransactionResponseStruct);\n    if ('error' in res) {\n      let logs;\n      if ('data' in res.error) {\n        logs = res.error.data.logs;\n        if (logs && Array.isArray(logs)) {\n          const traceIndent = '\\n    ';\n          const logTrace = traceIndent + logs.join(traceIndent);\n          console.error(res.error.message, logTrace);\n        }\n      }\n\n      throw new SendTransactionError({\n        action: 'simulate',\n        signature: '',\n        transactionMessage: res.error.message,\n        logs: logs,\n      });\n    }\n    return res.result;\n  }\n\n  /**\n   * Sign and send a transaction\n   *\n   * @deprecated Instead, call {@link sendTransaction} with a {@link\n   * VersionedTransaction}\n   */\n  sendTransaction(\n    transaction: Transaction,\n    signers: Array<Signer>,\n    options?: SendOptions,\n  ): Promise<TransactionSignature>;\n\n  /**\n   * Send a signed transaction\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  sendTransaction(\n    transaction: VersionedTransaction,\n    options?: SendOptions,\n  ): Promise<TransactionSignature>;\n\n  /**\n   * Sign and send a transaction\n   */\n  // eslint-disable-next-line no-dupe-class-members\n  async sendTransaction(\n    transaction: VersionedTransaction | Transaction,\n    signersOrOptions?: Array<Signer> | SendOptions,\n    options?: SendOptions,\n  ): Promise<TransactionSignature> {\n    if ('version' in transaction) {\n      if (signersOrOptions && Array.isArray(signersOrOptions)) {\n        throw new Error('Invalid arguments');\n      }\n\n      const wireTransaction = transaction.serialize();\n      return await this.sendRawTransaction(wireTransaction, signersOrOptions);\n    }\n\n    if (signersOrOptions === undefined || !Array.isArray(signersOrOptions)) {\n      throw new Error('Invalid arguments');\n    }\n\n    const signers = signersOrOptions;\n    if (transaction.nonceInfo) {\n      transaction.sign(...signers);\n    } else {\n      let disableCache = this._disableBlockhashCaching;\n      for (;;) {\n        const latestBlockhash =\n          await this._blockhashWithExpiryBlockHeight(disableCache);\n        transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;\n        transaction.recentBlockhash = latestBlockhash.blockhash;\n        transaction.sign(...signers);\n        if (!transaction.signature) {\n          throw new Error('!signature'); // should never happen\n        }\n\n        const signature = transaction.signature.toString('base64');\n        if (!this._blockhashInfo.transactionSignatures.includes(signature)) {\n          // The signature of this transaction has not been seen before with the\n          // current recentBlockhash, all done. Let's break\n          this._blockhashInfo.transactionSignatures.push(signature);\n          break;\n        } else {\n          // This transaction would be treated as duplicate (its derived signature\n          // matched to one of already recorded signatures).\n          // So, we must fetch a new blockhash for a different signature by disabling\n          // our cache not to wait for the cache expiration (BLOCKHASH_CACHE_TIMEOUT_MS).\n          disableCache = true;\n        }\n      }\n    }\n\n    const wireTransaction = transaction.serialize();\n    return await this.sendRawTransaction(wireTransaction, options);\n  }\n\n  /**\n   * Send a transaction that has already been signed and serialized into the\n   * wire format\n   */\n  async sendRawTransaction(\n    rawTransaction: Buffer | Uint8Array | Array<number>,\n    options?: SendOptions,\n  ): Promise<TransactionSignature> {\n    const encodedTransaction = toBuffer(rawTransaction).toString('base64');\n    const result = await this.sendEncodedTransaction(\n      encodedTransaction,\n      options,\n    );\n    return result;\n  }\n\n  /**\n   * Send a transaction that has already been signed, serialized into the\n   * wire format, and encoded as a base64 string\n   */\n  async sendEncodedTransaction(\n    encodedTransaction: string,\n    options?: SendOptions,\n  ): Promise<TransactionSignature> {\n    const config: any = {encoding: 'base64'};\n    const skipPreflight = options && options.skipPreflight;\n    const preflightCommitment =\n      skipPreflight === true\n        ? 'processed' // FIXME Remove when https://github.com/anza-xyz/agave/pull/483 is deployed.\n        : (options && options.preflightCommitment) || this.commitment;\n\n    if (options && options.maxRetries != null) {\n      config.maxRetries = options.maxRetries;\n    }\n    if (options && options.minContextSlot != null) {\n      config.minContextSlot = options.minContextSlot;\n    }\n    if (skipPreflight) {\n      config.skipPreflight = skipPreflight;\n    }\n    if (preflightCommitment) {\n      config.preflightCommitment = preflightCommitment;\n    }\n\n    const args = [encodedTransaction, config];\n    const unsafeRes = await this._rpcRequest('sendTransaction', args);\n    const res = create(unsafeRes, SendTransactionRpcResult);\n    if ('error' in res) {\n      let logs = undefined;\n      if ('data' in res.error) {\n        logs = res.error.data.logs;\n      }\n\n      throw new SendTransactionError({\n        action: skipPreflight ? 'send' : 'simulate',\n        signature: '',\n        transactionMessage: res.error.message,\n        logs: logs,\n      });\n    }\n    return res.result;\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnOpen() {\n    this._rpcWebSocketConnected = true;\n    this._rpcWebSocketHeartbeat = setInterval(() => {\n      // Ping server every 5s to prevent idle timeouts\n      (async () => {\n        try {\n          await this._rpcWebSocket.notify('ping');\n          // eslint-disable-next-line no-empty\n        } catch {}\n      })();\n    }, 5000);\n    this._updateSubscriptions();\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnError(err: Error) {\n    this._rpcWebSocketConnected = false;\n    console.error('ws error:', err.message);\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnClose(code: number) {\n    this._rpcWebSocketConnected = false;\n    this._rpcWebSocketGeneration =\n      (this._rpcWebSocketGeneration + 1) % Number.MAX_SAFE_INTEGER;\n    if (this._rpcWebSocketIdleTimeout) {\n      clearTimeout(this._rpcWebSocketIdleTimeout);\n      this._rpcWebSocketIdleTimeout = null;\n    }\n    if (this._rpcWebSocketHeartbeat) {\n      clearInterval(this._rpcWebSocketHeartbeat);\n      this._rpcWebSocketHeartbeat = null;\n    }\n\n    if (code === 1000) {\n      // explicit close, check if any subscriptions have been made since close\n      this._updateSubscriptions();\n      return;\n    }\n\n    // implicit close, prepare subscriptions for auto-reconnect\n    this._subscriptionCallbacksByServerSubscriptionId = {};\n    Object.entries(\n      this._subscriptionsByHash as Record<SubscriptionConfigHash, Subscription>,\n    ).forEach(([hash, subscription]) => {\n      this._setSubscription(hash, {\n        ...subscription,\n        state: 'pending',\n      });\n    });\n  }\n\n  /**\n   * @internal\n   */\n  private _setSubscription(\n    hash: SubscriptionConfigHash,\n    nextSubscription: Subscription,\n  ) {\n    const prevState = this._subscriptionsByHash[hash]?.state;\n    this._subscriptionsByHash[hash] = nextSubscription;\n    if (prevState !== nextSubscription.state) {\n      const stateChangeCallbacks =\n        this._subscriptionStateChangeCallbacksByHash[hash];\n      if (stateChangeCallbacks) {\n        stateChangeCallbacks.forEach(cb => {\n          try {\n            cb(nextSubscription.state);\n            // eslint-disable-next-line no-empty\n          } catch {}\n        });\n      }\n    }\n  }\n\n  /**\n   * @internal\n   */\n  private _onSubscriptionStateChange(\n    clientSubscriptionId: ClientSubscriptionId,\n    callback: SubscriptionStateChangeCallback,\n  ): SubscriptionStateChangeDisposeFn {\n    const hash =\n      this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n    if (hash == null) {\n      return () => {};\n    }\n    const stateChangeCallbacks = (this._subscriptionStateChangeCallbacksByHash[\n      hash\n    ] ||= new Set());\n    stateChangeCallbacks.add(callback);\n    return () => {\n      stateChangeCallbacks.delete(callback);\n      if (stateChangeCallbacks.size === 0) {\n        delete this._subscriptionStateChangeCallbacksByHash[hash];\n      }\n    };\n  }\n\n  /**\n   * @internal\n   */\n  async _updateSubscriptions() {\n    if (Object.keys(this._subscriptionsByHash).length === 0) {\n      if (this._rpcWebSocketConnected) {\n        this._rpcWebSocketConnected = false;\n        this._rpcWebSocketIdleTimeout = setTimeout(() => {\n          this._rpcWebSocketIdleTimeout = null;\n          try {\n            this._rpcWebSocket.close();\n          } catch (err) {\n            // swallow error if socket has already been closed.\n            if (err instanceof Error) {\n              console.log(\n                `Error when closing socket connection: ${err.message}`,\n              );\n            }\n          }\n        }, 500);\n      }\n      return;\n    }\n\n    if (this._rpcWebSocketIdleTimeout !== null) {\n      clearTimeout(this._rpcWebSocketIdleTimeout);\n      this._rpcWebSocketIdleTimeout = null;\n      this._rpcWebSocketConnected = true;\n    }\n\n    if (!this._rpcWebSocketConnected) {\n      this._rpcWebSocket.connect();\n      return;\n    }\n\n    const activeWebSocketGeneration = this._rpcWebSocketGeneration;\n    const isCurrentConnectionStillActive = () => {\n      return activeWebSocketGeneration === this._rpcWebSocketGeneration;\n    };\n\n    await Promise.all(\n      // Don't be tempted to change this to `Object.entries`. We call\n      // `_updateSubscriptions` recursively when processing the state,\n      // so it's important that we look up the *current* version of\n      // each subscription, every time we process a hash.\n      Object.keys(this._subscriptionsByHash).map(async hash => {\n        const subscription = this._subscriptionsByHash[hash];\n        if (subscription === undefined) {\n          // This entry has since been deleted. Skip.\n          return;\n        }\n        switch (subscription.state) {\n          case 'pending':\n          case 'unsubscribed':\n            if (subscription.callbacks.size === 0) {\n              /**\n               * You can end up here when:\n               *\n               * - a subscription has recently unsubscribed\n               *   without having new callbacks added to it\n               *   while the unsubscribe was in flight, or\n               * - when a pending subscription has its\n               *   listeners removed before a request was\n               *   sent to the server.\n               *\n               * Being that nobody is interested in this\n               * subscription any longer, delete it.\n               */\n              delete this._subscriptionsByHash[hash];\n              if (subscription.state === 'unsubscribed') {\n                delete this._subscriptionCallbacksByServerSubscriptionId[\n                  subscription.serverSubscriptionId\n                ];\n              }\n              await this._updateSubscriptions();\n              return;\n            }\n            await (async () => {\n              const {args, method} = subscription;\n              try {\n                this._setSubscription(hash, {\n                  ...subscription,\n                  state: 'subscribing',\n                });\n                const serverSubscriptionId: ServerSubscriptionId =\n                  (await this._rpcWebSocket.call(method, args)) as number;\n                this._setSubscription(hash, {\n                  ...subscription,\n                  serverSubscriptionId,\n                  state: 'subscribed',\n                });\n                this._subscriptionCallbacksByServerSubscriptionId[\n                  serverSubscriptionId\n                ] = subscription.callbacks;\n                await this._updateSubscriptions();\n              } catch (e) {\n                console.error(\n                  `Received ${e instanceof Error ? '' : 'JSON-RPC '}error calling \\`${method}\\``,\n                  {\n                    args,\n                    error: e,\n                  },\n                );\n                if (!isCurrentConnectionStillActive()) {\n                  return;\n                }\n                // TODO: Maybe add an 'errored' state or a retry limit?\n                this._setSubscription(hash, {\n                  ...subscription,\n                  state: 'pending',\n                });\n                await this._updateSubscriptions();\n              }\n            })();\n            break;\n          case 'subscribed':\n            if (subscription.callbacks.size === 0) {\n              // By the time we successfully set up a subscription\n              // with the server, the client stopped caring about it.\n              // Tear it down now.\n              await (async () => {\n                const {serverSubscriptionId, unsubscribeMethod} = subscription;\n                if (\n                  this._subscriptionsAutoDisposedByRpc.has(serverSubscriptionId)\n                ) {\n                  /**\n                   * Special case.\n                   * If we're dealing with a subscription that has been auto-\n                   * disposed by the RPC, then we can skip the RPC call to\n                   * tear down the subscription here.\n                   *\n                   * NOTE: There is a proposal to eliminate this special case, here:\n                   * https://github.com/solana-labs/solana/issues/18892\n                   */\n                  this._subscriptionsAutoDisposedByRpc.delete(\n                    serverSubscriptionId,\n                  );\n                } else {\n                  this._setSubscription(hash, {\n                    ...subscription,\n                    state: 'unsubscribing',\n                  });\n                  this._setSubscription(hash, {\n                    ...subscription,\n                    state: 'unsubscribing',\n                  });\n                  try {\n                    await this._rpcWebSocket.call(unsubscribeMethod, [\n                      serverSubscriptionId,\n                    ]);\n                  } catch (e) {\n                    if (e instanceof Error) {\n                      console.error(`${unsubscribeMethod} error:`, e.message);\n                    }\n                    if (!isCurrentConnectionStillActive()) {\n                      return;\n                    }\n                    // TODO: Maybe add an 'errored' state or a retry limit?\n                    this._setSubscription(hash, {\n                      ...subscription,\n                      state: 'subscribed',\n                    });\n                    await this._updateSubscriptions();\n                    return;\n                  }\n                }\n                this._setSubscription(hash, {\n                  ...subscription,\n                  state: 'unsubscribed',\n                });\n                await this._updateSubscriptions();\n              })();\n            }\n            break;\n          case 'subscribing':\n          case 'unsubscribing':\n            break;\n        }\n      }),\n    );\n  }\n\n  /**\n   * @internal\n   */\n  private _handleServerNotification<\n    TCallback extends SubscriptionConfig['callback'],\n  >(\n    serverSubscriptionId: ServerSubscriptionId,\n    callbackArgs: Parameters<TCallback>,\n  ): void {\n    const callbacks =\n      this._subscriptionCallbacksByServerSubscriptionId[serverSubscriptionId];\n    if (callbacks === undefined) {\n      return;\n    }\n    callbacks.forEach(cb => {\n      try {\n        cb(\n          // I failed to find a way to convince TypeScript that `cb` is of type\n          // `TCallback` which is certainly compatible with `Parameters<TCallback>`.\n          // See https://github.com/microsoft/TypeScript/issues/47615\n          // @ts-ignore\n          ...callbackArgs,\n        );\n      } catch (e) {\n        console.error(e);\n      }\n    });\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnAccountNotification(notification: object) {\n    const {result, subscription} = create(\n      notification,\n      AccountNotificationResult,\n    );\n    this._handleServerNotification<AccountChangeCallback>(subscription, [\n      result.value,\n      result.context,\n    ]);\n  }\n\n  /**\n   * @internal\n   */\n  private _makeSubscription(\n    subscriptionConfig: SubscriptionConfig,\n    /**\n     * When preparing `args` for a call to `_makeSubscription`, be sure\n     * to carefully apply a default `commitment` property, if necessary.\n     *\n     * - If the user supplied a `commitment` use that.\n     * - Otherwise, if the `Connection::commitment` is set, use that.\n     * - Otherwise, set it to the RPC server default: `finalized`.\n     *\n     * This is extremely important to ensure that these two fundamentally\n     * identical subscriptions produce the same identifying hash:\n     *\n     * - A subscription made without specifying a commitment.\n     * - A subscription made where the commitment specified is the same\n     *   as the default applied to the subscription above.\n     *\n     * Example; these two subscriptions must produce the same hash:\n     *\n     * - An `accountSubscribe` subscription for `'PUBKEY'`\n     * - An `accountSubscribe` subscription for `'PUBKEY'` with commitment\n     *   `'finalized'`.\n     *\n     * See the 'making a subscription with defaulted params omitted' test\n     * in `connection-subscriptions.ts` for more.\n     */\n    args: IWSRequestParams,\n  ): ClientSubscriptionId {\n    const clientSubscriptionId = this._nextClientSubscriptionId++;\n    const hash = fastStableStringify([subscriptionConfig.method, args]);\n    const existingSubscription = this._subscriptionsByHash[hash];\n    if (existingSubscription === undefined) {\n      this._subscriptionsByHash[hash] = {\n        ...subscriptionConfig,\n        args,\n        callbacks: new Set([subscriptionConfig.callback]),\n        state: 'pending',\n      };\n    } else {\n      existingSubscription.callbacks.add(subscriptionConfig.callback);\n    }\n    this._subscriptionHashByClientSubscriptionId[clientSubscriptionId] = hash;\n    this._subscriptionDisposeFunctionsByClientSubscriptionId[\n      clientSubscriptionId\n    ] = async () => {\n      delete this._subscriptionDisposeFunctionsByClientSubscriptionId[\n        clientSubscriptionId\n      ];\n      delete this._subscriptionHashByClientSubscriptionId[clientSubscriptionId];\n      const subscription = this._subscriptionsByHash[hash];\n      assert(\n        subscription !== undefined,\n        `Could not find a \\`Subscription\\` when tearing down client subscription #${clientSubscriptionId}`,\n      );\n      subscription.callbacks.delete(subscriptionConfig.callback);\n      await this._updateSubscriptions();\n    };\n    this._updateSubscriptions();\n    return clientSubscriptionId;\n  }\n\n  /**\n   * Register a callback to be invoked whenever the specified account changes\n   *\n   * @param publicKey Public key of the account to monitor\n   * @param callback Function to invoke whenever the account is changed\n   * @param config\n   * @return subscription id\n   */\n  onAccountChange(\n    publicKey: PublicKey,\n    callback: AccountChangeCallback,\n    config?: AccountSubscriptionConfig,\n  ): ClientSubscriptionId;\n  /** @deprecated Instead, pass in an {@link AccountSubscriptionConfig} */\n  // eslint-disable-next-line no-dupe-class-members\n  onAccountChange(\n    publicKey: PublicKey,\n    callback: AccountChangeCallback,\n    commitment?: Commitment,\n  ): ClientSubscriptionId;\n  // eslint-disable-next-line no-dupe-class-members\n  onAccountChange(\n    publicKey: PublicKey,\n    callback: AccountChangeCallback,\n    commitmentOrConfig?: Commitment | AccountSubscriptionConfig,\n  ): ClientSubscriptionId {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [publicKey.toBase58()],\n      commitment || this._commitment || 'finalized', // Apply connection/server default.\n      'base64',\n      config,\n    );\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'accountSubscribe',\n        unsubscribeMethod: 'accountUnsubscribe',\n      },\n      args,\n    );\n  }\n\n  /**\n   * Deregister an account notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeAccountChangeListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'account change',\n    );\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnProgramAccountNotification(notification: Object) {\n    const {result, subscription} = create(\n      notification,\n      ProgramAccountNotificationResult,\n    );\n    this._handleServerNotification<ProgramAccountChangeCallback>(subscription, [\n      {\n        accountId: result.value.pubkey,\n        accountInfo: result.value.account,\n      },\n      result.context,\n    ]);\n  }\n\n  /**\n   * Register a callback to be invoked whenever accounts owned by the\n   * specified program change\n   *\n   * @param programId Public key of the program to monitor\n   * @param callback Function to invoke whenever the account is changed\n   * @param config\n   * @return subscription id\n   */\n  onProgramAccountChange(\n    programId: PublicKey,\n    callback: ProgramAccountChangeCallback,\n    config?: ProgramAccountSubscriptionConfig,\n  ): ClientSubscriptionId;\n  /** @deprecated Instead, pass in a {@link ProgramAccountSubscriptionConfig} */\n  // eslint-disable-next-line no-dupe-class-members\n  onProgramAccountChange(\n    programId: PublicKey,\n    callback: ProgramAccountChangeCallback,\n    commitment?: Commitment,\n    filters?: GetProgramAccountsFilter[],\n  ): ClientSubscriptionId;\n  // eslint-disable-next-line no-dupe-class-members\n  onProgramAccountChange(\n    programId: PublicKey,\n    callback: ProgramAccountChangeCallback,\n    commitmentOrConfig?: Commitment | ProgramAccountSubscriptionConfig,\n    maybeFilters?: GetProgramAccountsFilter[],\n  ): ClientSubscriptionId {\n    const {commitment, config} =\n      extractCommitmentFromConfig(commitmentOrConfig);\n    const args = this._buildArgs(\n      [programId.toBase58()],\n      commitment || this._commitment || 'finalized', // Apply connection/server default.\n      'base64' /* encoding */,\n      config\n        ? config\n        : maybeFilters\n          ? {filters: applyDefaultMemcmpEncodingToFilters(maybeFilters)}\n          : undefined /* extra */,\n    );\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'programSubscribe',\n        unsubscribeMethod: 'programUnsubscribe',\n      },\n      args,\n    );\n  }\n\n  /**\n   * Deregister an account notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeProgramAccountChangeListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'program account change',\n    );\n  }\n\n  /**\n   * Registers a callback to be invoked whenever logs are emitted.\n   */\n  onLogs(\n    filter: LogsFilter,\n    callback: LogsCallback,\n    commitment?: Commitment,\n  ): ClientSubscriptionId {\n    const args = this._buildArgs(\n      [typeof filter === 'object' ? {mentions: [filter.toString()]} : filter],\n      commitment || this._commitment || 'finalized', // Apply connection/server default.\n    );\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'logsSubscribe',\n        unsubscribeMethod: 'logsUnsubscribe',\n      },\n      args,\n    );\n  }\n\n  /**\n   * Deregister a logs callback.\n   *\n   * @param clientSubscriptionId client subscription id to deregister.\n   */\n  async removeOnLogsListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(clientSubscriptionId, 'logs');\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnLogsNotification(notification: Object) {\n    const {result, subscription} = create(notification, LogsNotificationResult);\n    this._handleServerNotification<LogsCallback>(subscription, [\n      result.value,\n      result.context,\n    ]);\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnSlotNotification(notification: Object) {\n    const {result, subscription} = create(notification, SlotNotificationResult);\n    this._handleServerNotification<SlotChangeCallback>(subscription, [result]);\n  }\n\n  /**\n   * Register a callback to be invoked upon slot changes\n   *\n   * @param callback Function to invoke whenever the slot changes\n   * @return subscription id\n   */\n  onSlotChange(callback: SlotChangeCallback): ClientSubscriptionId {\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'slotSubscribe',\n        unsubscribeMethod: 'slotUnsubscribe',\n      },\n      [] /* args */,\n    );\n  }\n\n  /**\n   * Deregister a slot notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeSlotChangeListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'slot change',\n    );\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnSlotUpdatesNotification(notification: Object) {\n    const {result, subscription} = create(\n      notification,\n      SlotUpdateNotificationResult,\n    );\n    this._handleServerNotification<SlotUpdateCallback>(subscription, [result]);\n  }\n\n  /**\n   * Register a callback to be invoked upon slot updates. {@link SlotUpdate}'s\n   * may be useful to track live progress of a cluster.\n   *\n   * @param callback Function to invoke whenever the slot updates\n   * @return subscription id\n   */\n  onSlotUpdate(callback: SlotUpdateCallback): ClientSubscriptionId {\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'slotsUpdatesSubscribe',\n        unsubscribeMethod: 'slotsUpdatesUnsubscribe',\n      },\n      [] /* args */,\n    );\n  }\n\n  /**\n   * Deregister a slot update notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeSlotUpdateListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'slot update',\n    );\n  }\n\n  /**\n   * @internal\n   */\n\n  private async _unsubscribeClientSubscription(\n    clientSubscriptionId: ClientSubscriptionId,\n    subscriptionName: string,\n  ) {\n    const dispose =\n      this._subscriptionDisposeFunctionsByClientSubscriptionId[\n        clientSubscriptionId\n      ];\n    if (dispose) {\n      await dispose();\n    } else {\n      console.warn(\n        'Ignored unsubscribe request because an active subscription with id ' +\n          `\\`${clientSubscriptionId}\\` for '${subscriptionName}' events ` +\n          'could not be found.',\n      );\n    }\n  }\n\n  _buildArgs(\n    args: Array<any>,\n    override?: Commitment,\n    encoding?: 'jsonParsed' | 'base64',\n    extra?: any,\n  ): Array<any> {\n    const commitment = override || this._commitment;\n    if (commitment || encoding || extra) {\n      let options: any = {};\n      if (encoding) {\n        options.encoding = encoding;\n      }\n      if (commitment) {\n        options.commitment = commitment;\n      }\n      if (extra) {\n        options = Object.assign(options, extra);\n      }\n      args.push(options);\n    }\n    return args;\n  }\n\n  /**\n   * @internal\n   */\n  _buildArgsAtLeastConfirmed(\n    args: Array<any>,\n    override?: Finality,\n    encoding?: 'jsonParsed' | 'base64',\n    extra?: any,\n  ): Array<any> {\n    const commitment = override || this._commitment;\n    if (commitment && !['confirmed', 'finalized'].includes(commitment)) {\n      throw new Error(\n        'Using Connection with default commitment: `' +\n          this._commitment +\n          '`, but method requires at least `confirmed`',\n      );\n    }\n    return this._buildArgs(args, override, encoding, extra);\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnSignatureNotification(notification: Object) {\n    const {result, subscription} = create(\n      notification,\n      SignatureNotificationResult,\n    );\n    if (result.value !== 'receivedSignature') {\n      /**\n       * Special case.\n       * After a signature is processed, RPCs automatically dispose of the\n       * subscription on the server side. We need to track which of these\n       * subscriptions have been disposed in such a way, so that we know\n       * whether the client is dealing with a not-yet-processed signature\n       * (in which case we must tear down the server subscription) or an\n       * already-processed signature (in which case the client can simply\n       * clear out the subscription locally without telling the server).\n       *\n       * NOTE: There is a proposal to eliminate this special case, here:\n       * https://github.com/solana-labs/solana/issues/18892\n       */\n      this._subscriptionsAutoDisposedByRpc.add(subscription);\n    }\n    this._handleServerNotification<SignatureSubscriptionCallback>(\n      subscription,\n      result.value === 'receivedSignature'\n        ? [{type: 'received'}, result.context]\n        : [{type: 'status', result: result.value}, result.context],\n    );\n  }\n\n  /**\n   * Register a callback to be invoked upon signature updates\n   *\n   * @param signature Transaction signature string in base 58\n   * @param callback Function to invoke on signature notifications\n   * @param commitment Specify the commitment level signature must reach before notification\n   * @return subscription id\n   */\n  onSignature(\n    signature: TransactionSignature,\n    callback: SignatureResultCallback,\n    commitment?: Commitment,\n  ): ClientSubscriptionId {\n    const args = this._buildArgs(\n      [signature],\n      commitment || this._commitment || 'finalized', // Apply connection/server default.\n    );\n    const clientSubscriptionId = this._makeSubscription(\n      {\n        callback: (notification, context) => {\n          if (notification.type === 'status') {\n            callback(notification.result, context);\n            // Signatures subscriptions are auto-removed by the RPC service\n            // so no need to explicitly send an unsubscribe message.\n            try {\n              this.removeSignatureListener(clientSubscriptionId);\n              // eslint-disable-next-line no-empty\n            } catch (_err) {\n              // Already removed.\n            }\n          }\n        },\n        method: 'signatureSubscribe',\n        unsubscribeMethod: 'signatureUnsubscribe',\n      },\n      args,\n    );\n    return clientSubscriptionId;\n  }\n\n  /**\n   * Register a callback to be invoked when a transaction is\n   * received and/or processed.\n   *\n   * @param signature Transaction signature string in base 58\n   * @param callback Function to invoke on signature notifications\n   * @param options Enable received notifications and set the commitment\n   *   level that signature must reach before notification\n   * @return subscription id\n   */\n  onSignatureWithOptions(\n    signature: TransactionSignature,\n    callback: SignatureSubscriptionCallback,\n    options?: SignatureSubscriptionOptions,\n  ): ClientSubscriptionId {\n    const {commitment, ...extra} = {\n      ...options,\n      commitment:\n        (options && options.commitment) || this._commitment || 'finalized', // Apply connection/server default.\n    };\n    const args = this._buildArgs(\n      [signature],\n      commitment,\n      undefined /* encoding */,\n      extra,\n    );\n    const clientSubscriptionId = this._makeSubscription(\n      {\n        callback: (notification, context) => {\n          callback(notification, context);\n          // Signatures subscriptions are auto-removed by the RPC service\n          // so no need to explicitly send an unsubscribe message.\n          try {\n            this.removeSignatureListener(clientSubscriptionId);\n            // eslint-disable-next-line no-empty\n          } catch (_err) {\n            // Already removed.\n          }\n        },\n        method: 'signatureSubscribe',\n        unsubscribeMethod: 'signatureUnsubscribe',\n      },\n      args,\n    );\n    return clientSubscriptionId;\n  }\n\n  /**\n   * Deregister a signature notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeSignatureListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'signature result',\n    );\n  }\n\n  /**\n   * @internal\n   */\n  _wsOnRootNotification(notification: Object) {\n    const {result, subscription} = create(notification, RootNotificationResult);\n    this._handleServerNotification<RootChangeCallback>(subscription, [result]);\n  }\n\n  /**\n   * Register a callback to be invoked upon root changes\n   *\n   * @param callback Function to invoke whenever the root changes\n   * @return subscription id\n   */\n  onRootChange(callback: RootChangeCallback): ClientSubscriptionId {\n    return this._makeSubscription(\n      {\n        callback,\n        method: 'rootSubscribe',\n        unsubscribeMethod: 'rootUnsubscribe',\n      },\n      [] /* args */,\n    );\n  }\n\n  /**\n   * Deregister a root notification callback\n   *\n   * @param clientSubscriptionId client subscription id to deregister\n   */\n  async removeRootChangeListener(\n    clientSubscriptionId: ClientSubscriptionId,\n  ): Promise<void> {\n    await this._unsubscribeClientSubscription(\n      clientSubscriptionId,\n      'root change',\n    );\n  }\n}\n","import {generateKeypair, getPublicKey, Ed25519Keypair} from './utils/ed25519';\nimport {PublicKey} from './publickey';\n\n/**\n * Keypair signer interface\n */\nexport interface Signer {\n  publicKey: PublicKey;\n  secretKey: Uint8Array;\n}\n\n/**\n * An account keypair used for signing transactions.\n */\nexport class Keypair {\n  private _keypair: Ed25519Keypair;\n\n  /**\n   * Create a new keypair instance.\n   * Generate random keypair if no {@link Ed25519Keypair} is provided.\n   *\n   * @param {Ed25519Keypair} keypair ed25519 keypair\n   */\n  constructor(keypair?: Ed25519Keypair) {\n    this._keypair = keypair ?? generateKeypair();\n  }\n\n  /**\n   * Generate a new random keypair\n   *\n   * @returns {Keypair} Keypair\n   */\n  static generate(): Keypair {\n    return new Keypair(generateKeypair());\n  }\n\n  /**\n   * Create a keypair from a raw secret key byte array.\n   *\n   * This method should only be used to recreate a keypair from a previously\n   * generated secret key. Generating keypairs from a random seed should be done\n   * with the {@link Keypair.fromSeed} method.\n   *\n   * @throws error if the provided secret key is invalid and validation is not skipped.\n   *\n   * @param secretKey secret key byte array\n   * @param options skip secret key validation\n   *\n   * @returns {Keypair} Keypair\n   */\n  static fromSecretKey(\n    secretKey: Uint8Array,\n    options?: {skipValidation?: boolean},\n  ): Keypair {\n    if (secretKey.byteLength !== 64) {\n      throw new Error('bad secret key size');\n    }\n    const publicKey = secretKey.slice(32, 64);\n    if (!options || !options.skipValidation) {\n      const privateScalar = secretKey.slice(0, 32);\n      const computedPublicKey = getPublicKey(privateScalar);\n      for (let ii = 0; ii < 32; ii++) {\n        if (publicKey[ii] !== computedPublicKey[ii]) {\n          throw new Error('provided secretKey is invalid');\n        }\n      }\n    }\n    return new Keypair({publicKey, secretKey});\n  }\n\n  /**\n   * Generate a keypair from a 32 byte seed.\n   *\n   * @param seed seed byte array\n   *\n   * @returns {Keypair} Keypair\n   */\n  static fromSeed(seed: Uint8Array): Keypair {\n    const publicKey = getPublicKey(seed);\n    const secretKey = new Uint8Array(64);\n    secretKey.set(seed);\n    secretKey.set(publicKey, 32);\n    return new Keypair({publicKey, secretKey});\n  }\n\n  /**\n   * The public key for this keypair\n   *\n   * @returns {PublicKey} PublicKey\n   */\n  get publicKey(): PublicKey {\n    return new PublicKey(this._keypair.publicKey);\n  }\n\n  /**\n   * The raw secret key for this keypair\n   * @returns {Uint8Array} Secret key in an array of Uint8 bytes\n   */\n  get secretKey(): Uint8Array {\n    return new Uint8Array(this._keypair.secretKey);\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\nimport {getU64Encoder} from '@solana/codecs-numbers';\n\nimport * as Layout from '../../layout';\nimport {PublicKey} from '../../publickey';\nimport * as bigintLayout from '../../utils/bigint';\nimport {SystemProgram} from '../system';\nimport {TransactionInstruction} from '../../transaction';\nimport {decodeData, encodeData, IInstructionInputData} from '../../instruction';\n\nexport * from './state';\n\nexport type CreateLookupTableParams = {\n  /** Account used to derive and control the new address lookup table. */\n  authority: PublicKey;\n  /** Account that will fund the new address lookup table. */\n  payer: PublicKey;\n  /** A recent slot must be used in the derivation path for each initialized table. */\n  recentSlot: bigint | number;\n};\n\nexport type FreezeLookupTableParams = {\n  /** Address lookup table account to freeze. */\n  lookupTable: PublicKey;\n  /** Account which is the current authority. */\n  authority: PublicKey;\n};\n\nexport type ExtendLookupTableParams = {\n  /** Address lookup table account to extend. */\n  lookupTable: PublicKey;\n  /** Account which is the current authority. */\n  authority: PublicKey;\n  /** Account that will fund the table reallocation.\n   * Not required if the reallocation has already been funded. */\n  payer?: PublicKey;\n  /** List of Public Keys to be added to the lookup table. */\n  addresses: Array<PublicKey>;\n};\n\nexport type DeactivateLookupTableParams = {\n  /** Address lookup table account to deactivate. */\n  lookupTable: PublicKey;\n  /** Account which is the current authority. */\n  authority: PublicKey;\n};\n\nexport type CloseLookupTableParams = {\n  /** Address lookup table account to close. */\n  lookupTable: PublicKey;\n  /** Account which is the current authority. */\n  authority: PublicKey;\n  /** Recipient of closed account lamports. */\n  recipient: PublicKey;\n};\n\n/**\n * An enumeration of valid LookupTableInstructionType's\n */\nexport type LookupTableInstructionType =\n  | 'CreateLookupTable'\n  | 'ExtendLookupTable'\n  | 'CloseLookupTable'\n  | 'FreezeLookupTable'\n  | 'DeactivateLookupTable';\n\ntype LookupTableInstructionInputData = {\n  CreateLookupTable: IInstructionInputData &\n    Readonly<{\n      recentSlot: bigint;\n      bumpSeed: number;\n    }>;\n  FreezeLookupTable: IInstructionInputData;\n  ExtendLookupTable: IInstructionInputData &\n    Readonly<{\n      numberOfAddresses: bigint;\n      addresses: Array<Uint8Array>;\n    }>;\n  DeactivateLookupTable: IInstructionInputData;\n  CloseLookupTable: IInstructionInputData;\n};\n\n/**\n * An enumeration of valid address lookup table InstructionType's\n * @internal\n */\nexport const LOOKUP_TABLE_INSTRUCTION_LAYOUTS = Object.freeze({\n  CreateLookupTable: {\n    index: 0,\n    layout: BufferLayout.struct<\n      LookupTableInstructionInputData['CreateLookupTable']\n    >([\n      BufferLayout.u32('instruction'),\n      bigintLayout.u64('recentSlot'),\n      BufferLayout.u8('bumpSeed'),\n    ]),\n  },\n  FreezeLookupTable: {\n    index: 1,\n    layout: BufferLayout.struct<\n      LookupTableInstructionInputData['FreezeLookupTable']\n    >([BufferLayout.u32('instruction')]),\n  },\n  ExtendLookupTable: {\n    index: 2,\n    layout: BufferLayout.struct<\n      LookupTableInstructionInputData['ExtendLookupTable']\n    >([\n      BufferLayout.u32('instruction'),\n      bigintLayout.u64(),\n      BufferLayout.seq(\n        Layout.publicKey(),\n        BufferLayout.offset(BufferLayout.u32(), -8),\n        'addresses',\n      ),\n    ]),\n  },\n  DeactivateLookupTable: {\n    index: 3,\n    layout: BufferLayout.struct<\n      LookupTableInstructionInputData['DeactivateLookupTable']\n    >([BufferLayout.u32('instruction')]),\n  },\n  CloseLookupTable: {\n    index: 4,\n    layout: BufferLayout.struct<\n      LookupTableInstructionInputData['CloseLookupTable']\n    >([BufferLayout.u32('instruction')]),\n  },\n});\n\nexport class AddressLookupTableInstruction {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  static decodeInstructionType(\n    instruction: TransactionInstruction,\n  ): LookupTableInstructionType {\n    this.checkProgramId(instruction.programId);\n\n    const instructionTypeLayout = BufferLayout.u32('instruction');\n    const index = instructionTypeLayout.decode(instruction.data);\n\n    let type: LookupTableInstructionType | undefined;\n    for (const [layoutType, layout] of Object.entries(\n      LOOKUP_TABLE_INSTRUCTION_LAYOUTS,\n    )) {\n      if ((layout as any).index == index) {\n        type = layoutType as LookupTableInstructionType;\n        break;\n      }\n    }\n    if (!type) {\n      throw new Error(\n        'Invalid Instruction. Should be a LookupTable Instruction',\n      );\n    }\n    return type;\n  }\n\n  static decodeCreateLookupTable(\n    instruction: TransactionInstruction,\n  ): CreateLookupTableParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeysLength(instruction.keys, 4);\n\n    const {recentSlot} = decodeData(\n      LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable,\n      instruction.data,\n    );\n\n    return {\n      authority: instruction.keys[1].pubkey,\n      payer: instruction.keys[2].pubkey,\n      recentSlot: Number(recentSlot),\n    };\n  }\n\n  static decodeExtendLookupTable(\n    instruction: TransactionInstruction,\n  ): ExtendLookupTableParams {\n    this.checkProgramId(instruction.programId);\n    if (instruction.keys.length < 2) {\n      throw new Error(\n        `invalid instruction; found ${instruction.keys.length} keys, expected at least 2`,\n      );\n    }\n\n    const {addresses} = decodeData(\n      LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable,\n      instruction.data,\n    );\n    return {\n      lookupTable: instruction.keys[0].pubkey,\n      authority: instruction.keys[1].pubkey,\n      payer:\n        instruction.keys.length > 2 ? instruction.keys[2].pubkey : undefined,\n      addresses: addresses.map(buffer => new PublicKey(buffer)),\n    };\n  }\n\n  static decodeCloseLookupTable(\n    instruction: TransactionInstruction,\n  ): CloseLookupTableParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeysLength(instruction.keys, 3);\n\n    return {\n      lookupTable: instruction.keys[0].pubkey,\n      authority: instruction.keys[1].pubkey,\n      recipient: instruction.keys[2].pubkey,\n    };\n  }\n\n  static decodeFreezeLookupTable(\n    instruction: TransactionInstruction,\n  ): FreezeLookupTableParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeysLength(instruction.keys, 2);\n\n    return {\n      lookupTable: instruction.keys[0].pubkey,\n      authority: instruction.keys[1].pubkey,\n    };\n  }\n\n  static decodeDeactivateLookupTable(\n    instruction: TransactionInstruction,\n  ): DeactivateLookupTableParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeysLength(instruction.keys, 2);\n\n    return {\n      lookupTable: instruction.keys[0].pubkey,\n      authority: instruction.keys[1].pubkey,\n    };\n  }\n\n  /**\n   * @internal\n   */\n  static checkProgramId(programId: PublicKey) {\n    if (!programId.equals(AddressLookupTableProgram.programId)) {\n      throw new Error(\n        'invalid instruction; programId is not AddressLookupTable Program',\n      );\n    }\n  }\n  /**\n   * @internal\n   */\n  static checkKeysLength(keys: Array<any>, expectedLength: number) {\n    if (keys.length < expectedLength) {\n      throw new Error(\n        `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n      );\n    }\n  }\n}\n\nexport class AddressLookupTableProgram {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  static programId: PublicKey = new PublicKey(\n    'AddressLookupTab1e1111111111111111111111111',\n  );\n\n  static createLookupTable(params: CreateLookupTableParams) {\n    const [lookupTableAddress, bumpSeed] = PublicKey.findProgramAddressSync(\n      [\n        params.authority.toBuffer(),\n        getU64Encoder().encode(params.recentSlot) as Uint8Array,\n      ],\n      this.programId,\n    );\n\n    const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CreateLookupTable;\n    const data = encodeData(type, {\n      recentSlot: BigInt(params.recentSlot),\n      bumpSeed: bumpSeed,\n    });\n\n    const keys = [\n      {\n        pubkey: lookupTableAddress,\n        isSigner: false,\n        isWritable: true,\n      },\n      {\n        pubkey: params.authority,\n        isSigner: true,\n        isWritable: false,\n      },\n      {\n        pubkey: params.payer,\n        isSigner: true,\n        isWritable: true,\n      },\n      {\n        pubkey: SystemProgram.programId,\n        isSigner: false,\n        isWritable: false,\n      },\n    ];\n\n    return [\n      new TransactionInstruction({\n        programId: this.programId,\n        keys: keys,\n        data: data,\n      }),\n      lookupTableAddress,\n    ] as [TransactionInstruction, PublicKey];\n  }\n\n  static freezeLookupTable(params: FreezeLookupTableParams) {\n    const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.FreezeLookupTable;\n    const data = encodeData(type);\n\n    const keys = [\n      {\n        pubkey: params.lookupTable,\n        isSigner: false,\n        isWritable: true,\n      },\n      {\n        pubkey: params.authority,\n        isSigner: true,\n        isWritable: false,\n      },\n    ];\n\n    return new TransactionInstruction({\n      programId: this.programId,\n      keys: keys,\n      data: data,\n    });\n  }\n\n  static extendLookupTable(params: ExtendLookupTableParams) {\n    const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.ExtendLookupTable;\n    const data = encodeData(type, {\n      addresses: params.addresses.map(addr => addr.toBytes()),\n    });\n\n    const keys = [\n      {\n        pubkey: params.lookupTable,\n        isSigner: false,\n        isWritable: true,\n      },\n      {\n        pubkey: params.authority,\n        isSigner: true,\n        isWritable: false,\n      },\n    ];\n\n    if (params.payer) {\n      keys.push(\n        {\n          pubkey: params.payer,\n          isSigner: true,\n          isWritable: true,\n        },\n        {\n          pubkey: SystemProgram.programId,\n          isSigner: false,\n          isWritable: false,\n        },\n      );\n    }\n\n    return new TransactionInstruction({\n      programId: this.programId,\n      keys: keys,\n      data: data,\n    });\n  }\n\n  static deactivateLookupTable(params: DeactivateLookupTableParams) {\n    const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.DeactivateLookupTable;\n    const data = encodeData(type);\n\n    const keys = [\n      {\n        pubkey: params.lookupTable,\n        isSigner: false,\n        isWritable: true,\n      },\n      {\n        pubkey: params.authority,\n        isSigner: true,\n        isWritable: false,\n      },\n    ];\n\n    return new TransactionInstruction({\n      programId: this.programId,\n      keys: keys,\n      data: data,\n    });\n  }\n\n  static closeLookupTable(params: CloseLookupTableParams) {\n    const type = LOOKUP_TABLE_INSTRUCTION_LAYOUTS.CloseLookupTable;\n    const data = encodeData(type);\n\n    const keys = [\n      {\n        pubkey: params.lookupTable,\n        isSigner: false,\n        isWritable: true,\n      },\n      {\n        pubkey: params.authority,\n        isSigner: true,\n        isWritable: false,\n      },\n      {\n        pubkey: params.recipient,\n        isSigner: false,\n        isWritable: true,\n      },\n    ];\n\n    return new TransactionInstruction({\n      programId: this.programId,\n      keys: keys,\n      data: data,\n    });\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {\n  encodeData,\n  decodeData,\n  InstructionType,\n  IInstructionInputData,\n} from '../instruction';\nimport {PublicKey} from '../publickey';\nimport {TransactionInstruction} from '../transaction';\nimport {u64} from '../utils/bigint';\n\n/**\n * Compute Budget Instruction class\n */\nexport class ComputeBudgetInstruction {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Decode a compute budget instruction and retrieve the instruction type.\n   */\n  static decodeInstructionType(\n    instruction: TransactionInstruction,\n  ): ComputeBudgetInstructionType {\n    this.checkProgramId(instruction.programId);\n\n    const instructionTypeLayout = BufferLayout.u8('instruction');\n    const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n    let type: ComputeBudgetInstructionType | undefined;\n    for (const [ixType, layout] of Object.entries(\n      COMPUTE_BUDGET_INSTRUCTION_LAYOUTS,\n    )) {\n      if (layout.index == typeIndex) {\n        type = ixType as ComputeBudgetInstructionType;\n        break;\n      }\n    }\n\n    if (!type) {\n      throw new Error(\n        'Instruction type incorrect; not a ComputeBudgetInstruction',\n      );\n    }\n\n    return type;\n  }\n\n  /**\n   * Decode request units compute budget instruction and retrieve the instruction params.\n   */\n  static decodeRequestUnits(\n    instruction: TransactionInstruction,\n  ): RequestUnitsParams {\n    this.checkProgramId(instruction.programId);\n    const {units, additionalFee} = decodeData(\n      COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits,\n      instruction.data,\n    );\n    return {units, additionalFee};\n  }\n\n  /**\n   * Decode request heap frame compute budget instruction and retrieve the instruction params.\n   */\n  static decodeRequestHeapFrame(\n    instruction: TransactionInstruction,\n  ): RequestHeapFrameParams {\n    this.checkProgramId(instruction.programId);\n    const {bytes} = decodeData(\n      COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame,\n      instruction.data,\n    );\n    return {bytes};\n  }\n\n  /**\n   * Decode set compute unit limit compute budget instruction and retrieve the instruction params.\n   */\n  static decodeSetComputeUnitLimit(\n    instruction: TransactionInstruction,\n  ): SetComputeUnitLimitParams {\n    this.checkProgramId(instruction.programId);\n    const {units} = decodeData(\n      COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit,\n      instruction.data,\n    );\n    return {units};\n  }\n\n  /**\n   * Decode set compute unit price compute budget instruction and retrieve the instruction params.\n   */\n  static decodeSetComputeUnitPrice(\n    instruction: TransactionInstruction,\n  ): SetComputeUnitPriceParams {\n    this.checkProgramId(instruction.programId);\n    const {microLamports} = decodeData(\n      COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice,\n      instruction.data,\n    );\n    return {microLamports};\n  }\n\n  /**\n   * @internal\n   */\n  static checkProgramId(programId: PublicKey) {\n    if (!programId.equals(ComputeBudgetProgram.programId)) {\n      throw new Error(\n        'invalid instruction; programId is not ComputeBudgetProgram',\n      );\n    }\n  }\n}\n\n/**\n * An enumeration of valid ComputeBudgetInstructionType's\n */\nexport type ComputeBudgetInstructionType =\n  // FIXME\n  // It would be preferable for this type to be `keyof ComputeBudgetInstructionInputData`\n  // but Typedoc does not transpile `keyof` expressions.\n  // See https://github.com/TypeStrong/typedoc/issues/1894\n  | 'RequestUnits'\n  | 'RequestHeapFrame'\n  | 'SetComputeUnitLimit'\n  | 'SetComputeUnitPrice';\n\ntype ComputeBudgetInstructionInputData = {\n  RequestUnits: IInstructionInputData & Readonly<RequestUnitsParams>;\n  RequestHeapFrame: IInstructionInputData & Readonly<RequestHeapFrameParams>;\n  SetComputeUnitLimit: IInstructionInputData &\n    Readonly<SetComputeUnitLimitParams>;\n  SetComputeUnitPrice: IInstructionInputData &\n    Readonly<SetComputeUnitPriceParams>;\n};\n\n/**\n * Request units instruction params\n */\nexport interface RequestUnitsParams {\n  /** Units to request for transaction-wide compute */\n  units: number;\n  /** Prioritization fee lamports */\n  additionalFee: number;\n}\n\n/**\n * Request heap frame instruction params\n */\nexport type RequestHeapFrameParams = {\n  /** Requested transaction-wide program heap size in bytes. Must be multiple of 1024. Applies to each program, including CPIs. */\n  bytes: number;\n};\n\n/**\n * Set compute unit limit instruction params\n */\nexport interface SetComputeUnitLimitParams {\n  /** Transaction-wide compute unit limit */\n  units: number;\n}\n\n/**\n * Set compute unit price instruction params\n */\nexport interface SetComputeUnitPriceParams {\n  /** Transaction compute unit price used for prioritization fees */\n  microLamports: number | bigint;\n}\n\n/**\n * An enumeration of valid ComputeBudget InstructionType's\n * @internal\n */\nexport const COMPUTE_BUDGET_INSTRUCTION_LAYOUTS = Object.freeze<{\n  [Instruction in ComputeBudgetInstructionType]: InstructionType<\n    ComputeBudgetInstructionInputData[Instruction]\n  >;\n}>({\n  RequestUnits: {\n    index: 0,\n    layout: BufferLayout.struct<\n      ComputeBudgetInstructionInputData['RequestUnits']\n    >([\n      BufferLayout.u8('instruction'),\n      BufferLayout.u32('units'),\n      BufferLayout.u32('additionalFee'),\n    ]),\n  },\n  RequestHeapFrame: {\n    index: 1,\n    layout: BufferLayout.struct<\n      ComputeBudgetInstructionInputData['RequestHeapFrame']\n    >([BufferLayout.u8('instruction'), BufferLayout.u32('bytes')]),\n  },\n  SetComputeUnitLimit: {\n    index: 2,\n    layout: BufferLayout.struct<\n      ComputeBudgetInstructionInputData['SetComputeUnitLimit']\n    >([BufferLayout.u8('instruction'), BufferLayout.u32('units')]),\n  },\n  SetComputeUnitPrice: {\n    index: 3,\n    layout: BufferLayout.struct<\n      ComputeBudgetInstructionInputData['SetComputeUnitPrice']\n    >([BufferLayout.u8('instruction'), u64('microLamports')]),\n  },\n});\n\n/**\n * Factory class for transaction instructions to interact with the Compute Budget program\n */\nexport class ComputeBudgetProgram {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the Compute Budget program\n   */\n  static programId: PublicKey = new PublicKey(\n    'ComputeBudget111111111111111111111111111111',\n  );\n\n  /**\n   * @deprecated Instead, call {@link setComputeUnitLimit} and/or {@link setComputeUnitPrice}\n   */\n  static requestUnits(params: RequestUnitsParams): TransactionInstruction {\n    const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestUnits;\n    const data = encodeData(type, params);\n    return new TransactionInstruction({\n      keys: [],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  static requestHeapFrame(\n    params: RequestHeapFrameParams,\n  ): TransactionInstruction {\n    const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.RequestHeapFrame;\n    const data = encodeData(type, params);\n    return new TransactionInstruction({\n      keys: [],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  static setComputeUnitLimit(\n    params: SetComputeUnitLimitParams,\n  ): TransactionInstruction {\n    const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitLimit;\n    const data = encodeData(type, params);\n    return new TransactionInstruction({\n      keys: [],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  static setComputeUnitPrice(\n    params: SetComputeUnitPriceParams,\n  ): TransactionInstruction {\n    const type = COMPUTE_BUDGET_INSTRUCTION_LAYOUTS.SetComputeUnitPrice;\n    const data = encodeData(type, {\n      microLamports: BigInt(params.microLamports),\n    });\n    return new TransactionInstruction({\n      keys: [],\n      programId: this.programId,\n      data,\n    });\n  }\n}\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\n\nimport {Keypair} from '../keypair';\nimport {PublicKey} from '../publickey';\nimport {TransactionInstruction} from '../transaction';\nimport assert from '../utils/assert';\nimport {sign} from '../utils/ed25519';\n\nconst PRIVATE_KEY_BYTES = 64;\nconst PUBLIC_KEY_BYTES = 32;\nconst SIGNATURE_BYTES = 64;\n\n/**\n * Params for creating an ed25519 instruction using a public key\n */\nexport type CreateEd25519InstructionWithPublicKeyParams = {\n  publicKey: Uint8Array;\n  message: Uint8Array;\n  signature: Uint8Array;\n  instructionIndex?: number;\n};\n\n/**\n * Params for creating an ed25519 instruction using a private key\n */\nexport type CreateEd25519InstructionWithPrivateKeyParams = {\n  privateKey: Uint8Array;\n  message: Uint8Array;\n  instructionIndex?: number;\n};\n\nconst ED25519_INSTRUCTION_LAYOUT = BufferLayout.struct<\n  Readonly<{\n    messageDataOffset: number;\n    messageDataSize: number;\n    messageInstructionIndex: number;\n    numSignatures: number;\n    padding: number;\n    publicKeyInstructionIndex: number;\n    publicKeyOffset: number;\n    signatureInstructionIndex: number;\n    signatureOffset: number;\n  }>\n>([\n  BufferLayout.u8('numSignatures'),\n  BufferLayout.u8('padding'),\n  BufferLayout.u16('signatureOffset'),\n  BufferLayout.u16('signatureInstructionIndex'),\n  BufferLayout.u16('publicKeyOffset'),\n  BufferLayout.u16('publicKeyInstructionIndex'),\n  BufferLayout.u16('messageDataOffset'),\n  BufferLayout.u16('messageDataSize'),\n  BufferLayout.u16('messageInstructionIndex'),\n]);\n\nexport class Ed25519Program {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the ed25519 program\n   */\n  static programId: PublicKey = new PublicKey(\n    'Ed25519SigVerify111111111111111111111111111',\n  );\n\n  /**\n   * Create an ed25519 instruction with a public key and signature. The\n   * public key must be a buffer that is 32 bytes long, and the signature\n   * must be a buffer of 64 bytes.\n   */\n  static createInstructionWithPublicKey(\n    params: CreateEd25519InstructionWithPublicKeyParams,\n  ): TransactionInstruction {\n    const {publicKey, message, signature, instructionIndex} = params;\n\n    assert(\n      publicKey.length === PUBLIC_KEY_BYTES,\n      `Public Key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`,\n    );\n\n    assert(\n      signature.length === SIGNATURE_BYTES,\n      `Signature must be ${SIGNATURE_BYTES} bytes but received ${signature.length} bytes`,\n    );\n\n    const publicKeyOffset = ED25519_INSTRUCTION_LAYOUT.span;\n    const signatureOffset = publicKeyOffset + publicKey.length;\n    const messageDataOffset = signatureOffset + signature.length;\n    const numSignatures = 1;\n\n    const instructionData = Buffer.alloc(messageDataOffset + message.length);\n\n    const index =\n      instructionIndex == null\n        ? 0xffff // An index of `u16::MAX` makes it default to the current instruction.\n        : instructionIndex;\n\n    ED25519_INSTRUCTION_LAYOUT.encode(\n      {\n        numSignatures,\n        padding: 0,\n        signatureOffset,\n        signatureInstructionIndex: index,\n        publicKeyOffset,\n        publicKeyInstructionIndex: index,\n        messageDataOffset,\n        messageDataSize: message.length,\n        messageInstructionIndex: index,\n      },\n      instructionData,\n    );\n\n    instructionData.fill(publicKey, publicKeyOffset);\n    instructionData.fill(signature, signatureOffset);\n    instructionData.fill(message, messageDataOffset);\n\n    return new TransactionInstruction({\n      keys: [],\n      programId: Ed25519Program.programId,\n      data: instructionData,\n    });\n  }\n\n  /**\n   * Create an ed25519 instruction with a private key. The private key\n   * must be a buffer that is 64 bytes long.\n   */\n  static createInstructionWithPrivateKey(\n    params: CreateEd25519InstructionWithPrivateKeyParams,\n  ): TransactionInstruction {\n    const {privateKey, message, instructionIndex} = params;\n\n    assert(\n      privateKey.length === PRIVATE_KEY_BYTES,\n      `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${privateKey.length} bytes`,\n    );\n\n    try {\n      const keypair = Keypair.fromSecretKey(privateKey);\n      const publicKey = keypair.publicKey.toBytes();\n      const signature = sign(message, keypair.secretKey);\n\n      return this.createInstructionWithPublicKey({\n        publicKey,\n        message,\n        signature,\n        instructionIndex,\n      });\n    } catch (error) {\n      throw new Error(`Error creating instruction; ${error}`);\n    }\n  }\n}\n","import {secp256k1} from '@noble/curves/secp256k1';\n\nexport const ecdsaSign = (\n  msgHash: Parameters<typeof secp256k1.sign>[0],\n  privKey: Parameters<typeof secp256k1.sign>[1],\n) => {\n  const signature = secp256k1.sign(msgHash, privKey);\n  return [signature.toCompactRawBytes(), signature.recovery!] as const;\n};\nexport const isValidPrivateKey = secp256k1.utils.isValidPrivateKey;\nexport const publicKeyCreate = secp256k1.getPublicKey;\n","import {Buffer} from 'buffer';\nimport * as BufferLayout from '@solana/buffer-layout';\nimport {keccak_256} from '@noble/hashes/sha3';\n\nimport {PublicKey} from '../publickey';\nimport {TransactionInstruction} from '../transaction';\nimport assert from '../utils/assert';\nimport {publicKeyCreate, ecdsaSign} from '../utils/secp256k1';\nimport {toBuffer} from '../utils/to-buffer';\n\nconst PRIVATE_KEY_BYTES = 32;\nconst ETHEREUM_ADDRESS_BYTES = 20;\nconst PUBLIC_KEY_BYTES = 64;\nconst SIGNATURE_OFFSETS_SERIALIZED_SIZE = 11;\n\n/**\n * Params for creating an secp256k1 instruction using a public key\n */\nexport type CreateSecp256k1InstructionWithPublicKeyParams = {\n  publicKey: Buffer | Uint8Array | Array<number>;\n  message: Buffer | Uint8Array | Array<number>;\n  signature: Buffer | Uint8Array | Array<number>;\n  recoveryId: number;\n  instructionIndex?: number;\n};\n\n/**\n * Params for creating an secp256k1 instruction using an Ethereum address\n */\nexport type CreateSecp256k1InstructionWithEthAddressParams = {\n  ethAddress: Buffer | Uint8Array | Array<number> | string;\n  message: Buffer | Uint8Array | Array<number>;\n  signature: Buffer | Uint8Array | Array<number>;\n  recoveryId: number;\n  instructionIndex?: number;\n};\n\n/**\n * Params for creating an secp256k1 instruction using a private key\n */\nexport type CreateSecp256k1InstructionWithPrivateKeyParams = {\n  privateKey: Buffer | Uint8Array | Array<number>;\n  message: Buffer | Uint8Array | Array<number>;\n  instructionIndex?: number;\n};\n\nconst SECP256K1_INSTRUCTION_LAYOUT = BufferLayout.struct<\n  Readonly<{\n    ethAddress: Uint8Array;\n    ethAddressInstructionIndex: number;\n    ethAddressOffset: number;\n    messageDataOffset: number;\n    messageDataSize: number;\n    messageInstructionIndex: number;\n    numSignatures: number;\n    recoveryId: number;\n    signature: Uint8Array;\n    signatureInstructionIndex: number;\n    signatureOffset: number;\n  }>\n>([\n  BufferLayout.u8('numSignatures'),\n  BufferLayout.u16('signatureOffset'),\n  BufferLayout.u8('signatureInstructionIndex'),\n  BufferLayout.u16('ethAddressOffset'),\n  BufferLayout.u8('ethAddressInstructionIndex'),\n  BufferLayout.u16('messageDataOffset'),\n  BufferLayout.u16('messageDataSize'),\n  BufferLayout.u8('messageInstructionIndex'),\n  BufferLayout.blob(20, 'ethAddress'),\n  BufferLayout.blob(64, 'signature'),\n  BufferLayout.u8('recoveryId'),\n]);\n\nexport class Secp256k1Program {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the secp256k1 program\n   */\n  static programId: PublicKey = new PublicKey(\n    'KeccakSecp256k11111111111111111111111111111',\n  );\n\n  /**\n   * Construct an Ethereum address from a secp256k1 public key buffer.\n   * @param {Buffer} publicKey a 64 byte secp256k1 public key buffer\n   */\n  static publicKeyToEthAddress(\n    publicKey: Buffer | Uint8Array | Array<number>,\n  ): Buffer {\n    assert(\n      publicKey.length === PUBLIC_KEY_BYTES,\n      `Public key must be ${PUBLIC_KEY_BYTES} bytes but received ${publicKey.length} bytes`,\n    );\n\n    try {\n      return Buffer.from(keccak_256(toBuffer(publicKey))).slice(\n        -ETHEREUM_ADDRESS_BYTES,\n      );\n    } catch (error) {\n      throw new Error(`Error constructing Ethereum address: ${error}`);\n    }\n  }\n\n  /**\n   * Create an secp256k1 instruction with a public key. The public key\n   * must be a buffer that is 64 bytes long.\n   */\n  static createInstructionWithPublicKey(\n    params: CreateSecp256k1InstructionWithPublicKeyParams,\n  ): TransactionInstruction {\n    const {publicKey, message, signature, recoveryId, instructionIndex} =\n      params;\n    return Secp256k1Program.createInstructionWithEthAddress({\n      ethAddress: Secp256k1Program.publicKeyToEthAddress(publicKey),\n      message,\n      signature,\n      recoveryId,\n      instructionIndex,\n    });\n  }\n\n  /**\n   * Create an secp256k1 instruction with an Ethereum address. The address\n   * must be a hex string or a buffer that is 20 bytes long.\n   */\n  static createInstructionWithEthAddress(\n    params: CreateSecp256k1InstructionWithEthAddressParams,\n  ): TransactionInstruction {\n    const {\n      ethAddress: rawAddress,\n      message,\n      signature,\n      recoveryId,\n      instructionIndex = 0,\n    } = params;\n\n    let ethAddress;\n    if (typeof rawAddress === 'string') {\n      if (rawAddress.startsWith('0x')) {\n        ethAddress = Buffer.from(rawAddress.substr(2), 'hex');\n      } else {\n        ethAddress = Buffer.from(rawAddress, 'hex');\n      }\n    } else {\n      ethAddress = rawAddress;\n    }\n\n    assert(\n      ethAddress.length === ETHEREUM_ADDRESS_BYTES,\n      `Address must be ${ETHEREUM_ADDRESS_BYTES} bytes but received ${ethAddress.length} bytes`,\n    );\n\n    const dataStart = 1 + SIGNATURE_OFFSETS_SERIALIZED_SIZE;\n    const ethAddressOffset = dataStart;\n    const signatureOffset = dataStart + ethAddress.length;\n    const messageDataOffset = signatureOffset + signature.length + 1;\n    const numSignatures = 1;\n\n    const instructionData = Buffer.alloc(\n      SECP256K1_INSTRUCTION_LAYOUT.span + message.length,\n    );\n\n    SECP256K1_INSTRUCTION_LAYOUT.encode(\n      {\n        numSignatures,\n        signatureOffset,\n        signatureInstructionIndex: instructionIndex,\n        ethAddressOffset,\n        ethAddressInstructionIndex: instructionIndex,\n        messageDataOffset,\n        messageDataSize: message.length,\n        messageInstructionIndex: instructionIndex,\n        signature: toBuffer(signature),\n        ethAddress: toBuffer(ethAddress),\n        recoveryId,\n      },\n      instructionData,\n    );\n\n    instructionData.fill(toBuffer(message), SECP256K1_INSTRUCTION_LAYOUT.span);\n\n    return new TransactionInstruction({\n      keys: [],\n      programId: Secp256k1Program.programId,\n      data: instructionData,\n    });\n  }\n\n  /**\n   * Create an secp256k1 instruction with a private key. The private key\n   * must be a buffer that is 32 bytes long.\n   */\n  static createInstructionWithPrivateKey(\n    params: CreateSecp256k1InstructionWithPrivateKeyParams,\n  ): TransactionInstruction {\n    const {privateKey: pkey, message, instructionIndex} = params;\n\n    assert(\n      pkey.length === PRIVATE_KEY_BYTES,\n      `Private key must be ${PRIVATE_KEY_BYTES} bytes but received ${pkey.length} bytes`,\n    );\n\n    try {\n      const privateKey = toBuffer(pkey);\n      const publicKey = publicKeyCreate(\n        privateKey,\n        false /* isCompressed */,\n      ).slice(1); // throw away leading byte\n      const messageHash = Buffer.from(keccak_256(toBuffer(message)));\n      const [signature, recoveryId] = ecdsaSign(messageHash, privateKey);\n\n      return this.createInstructionWithPublicKey({\n        publicKey,\n        message,\n        signature,\n        recoveryId,\n        instructionIndex,\n      });\n    } catch (error) {\n      throw new Error(`Error creating instruction; ${error}`);\n    }\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {\n  encodeData,\n  decodeData,\n  InstructionType,\n  IInstructionInputData,\n} from '../instruction';\nimport * as Layout from '../layout';\nimport {PublicKey} from '../publickey';\nimport {SystemProgram} from './system';\nimport {\n  SYSVAR_CLOCK_PUBKEY,\n  SYSVAR_RENT_PUBKEY,\n  SYSVAR_STAKE_HISTORY_PUBKEY,\n} from '../sysvar';\nimport {Transaction, TransactionInstruction} from '../transaction';\nimport {toBuffer} from '../utils/to-buffer';\n\n/**\n * Address of the stake config account which configures the rate\n * of stake warmup and cooldown as well as the slashing penalty.\n */\nexport const STAKE_CONFIG_ID = new PublicKey(\n  'StakeConfig11111111111111111111111111111111',\n);\n\n/**\n * Stake account authority info\n */\nexport class Authorized {\n  /** stake authority */\n  staker: PublicKey;\n  /** withdraw authority */\n  withdrawer: PublicKey;\n\n  /**\n   * Create a new Authorized object\n   * @param staker the stake authority\n   * @param withdrawer the withdraw authority\n   */\n  constructor(staker: PublicKey, withdrawer: PublicKey) {\n    this.staker = staker;\n    this.withdrawer = withdrawer;\n  }\n}\n\ntype AuthorizedRaw = Readonly<{\n  staker: Uint8Array;\n  withdrawer: Uint8Array;\n}>;\n\n/**\n * Stake account lockup info\n */\nexport class Lockup {\n  /** Unix timestamp of lockup expiration */\n  unixTimestamp: number;\n  /** Epoch of lockup expiration */\n  epoch: number;\n  /** Lockup custodian authority */\n  custodian: PublicKey;\n\n  /**\n   * Create a new Lockup object\n   */\n  constructor(unixTimestamp: number, epoch: number, custodian: PublicKey) {\n    this.unixTimestamp = unixTimestamp;\n    this.epoch = epoch;\n    this.custodian = custodian;\n  }\n\n  /**\n   * Default, inactive Lockup value\n   */\n  static default: Lockup = new Lockup(0, 0, PublicKey.default);\n}\n\ntype LockupRaw = Readonly<{\n  custodian: Uint8Array;\n  epoch: number;\n  unixTimestamp: number;\n}>;\n\n/**\n * Create stake account transaction params\n */\nexport type CreateStakeAccountParams = {\n  /** Address of the account which will fund creation */\n  fromPubkey: PublicKey;\n  /** Address of the new stake account */\n  stakePubkey: PublicKey;\n  /** Authorities of the new stake account */\n  authorized: Authorized;\n  /** Lockup of the new stake account */\n  lockup?: Lockup;\n  /** Funding amount */\n  lamports: number;\n};\n\n/**\n * Create stake account with seed transaction params\n */\nexport type CreateStakeAccountWithSeedParams = {\n  fromPubkey: PublicKey;\n  stakePubkey: PublicKey;\n  basePubkey: PublicKey;\n  seed: string;\n  authorized: Authorized;\n  lockup?: Lockup;\n  lamports: number;\n};\n\n/**\n * Initialize stake instruction params\n */\nexport type InitializeStakeParams = {\n  stakePubkey: PublicKey;\n  authorized: Authorized;\n  lockup?: Lockup;\n};\n\n/**\n * Delegate stake instruction params\n */\nexport type DelegateStakeParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n  votePubkey: PublicKey;\n};\n\n/**\n * Authorize stake instruction params\n */\nexport type AuthorizeStakeParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n  newAuthorizedPubkey: PublicKey;\n  stakeAuthorizationType: StakeAuthorizationType;\n  custodianPubkey?: PublicKey;\n};\n\n/**\n * Authorize stake instruction params using a derived key\n */\nexport type AuthorizeWithSeedStakeParams = {\n  stakePubkey: PublicKey;\n  authorityBase: PublicKey;\n  authoritySeed: string;\n  authorityOwner: PublicKey;\n  newAuthorizedPubkey: PublicKey;\n  stakeAuthorizationType: StakeAuthorizationType;\n  custodianPubkey?: PublicKey;\n};\n\n/**\n * Split stake instruction params\n */\nexport type SplitStakeParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n  splitStakePubkey: PublicKey;\n  lamports: number;\n};\n\n/**\n * Split with seed transaction params\n */\nexport type SplitStakeWithSeedParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n  splitStakePubkey: PublicKey;\n  basePubkey: PublicKey;\n  seed: string;\n  lamports: number;\n};\n\n/**\n * Withdraw stake instruction params\n */\nexport type WithdrawStakeParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n  toPubkey: PublicKey;\n  lamports: number;\n  custodianPubkey?: PublicKey;\n};\n\n/**\n * Deactivate stake instruction params\n */\nexport type DeactivateStakeParams = {\n  stakePubkey: PublicKey;\n  authorizedPubkey: PublicKey;\n};\n\n/**\n * Merge stake instruction params\n */\nexport type MergeStakeParams = {\n  stakePubkey: PublicKey;\n  sourceStakePubKey: PublicKey;\n  authorizedPubkey: PublicKey;\n};\n\n/**\n * Stake Instruction class\n */\nexport class StakeInstruction {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Decode a stake instruction and retrieve the instruction type.\n   */\n  static decodeInstructionType(\n    instruction: TransactionInstruction,\n  ): StakeInstructionType {\n    this.checkProgramId(instruction.programId);\n\n    const instructionTypeLayout = BufferLayout.u32('instruction');\n    const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n    let type: StakeInstructionType | undefined;\n    for (const [ixType, layout] of Object.entries(STAKE_INSTRUCTION_LAYOUTS)) {\n      if (layout.index == typeIndex) {\n        type = ixType as StakeInstructionType;\n        break;\n      }\n    }\n\n    if (!type) {\n      throw new Error('Instruction type incorrect; not a StakeInstruction');\n    }\n\n    return type;\n  }\n\n  /**\n   * Decode a initialize stake instruction and retrieve the instruction params.\n   */\n  static decodeInitialize(\n    instruction: TransactionInstruction,\n  ): InitializeStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {authorized, lockup} = decodeData(\n      STAKE_INSTRUCTION_LAYOUTS.Initialize,\n      instruction.data,\n    );\n\n    return {\n      stakePubkey: instruction.keys[0].pubkey,\n      authorized: new Authorized(\n        new PublicKey(authorized.staker),\n        new PublicKey(authorized.withdrawer),\n      ),\n      lockup: new Lockup(\n        lockup.unixTimestamp,\n        lockup.epoch,\n        new PublicKey(lockup.custodian),\n      ),\n    };\n  }\n\n  /**\n   * Decode a delegate stake instruction and retrieve the instruction params.\n   */\n  static decodeDelegate(\n    instruction: TransactionInstruction,\n  ): DelegateStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 6);\n    decodeData(STAKE_INSTRUCTION_LAYOUTS.Delegate, instruction.data);\n\n    return {\n      stakePubkey: instruction.keys[0].pubkey,\n      votePubkey: instruction.keys[1].pubkey,\n      authorizedPubkey: instruction.keys[5].pubkey,\n    };\n  }\n\n  /**\n   * Decode an authorize stake instruction and retrieve the instruction params.\n   */\n  static decodeAuthorize(\n    instruction: TransactionInstruction,\n  ): AuthorizeStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n    const {newAuthorized, stakeAuthorizationType} = decodeData(\n      STAKE_INSTRUCTION_LAYOUTS.Authorize,\n      instruction.data,\n    );\n\n    const o: AuthorizeStakeParams = {\n      stakePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: instruction.keys[2].pubkey,\n      newAuthorizedPubkey: new PublicKey(newAuthorized),\n      stakeAuthorizationType: {\n        index: stakeAuthorizationType,\n      },\n    };\n    if (instruction.keys.length > 3) {\n      o.custodianPubkey = instruction.keys[3].pubkey;\n    }\n    return o;\n  }\n\n  /**\n   * Decode an authorize-with-seed stake instruction and retrieve the instruction params.\n   */\n  static decodeAuthorizeWithSeed(\n    instruction: TransactionInstruction,\n  ): AuthorizeWithSeedStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 2);\n\n    const {\n      newAuthorized,\n      stakeAuthorizationType,\n      authoritySeed,\n      authorityOwner,\n    } = decodeData(\n      STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed,\n      instruction.data,\n    );\n\n    const o: AuthorizeWithSeedStakeParams = {\n      stakePubkey: instruction.keys[0].pubkey,\n      authorityBase: instruction.keys[1].pubkey,\n      authoritySeed: authoritySeed,\n      authorityOwner: new PublicKey(authorityOwner),\n      newAuthorizedPubkey: new PublicKey(newAuthorized),\n      stakeAuthorizationType: {\n        index: stakeAuthorizationType,\n      },\n    };\n    if (instruction.keys.length > 3) {\n      o.custodianPubkey = instruction.keys[3].pubkey;\n    }\n    return o;\n  }\n\n  /**\n   * Decode a split stake instruction and retrieve the instruction params.\n   */\n  static decodeSplit(instruction: TransactionInstruction): SplitStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n    const {lamports} = decodeData(\n      STAKE_INSTRUCTION_LAYOUTS.Split,\n      instruction.data,\n    );\n\n    return {\n      stakePubkey: instruction.keys[0].pubkey,\n      splitStakePubkey: instruction.keys[1].pubkey,\n      authorizedPubkey: instruction.keys[2].pubkey,\n      lamports,\n    };\n  }\n\n  /**\n   * Decode a merge stake instruction and retrieve the instruction params.\n   */\n  static decodeMerge(instruction: TransactionInstruction): MergeStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n    decodeData(STAKE_INSTRUCTION_LAYOUTS.Merge, instruction.data);\n\n    return {\n      stakePubkey: instruction.keys[0].pubkey,\n      sourceStakePubKey: instruction.keys[1].pubkey,\n      authorizedPubkey: instruction.keys[4].pubkey,\n    };\n  }\n\n  /**\n   * Decode a withdraw stake instruction and retrieve the instruction params.\n   */\n  static decodeWithdraw(\n    instruction: TransactionInstruction,\n  ): WithdrawStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 5);\n    const {lamports} = decodeData(\n      STAKE_INSTRUCTION_LAYOUTS.Withdraw,\n      instruction.data,\n    );\n\n    const o: WithdrawStakeParams = {\n      stakePubkey: instruction.keys[0].pubkey,\n      toPubkey: instruction.keys[1].pubkey,\n      authorizedPubkey: instruction.keys[4].pubkey,\n      lamports,\n    };\n    if (instruction.keys.length > 5) {\n      o.custodianPubkey = instruction.keys[5].pubkey;\n    }\n    return o;\n  }\n\n  /**\n   * Decode a deactivate stake instruction and retrieve the instruction params.\n   */\n  static decodeDeactivate(\n    instruction: TransactionInstruction,\n  ): DeactivateStakeParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n    decodeData(STAKE_INSTRUCTION_LAYOUTS.Deactivate, instruction.data);\n\n    return {\n      stakePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: instruction.keys[2].pubkey,\n    };\n  }\n\n  /**\n   * @internal\n   */\n  static checkProgramId(programId: PublicKey) {\n    if (!programId.equals(StakeProgram.programId)) {\n      throw new Error('invalid instruction; programId is not StakeProgram');\n    }\n  }\n\n  /**\n   * @internal\n   */\n  static checkKeyLength(keys: Array<any>, expectedLength: number) {\n    if (keys.length < expectedLength) {\n      throw new Error(\n        `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n      );\n    }\n  }\n}\n\n/**\n * An enumeration of valid StakeInstructionType's\n */\nexport type StakeInstructionType =\n  // FIXME\n  // It would be preferable for this type to be `keyof StakeInstructionInputData`\n  // but Typedoc does not transpile `keyof` expressions.\n  // See https://github.com/TypeStrong/typedoc/issues/1894\n  | 'Authorize'\n  | 'AuthorizeWithSeed'\n  | 'Deactivate'\n  | 'Delegate'\n  | 'Initialize'\n  | 'Merge'\n  | 'Split'\n  | 'Withdraw';\n\ntype StakeInstructionInputData = {\n  Authorize: IInstructionInputData &\n    Readonly<{\n      newAuthorized: Uint8Array;\n      stakeAuthorizationType: number;\n    }>;\n  AuthorizeWithSeed: IInstructionInputData &\n    Readonly<{\n      authorityOwner: Uint8Array;\n      authoritySeed: string;\n      instruction: number;\n      newAuthorized: Uint8Array;\n      stakeAuthorizationType: number;\n    }>;\n  Deactivate: IInstructionInputData;\n  Delegate: IInstructionInputData;\n  Initialize: IInstructionInputData &\n    Readonly<{\n      authorized: AuthorizedRaw;\n      lockup: LockupRaw;\n    }>;\n  Merge: IInstructionInputData;\n  Split: IInstructionInputData &\n    Readonly<{\n      lamports: number;\n    }>;\n  Withdraw: IInstructionInputData &\n    Readonly<{\n      lamports: number;\n    }>;\n};\n\n/**\n * An enumeration of valid stake InstructionType's\n * @internal\n */\nexport const STAKE_INSTRUCTION_LAYOUTS = Object.freeze<{\n  [Instruction in StakeInstructionType]: InstructionType<\n    StakeInstructionInputData[Instruction]\n  >;\n}>({\n  Initialize: {\n    index: 0,\n    layout: BufferLayout.struct<StakeInstructionInputData['Initialize']>([\n      BufferLayout.u32('instruction'),\n      Layout.authorized(),\n      Layout.lockup(),\n    ]),\n  },\n  Authorize: {\n    index: 1,\n    layout: BufferLayout.struct<StakeInstructionInputData['Authorize']>([\n      BufferLayout.u32('instruction'),\n      Layout.publicKey('newAuthorized'),\n      BufferLayout.u32('stakeAuthorizationType'),\n    ]),\n  },\n  Delegate: {\n    index: 2,\n    layout: BufferLayout.struct<StakeInstructionInputData['Delegate']>([\n      BufferLayout.u32('instruction'),\n    ]),\n  },\n  Split: {\n    index: 3,\n    layout: BufferLayout.struct<StakeInstructionInputData['Split']>([\n      BufferLayout.u32('instruction'),\n      BufferLayout.ns64('lamports'),\n    ]),\n  },\n  Withdraw: {\n    index: 4,\n    layout: BufferLayout.struct<StakeInstructionInputData['Withdraw']>([\n      BufferLayout.u32('instruction'),\n      BufferLayout.ns64('lamports'),\n    ]),\n  },\n  Deactivate: {\n    index: 5,\n    layout: BufferLayout.struct<StakeInstructionInputData['Deactivate']>([\n      BufferLayout.u32('instruction'),\n    ]),\n  },\n  Merge: {\n    index: 7,\n    layout: BufferLayout.struct<StakeInstructionInputData['Merge']>([\n      BufferLayout.u32('instruction'),\n    ]),\n  },\n  AuthorizeWithSeed: {\n    index: 8,\n    layout: BufferLayout.struct<StakeInstructionInputData['AuthorizeWithSeed']>(\n      [\n        BufferLayout.u32('instruction'),\n        Layout.publicKey('newAuthorized'),\n        BufferLayout.u32('stakeAuthorizationType'),\n        Layout.rustString('authoritySeed'),\n        Layout.publicKey('authorityOwner'),\n      ],\n    ),\n  },\n});\n\n/**\n * Stake authorization type\n */\nexport type StakeAuthorizationType = {\n  /** The Stake Authorization index (from solana-stake-program) */\n  index: number;\n};\n\n/**\n * An enumeration of valid StakeAuthorizationLayout's\n */\nexport const StakeAuthorizationLayout = Object.freeze({\n  Staker: {\n    index: 0,\n  },\n  Withdrawer: {\n    index: 1,\n  },\n});\n\n/**\n * Factory class for transactions to interact with the Stake program\n */\nexport class StakeProgram {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the Stake program\n   */\n  static programId: PublicKey = new PublicKey(\n    'Stake11111111111111111111111111111111111111',\n  );\n\n  /**\n   * Max space of a Stake account\n   *\n   * This is generated from the solana-stake-program StakeState struct as\n   * `StakeStateV2::size_of()`:\n   * https://docs.rs/solana-stake-program/latest/solana_stake_program/stake_state/enum.StakeStateV2.html\n   */\n  static space: number = 200;\n\n  /**\n   * Generate an Initialize instruction to add to a Stake Create transaction\n   */\n  static initialize(params: InitializeStakeParams): TransactionInstruction {\n    const {stakePubkey, authorized, lockup: maybeLockup} = params;\n    const lockup: Lockup = maybeLockup || Lockup.default;\n    const type = STAKE_INSTRUCTION_LAYOUTS.Initialize;\n    const data = encodeData(type, {\n      authorized: {\n        staker: toBuffer(authorized.staker.toBuffer()),\n        withdrawer: toBuffer(authorized.withdrawer.toBuffer()),\n      },\n      lockup: {\n        unixTimestamp: lockup.unixTimestamp,\n        epoch: lockup.epoch,\n        custodian: toBuffer(lockup.custodian.toBuffer()),\n      },\n    });\n    const instructionData = {\n      keys: [\n        {pubkey: stakePubkey, isSigner: false, isWritable: true},\n        {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    };\n    return new TransactionInstruction(instructionData);\n  }\n\n  /**\n   * Generate a Transaction that creates a new Stake account at\n   *   an address generated with `from`, a seed, and the Stake programId\n   */\n  static createAccountWithSeed(\n    params: CreateStakeAccountWithSeedParams,\n  ): Transaction {\n    const transaction = new Transaction();\n    transaction.add(\n      SystemProgram.createAccountWithSeed({\n        fromPubkey: params.fromPubkey,\n        newAccountPubkey: params.stakePubkey,\n        basePubkey: params.basePubkey,\n        seed: params.seed,\n        lamports: params.lamports,\n        space: this.space,\n        programId: this.programId,\n      }),\n    );\n\n    const {stakePubkey, authorized, lockup} = params;\n    return transaction.add(this.initialize({stakePubkey, authorized, lockup}));\n  }\n\n  /**\n   * Generate a Transaction that creates a new Stake account\n   */\n  static createAccount(params: CreateStakeAccountParams): Transaction {\n    const transaction = new Transaction();\n    transaction.add(\n      SystemProgram.createAccount({\n        fromPubkey: params.fromPubkey,\n        newAccountPubkey: params.stakePubkey,\n        lamports: params.lamports,\n        space: this.space,\n        programId: this.programId,\n      }),\n    );\n\n    const {stakePubkey, authorized, lockup} = params;\n    return transaction.add(this.initialize({stakePubkey, authorized, lockup}));\n  }\n\n  /**\n   * Generate a Transaction that delegates Stake tokens to a validator\n   * Vote PublicKey. This transaction can also be used to redelegate Stake\n   * to a new validator Vote PublicKey.\n   */\n  static delegate(params: DelegateStakeParams): Transaction {\n    const {stakePubkey, authorizedPubkey, votePubkey} = params;\n\n    const type = STAKE_INSTRUCTION_LAYOUTS.Delegate;\n    const data = encodeData(type);\n\n    return new Transaction().add({\n      keys: [\n        {pubkey: stakePubkey, isSigner: false, isWritable: true},\n        {pubkey: votePubkey, isSigner: false, isWritable: false},\n        {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n        {\n          pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false},\n        {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a Transaction that authorizes a new PublicKey as Staker\n   * or Withdrawer on the Stake account.\n   */\n  static authorize(params: AuthorizeStakeParams): Transaction {\n    const {\n      stakePubkey,\n      authorizedPubkey,\n      newAuthorizedPubkey,\n      stakeAuthorizationType,\n      custodianPubkey,\n    } = params;\n\n    const type = STAKE_INSTRUCTION_LAYOUTS.Authorize;\n    const data = encodeData(type, {\n      newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n      stakeAuthorizationType: stakeAuthorizationType.index,\n    });\n\n    const keys = [\n      {pubkey: stakePubkey, isSigner: false, isWritable: true},\n      {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: true},\n      {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n    ];\n    if (custodianPubkey) {\n      keys.push({\n        pubkey: custodianPubkey,\n        isSigner: true,\n        isWritable: false,\n      });\n    }\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a Transaction that authorizes a new PublicKey as Staker\n   * or Withdrawer on the Stake account.\n   */\n  static authorizeWithSeed(params: AuthorizeWithSeedStakeParams): Transaction {\n    const {\n      stakePubkey,\n      authorityBase,\n      authoritySeed,\n      authorityOwner,\n      newAuthorizedPubkey,\n      stakeAuthorizationType,\n      custodianPubkey,\n    } = params;\n\n    const type = STAKE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n    const data = encodeData(type, {\n      newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n      stakeAuthorizationType: stakeAuthorizationType.index,\n      authoritySeed: authoritySeed,\n      authorityOwner: toBuffer(authorityOwner.toBuffer()),\n    });\n\n    const keys = [\n      {pubkey: stakePubkey, isSigner: false, isWritable: true},\n      {pubkey: authorityBase, isSigner: true, isWritable: false},\n      {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n    ];\n    if (custodianPubkey) {\n      keys.push({\n        pubkey: custodianPubkey,\n        isSigner: true,\n        isWritable: false,\n      });\n    }\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * @internal\n   */\n  static splitInstruction(params: SplitStakeParams): TransactionInstruction {\n    const {stakePubkey, authorizedPubkey, splitStakePubkey, lamports} = params;\n    const type = STAKE_INSTRUCTION_LAYOUTS.Split;\n    const data = encodeData(type, {lamports});\n    return new TransactionInstruction({\n      keys: [\n        {pubkey: stakePubkey, isSigner: false, isWritable: true},\n        {pubkey: splitStakePubkey, isSigner: false, isWritable: true},\n        {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a Transaction that splits Stake tokens into another stake account\n   */\n  static split(\n    params: SplitStakeParams,\n    // Compute the cost of allocating the new stake account in lamports\n    rentExemptReserve: number,\n  ): Transaction {\n    const transaction = new Transaction();\n    transaction.add(\n      SystemProgram.createAccount({\n        fromPubkey: params.authorizedPubkey,\n        newAccountPubkey: params.splitStakePubkey,\n        lamports: rentExemptReserve,\n        space: this.space,\n        programId: this.programId,\n      }),\n    );\n    return transaction.add(this.splitInstruction(params));\n  }\n\n  /**\n   * Generate a Transaction that splits Stake tokens into another account\n   * derived from a base public key and seed\n   */\n  static splitWithSeed(\n    params: SplitStakeWithSeedParams,\n    // If this stake account is new, compute the cost of allocating it in lamports\n    rentExemptReserve?: number,\n  ): Transaction {\n    const {\n      stakePubkey,\n      authorizedPubkey,\n      splitStakePubkey,\n      basePubkey,\n      seed,\n      lamports,\n    } = params;\n    const transaction = new Transaction();\n    transaction.add(\n      SystemProgram.allocate({\n        accountPubkey: splitStakePubkey,\n        basePubkey,\n        seed,\n        space: this.space,\n        programId: this.programId,\n      }),\n    );\n    if (rentExemptReserve && rentExemptReserve > 0) {\n      transaction.add(\n        SystemProgram.transfer({\n          fromPubkey: params.authorizedPubkey,\n          toPubkey: splitStakePubkey,\n          lamports: rentExemptReserve,\n        }),\n      );\n    }\n    return transaction.add(\n      this.splitInstruction({\n        stakePubkey,\n        authorizedPubkey,\n        splitStakePubkey,\n        lamports,\n      }),\n    );\n  }\n\n  /**\n   * Generate a Transaction that merges Stake accounts.\n   */\n  static merge(params: MergeStakeParams): Transaction {\n    const {stakePubkey, sourceStakePubKey, authorizedPubkey} = params;\n    const type = STAKE_INSTRUCTION_LAYOUTS.Merge;\n    const data = encodeData(type);\n\n    return new Transaction().add({\n      keys: [\n        {pubkey: stakePubkey, isSigner: false, isWritable: true},\n        {pubkey: sourceStakePubKey, isSigner: false, isWritable: true},\n        {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n        {\n          pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n          isSigner: false,\n          isWritable: false,\n        },\n        {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a Transaction that withdraws deactivated Stake tokens.\n   */\n  static withdraw(params: WithdrawStakeParams): Transaction {\n    const {stakePubkey, authorizedPubkey, toPubkey, lamports, custodianPubkey} =\n      params;\n    const type = STAKE_INSTRUCTION_LAYOUTS.Withdraw;\n    const data = encodeData(type, {lamports});\n\n    const keys = [\n      {pubkey: stakePubkey, isSigner: false, isWritable: true},\n      {pubkey: toPubkey, isSigner: false, isWritable: true},\n      {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n      {\n        pubkey: SYSVAR_STAKE_HISTORY_PUBKEY,\n        isSigner: false,\n        isWritable: false,\n      },\n      {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n    ];\n    if (custodianPubkey) {\n      keys.push({\n        pubkey: custodianPubkey,\n        isSigner: true,\n        isWritable: false,\n      });\n    }\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a Transaction that deactivates Stake tokens.\n   */\n  static deactivate(params: DeactivateStakeParams): Transaction {\n    const {stakePubkey, authorizedPubkey} = params;\n    const type = STAKE_INSTRUCTION_LAYOUTS.Deactivate;\n    const data = encodeData(type);\n\n    return new Transaction().add({\n      keys: [\n        {pubkey: stakePubkey, isSigner: false, isWritable: true},\n        {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n        {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    });\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\n\nimport {\n  encodeData,\n  decodeData,\n  InstructionType,\n  IInstructionInputData,\n} from '../instruction';\nimport * as Layout from '../layout';\nimport {PublicKey} from '../publickey';\nimport {SystemProgram} from './system';\nimport {SYSVAR_CLOCK_PUBKEY, SYSVAR_RENT_PUBKEY} from '../sysvar';\nimport {Transaction, TransactionInstruction} from '../transaction';\nimport {toBuffer} from '../utils/to-buffer';\n\n/**\n * Vote account info\n */\nexport class VoteInit {\n  nodePubkey: PublicKey;\n  authorizedVoter: PublicKey;\n  authorizedWithdrawer: PublicKey;\n  commission: number; /** [0, 100] */\n\n  constructor(\n    nodePubkey: PublicKey,\n    authorizedVoter: PublicKey,\n    authorizedWithdrawer: PublicKey,\n    commission: number,\n  ) {\n    this.nodePubkey = nodePubkey;\n    this.authorizedVoter = authorizedVoter;\n    this.authorizedWithdrawer = authorizedWithdrawer;\n    this.commission = commission;\n  }\n}\n\n/**\n * Create vote account transaction params\n */\nexport type CreateVoteAccountParams = {\n  fromPubkey: PublicKey;\n  votePubkey: PublicKey;\n  voteInit: VoteInit;\n  lamports: number;\n};\n\n/**\n * InitializeAccount instruction params\n */\nexport type InitializeAccountParams = {\n  votePubkey: PublicKey;\n  nodePubkey: PublicKey;\n  voteInit: VoteInit;\n};\n\n/**\n * Authorize instruction params\n */\nexport type AuthorizeVoteParams = {\n  votePubkey: PublicKey;\n  /** Current vote or withdraw authority, depending on `voteAuthorizationType` */\n  authorizedPubkey: PublicKey;\n  newAuthorizedPubkey: PublicKey;\n  voteAuthorizationType: VoteAuthorizationType;\n};\n\n/**\n * AuthorizeWithSeed instruction params\n */\nexport type AuthorizeVoteWithSeedParams = {\n  currentAuthorityDerivedKeyBasePubkey: PublicKey;\n  currentAuthorityDerivedKeyOwnerPubkey: PublicKey;\n  currentAuthorityDerivedKeySeed: string;\n  newAuthorizedPubkey: PublicKey;\n  voteAuthorizationType: VoteAuthorizationType;\n  votePubkey: PublicKey;\n};\n\n/**\n * Withdraw from vote account transaction params\n */\nexport type WithdrawFromVoteAccountParams = {\n  votePubkey: PublicKey;\n  authorizedWithdrawerPubkey: PublicKey;\n  lamports: number;\n  toPubkey: PublicKey;\n};\n\n/**\n * Update validator identity (node pubkey) vote account instruction params.\n */\nexport type UpdateValidatorIdentityParams = {\n  votePubkey: PublicKey;\n  authorizedWithdrawerPubkey: PublicKey;\n  nodePubkey: PublicKey;\n};\n\n/**\n * Vote Instruction class\n */\nexport class VoteInstruction {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Decode a vote instruction and retrieve the instruction type.\n   */\n  static decodeInstructionType(\n    instruction: TransactionInstruction,\n  ): VoteInstructionType {\n    this.checkProgramId(instruction.programId);\n\n    const instructionTypeLayout = BufferLayout.u32('instruction');\n    const typeIndex = instructionTypeLayout.decode(instruction.data);\n\n    let type: VoteInstructionType | undefined;\n    for (const [ixType, layout] of Object.entries(VOTE_INSTRUCTION_LAYOUTS)) {\n      if (layout.index == typeIndex) {\n        type = ixType as VoteInstructionType;\n        break;\n      }\n    }\n\n    if (!type) {\n      throw new Error('Instruction type incorrect; not a VoteInstruction');\n    }\n\n    return type;\n  }\n\n  /**\n   * Decode an initialize vote instruction and retrieve the instruction params.\n   */\n  static decodeInitializeAccount(\n    instruction: TransactionInstruction,\n  ): InitializeAccountParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 4);\n\n    const {voteInit} = decodeData(\n      VOTE_INSTRUCTION_LAYOUTS.InitializeAccount,\n      instruction.data,\n    );\n\n    return {\n      votePubkey: instruction.keys[0].pubkey,\n      nodePubkey: instruction.keys[3].pubkey,\n      voteInit: new VoteInit(\n        new PublicKey(voteInit.nodePubkey),\n        new PublicKey(voteInit.authorizedVoter),\n        new PublicKey(voteInit.authorizedWithdrawer),\n        voteInit.commission,\n      ),\n    };\n  }\n\n  /**\n   * Decode an authorize instruction and retrieve the instruction params.\n   */\n  static decodeAuthorize(\n    instruction: TransactionInstruction,\n  ): AuthorizeVoteParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    const {newAuthorized, voteAuthorizationType} = decodeData(\n      VOTE_INSTRUCTION_LAYOUTS.Authorize,\n      instruction.data,\n    );\n\n    return {\n      votePubkey: instruction.keys[0].pubkey,\n      authorizedPubkey: instruction.keys[2].pubkey,\n      newAuthorizedPubkey: new PublicKey(newAuthorized),\n      voteAuthorizationType: {\n        index: voteAuthorizationType,\n      },\n    };\n  }\n\n  /**\n   * Decode an authorize instruction and retrieve the instruction params.\n   */\n  static decodeAuthorizeWithSeed(\n    instruction: TransactionInstruction,\n  ): AuthorizeVoteWithSeedParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    const {\n      voteAuthorizeWithSeedArgs: {\n        currentAuthorityDerivedKeyOwnerPubkey,\n        currentAuthorityDerivedKeySeed,\n        newAuthorized,\n        voteAuthorizationType,\n      },\n    } = decodeData(\n      VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed,\n      instruction.data,\n    );\n\n    return {\n      currentAuthorityDerivedKeyBasePubkey: instruction.keys[2].pubkey,\n      currentAuthorityDerivedKeyOwnerPubkey: new PublicKey(\n        currentAuthorityDerivedKeyOwnerPubkey,\n      ),\n      currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n      newAuthorizedPubkey: new PublicKey(newAuthorized),\n      voteAuthorizationType: {\n        index: voteAuthorizationType,\n      },\n      votePubkey: instruction.keys[0].pubkey,\n    };\n  }\n\n  /**\n   * Decode a withdraw instruction and retrieve the instruction params.\n   */\n  static decodeWithdraw(\n    instruction: TransactionInstruction,\n  ): WithdrawFromVoteAccountParams {\n    this.checkProgramId(instruction.programId);\n    this.checkKeyLength(instruction.keys, 3);\n\n    const {lamports} = decodeData(\n      VOTE_INSTRUCTION_LAYOUTS.Withdraw,\n      instruction.data,\n    );\n\n    return {\n      votePubkey: instruction.keys[0].pubkey,\n      authorizedWithdrawerPubkey: instruction.keys[2].pubkey,\n      lamports,\n      toPubkey: instruction.keys[1].pubkey,\n    };\n  }\n\n  /**\n   * @internal\n   */\n  static checkProgramId(programId: PublicKey) {\n    if (!programId.equals(VoteProgram.programId)) {\n      throw new Error('invalid instruction; programId is not VoteProgram');\n    }\n  }\n\n  /**\n   * @internal\n   */\n  static checkKeyLength(keys: Array<any>, expectedLength: number) {\n    if (keys.length < expectedLength) {\n      throw new Error(\n        `invalid instruction; found ${keys.length} keys, expected at least ${expectedLength}`,\n      );\n    }\n  }\n}\n\n/**\n * An enumeration of valid VoteInstructionType's\n */\nexport type VoteInstructionType =\n  // FIXME\n  // It would be preferable for this type to be `keyof VoteInstructionInputData`\n  // but Typedoc does not transpile `keyof` expressions.\n  // See https://github.com/TypeStrong/typedoc/issues/1894\n  | 'Authorize'\n  | 'AuthorizeWithSeed'\n  | 'InitializeAccount'\n  | 'Withdraw'\n  | 'UpdateValidatorIdentity';\n\n/** @internal */\nexport type VoteAuthorizeWithSeedArgs = Readonly<{\n  currentAuthorityDerivedKeyOwnerPubkey: Uint8Array;\n  currentAuthorityDerivedKeySeed: string;\n  newAuthorized: Uint8Array;\n  voteAuthorizationType: number;\n}>;\ntype VoteInstructionInputData = {\n  Authorize: IInstructionInputData & {\n    newAuthorized: Uint8Array;\n    voteAuthorizationType: number;\n  };\n  AuthorizeWithSeed: IInstructionInputData & {\n    voteAuthorizeWithSeedArgs: VoteAuthorizeWithSeedArgs;\n  };\n  InitializeAccount: IInstructionInputData & {\n    voteInit: Readonly<{\n      authorizedVoter: Uint8Array;\n      authorizedWithdrawer: Uint8Array;\n      commission: number;\n      nodePubkey: Uint8Array;\n    }>;\n  };\n  Withdraw: IInstructionInputData & {\n    lamports: number;\n  };\n  UpdateValidatorIdentity: IInstructionInputData;\n};\n\nconst VOTE_INSTRUCTION_LAYOUTS = Object.freeze<{\n  [Instruction in VoteInstructionType]: InstructionType<\n    VoteInstructionInputData[Instruction]\n  >;\n}>({\n  InitializeAccount: {\n    index: 0,\n    layout: BufferLayout.struct<VoteInstructionInputData['InitializeAccount']>([\n      BufferLayout.u32('instruction'),\n      Layout.voteInit(),\n    ]),\n  },\n  Authorize: {\n    index: 1,\n    layout: BufferLayout.struct<VoteInstructionInputData['Authorize']>([\n      BufferLayout.u32('instruction'),\n      Layout.publicKey('newAuthorized'),\n      BufferLayout.u32('voteAuthorizationType'),\n    ]),\n  },\n  Withdraw: {\n    index: 3,\n    layout: BufferLayout.struct<VoteInstructionInputData['Withdraw']>([\n      BufferLayout.u32('instruction'),\n      BufferLayout.ns64('lamports'),\n    ]),\n  },\n  UpdateValidatorIdentity: {\n    index: 4,\n    layout: BufferLayout.struct<\n      VoteInstructionInputData['UpdateValidatorIdentity']\n    >([BufferLayout.u32('instruction')]),\n  },\n  AuthorizeWithSeed: {\n    index: 10,\n    layout: BufferLayout.struct<VoteInstructionInputData['AuthorizeWithSeed']>([\n      BufferLayout.u32('instruction'),\n      Layout.voteAuthorizeWithSeedArgs(),\n    ]),\n  },\n});\n\n/**\n * VoteAuthorize type\n */\nexport type VoteAuthorizationType = {\n  /** The VoteAuthorize index (from solana-vote-program) */\n  index: number;\n};\n\n/**\n * An enumeration of valid VoteAuthorization layouts.\n */\nexport const VoteAuthorizationLayout = Object.freeze({\n  Voter: {\n    index: 0,\n  },\n  Withdrawer: {\n    index: 1,\n  },\n});\n\n/**\n * Factory class for transactions to interact with the Vote program\n */\nexport class VoteProgram {\n  /**\n   * @internal\n   */\n  constructor() {}\n\n  /**\n   * Public key that identifies the Vote program\n   */\n  static programId: PublicKey = new PublicKey(\n    'Vote111111111111111111111111111111111111111',\n  );\n\n  /**\n   * Max space of a Vote account\n   *\n   * This is generated from the solana-vote-program VoteState struct as\n   * `VoteState::size_of()`:\n   * https://docs.rs/solana-vote-program/1.9.5/solana_vote_program/vote_state/struct.VoteState.html#method.size_of\n   *\n   * KEEP IN SYNC WITH `VoteState::size_of()` in https://github.com/solana-labs/solana/blob/a474cb24b9238f5edcc982f65c0b37d4a1046f7e/sdk/program/src/vote/state/mod.rs#L340-L342\n   */\n  static space: number = 3762;\n\n  /**\n   * Generate an Initialize instruction.\n   */\n  static initializeAccount(\n    params: InitializeAccountParams,\n  ): TransactionInstruction {\n    const {votePubkey, nodePubkey, voteInit} = params;\n    const type = VOTE_INSTRUCTION_LAYOUTS.InitializeAccount;\n    const data = encodeData(type, {\n      voteInit: {\n        nodePubkey: toBuffer(voteInit.nodePubkey.toBuffer()),\n        authorizedVoter: toBuffer(voteInit.authorizedVoter.toBuffer()),\n        authorizedWithdrawer: toBuffer(\n          voteInit.authorizedWithdrawer.toBuffer(),\n        ),\n        commission: voteInit.commission,\n      },\n    });\n    const instructionData = {\n      keys: [\n        {pubkey: votePubkey, isSigner: false, isWritable: true},\n        {pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false},\n        {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n        {pubkey: nodePubkey, isSigner: true, isWritable: false},\n      ],\n      programId: this.programId,\n      data,\n    };\n    return new TransactionInstruction(instructionData);\n  }\n\n  /**\n   * Generate a transaction that creates a new Vote account.\n   */\n  static createAccount(params: CreateVoteAccountParams): Transaction {\n    const transaction = new Transaction();\n    transaction.add(\n      SystemProgram.createAccount({\n        fromPubkey: params.fromPubkey,\n        newAccountPubkey: params.votePubkey,\n        lamports: params.lamports,\n        space: this.space,\n        programId: this.programId,\n      }),\n    );\n\n    return transaction.add(\n      this.initializeAccount({\n        votePubkey: params.votePubkey,\n        nodePubkey: params.voteInit.nodePubkey,\n        voteInit: params.voteInit,\n      }),\n    );\n  }\n\n  /**\n   * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account.\n   */\n  static authorize(params: AuthorizeVoteParams): Transaction {\n    const {\n      votePubkey,\n      authorizedPubkey,\n      newAuthorizedPubkey,\n      voteAuthorizationType,\n    } = params;\n\n    const type = VOTE_INSTRUCTION_LAYOUTS.Authorize;\n    const data = encodeData(type, {\n      newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n      voteAuthorizationType: voteAuthorizationType.index,\n    });\n\n    const keys = [\n      {pubkey: votePubkey, isSigner: false, isWritable: true},\n      {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n      {pubkey: authorizedPubkey, isSigner: true, isWritable: false},\n    ];\n\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction that authorizes a new Voter or Withdrawer on the Vote account\n   * where the current Voter or Withdrawer authority is a derived key.\n   */\n  static authorizeWithSeed(params: AuthorizeVoteWithSeedParams): Transaction {\n    const {\n      currentAuthorityDerivedKeyBasePubkey,\n      currentAuthorityDerivedKeyOwnerPubkey,\n      currentAuthorityDerivedKeySeed,\n      newAuthorizedPubkey,\n      voteAuthorizationType,\n      votePubkey,\n    } = params;\n\n    const type = VOTE_INSTRUCTION_LAYOUTS.AuthorizeWithSeed;\n    const data = encodeData(type, {\n      voteAuthorizeWithSeedArgs: {\n        currentAuthorityDerivedKeyOwnerPubkey: toBuffer(\n          currentAuthorityDerivedKeyOwnerPubkey.toBuffer(),\n        ),\n        currentAuthorityDerivedKeySeed: currentAuthorityDerivedKeySeed,\n        newAuthorized: toBuffer(newAuthorizedPubkey.toBuffer()),\n        voteAuthorizationType: voteAuthorizationType.index,\n      },\n    });\n\n    const keys = [\n      {pubkey: votePubkey, isSigner: false, isWritable: true},\n      {pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false},\n      {\n        pubkey: currentAuthorityDerivedKeyBasePubkey,\n        isSigner: true,\n        isWritable: false,\n      },\n    ];\n\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction to withdraw from a Vote account.\n   */\n  static withdraw(params: WithdrawFromVoteAccountParams): Transaction {\n    const {votePubkey, authorizedWithdrawerPubkey, lamports, toPubkey} = params;\n    const type = VOTE_INSTRUCTION_LAYOUTS.Withdraw;\n    const data = encodeData(type, {lamports});\n\n    const keys = [\n      {pubkey: votePubkey, isSigner: false, isWritable: true},\n      {pubkey: toPubkey, isSigner: false, isWritable: true},\n      {pubkey: authorizedWithdrawerPubkey, isSigner: true, isWritable: false},\n    ];\n\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n\n  /**\n   * Generate a transaction to withdraw safely from a Vote account.\n   *\n   * This function was created as a safeguard for vote accounts running validators, `safeWithdraw`\n   * checks that the withdraw amount will not exceed the specified balance while leaving enough left\n   * to cover rent. If you wish to close the vote account by withdrawing the full amount, call the\n   * `withdraw` method directly.\n   */\n  static safeWithdraw(\n    params: WithdrawFromVoteAccountParams,\n    currentVoteAccountBalance: number,\n    rentExemptMinimum: number,\n  ): Transaction {\n    if (params.lamports > currentVoteAccountBalance - rentExemptMinimum) {\n      throw new Error(\n        'Withdraw will leave vote account with insufficient funds.',\n      );\n    }\n    return VoteProgram.withdraw(params);\n  }\n\n  /**\n   * Generate a transaction to update the validator identity (node pubkey) of a Vote account.\n   */\n  static updateValidatorIdentity(\n    params: UpdateValidatorIdentityParams,\n  ): Transaction {\n    const {votePubkey, authorizedWithdrawerPubkey, nodePubkey} = params;\n    const type = VOTE_INSTRUCTION_LAYOUTS.UpdateValidatorIdentity;\n    const data = encodeData(type);\n\n    const keys = [\n      {pubkey: votePubkey, isSigner: false, isWritable: true},\n      {pubkey: nodePubkey, isSigner: true, isWritable: false},\n      {pubkey: authorizedWithdrawerPubkey, isSigner: true, isWritable: false},\n    ];\n\n    return new Transaction().add({\n      keys,\n      programId: this.programId,\n      data,\n    });\n  }\n}\n","import {Buffer} from 'buffer';\nimport {\n  assert as assertType,\n  optional,\n  string,\n  type as pick,\n} from 'superstruct';\n\nimport * as Layout from './layout';\nimport * as shortvec from './utils/shortvec-encoding';\nimport {PublicKey, PUBLIC_KEY_LENGTH} from './publickey';\nimport {guardedShift, guardedSplice} from './utils/guarded-array-utils';\n\nexport const VALIDATOR_INFO_KEY = new PublicKey(\n  'Va1idator1nfo111111111111111111111111111111',\n);\n\n/**\n * @internal\n */\ntype ConfigKey = {\n  publicKey: PublicKey;\n  isSigner: boolean;\n};\n\n/**\n * Info used to identity validators.\n */\nexport type Info = {\n  /** validator name */\n  name: string;\n  /** optional, validator website */\n  website?: string;\n  /** optional, extra information the validator chose to share */\n  details?: string;\n  /** optional, validator logo URL */\n  iconUrl?: string;\n  /** optional, used to identify validators on keybase.io */\n  keybaseUsername?: string;\n};\n\nconst InfoString = pick({\n  name: string(),\n  website: optional(string()),\n  details: optional(string()),\n  iconUrl: optional(string()),\n  keybaseUsername: optional(string()),\n});\n\n/**\n * ValidatorInfo class\n */\nexport class ValidatorInfo {\n  /**\n   * validator public key\n   */\n  key: PublicKey;\n  /**\n   * validator information\n   */\n  info: Info;\n\n  /**\n   * Construct a valid ValidatorInfo\n   *\n   * @param key validator public key\n   * @param info validator information\n   */\n  constructor(key: PublicKey, info: Info) {\n    this.key = key;\n    this.info = info;\n  }\n\n  /**\n   * Deserialize ValidatorInfo from the config account data. Exactly two config\n   * keys are required in the data.\n   *\n   * @param buffer config account data\n   * @return null if info was not found\n   */\n  static fromConfigData(\n    buffer: Buffer | Uint8Array | Array<number>,\n  ): ValidatorInfo | null {\n    let byteArray = [...buffer];\n    const configKeyCount = shortvec.decodeLength(byteArray);\n    if (configKeyCount !== 2) return null;\n\n    const configKeys: Array<ConfigKey> = [];\n    for (let i = 0; i < 2; i++) {\n      const publicKey = new PublicKey(\n        guardedSplice(byteArray, 0, PUBLIC_KEY_LENGTH),\n      );\n      const isSigner = guardedShift(byteArray) === 1;\n      configKeys.push({publicKey, isSigner});\n    }\n\n    if (configKeys[0].publicKey.equals(VALIDATOR_INFO_KEY)) {\n      if (configKeys[1].isSigner) {\n        const rawInfo: any = Layout.rustString().decode(Buffer.from(byteArray));\n        const info = JSON.parse(rawInfo as string);\n        assertType(info, InfoString);\n        return new ValidatorInfo(configKeys[1].publicKey, info);\n      }\n    }\n\n    return null;\n  }\n}\n","import * as BufferLayout from '@solana/buffer-layout';\nimport type {Buffer} from 'buffer';\n\nimport * as Layout from './layout';\nimport {PublicKey} from './publickey';\nimport {toBuffer} from './utils/to-buffer';\n\nexport const VOTE_PROGRAM_ID = new PublicKey(\n  'Vote111111111111111111111111111111111111111',\n);\n\nexport type Lockout = {\n  slot: number;\n  confirmationCount: number;\n};\n\n/**\n * History of how many credits earned by the end of each epoch\n */\nexport type EpochCredits = Readonly<{\n  epoch: number;\n  credits: number;\n  prevCredits: number;\n}>;\n\nexport type AuthorizedVoter = Readonly<{\n  epoch: number;\n  authorizedVoter: PublicKey;\n}>;\n\ntype AuthorizedVoterRaw = Readonly<{\n  authorizedVoter: Uint8Array;\n  epoch: number;\n}>;\n\ntype PriorVoters = Readonly<{\n  buf: PriorVoterRaw[];\n  idx: number;\n  isEmpty: number;\n}>;\n\nexport type PriorVoter = Readonly<{\n  authorizedPubkey: PublicKey;\n  epochOfLastAuthorizedSwitch: number;\n  targetEpoch: number;\n}>;\n\ntype PriorVoterRaw = Readonly<{\n  authorizedPubkey: Uint8Array;\n  epochOfLastAuthorizedSwitch: number;\n  targetEpoch: number;\n}>;\n\nexport type BlockTimestamp = Readonly<{\n  slot: number;\n  timestamp: number;\n}>;\n\ntype VoteAccountData = Readonly<{\n  authorizedVoters: AuthorizedVoterRaw[];\n  authorizedWithdrawer: Uint8Array;\n  commission: number;\n  epochCredits: EpochCredits[];\n  lastTimestamp: BlockTimestamp;\n  nodePubkey: Uint8Array;\n  priorVoters: PriorVoters;\n  rootSlot: number;\n  rootSlotValid: number;\n  votes: Lockout[];\n}>;\n\n/**\n * See https://github.com/solana-labs/solana/blob/8a12ed029cfa38d4a45400916c2463fb82bbec8c/programs/vote_api/src/vote_state.rs#L68-L88\n *\n * @internal\n */\nconst VoteAccountLayout = BufferLayout.struct<VoteAccountData>([\n  Layout.publicKey('nodePubkey'),\n  Layout.publicKey('authorizedWithdrawer'),\n  BufferLayout.u8('commission'),\n  BufferLayout.nu64(), // votes.length\n  BufferLayout.seq<Lockout>(\n    BufferLayout.struct([\n      BufferLayout.nu64('slot'),\n      BufferLayout.u32('confirmationCount'),\n    ]),\n    BufferLayout.offset(BufferLayout.u32(), -8),\n    'votes',\n  ),\n  BufferLayout.u8('rootSlotValid'),\n  BufferLayout.nu64('rootSlot'),\n  BufferLayout.nu64(), // authorizedVoters.length\n  BufferLayout.seq<AuthorizedVoterRaw>(\n    BufferLayout.struct([\n      BufferLayout.nu64('epoch'),\n      Layout.publicKey('authorizedVoter'),\n    ]),\n    BufferLayout.offset(BufferLayout.u32(), -8),\n    'authorizedVoters',\n  ),\n  BufferLayout.struct<PriorVoters>(\n    [\n      BufferLayout.seq(\n        BufferLayout.struct([\n          Layout.publicKey('authorizedPubkey'),\n          BufferLayout.nu64('epochOfLastAuthorizedSwitch'),\n          BufferLayout.nu64('targetEpoch'),\n        ]),\n        32,\n        'buf',\n      ),\n      BufferLayout.nu64('idx'),\n      BufferLayout.u8('isEmpty'),\n    ],\n    'priorVoters',\n  ),\n  BufferLayout.nu64(), // epochCredits.length\n  BufferLayout.seq<EpochCredits>(\n    BufferLayout.struct([\n      BufferLayout.nu64('epoch'),\n      BufferLayout.nu64('credits'),\n      BufferLayout.nu64('prevCredits'),\n    ]),\n    BufferLayout.offset(BufferLayout.u32(), -8),\n    'epochCredits',\n  ),\n  BufferLayout.struct<BlockTimestamp>(\n    [BufferLayout.nu64('slot'), BufferLayout.nu64('timestamp')],\n    'lastTimestamp',\n  ),\n]);\n\ntype VoteAccountArgs = {\n  nodePubkey: PublicKey;\n  authorizedWithdrawer: PublicKey;\n  commission: number;\n  rootSlot: number | null;\n  votes: Lockout[];\n  authorizedVoters: AuthorizedVoter[];\n  priorVoters: PriorVoter[];\n  epochCredits: EpochCredits[];\n  lastTimestamp: BlockTimestamp;\n};\n\n/**\n * VoteAccount class\n */\nexport class VoteAccount {\n  nodePubkey: PublicKey;\n  authorizedWithdrawer: PublicKey;\n  commission: number;\n  rootSlot: number | null;\n  votes: Lockout[];\n  authorizedVoters: AuthorizedVoter[];\n  priorVoters: PriorVoter[];\n  epochCredits: EpochCredits[];\n  lastTimestamp: BlockTimestamp;\n\n  /**\n   * @internal\n   */\n  constructor(args: VoteAccountArgs) {\n    this.nodePubkey = args.nodePubkey;\n    this.authorizedWithdrawer = args.authorizedWithdrawer;\n    this.commission = args.commission;\n    this.rootSlot = args.rootSlot;\n    this.votes = args.votes;\n    this.authorizedVoters = args.authorizedVoters;\n    this.priorVoters = args.priorVoters;\n    this.epochCredits = args.epochCredits;\n    this.lastTimestamp = args.lastTimestamp;\n  }\n\n  /**\n   * Deserialize VoteAccount from the account data.\n   *\n   * @param buffer account data\n   * @return VoteAccount\n   */\n  static fromAccountData(\n    buffer: Buffer | Uint8Array | Array<number>,\n  ): VoteAccount {\n    const versionOffset = 4;\n    const va = VoteAccountLayout.decode(toBuffer(buffer), versionOffset);\n\n    let rootSlot: number | null = va.rootSlot;\n    if (!va.rootSlotValid) {\n      rootSlot = null;\n    }\n\n    return new VoteAccount({\n      nodePubkey: new PublicKey(va.nodePubkey),\n      authorizedWithdrawer: new PublicKey(va.authorizedWithdrawer),\n      commission: va.commission,\n      votes: va.votes,\n      rootSlot,\n      authorizedVoters: va.authorizedVoters.map(parseAuthorizedVoter),\n      priorVoters: getPriorVoters(va.priorVoters),\n      epochCredits: va.epochCredits,\n      lastTimestamp: va.lastTimestamp,\n    });\n  }\n}\n\nfunction parseAuthorizedVoter({\n  authorizedVoter,\n  epoch,\n}: AuthorizedVoterRaw): AuthorizedVoter {\n  return {\n    epoch,\n    authorizedVoter: new PublicKey(authorizedVoter),\n  };\n}\n\nfunction parsePriorVoters({\n  authorizedPubkey,\n  epochOfLastAuthorizedSwitch,\n  targetEpoch,\n}: PriorVoterRaw): PriorVoter {\n  return {\n    authorizedPubkey: new PublicKey(authorizedPubkey),\n    epochOfLastAuthorizedSwitch,\n    targetEpoch,\n  };\n}\n\nfunction getPriorVoters({buf, idx, isEmpty}: PriorVoters): PriorVoter[] {\n  if (isEmpty) {\n    return [];\n  }\n\n  return [\n    ...buf.slice(idx + 1).map(parsePriorVoters),\n    ...buf.slice(0, idx).map(parsePriorVoters),\n  ];\n}\n","const endpoint = {\n  http: {\n    devnet: 'http://api.devnet.solana.com',\n    testnet: 'http://api.testnet.solana.com',\n    'mainnet-beta': 'http://api.mainnet-beta.solana.com/',\n  },\n  https: {\n    devnet: 'https://api.devnet.solana.com',\n    testnet: 'https://api.testnet.solana.com',\n    'mainnet-beta': 'https://api.mainnet-beta.solana.com/',\n  },\n};\n\nexport type Cluster = 'devnet' | 'testnet' | 'mainnet-beta';\n\n/**\n * Retrieves the RPC API URL for the specified cluster\n * @param {Cluster} [cluster=\"devnet\"] - The cluster name of the RPC API URL to use. Possible options: 'devnet' | 'testnet' | 'mainnet-beta'\n * @param {boolean} [tls=\"http\"] - Use TLS when connecting to cluster.\n *\n * @returns {string} URL string of the RPC endpoint\n */\nexport function clusterApiUrl(cluster?: Cluster, tls?: boolean): string {\n  const key = tls === false ? 'http' : 'https';\n\n  if (!cluster) {\n    return endpoint[key]['devnet'];\n  }\n\n  const url = endpoint[key][cluster];\n  if (!url) {\n    throw new Error(`Unknown ${key} cluster: ${cluster}`);\n  }\n  return url;\n}\n","import type {Buffer} from 'buffer';\n\nimport {\n  BlockheightBasedTransactionConfirmationStrategy,\n  Connection,\n  DurableNonceTransactionConfirmationStrategy,\n  TransactionConfirmationStrategy,\n} from '../connection';\nimport type {TransactionSignature} from '../transaction';\nimport type {ConfirmOptions} from '../connection';\nimport {SendTransactionError} from '../errors';\n\n/**\n * Send and confirm a raw transaction\n *\n * If `commitment` option is not specified, defaults to 'max' commitment.\n *\n * @param {Connection} connection\n * @param {Buffer} rawTransaction\n * @param {TransactionConfirmationStrategy} confirmationStrategy\n * @param {ConfirmOptions} [options]\n * @returns {Promise<TransactionSignature>}\n */\nexport async function sendAndConfirmRawTransaction(\n  connection: Connection,\n  rawTransaction: Buffer,\n  confirmationStrategy: TransactionConfirmationStrategy,\n  options?: ConfirmOptions,\n): Promise<TransactionSignature>;\n\n/**\n * @deprecated Calling `sendAndConfirmRawTransaction()` without a `confirmationStrategy`\n * is no longer supported and will be removed in a future version.\n */\n// eslint-disable-next-line no-redeclare\nexport async function sendAndConfirmRawTransaction(\n  connection: Connection,\n  rawTransaction: Buffer,\n  options?: ConfirmOptions,\n): Promise<TransactionSignature>;\n\n// eslint-disable-next-line no-redeclare\nexport async function sendAndConfirmRawTransaction(\n  connection: Connection,\n  rawTransaction: Buffer,\n  confirmationStrategyOrConfirmOptions:\n    | TransactionConfirmationStrategy\n    | ConfirmOptions\n    | undefined,\n  maybeConfirmOptions?: ConfirmOptions,\n): Promise<TransactionSignature> {\n  let confirmationStrategy: TransactionConfirmationStrategy | undefined;\n  let options: ConfirmOptions | undefined;\n  if (\n    confirmationStrategyOrConfirmOptions &&\n    Object.prototype.hasOwnProperty.call(\n      confirmationStrategyOrConfirmOptions,\n      'lastValidBlockHeight',\n    )\n  ) {\n    confirmationStrategy =\n      confirmationStrategyOrConfirmOptions as BlockheightBasedTransactionConfirmationStrategy;\n    options = maybeConfirmOptions;\n  } else if (\n    confirmationStrategyOrConfirmOptions &&\n    Object.prototype.hasOwnProperty.call(\n      confirmationStrategyOrConfirmOptions,\n      'nonceValue',\n    )\n  ) {\n    confirmationStrategy =\n      confirmationStrategyOrConfirmOptions as DurableNonceTransactionConfirmationStrategy;\n    options = maybeConfirmOptions;\n  } else {\n    options = confirmationStrategyOrConfirmOptions as\n      | ConfirmOptions\n      | undefined;\n  }\n  const sendOptions = options && {\n    skipPreflight: options.skipPreflight,\n    preflightCommitment: options.preflightCommitment || options.commitment,\n    minContextSlot: options.minContextSlot,\n  };\n\n  const signature = await connection.sendRawTransaction(\n    rawTransaction,\n    sendOptions,\n  );\n\n  const commitment = options && options.commitment;\n  const confirmationPromise = confirmationStrategy\n    ? connection.confirmTransaction(confirmationStrategy, commitment)\n    : connection.confirmTransaction(signature, commitment);\n  const status = (await confirmationPromise).value;\n\n  if (status.err) {\n    if (signature != null) {\n      throw new SendTransactionError({\n        action: sendOptions?.skipPreflight ? 'send' : 'simulate',\n        signature: signature,\n        transactionMessage: `Status: (${JSON.stringify(status)})`,\n      });\n    }\n    throw new Error(\n      `Raw transaction ${signature} failed (${JSON.stringify(status)})`,\n    );\n  }\n\n  return signature;\n}\n","export * from './account';\nexport * from './blockhash';\nexport * from './bpf-loader-deprecated';\nexport * from './bpf-loader';\nexport * from './connection';\nexport * from './epoch-schedule';\nexport * from './errors';\nexport * from './fee-calculator';\nexport * from './keypair';\nexport * from './loader';\nexport * from './message';\nexport * from './nonce-account';\nexport * from './programs';\nexport * from './publickey';\nexport * from './transaction';\nexport * from './validator-info';\nexport * from './vote-account';\nexport * from './sysvar';\nexport * from './utils';\n\n/**\n * There are 1-billion lamports in one SOL\n */\nexport const LAMPORTS_PER_SOL = 1000000000;\n","import { PublicKey } from '@solana/web3.js';\n\n/** Address of the SPL Token program */\nexport const TOKEN_PROGRAM_ID = new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA');\n\n/** Address of the SPL Token 2022 program */\nexport const TOKEN_2022_PROGRAM_ID = new PublicKey('TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb');\n\n/** Address of the SPL Associated Token Account program */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID = new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL');\n\n/** Address of the special mint for wrapped native SOL in spl-token */\nexport const NATIVE_MINT = new PublicKey('So11111111111111111111111111111111111111112');\n\n/** Address of the special mint for wrapped native SOL in spl-token-2022 */\nexport const NATIVE_MINT_2022 = new PublicKey('9pan9bMn5HatX4EJdBwg9VgCa7Uz5HL8N1m5D3NdXejP');\n\n/** Check that the token program provided is not `Tokenkeg...`, useful when using extensions */\nexport function programSupportsExtensions(programId: PublicKey): boolean {\n    if (programId.equals(TOKEN_PROGRAM_ID)) {\n        return false;\n    } else {\n        return true;\n    }\n}\n","import { Layout } from '@solana/buffer-layout';\n\nexport interface EncodeDecode<T> {\n    decode(buffer: Buffer, offset?: number): T;\n    encode(src: T, buffer: Buffer, offset?: number): number;\n}\n\nexport const encodeDecode = <T>(layout: Layout<T>): EncodeDecode<T> => {\n    const decode = layout.decode.bind(layout);\n    const encode = layout.encode.bind(layout);\n    return { decode, encode };\n};\n","import { blob, Layout } from '@solana/buffer-layout';\nimport { toBigIntBE, toBigIntLE, toBufferBE, toBufferLE } from 'bigint-buffer';\nimport { encodeDecode } from './base';\n\nexport const bigInt =\n    (length: number) =>\n    (property?: string): Layout<bigint> => {\n        const layout = blob(length, property);\n        const { encode, decode } = encodeDecode(layout);\n\n        const bigIntLayout = layout as Layout<unknown> as Layout<bigint>;\n\n        bigIntLayout.decode = (buffer: Buffer, offset: number) => {\n            const src = decode(buffer, offset);\n            return toBigIntLE(Buffer.from(src));\n        };\n\n        bigIntLayout.encode = (bigInt: bigint, buffer: Buffer, offset: number) => {\n            const src = toBufferLE(bigInt, length);\n            return encode(src, buffer, offset);\n        };\n\n        return bigIntLayout;\n    };\n\nexport const bigIntBE =\n    (length: number) =>\n    (property?: string): Layout<bigint> => {\n        const layout = blob(length, property);\n        const { encode, decode } = encodeDecode(layout);\n\n        const bigIntLayout = layout as Layout<unknown> as Layout<bigint>;\n\n        bigIntLayout.decode = (buffer: Buffer, offset: number) => {\n            const src = decode(buffer, offset);\n            return toBigIntBE(Buffer.from(src));\n        };\n\n        bigIntLayout.encode = (bigInt: bigint, buffer: Buffer, offset: number) => {\n            const src = toBufferBE(bigInt, length);\n            return encode(src, buffer, offset);\n        };\n\n        return bigIntLayout;\n    };\n\nexport const u64 = bigInt(8);\n\nexport const u64be = bigIntBE(8);\n\nexport const u128 = bigInt(16);\n\nexport const u128be = bigIntBE(16);\n\nexport const u192 = bigInt(24);\n\nexport const u192be = bigIntBE(24);\n\nexport const u256 = bigInt(32);\n\nexport const u256be = bigIntBE(32);\n","/*\r\n *      bignumber.js v9.3.1\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\nvar\r\n  isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n  mathceil = Math.ceil,\r\n  mathfloor = Math.floor,\r\n\r\n  bignumberError = '[BigNumber Error] ',\r\n  tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n  BASE = 1e14,\r\n  LOG_BASE = 14,\r\n  MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n  // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n  POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n  SQRT_BASE = 1e7,\r\n\r\n  // EDITABLE\r\n  // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n  // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n  MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n  var div, convertBase, parseNumeric,\r\n    P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n    ONE = new BigNumber(1),\r\n\r\n\r\n    //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n    // The default values below must be integers within the inclusive ranges stated.\r\n    // The values can also be changed at run-time using BigNumber.set.\r\n\r\n    // The maximum number of decimal places for operations involving division.\r\n    DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n    // The rounding mode used when rounding to the above decimal places, and when using\r\n    // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n    // UP         0 Away from zero.\r\n    // DOWN       1 Towards zero.\r\n    // CEIL       2 Towards +Infinity.\r\n    // FLOOR      3 Towards -Infinity.\r\n    // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n    // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n    // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n    // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n    // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n    ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n    // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n    // The exponent value at and beneath which toString returns exponential notation.\r\n    // Number type: -7\r\n    TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n    // The exponent value at and above which toString returns exponential notation.\r\n    // Number type: 21\r\n    TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n    // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n    // The minimum exponent value, beneath which underflow to zero occurs.\r\n    // Number type: -324  (5e-324)\r\n    MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n    // The maximum exponent value, above which overflow to Infinity occurs.\r\n    // Number type:  308  (1.7976931348623157e+308)\r\n    // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n    MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n    // Whether to use cryptographically-secure random number generation, if available.\r\n    CRYPTO = false,                          // true or false\r\n\r\n    // The modulo mode used when calculating the modulus: a mod n.\r\n    // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n    // The remainder (r) is calculated as: r = a - n * q.\r\n    //\r\n    // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n    // DOWN      1 The remainder has the same sign as the dividend.\r\n    //             This modulo mode is commonly known as 'truncated division' and is\r\n    //             equivalent to (a % n) in JavaScript.\r\n    // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n    // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n    // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n    //             The remainder is always positive.\r\n    //\r\n    // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n    // modes are commonly used for the modulus operation.\r\n    // Although the other rounding modes can also be used, they may not give useful results.\r\n    MODULO_MODE = 1,                         // 0 to 9\r\n\r\n    // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n    // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n    POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n    // The format specification used by the BigNumber.prototype.toFormat method.\r\n    FORMAT = {\r\n      prefix: '',\r\n      groupSize: 3,\r\n      secondaryGroupSize: 0,\r\n      groupSeparator: ',',\r\n      decimalSeparator: '.',\r\n      fractionGroupSize: 0,\r\n      fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n      suffix: ''\r\n    },\r\n\r\n    // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n    // '-', '.', whitespace, or repeated character.\r\n    // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n    ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n    alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n  //------------------------------------------------------------------------------------------\r\n\r\n\r\n  // CONSTRUCTOR\r\n\r\n\r\n  /*\r\n   * The BigNumber constructor and exported function.\r\n   * Create and return a new instance of a BigNumber object.\r\n   *\r\n   * v {number|string|BigNumber} A numeric value.\r\n   * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n   */\r\n  function BigNumber(v, b) {\r\n    var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n      x = this;\r\n\r\n    // Enable constructor call without `new`.\r\n    if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n    if (b == null) {\r\n\r\n      if (v && v._isBigNumber === true) {\r\n        x.s = v.s;\r\n\r\n        if (!v.c || v.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n        } else if (v.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = v.e;\r\n          x.c = v.c.slice();\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n        // Use `1 / n` to handle minus zero also.\r\n        x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n        // Fast path for integers, where n < 2147483648 (2**31).\r\n        if (v === ~~v) {\r\n          for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n          if (e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else {\r\n            x.e = e;\r\n            x.c = [v];\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        str = String(v);\r\n      } else {\r\n\r\n        if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n        x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n      // Exponential form?\r\n      if ((i = str.search(/e/i)) > 0) {\r\n\r\n        // Determine exponent.\r\n        if (e < 0) e = i;\r\n        e += +str.slice(i + 1);\r\n        str = str.substring(0, i);\r\n      } else if (e < 0) {\r\n\r\n        // Integer.\r\n        e = str.length;\r\n      }\r\n\r\n    } else {\r\n\r\n      // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n      intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n      // Allow exponential notation to be used with base 10 argument, while\r\n      // also rounding to DECIMAL_PLACES as with other bases.\r\n      if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n        x = new BigNumber(v);\r\n        return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n      }\r\n\r\n      str = String(v);\r\n\r\n      if (isNum = typeof v == 'number') {\r\n\r\n        // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n        if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n        x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n          throw Error\r\n           (tooManyDigits + v);\r\n        }\r\n      } else {\r\n        x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      alphabet = ALPHABET.slice(0, b);\r\n      e = i = 0;\r\n\r\n      // Check that str is a valid base b number.\r\n      // Don't use RegExp, so alphabet can contain special characters.\r\n      for (len = str.length; i < len; i++) {\r\n        if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n          if (c == '.') {\r\n\r\n            // If '.' is not the first character and it has not be found before.\r\n            if (i > e) {\r\n              e = len;\r\n              continue;\r\n            }\r\n          } else if (!caseChanged) {\r\n\r\n            // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n            if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n              caseChanged = true;\r\n              i = -1;\r\n              e = 0;\r\n              continue;\r\n            }\r\n          }\r\n\r\n          return parseNumeric(x, String(v), isNum, b);\r\n        }\r\n      }\r\n\r\n      // Prevent later check for length on converted number.\r\n      isNum = false;\r\n      str = convertBase(str, b, 10, x.s);\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n      else e = str.length;\r\n    }\r\n\r\n    // Determine leading zeros.\r\n    for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n    // Determine trailing zeros.\r\n    for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n    if (str = str.slice(i, ++len)) {\r\n      len -= i;\r\n\r\n      // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n      if (isNum && BigNumber.DEBUG &&\r\n        len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n          throw Error\r\n           (tooManyDigits + (x.s * v));\r\n      }\r\n\r\n       // Overflow?\r\n      if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        x.c = x.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      } else {\r\n        x.e = e;\r\n        x.c = [];\r\n\r\n        // Transform base\r\n\r\n        // e is the base 10 exponent.\r\n        // i is where to slice str to get the first element of the coefficient array.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n        if (i < len) {\r\n          if (i) x.c.push(+str.slice(0, i));\r\n\r\n          for (len -= LOG_BASE; i < len;) {\r\n            x.c.push(+str.slice(i, i += LOG_BASE));\r\n          }\r\n\r\n          i = LOG_BASE - (str = str.slice(i)).length;\r\n        } else {\r\n          i -= len;\r\n        }\r\n\r\n        for (; i--; str += '0');\r\n        x.c.push(+str);\r\n      }\r\n    } else {\r\n\r\n      // Zero.\r\n      x.c = [x.e = 0];\r\n    }\r\n  }\r\n\r\n\r\n  // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n  BigNumber.clone = clone;\r\n\r\n  BigNumber.ROUND_UP = 0;\r\n  BigNumber.ROUND_DOWN = 1;\r\n  BigNumber.ROUND_CEIL = 2;\r\n  BigNumber.ROUND_FLOOR = 3;\r\n  BigNumber.ROUND_HALF_UP = 4;\r\n  BigNumber.ROUND_HALF_DOWN = 5;\r\n  BigNumber.ROUND_HALF_EVEN = 6;\r\n  BigNumber.ROUND_HALF_CEIL = 7;\r\n  BigNumber.ROUND_HALF_FLOOR = 8;\r\n  BigNumber.EUCLID = 9;\r\n\r\n\r\n  /*\r\n   * Configure infrequently-changing library-wide settings.\r\n   *\r\n   * Accept an object with the following optional properties (if the value of a property is\r\n   * a number, it must be an integer within the inclusive range stated):\r\n   *\r\n   *   DECIMAL_PLACES   {number}           0 to MAX\r\n   *   ROUNDING_MODE    {number}           0 to 8\r\n   *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n   *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n   *   CRYPTO           {boolean}          true or false\r\n   *   MODULO_MODE      {number}           0 to 9\r\n   *   POW_PRECISION       {number}           0 to MAX\r\n   *   ALPHABET         {string}           A string of two or more unique characters which does\r\n   *                                       not contain '.'.\r\n   *   FORMAT           {object}           An object with some of the following properties:\r\n   *     prefix                 {string}\r\n   *     groupSize              {number}\r\n   *     secondaryGroupSize     {number}\r\n   *     groupSeparator         {string}\r\n   *     decimalSeparator       {string}\r\n   *     fractionGroupSize      {number}\r\n   *     fractionGroupSeparator {string}\r\n   *     suffix                 {string}\r\n   *\r\n   * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n   *\r\n   * E.g.\r\n   * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n   *\r\n   * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n   *\r\n   * Return an object with the properties current values.\r\n   */\r\n  BigNumber.config = BigNumber.set = function (obj) {\r\n    var p, v;\r\n\r\n    if (obj != null) {\r\n\r\n      if (typeof obj == 'object') {\r\n\r\n        // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          DECIMAL_PLACES = v;\r\n        }\r\n\r\n        // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n        // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 8, p);\r\n          ROUNDING_MODE = v;\r\n        }\r\n\r\n        // EXPONENTIAL_AT {number|number[]}\r\n        // Integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n        // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, 0, p);\r\n            intCheck(v[1], 0, MAX, p);\r\n            TO_EXP_NEG = v[0];\r\n            TO_EXP_POS = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n          }\r\n        }\r\n\r\n        // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n        // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n        if (obj.hasOwnProperty(p = 'RANGE')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, -1, p);\r\n            intCheck(v[1], 1, MAX, p);\r\n            MIN_EXP = v[0];\r\n            MAX_EXP = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            if (v) {\r\n              MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' cannot be zero: ' + v);\r\n            }\r\n          }\r\n        }\r\n\r\n        // CRYPTO {boolean} true or false.\r\n        // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n        // '[BigNumber Error] crypto unavailable'\r\n        if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n          v = obj[p];\r\n          if (v === !!v) {\r\n            if (v) {\r\n              if (typeof crypto != 'undefined' && crypto &&\r\n               (crypto.getRandomValues || crypto.randomBytes)) {\r\n                CRYPTO = v;\r\n              } else {\r\n                CRYPTO = !v;\r\n                throw Error\r\n                 (bignumberError + 'crypto unavailable');\r\n              }\r\n            } else {\r\n              CRYPTO = v;\r\n            }\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' not true or false: ' + v);\r\n          }\r\n        }\r\n\r\n        // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n        // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 9, p);\r\n          MODULO_MODE = v;\r\n        }\r\n\r\n        // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          POW_PRECISION = v;\r\n        }\r\n\r\n        // FORMAT {object}\r\n        // '[BigNumber Error] FORMAT not an object: {v}'\r\n        if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n          v = obj[p];\r\n          if (typeof v == 'object') FORMAT = v;\r\n          else throw Error\r\n           (bignumberError + p + ' not an object: ' + v);\r\n        }\r\n\r\n        // ALPHABET {string}\r\n        // '[BigNumber Error] ALPHABET invalid: {v}'\r\n        if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n          v = obj[p];\r\n\r\n          // Disallow if less than two characters,\r\n          // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n          if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n            alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n            ALPHABET = v;\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' invalid: ' + v);\r\n          }\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Object expected: {v}'\r\n        throw Error\r\n         (bignumberError + 'Object expected: ' + obj);\r\n      }\r\n    }\r\n\r\n    return {\r\n      DECIMAL_PLACES: DECIMAL_PLACES,\r\n      ROUNDING_MODE: ROUNDING_MODE,\r\n      EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n      RANGE: [MIN_EXP, MAX_EXP],\r\n      CRYPTO: CRYPTO,\r\n      MODULO_MODE: MODULO_MODE,\r\n      POW_PRECISION: POW_PRECISION,\r\n      FORMAT: FORMAT,\r\n      ALPHABET: ALPHABET\r\n    };\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if v is a BigNumber instance, otherwise return false.\r\n   *\r\n   * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n   *\r\n   * v {any}\r\n   *\r\n   * '[BigNumber Error] Invalid BigNumber: {v}'\r\n   */\r\n  BigNumber.isBigNumber = function (v) {\r\n    if (!v || v._isBigNumber !== true) return false;\r\n    if (!BigNumber.DEBUG) return true;\r\n\r\n    var i, n,\r\n      c = v.c,\r\n      e = v.e,\r\n      s = v.s;\r\n\r\n    out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n      if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n        // If the first element is zero, the BigNumber value must be zero.\r\n        if (c[0] === 0) {\r\n          if (e === 0 && c.length === 1) return true;\r\n          break out;\r\n        }\r\n\r\n        // Calculate number of digits that c[0] should have, based on the exponent.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (i < 1) i += LOG_BASE;\r\n\r\n        // Calculate number of digits of c[0].\r\n        //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n        if (String(c[0]).length == i) {\r\n\r\n          for (i = 0; i < c.length; i++) {\r\n            n = c[i];\r\n            if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n          }\r\n\r\n          // Last element cannot be zero, unless it is the only element.\r\n          if (n !== 0) return true;\r\n        }\r\n      }\r\n\r\n    // Infinity/NaN\r\n    } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n      return true;\r\n    }\r\n\r\n    throw Error\r\n      (bignumberError + 'Invalid BigNumber: ' + v);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the maximum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.maximum = BigNumber.max = function () {\r\n    return maxOrMin(arguments, -1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the minimum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.minimum = BigNumber.min = function () {\r\n    return maxOrMin(arguments, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n   * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n   * zeros are produced).\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n   * '[BigNumber Error] crypto unavailable'\r\n   */\r\n  BigNumber.random = (function () {\r\n    var pow2_53 = 0x20000000000000;\r\n\r\n    // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n    // Check if Math.random() produces more than 32 bits of randomness.\r\n    // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n    // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n    var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n     ? function () { return mathfloor(Math.random() * pow2_53); }\r\n     : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n       (Math.random() * 0x800000 | 0); };\r\n\r\n    return function (dp) {\r\n      var a, b, e, k, v,\r\n        i = 0,\r\n        c = [],\r\n        rand = new BigNumber(ONE);\r\n\r\n      if (dp == null) dp = DECIMAL_PLACES;\r\n      else intCheck(dp, 0, MAX);\r\n\r\n      k = mathceil(dp / LOG_BASE);\r\n\r\n      if (CRYPTO) {\r\n\r\n        // Browsers supporting crypto.getRandomValues.\r\n        if (crypto.getRandomValues) {\r\n\r\n          a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n          for (; i < k;) {\r\n\r\n            // 53 bits:\r\n            // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n            // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n            // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n            //                                     11111 11111111 11111111\r\n            // 0x20000 is 2^21.\r\n            v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n            // Rejection sampling:\r\n            // 0 <= v < 9007199254740992\r\n            // Probability that v >= 9e15, is\r\n            // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n            if (v >= 9e15) {\r\n              b = crypto.getRandomValues(new Uint32Array(2));\r\n              a[i] = b[0];\r\n              a[i + 1] = b[1];\r\n            } else {\r\n\r\n              // 0 <= v <= 8999999999999999\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 2;\r\n            }\r\n          }\r\n          i = k / 2;\r\n\r\n        // Node.js supporting crypto.randomBytes.\r\n        } else if (crypto.randomBytes) {\r\n\r\n          // buffer\r\n          a = crypto.randomBytes(k *= 7);\r\n\r\n          for (; i < k;) {\r\n\r\n            // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n            // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n            // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n            // 0 <= v < 9007199254740992\r\n            v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n               (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n               (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n            if (v >= 9e15) {\r\n              crypto.randomBytes(7).copy(a, i);\r\n            } else {\r\n\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 7;\r\n            }\r\n          }\r\n          i = k / 7;\r\n        } else {\r\n          CRYPTO = false;\r\n          throw Error\r\n           (bignumberError + 'crypto unavailable');\r\n        }\r\n      }\r\n\r\n      // Use Math.random.\r\n      if (!CRYPTO) {\r\n\r\n        for (; i < k;) {\r\n          v = random53bitInt();\r\n          if (v < 9e15) c[i++] = v % 1e14;\r\n        }\r\n      }\r\n\r\n      k = c[--i];\r\n      dp %= LOG_BASE;\r\n\r\n      // Convert trailing digits to zeros according to dp.\r\n      if (k && dp) {\r\n        v = POWS_TEN[LOG_BASE - dp];\r\n        c[i] = mathfloor(k / v) * v;\r\n      }\r\n\r\n      // Remove trailing elements which are zero.\r\n      for (; c[i] === 0; c.pop(), i--);\r\n\r\n      // Zero?\r\n      if (i < 0) {\r\n        c = [e = 0];\r\n      } else {\r\n\r\n        // Remove leading elements which are zero and adjust exponent accordingly.\r\n        for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n        // Count the digits of the first element of c to determine leading zeros, and...\r\n        for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n        // adjust the exponent accordingly.\r\n        if (i < LOG_BASE) e -= LOG_BASE - i;\r\n      }\r\n\r\n      rand.e = e;\r\n      rand.c = c;\r\n      return rand;\r\n    };\r\n  })();\r\n\r\n\r\n   /*\r\n   * Return a BigNumber whose value is the sum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.sum = function () {\r\n    var i = 1,\r\n      args = arguments,\r\n      sum = new BigNumber(args[0]);\r\n    for (; i < args.length;) sum = sum.plus(args[i++]);\r\n    return sum;\r\n  };\r\n\r\n\r\n  // PRIVATE FUNCTIONS\r\n\r\n\r\n  // Called by BigNumber and BigNumber.prototype.toString.\r\n  convertBase = (function () {\r\n    var decimal = '0123456789';\r\n\r\n    /*\r\n     * Convert string of baseIn to an array of numbers of baseOut.\r\n     * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n     * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n     */\r\n    function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n      var j,\r\n        arr = [0],\r\n        arrL,\r\n        i = 0,\r\n        len = str.length;\r\n\r\n      for (; i < len;) {\r\n        for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n        arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n        for (j = 0; j < arr.length; j++) {\r\n\r\n          if (arr[j] > baseOut - 1) {\r\n            if (arr[j + 1] == null) arr[j + 1] = 0;\r\n            arr[j + 1] += arr[j] / baseOut | 0;\r\n            arr[j] %= baseOut;\r\n          }\r\n        }\r\n      }\r\n\r\n      return arr.reverse();\r\n    }\r\n\r\n    // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n    // If the caller is toString, we are converting from base 10 to baseOut.\r\n    // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n    return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n      var alphabet, d, e, k, r, x, xc, y,\r\n        i = str.indexOf('.'),\r\n        dp = DECIMAL_PLACES,\r\n        rm = ROUNDING_MODE;\r\n\r\n      // Non-integer.\r\n      if (i >= 0) {\r\n        k = POW_PRECISION;\r\n\r\n        // Unlimited precision.\r\n        POW_PRECISION = 0;\r\n        str = str.replace('.', '');\r\n        y = new BigNumber(baseIn);\r\n        x = y.pow(str.length - i);\r\n        POW_PRECISION = k;\r\n\r\n        // Convert str as if an integer, then restore the fraction part by dividing the\r\n        // result by its base raised to a power.\r\n\r\n        y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n         10, baseOut, decimal);\r\n        y.e = y.c.length;\r\n      }\r\n\r\n      // Convert the number as integer.\r\n\r\n      xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n       ? (alphabet = ALPHABET, decimal)\r\n       : (alphabet = decimal, ALPHABET));\r\n\r\n      // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n      e = k = xc.length;\r\n\r\n      // Remove trailing zeros.\r\n      for (; xc[--k] == 0; xc.pop());\r\n\r\n      // Zero?\r\n      if (!xc[0]) return alphabet.charAt(0);\r\n\r\n      // Does str represent an integer? If so, no need for the division.\r\n      if (i < 0) {\r\n        --e;\r\n      } else {\r\n        x.c = xc;\r\n        x.e = e;\r\n\r\n        // The sign is needed for correct rounding.\r\n        x.s = sign;\r\n        x = div(x, y, dp, rm, baseOut);\r\n        xc = x.c;\r\n        r = x.r;\r\n        e = x.e;\r\n      }\r\n\r\n      // xc now represents str converted to baseOut.\r\n\r\n      // The index of the rounding digit.\r\n      d = e + dp + 1;\r\n\r\n      // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n      i = xc[d];\r\n\r\n      // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n      k = baseOut / 2;\r\n      r = r || d < 0 || xc[d + 1] != null;\r\n\r\n      r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n            : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n      // If the index of the rounding digit is not greater than zero, or xc represents\r\n      // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n      // such as 0.00001.\r\n      if (d < 1 || !xc[0]) {\r\n\r\n        // 1^-dp or 0\r\n        str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n      } else {\r\n\r\n        // Truncate xc to the required number of decimal places.\r\n        xc.length = d;\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          // Rounding up may mean the previous digit has to be rounded up and so on.\r\n          for (--baseOut; ++xc[--d] > baseOut;) {\r\n            xc[d] = 0;\r\n\r\n            if (!d) {\r\n              ++e;\r\n              xc = [1].concat(xc);\r\n            }\r\n          }\r\n        }\r\n\r\n        // Determine trailing zeros.\r\n        for (k = xc.length; !xc[--k];);\r\n\r\n        // E.g. [4, 11, 15] becomes 4bf.\r\n        for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n        // Add leading zeros, decimal point and trailing zeros as required.\r\n        str = toFixedPoint(str, e, alphabet.charAt(0));\r\n      }\r\n\r\n      // The caller will add the sign.\r\n      return str;\r\n    };\r\n  })();\r\n\r\n\r\n  // Perform division in the specified base. Called by div and convertBase.\r\n  div = (function () {\r\n\r\n    // Assume non-zero x and k.\r\n    function multiply(x, k, base) {\r\n      var m, temp, xlo, xhi,\r\n        carry = 0,\r\n        i = x.length,\r\n        klo = k % SQRT_BASE,\r\n        khi = k / SQRT_BASE | 0;\r\n\r\n      for (x = x.slice(); i--;) {\r\n        xlo = x[i] % SQRT_BASE;\r\n        xhi = x[i] / SQRT_BASE | 0;\r\n        m = khi * xlo + xhi * klo;\r\n        temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n        carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n        x[i] = temp % base;\r\n      }\r\n\r\n      if (carry) x = [carry].concat(x);\r\n\r\n      return x;\r\n    }\r\n\r\n    function compare(a, b, aL, bL) {\r\n      var i, cmp;\r\n\r\n      if (aL != bL) {\r\n        cmp = aL > bL ? 1 : -1;\r\n      } else {\r\n\r\n        for (i = cmp = 0; i < aL; i++) {\r\n\r\n          if (a[i] != b[i]) {\r\n            cmp = a[i] > b[i] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      return cmp;\r\n    }\r\n\r\n    function subtract(a, b, aL, base) {\r\n      var i = 0;\r\n\r\n      // Subtract b from a.\r\n      for (; aL--;) {\r\n        a[aL] -= i;\r\n        i = a[aL] < b[aL] ? 1 : 0;\r\n        a[aL] = i * base + a[aL] - b[aL];\r\n      }\r\n\r\n      // Remove leading zeros.\r\n      for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n    }\r\n\r\n    // x: dividend, y: divisor.\r\n    return function (x, y, dp, rm, base) {\r\n      var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n        yL, yz,\r\n        s = x.s == y.s ? 1 : -1,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      // Either NaN, Infinity or 0?\r\n      if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n        return new BigNumber(\r\n\r\n         // Return NaN if either NaN, or both Infinity or 0.\r\n         !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n          // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n          xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n       );\r\n      }\r\n\r\n      q = new BigNumber(s);\r\n      qc = q.c = [];\r\n      e = x.e - y.e;\r\n      s = dp + e + 1;\r\n\r\n      if (!base) {\r\n        base = BASE;\r\n        e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n        s = s / LOG_BASE | 0;\r\n      }\r\n\r\n      // Result exponent may be one less then the current value of e.\r\n      // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n      for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n      if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n      if (s < 0) {\r\n        qc.push(1);\r\n        more = true;\r\n      } else {\r\n        xL = xc.length;\r\n        yL = yc.length;\r\n        i = 0;\r\n        s += 2;\r\n\r\n        // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n        n = mathfloor(base / (yc[0] + 1));\r\n\r\n        // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n        // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n        if (n > 1) {\r\n          yc = multiply(yc, n, base);\r\n          xc = multiply(xc, n, base);\r\n          yL = yc.length;\r\n          xL = xc.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xc.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL; rem[remL++] = 0);\r\n        yz = yc.slice();\r\n        yz = [0].concat(yz);\r\n        yc0 = yc[0];\r\n        if (yc[1] >= base / 2) yc0++;\r\n        // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n        // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n        do {\r\n          n = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yc, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, n.\r\n\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n            // n is how many times the divisor goes into the current remainder.\r\n            n = mathfloor(rem0 / yc0);\r\n\r\n            //  Algorithm:\r\n            //  product = divisor multiplied by trial digit (n).\r\n            //  Compare product and remainder.\r\n            //  If product is greater than remainder:\r\n            //    Subtract divisor from product, decrement trial digit.\r\n            //  Subtract product from remainder.\r\n            //  If product was less than remainder at the last compare:\r\n            //    Compare new remainder and divisor.\r\n            //    If remainder is greater than divisor:\r\n            //      Subtract divisor from remainder, increment trial digit.\r\n\r\n            if (n > 1) {\r\n\r\n              // n may be > base only when base is 3.\r\n              if (n >= base) n = base - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiply(yc, n, base);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              // If product > remainder then trial digit n too high.\r\n              // n is 1 too high about 5% of the time, and is not known to have\r\n              // ever been more than 1 too high.\r\n              while (compare(prod, rem, prodL, remL) == 1) {\r\n                n--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                prodL = prod.length;\r\n                cmp = 1;\r\n              }\r\n            } else {\r\n\r\n              // n is 0 or 1, cmp is -1.\r\n              // If n is 0, there is no need to compare yc and rem again below,\r\n              // so change cmp to 1 to avoid it.\r\n              // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n              if (n == 0) {\r\n\r\n                // divisor < remainder, so n must be at least 1.\r\n                cmp = n = 1;\r\n              }\r\n\r\n              // product = divisor\r\n              prod = yc.slice();\r\n              prodL = prod.length;\r\n            }\r\n\r\n            if (prodL < remL) prod = [0].concat(prod);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL, base);\r\n            remL = rem.length;\r\n\r\n             // If product was < remainder.\r\n            if (cmp == -1) {\r\n\r\n              // Compare divisor and new remainder.\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              // Trial digit n too low.\r\n              // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n              while (compare(yc, rem, yL, remL) < 1) {\r\n                n++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                remL = rem.length;\r\n              }\r\n            }\r\n          } else if (cmp === 0) {\r\n            n++;\r\n            rem = [0];\r\n          } // else cmp === 1 and n will be 0\r\n\r\n          // Add the next digit, n, to the result array.\r\n          qc[i++] = n;\r\n\r\n          // Update the remainder.\r\n          if (rem[0]) {\r\n            rem[remL++] = xc[xi] || 0;\r\n          } else {\r\n            rem = [xc[xi]];\r\n            remL = 1;\r\n          }\r\n        } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n        more = rem[0] != null;\r\n\r\n        // Leading zero?\r\n        if (!qc[0]) qc.splice(0, 1);\r\n      }\r\n\r\n      if (base == BASE) {\r\n\r\n        // To calculate q.e, first get the number of digits of qc[0].\r\n        for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n        round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n      // Caller is convertBase.\r\n      } else {\r\n        q.e = e;\r\n        q.r = +more;\r\n      }\r\n\r\n      return q;\r\n    };\r\n  })();\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n   * notation rounded to the specified decimal places or significant digits.\r\n   *\r\n   * n: a BigNumber.\r\n   * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n   * rm: the rounding mode.\r\n   * id: 1 (toExponential) or 2 (toPrecision).\r\n   */\r\n  function format(n, i, rm, id) {\r\n    var c0, e, ne, len, str;\r\n\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n\r\n    if (!n.c) return n.toString();\r\n\r\n    c0 = n.c[0];\r\n    ne = n.e;\r\n\r\n    if (i == null) {\r\n      str = coeffToString(n.c);\r\n      str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n       ? toExponential(str, ne)\r\n       : toFixedPoint(str, ne, '0');\r\n    } else {\r\n      n = round(new BigNumber(n), i, rm);\r\n\r\n      // n.e may have changed if the value was rounded up.\r\n      e = n.e;\r\n\r\n      str = coeffToString(n.c);\r\n      len = str.length;\r\n\r\n      // toPrecision returns exponential notation if the number of significant digits\r\n      // specified is less than the number of digits necessary to represent the integer\r\n      // part of the value in fixed-point notation.\r\n\r\n      // Exponential notation.\r\n      if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n        // Append zeros?\r\n        for (; len < i; str += '0', len++);\r\n        str = toExponential(str, e);\r\n\r\n      // Fixed-point notation.\r\n      } else {\r\n        i -= ne + (id === 2 && e > ne);\r\n        str = toFixedPoint(str, e, '0');\r\n\r\n        // Append zeros?\r\n        if (e + 1 > len) {\r\n          if (--i > 0) for (str += '.'; i--; str += '0');\r\n        } else {\r\n          i += e - len;\r\n          if (i > 0) {\r\n            if (e + 1 == len) str += '.';\r\n            for (; i--; str += '0');\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return n.s < 0 && c0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // Handle BigNumber.max and BigNumber.min.\r\n  // If any number is NaN, return NaN.\r\n  function maxOrMin(args, n) {\r\n    var k, y,\r\n      i = 1,\r\n      x = new BigNumber(args[0]);\r\n\r\n    for (; i < args.length; i++) {\r\n      y = new BigNumber(args[i]);\r\n      if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n        x = y;\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  /*\r\n   * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n   * Called by minus, plus and times.\r\n   */\r\n  function normalise(n, c, e) {\r\n    var i = 1,\r\n      j = c.length;\r\n\r\n     // Remove trailing zeros.\r\n    for (; !c[--j]; c.pop());\r\n\r\n    // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n    for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n    // Overflow?\r\n    if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n      // Infinity.\r\n      n.c = n.e = null;\r\n\r\n    // Underflow?\r\n    } else if (e < MIN_EXP) {\r\n\r\n      // Zero.\r\n      n.c = [n.e = 0];\r\n    } else {\r\n      n.e = e;\r\n      n.c = c;\r\n    }\r\n\r\n    return n;\r\n  }\r\n\r\n\r\n  // Handle values that fail the validity test in BigNumber.\r\n  parseNumeric = (function () {\r\n    var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n      dotAfter = /^([^.]+)\\.$/,\r\n      dotBefore = /^\\.([^.]+)$/,\r\n      isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n      whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n    return function (x, str, isNum, b) {\r\n      var base,\r\n        s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n      // No exception on ±Infinity or NaN.\r\n      if (isInfinityOrNaN.test(s)) {\r\n        x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n      } else {\r\n        if (!isNum) {\r\n\r\n          // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n          s = s.replace(basePrefix, function (m, p1, p2) {\r\n            base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n            return !b || b == base ? p1 : m;\r\n          });\r\n\r\n          if (b) {\r\n            base = b;\r\n\r\n            // E.g. '1.' to '1', '.1' to '0.1'\r\n            s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n          }\r\n\r\n          if (str != s) return new BigNumber(s, base);\r\n        }\r\n\r\n        // '[BigNumber Error] Not a number: {n}'\r\n        // '[BigNumber Error] Not a base {b} number: {n}'\r\n        if (BigNumber.DEBUG) {\r\n          throw Error\r\n            (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n        }\r\n\r\n        // NaN\r\n        x.s = null;\r\n      }\r\n\r\n      x.c = x.e = null;\r\n    }\r\n  })();\r\n\r\n\r\n  /*\r\n   * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n   * If r is truthy, it is known that there are more digits after the rounding digit.\r\n   */\r\n  function round(x, sd, rm, r) {\r\n    var d, i, j, k, n, ni, rd,\r\n      xc = x.c,\r\n      pows10 = POWS_TEN;\r\n\r\n    // if x is not Infinity or NaN...\r\n    if (xc) {\r\n\r\n      // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n      // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n      // ni is the index of n within x.c.\r\n      // d is the number of digits of n.\r\n      // i is the index of rd within n including leading zeros.\r\n      // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n      out: {\r\n\r\n        // Get the number of digits of the first element of xc.\r\n        for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n        i = sd - d;\r\n\r\n        // If the rounding digit is in the first element of xc...\r\n        if (i < 0) {\r\n          i += LOG_BASE;\r\n          j = sd;\r\n          n = xc[ni = 0];\r\n\r\n          // Get the rounding digit at index j of n.\r\n          rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n        } else {\r\n          ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n          if (ni >= xc.length) {\r\n\r\n            if (r) {\r\n\r\n              // Needed by sqrt.\r\n              for (; xc.length <= ni; xc.push(0));\r\n              n = rd = 0;\r\n              d = 1;\r\n              i %= LOG_BASE;\r\n              j = i - LOG_BASE + 1;\r\n            } else {\r\n              break out;\r\n            }\r\n          } else {\r\n            n = k = xc[ni];\r\n\r\n            // Get the number of digits of n.\r\n            for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n            // Get the index of rd within n.\r\n            i %= LOG_BASE;\r\n\r\n            // Get the index of rd within n, adjusted for leading zeros.\r\n            // The number of leading zeros of n is given by LOG_BASE - d.\r\n            j = i - LOG_BASE + d;\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n          }\r\n        }\r\n\r\n        r = r || sd < 0 ||\r\n\r\n        // Are there any non-zero digits after the rounding digit?\r\n        // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n        // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n         xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n        r = rm < 4\r\n         ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n         : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n          // Check whether the digit to the left of the rounding digit is odd.\r\n          ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n           rm == (x.s < 0 ? 8 : 7));\r\n\r\n        if (sd < 1 || !xc[0]) {\r\n          xc.length = 0;\r\n\r\n          if (r) {\r\n\r\n            // Convert sd to decimal places.\r\n            sd -= x.e + 1;\r\n\r\n            // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n            xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n            x.e = -sd || 0;\r\n          } else {\r\n\r\n            // Zero.\r\n            xc[0] = x.e = 0;\r\n          }\r\n\r\n          return x;\r\n        }\r\n\r\n        // Remove excess digits.\r\n        if (i == 0) {\r\n          xc.length = ni;\r\n          k = 1;\r\n          ni--;\r\n        } else {\r\n          xc.length = ni + 1;\r\n          k = pows10[LOG_BASE - i];\r\n\r\n          // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n          // j > 0 means i > number of leading zeros of n.\r\n          xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n        }\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          for (; ;) {\r\n\r\n            // If the digit to be rounded up is in the first element of xc...\r\n            if (ni == 0) {\r\n\r\n              // i will be the length of xc[0] before k is added.\r\n              for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n              j = xc[0] += k;\r\n              for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n              // if i != k the length has increased.\r\n              if (i != k) {\r\n                x.e++;\r\n                if (xc[0] == BASE) xc[0] = 1;\r\n              }\r\n\r\n              break;\r\n            } else {\r\n              xc[ni] += k;\r\n              if (xc[ni] != BASE) break;\r\n              xc[ni--] = 0;\r\n              k = 1;\r\n            }\r\n          }\r\n        }\r\n\r\n        // Remove trailing zeros.\r\n        for (i = xc.length; xc[--i] === 0; xc.pop());\r\n      }\r\n\r\n      // Overflow? Infinity.\r\n      if (x.e > MAX_EXP) {\r\n        x.c = x.e = null;\r\n\r\n      // Underflow? Zero.\r\n      } else if (x.e < MIN_EXP) {\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  function valueOf(n) {\r\n    var str,\r\n      e = n.e;\r\n\r\n    if (e === null) return n.toString();\r\n\r\n    str = coeffToString(n.c);\r\n\r\n    str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n      ? toExponential(str, e)\r\n      : toFixedPoint(str, e, '0');\r\n\r\n    return n.s < 0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n   */\r\n  P.absoluteValue = P.abs = function () {\r\n    var x = new BigNumber(this);\r\n    if (x.s < 0) x.s = 1;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return\r\n   *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   *   0 if they have the same value,\r\n   *   or null if the value of either is NaN.\r\n   */\r\n  P.comparedTo = function (y, b) {\r\n    return compare(this, new BigNumber(y, b));\r\n  };\r\n\r\n\r\n  /*\r\n   * If dp is undefined or null or true or false, return the number of decimal places of the\r\n   * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   *\r\n   * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.decimalPlaces = P.dp = function (dp, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), dp + x.e + 1, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last number.\r\n    if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n    if (n < 0) n = 0;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n / 0 = I\r\n   *  n / N = N\r\n   *  n / I = 0\r\n   *  0 / n = 0\r\n   *  0 / 0 = N\r\n   *  0 / N = N\r\n   *  0 / I = 0\r\n   *  N / n = N\r\n   *  N / 0 = N\r\n   *  N / N = N\r\n   *  N / I = N\r\n   *  I / n = I\r\n   *  I / 0 = I\r\n   *  I / N = N\r\n   *  I / I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n   * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.dividedBy = P.div = function (y, b) {\r\n    return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n   * BigNumber by the value of BigNumber(y, b).\r\n   */\r\n  P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n    return div(this, new BigNumber(y, b), 0, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n   *\r\n   * If m is present, return the result modulo m.\r\n   * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n   *\r\n   * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n   * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n   *\r\n   * n {number|string|BigNumber} The exponent. An integer.\r\n   * [m] {number|string|BigNumber} The modulus.\r\n   *\r\n   * '[BigNumber Error] Exponent not an integer: {n}'\r\n   */\r\n  P.exponentiatedBy = P.pow = function (n, m) {\r\n    var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n      x = this;\r\n\r\n    n = new BigNumber(n);\r\n\r\n    // Allow NaN and ±Infinity, but not other non-integers.\r\n    if (n.c && !n.isInteger()) {\r\n      throw Error\r\n        (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n    }\r\n\r\n    if (m != null) m = new BigNumber(m);\r\n\r\n    // Exponent of MAX_SAFE_INTEGER is 15.\r\n    nIsBig = n.e > 14;\r\n\r\n    // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n    if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n      // The sign of the result of pow when x is negative depends on the evenness of n.\r\n      // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n      y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n      return m ? y.mod(m) : y;\r\n    }\r\n\r\n    nIsNeg = n.s < 0;\r\n\r\n    if (m) {\r\n\r\n      // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n      if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n      isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n      if (isModExp) x = x.mod(m);\r\n\r\n    // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n    // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n    } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n      // [1, 240000000]\r\n      ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n      // [80000000000000]  [99999750000000]\r\n      : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n      // If x is negative and n is odd, k = -0, else k = 0.\r\n      k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n      // If x >= 1, k = ±Infinity.\r\n      if (x.e > -1) k = 1 / k;\r\n\r\n      // If n is negative return ±0, else return ±Infinity.\r\n      return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n    } else if (POW_PRECISION) {\r\n\r\n      // Truncating each coefficient array to a length of k after each multiplication\r\n      // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n      // i.e. there will be a minimum of 28 guard digits retained.\r\n      k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n    }\r\n\r\n    if (nIsBig) {\r\n      half = new BigNumber(0.5);\r\n      if (nIsNeg) n.s = 1;\r\n      nIsOdd = isOdd(n);\r\n    } else {\r\n      i = Math.abs(+valueOf(n));\r\n      nIsOdd = i % 2;\r\n    }\r\n\r\n    y = new BigNumber(ONE);\r\n\r\n    // Performs 54 loop iterations for n of 9007199254740991.\r\n    for (; ;) {\r\n\r\n      if (nIsOdd) {\r\n        y = y.times(x);\r\n        if (!y.c) break;\r\n\r\n        if (k) {\r\n          if (y.c.length > k) y.c.length = k;\r\n        } else if (isModExp) {\r\n          y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (i) {\r\n        i = mathfloor(i / 2);\r\n        if (i === 0) break;\r\n        nIsOdd = i % 2;\r\n      } else {\r\n        n = n.times(half);\r\n        round(n, n.e + 1, 1);\r\n\r\n        if (n.e > 14) {\r\n          nIsOdd = isOdd(n);\r\n        } else {\r\n          i = +valueOf(n);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        }\r\n      }\r\n\r\n      x = x.times(x);\r\n\r\n      if (k) {\r\n        if (x.c && x.c.length > k) x.c.length = k;\r\n      } else if (isModExp) {\r\n        x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n      }\r\n    }\r\n\r\n    if (isModExp) return y;\r\n    if (nIsNeg) y = ONE.div(y);\r\n\r\n    return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n   * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n   */\r\n  P.integerValue = function (rm) {\r\n    var n = new BigNumber(this);\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n    return round(n, n.e + 1, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isEqualTo = P.eq = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n   */\r\n  P.isFinite = function () {\r\n    return !!this.c;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isGreaterThan = P.gt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n   */\r\n  P.isInteger = function () {\r\n    return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isLessThan = P.lt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n   */\r\n  P.isNaN = function () {\r\n    return !this.s;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is negative, otherwise return false.\r\n   */\r\n  P.isNegative = function () {\r\n    return this.s < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is positive, otherwise return false.\r\n   */\r\n  P.isPositive = function () {\r\n    return this.s > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n   */\r\n  P.isZero = function () {\r\n    return !!this.c && this.c[0] == 0;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n - 0 = n\r\n   *  n - N = N\r\n   *  n - I = -I\r\n   *  0 - n = -n\r\n   *  0 - 0 = 0\r\n   *  0 - N = N\r\n   *  0 - I = -I\r\n   *  N - n = N\r\n   *  N - 0 = N\r\n   *  N - N = N\r\n   *  N - I = N\r\n   *  I - n = I\r\n   *  I - 0 = I\r\n   *  I - N = N\r\n   *  I - I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.minus = function (y, b) {\r\n    var i, j, t, xLTy,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n    if (a != b) {\r\n      y.s = -b;\r\n      return x.plus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Either Infinity?\r\n      if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n      // Either zero?\r\n      if (!xc[0] || !yc[0]) {\r\n\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n         // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n         ROUNDING_MODE == 3 ? -0 : 0);\r\n      }\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Determine which is the bigger number.\r\n    if (a = xe - ye) {\r\n\r\n      if (xLTy = a < 0) {\r\n        a = -a;\r\n        t = xc;\r\n      } else {\r\n        ye = xe;\r\n        t = yc;\r\n      }\r\n\r\n      t.reverse();\r\n\r\n      // Prepend zeros to equalise exponents.\r\n      for (b = a; b--; t.push(0));\r\n      t.reverse();\r\n    } else {\r\n\r\n      // Exponents equal. Check digit by digit.\r\n      j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n      for (a = b = 0; b < j; b++) {\r\n\r\n        if (xc[b] != yc[b]) {\r\n          xLTy = xc[b] < yc[b];\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    // x < y? Point xc to the array of the bigger number.\r\n    if (xLTy) {\r\n      t = xc;\r\n      xc = yc;\r\n      yc = t;\r\n      y.s = -y.s;\r\n    }\r\n\r\n    b = (j = yc.length) - (i = xc.length);\r\n\r\n    // Append zeros to xc if shorter.\r\n    // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n    if (b > 0) for (; b--; xc[i++] = 0);\r\n    b = BASE - 1;\r\n\r\n    // Subtract yc from xc.\r\n    for (; j > a;) {\r\n\r\n      if (xc[--j] < yc[j]) {\r\n        for (i = j; i && !xc[--i]; xc[i] = b);\r\n        --xc[i];\r\n        xc[j] += BASE;\r\n      }\r\n\r\n      xc[j] -= yc[j];\r\n    }\r\n\r\n    // Remove leading zeros and adjust exponent accordingly.\r\n    for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n    // Zero?\r\n    if (!xc[0]) {\r\n\r\n      // Following IEEE 754 (2008) 6.3,\r\n      // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n      y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n      y.c = [y.e = 0];\r\n      return y;\r\n    }\r\n\r\n    // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n    // for finite x and y.\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   *   n % 0 =  N\r\n   *   n % N =  N\r\n   *   n % I =  n\r\n   *   0 % n =  0\r\n   *  -0 % n = -0\r\n   *   0 % 0 =  N\r\n   *   0 % N =  N\r\n   *   0 % I =  0\r\n   *   N % n =  N\r\n   *   N % 0 =  N\r\n   *   N % N =  N\r\n   *   N % I =  N\r\n   *   I % n =  N\r\n   *   I % 0 =  N\r\n   *   I % N =  N\r\n   *   I % I =  N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n   * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n   */\r\n  P.modulo = P.mod = function (y, b) {\r\n    var q, s,\r\n      x = this;\r\n\r\n    y = new BigNumber(y, b);\r\n\r\n    // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n    if (!x.c || !y.s || y.c && !y.c[0]) {\r\n      return new BigNumber(NaN);\r\n\r\n    // Return x if y is Infinity or x is zero.\r\n    } else if (!y.c || x.c && !x.c[0]) {\r\n      return new BigNumber(x);\r\n    }\r\n\r\n    if (MODULO_MODE == 9) {\r\n\r\n      // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n      // r = x - qy    where  0 <= r < abs(y)\r\n      s = y.s;\r\n      y.s = 1;\r\n      q = div(x, y, 0, 3);\r\n      y.s = s;\r\n      q.s *= s;\r\n    } else {\r\n      q = div(x, y, 0, MODULO_MODE);\r\n    }\r\n\r\n    y = x.minus(q.times(y));\r\n\r\n    // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n    if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n    return y;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n * 0 = 0\r\n   *  n * N = N\r\n   *  n * I = I\r\n   *  0 * n = 0\r\n   *  0 * 0 = 0\r\n   *  0 * N = N\r\n   *  0 * I = N\r\n   *  N * n = N\r\n   *  N * 0 = N\r\n   *  N * N = N\r\n   *  N * I = N\r\n   *  I * n = I\r\n   *  I * 0 = N\r\n   *  I * N = N\r\n   *  I * I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n   * of BigNumber(y, b).\r\n   */\r\n  P.multipliedBy = P.times = function (y, b) {\r\n    var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n      base, sqrtBase,\r\n      x = this,\r\n      xc = x.c,\r\n      yc = (y = new BigNumber(y, b)).c;\r\n\r\n    // Either NaN, ±Infinity or ±0?\r\n    if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n      // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n      if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n        y.c = y.e = y.s = null;\r\n      } else {\r\n        y.s *= x.s;\r\n\r\n        // Return ±Infinity if either is ±Infinity.\r\n        if (!xc || !yc) {\r\n          y.c = y.e = null;\r\n\r\n        // Return ±0 if either is ±0.\r\n        } else {\r\n          y.c = [0];\r\n          y.e = 0;\r\n        }\r\n      }\r\n\r\n      return y;\r\n    }\r\n\r\n    e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n    y.s *= x.s;\r\n    xcL = xc.length;\r\n    ycL = yc.length;\r\n\r\n    // Ensure xc points to longer array and xcL to its length.\r\n    if (xcL < ycL) {\r\n      zc = xc;\r\n      xc = yc;\r\n      yc = zc;\r\n      i = xcL;\r\n      xcL = ycL;\r\n      ycL = i;\r\n    }\r\n\r\n    // Initialise the result array with zeros.\r\n    for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n    base = BASE;\r\n    sqrtBase = SQRT_BASE;\r\n\r\n    for (i = ycL; --i >= 0;) {\r\n      c = 0;\r\n      ylo = yc[i] % sqrtBase;\r\n      yhi = yc[i] / sqrtBase | 0;\r\n\r\n      for (k = xcL, j = i + k; j > i;) {\r\n        xlo = xc[--k] % sqrtBase;\r\n        xhi = xc[k] / sqrtBase | 0;\r\n        m = yhi * xlo + xhi * ylo;\r\n        xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n        c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n        zc[j--] = xlo % base;\r\n      }\r\n\r\n      zc[j] = c;\r\n    }\r\n\r\n    if (c) {\r\n      ++e;\r\n    } else {\r\n      zc.splice(0, 1);\r\n    }\r\n\r\n    return normalise(y, zc, e);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n   * i.e. multiplied by -1.\r\n   */\r\n  P.negated = function () {\r\n    var x = new BigNumber(this);\r\n    x.s = -x.s || null;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n + 0 = n\r\n   *  n + N = N\r\n   *  n + I = I\r\n   *  0 + n = n\r\n   *  0 + 0 = 0\r\n   *  0 + N = N\r\n   *  0 + I = I\r\n   *  N + n = N\r\n   *  N + 0 = N\r\n   *  N + N = N\r\n   *  N + I = N\r\n   *  I + n = I\r\n   *  I + 0 = I\r\n   *  I + N = N\r\n   *  I + I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.plus = function (y, b) {\r\n    var t,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n     if (a != b) {\r\n      y.s = -b;\r\n      return x.minus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Return ±Infinity if either ±Infinity.\r\n      if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n      // Either zero?\r\n      // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n      if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n    if (a = xe - ye) {\r\n      if (a > 0) {\r\n        ye = xe;\r\n        t = yc;\r\n      } else {\r\n        a = -a;\r\n        t = xc;\r\n      }\r\n\r\n      t.reverse();\r\n      for (; a--; t.push(0));\r\n      t.reverse();\r\n    }\r\n\r\n    a = xc.length;\r\n    b = yc.length;\r\n\r\n    // Point xc to the longer array, and b to the shorter length.\r\n    if (a - b < 0) {\r\n      t = yc;\r\n      yc = xc;\r\n      xc = t;\r\n      b = a;\r\n    }\r\n\r\n    // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n    for (a = 0; b;) {\r\n      a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n      xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n    }\r\n\r\n    if (a) {\r\n      xc = [a].concat(xc);\r\n      ++ye;\r\n    }\r\n\r\n    // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n    // ye = MAX_EXP + 1 possible\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   * If sd is undefined or null or true or false, return the number of significant digits of\r\n   * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   * If sd is true include integer-part trailing zeros in the count.\r\n   *\r\n   * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n   *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.precision = P.sd = function (sd, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (sd != null && sd !== !!sd) {\r\n      intCheck(sd, 1, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), sd, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    v = c.length - 1;\r\n    n = v * LOG_BASE + 1;\r\n\r\n    if (v = c[v]) {\r\n\r\n      // Subtract the number of trailing zeros of the last element.\r\n      for (; v % 10 == 0; v /= 10, n--);\r\n\r\n      // Add the number of digits of the first element.\r\n      for (v = c[0]; v >= 10; v /= 10, n++);\r\n    }\r\n\r\n    if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n   * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n   *\r\n   * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n   */\r\n  P.shiftedBy = function (k) {\r\n    intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n    return this.times('1e' + k);\r\n  };\r\n\r\n\r\n  /*\r\n   *  sqrt(-n) =  N\r\n   *  sqrt(N) =  N\r\n   *  sqrt(-I) =  N\r\n   *  sqrt(I) =  I\r\n   *  sqrt(0) =  0\r\n   *  sqrt(-0) = -0\r\n   *\r\n   * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n   * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.squareRoot = P.sqrt = function () {\r\n    var m, n, r, rep, t,\r\n      x = this,\r\n      c = x.c,\r\n      s = x.s,\r\n      e = x.e,\r\n      dp = DECIMAL_PLACES + 4,\r\n      half = new BigNumber('0.5');\r\n\r\n    // Negative/NaN/Infinity/zero?\r\n    if (s !== 1 || !c || !c[0]) {\r\n      return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n    }\r\n\r\n    // Initial estimate.\r\n    s = Math.sqrt(+valueOf(x));\r\n\r\n    // Math.sqrt underflow/overflow?\r\n    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n    if (s == 0 || s == 1 / 0) {\r\n      n = coeffToString(c);\r\n      if ((n.length + e) % 2 == 0) n += '0';\r\n      s = Math.sqrt(+n);\r\n      e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n      if (s == 1 / 0) {\r\n        n = '5e' + e;\r\n      } else {\r\n        n = s.toExponential();\r\n        n = n.slice(0, n.indexOf('e') + 1) + e;\r\n      }\r\n\r\n      r = new BigNumber(n);\r\n    } else {\r\n      r = new BigNumber(s + '');\r\n    }\r\n\r\n    // Check for zero.\r\n    // r could be zero if MIN_EXP is changed after the this value was created.\r\n    // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n    // coeffToString to throw.\r\n    if (r.c[0]) {\r\n      e = r.e;\r\n      s = e + dp;\r\n      if (s < 3) s = 0;\r\n\r\n      // Newton-Raphson iteration.\r\n      for (; ;) {\r\n        t = r;\r\n        r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n        if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n          // The exponent of r may here be one less than the final result exponent,\r\n          // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n          // are indexed correctly.\r\n          if (r.e < e) --s;\r\n          n = n.slice(s - 3, s + 1);\r\n\r\n          // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n          // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n          // iteration.\r\n          if (n == '9999' || !rep && n == '4999') {\r\n\r\n            // On the first iteration only, check to see if rounding up gives the\r\n            // exact result as the nines may infinitely repeat.\r\n            if (!rep) {\r\n              round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n              if (t.times(t).eq(x)) {\r\n                r = t;\r\n                break;\r\n              }\r\n            }\r\n\r\n            dp += 4;\r\n            s += 4;\r\n            rep = 1;\r\n          } else {\r\n\r\n            // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n            // result. If not, then there are further digits and m will be truthy.\r\n            if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n              // Truncate to the first rounding digit.\r\n              round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n              m = !r.times(r).eq(x);\r\n            }\r\n\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in exponential notation and\r\n   * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toExponential = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp++;\r\n    }\r\n    return format(this, dp, rm, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n   * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n   * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toFixed = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp = dp + this.e + 1;\r\n    }\r\n    return format(this, dp, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n   * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n   * of the format or FORMAT object (see BigNumber.set).\r\n   *\r\n   * The formatting object may contain some or all of the properties shown below.\r\n   *\r\n   * FORMAT = {\r\n   *   prefix: '',\r\n   *   groupSize: 3,\r\n   *   secondaryGroupSize: 0,\r\n   *   groupSeparator: ',',\r\n   *   decimalSeparator: '.',\r\n   *   fractionGroupSize: 0,\r\n   *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n   *   suffix: ''\r\n   * };\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   * [format] {object} Formatting options. See FORMAT pbject above.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   * '[BigNumber Error] Argument not an object: {format}'\r\n   */\r\n  P.toFormat = function (dp, rm, format) {\r\n    var str,\r\n      x = this;\r\n\r\n    if (format == null) {\r\n      if (dp != null && rm && typeof rm == 'object') {\r\n        format = rm;\r\n        rm = null;\r\n      } else if (dp && typeof dp == 'object') {\r\n        format = dp;\r\n        dp = rm = null;\r\n      } else {\r\n        format = FORMAT;\r\n      }\r\n    } else if (typeof format != 'object') {\r\n      throw Error\r\n        (bignumberError + 'Argument not an object: ' + format);\r\n    }\r\n\r\n    str = x.toFixed(dp, rm);\r\n\r\n    if (x.c) {\r\n      var i,\r\n        arr = str.split('.'),\r\n        g1 = +format.groupSize,\r\n        g2 = +format.secondaryGroupSize,\r\n        groupSeparator = format.groupSeparator || '',\r\n        intPart = arr[0],\r\n        fractionPart = arr[1],\r\n        isNeg = x.s < 0,\r\n        intDigits = isNeg ? intPart.slice(1) : intPart,\r\n        len = intDigits.length;\r\n\r\n      if (g2) {\r\n        i = g1;\r\n        g1 = g2;\r\n        g2 = i;\r\n        len -= i;\r\n      }\r\n\r\n      if (g1 > 0 && len > 0) {\r\n        i = len % g1 || g1;\r\n        intPart = intDigits.substr(0, i);\r\n        for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n        if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n        if (isNeg) intPart = '-' + intPart;\r\n      }\r\n\r\n      str = fractionPart\r\n       ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n        ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n         '$&' + (format.fractionGroupSeparator || ''))\r\n        : fractionPart)\r\n       : intPart;\r\n    }\r\n\r\n    return (format.prefix || '') + str + (format.suffix || '');\r\n  };\r\n\r\n\r\n  /*\r\n   * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n   * fraction with an integer numerator and an integer denominator.\r\n   * The denominator will be a positive non-zero value less than or equal to the specified\r\n   * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n   * the lowest value necessary to represent the number exactly.\r\n   *\r\n   * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n   *\r\n   * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n   */\r\n  P.toFraction = function (md) {\r\n    var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n      x = this,\r\n      xc = x.c;\r\n\r\n    if (md != null) {\r\n      n = new BigNumber(md);\r\n\r\n      // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n      if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n        throw Error\r\n          (bignumberError + 'Argument ' +\r\n            (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n      }\r\n    }\r\n\r\n    if (!xc) return new BigNumber(x);\r\n\r\n    d = new BigNumber(ONE);\r\n    n1 = d0 = new BigNumber(ONE);\r\n    d1 = n0 = new BigNumber(ONE);\r\n    s = coeffToString(xc);\r\n\r\n    // Determine initial denominator.\r\n    // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n    e = d.e = s.length - x.e - 1;\r\n    d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n    md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n    exp = MAX_EXP;\r\n    MAX_EXP = 1 / 0;\r\n    n = new BigNumber(s);\r\n\r\n    // n0 = d1 = 0\r\n    n0.c[0] = 0;\r\n\r\n    for (; ;)  {\r\n      q = div(n, d, 0, 1);\r\n      d2 = d0.plus(q.times(d1));\r\n      if (d2.comparedTo(md) == 1) break;\r\n      d0 = d1;\r\n      d1 = d2;\r\n      n1 = n0.plus(q.times(d2 = n1));\r\n      n0 = d2;\r\n      d = n.minus(q.times(d2 = d));\r\n      n = d2;\r\n    }\r\n\r\n    d2 = div(md.minus(d0), d1, 0, 1);\r\n    n0 = n0.plus(d2.times(n1));\r\n    d0 = d0.plus(d2.times(d1));\r\n    n0.s = n1.s = x.s;\r\n    e = e * 2;\r\n\r\n    // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n    r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n        div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n    MAX_EXP = exp;\r\n\r\n    return r;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the value of this BigNumber converted to a number primitive.\r\n   */\r\n  P.toNumber = function () {\r\n    return +valueOf(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n   * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n   * necessary to represent the integer part of the value in fixed-point notation, then use\r\n   * exponential notation.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.toPrecision = function (sd, rm) {\r\n    if (sd != null) intCheck(sd, 1, MAX);\r\n    return format(this, sd, rm, 2);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n   * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n   * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n   * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n   * TO_EXP_NEG, return exponential notation.\r\n   *\r\n   * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n   *\r\n   * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n   */\r\n  P.toString = function (b) {\r\n    var str,\r\n      n = this,\r\n      s = n.s,\r\n      e = n.e;\r\n\r\n    // Infinity or NaN?\r\n    if (e === null) {\r\n      if (s) {\r\n        str = 'Infinity';\r\n        if (s < 0) str = '-' + str;\r\n      } else {\r\n        str = 'NaN';\r\n      }\r\n    } else {\r\n      if (b == null) {\r\n        str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n         ? toExponential(coeffToString(n.c), e)\r\n         : toFixedPoint(coeffToString(n.c), e, '0');\r\n      } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n        n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n        str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n      } else {\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n        str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n      }\r\n\r\n      if (s < 0 && n.c[0]) str = '-' + str;\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return as toString, but do not accept a base argument, and include the minus sign for\r\n   * negative zero.\r\n   */\r\n  P.valueOf = P.toJSON = function () {\r\n    return valueOf(this);\r\n  };\r\n\r\n\r\n  P._isBigNumber = true;\r\n\r\n  P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n  // Node.js v10.12.0+\r\n  P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n  if (configObject != null) BigNumber.set(configObject);\r\n\r\n  return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n  var i = n | 0;\r\n  return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n  var s, z,\r\n    i = 1,\r\n    j = a.length,\r\n    r = a[0] + '';\r\n\r\n  for (; i < j;) {\r\n    s = a[i++] + '';\r\n    z = LOG_BASE - s.length;\r\n    for (; z--; s = '0' + s);\r\n    r += s;\r\n  }\r\n\r\n  // Determine trailing zeros.\r\n  for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n  return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n  var a, b,\r\n    xc = x.c,\r\n    yc = y.c,\r\n    i = x.s,\r\n    j = y.s,\r\n    k = x.e,\r\n    l = y.e;\r\n\r\n  // Either NaN?\r\n  if (!i || !j) return null;\r\n\r\n  a = xc && !xc[0];\r\n  b = yc && !yc[0];\r\n\r\n  // Either zero?\r\n  if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n  // Signs differ?\r\n  if (i != j) return i;\r\n\r\n  a = i < 0;\r\n  b = k == l;\r\n\r\n  // Either Infinity?\r\n  if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n  // Compare exponents.\r\n  if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n  j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n  // Compare digit by digit.\r\n  for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n  // Compare lengths.\r\n  return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n  if (n < min || n > max || n !== mathfloor(n)) {\r\n    throw Error\r\n     (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n       ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n       : ' not a primitive number: ') + String(n));\r\n  }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n  var k = n.c.length - 1;\r\n  return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n  return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n   (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n  var len, zs;\r\n\r\n  // Negative exponent?\r\n  if (e < 0) {\r\n\r\n    // Prepend zeros.\r\n    for (zs = z + '.'; ++e; zs += z);\r\n    str = zs + str;\r\n\r\n  // Positive exponent\r\n  } else {\r\n    len = str.length;\r\n\r\n    // Append zeros.\r\n    if (++e > len) {\r\n      for (zs = z, e -= len; --e; zs += z);\r\n      str += zs;\r\n    } else if (e < len) {\r\n      str = str.slice(0, e) + '.' + str.slice(e);\r\n    }\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","import { Layout } from '@solana/buffer-layout';\nimport BigNumber from 'bignumber.js';\nimport { encodeDecode } from './base';\nimport { u128 } from './bigint';\n\nexport const WAD = new BigNumber('1e+18');\n\nexport const decimal = (property?: string): Layout<BigNumber> => {\n    const layout = u128(property);\n    const { encode, decode } = encodeDecode(layout);\n\n    const decimalLayout = layout as Layout<unknown> as Layout<BigNumber>;\n\n    decimalLayout.decode = (buffer: Buffer, offset: number) => {\n        const src = decode(buffer, offset).toString();\n        return new BigNumber(src).div(WAD);\n    };\n\n    decimalLayout.encode = (decimal: BigNumber, buffer: Buffer, offset: number) => {\n        const src = BigInt(decimal.times(WAD).integerValue().toString());\n        return encode(src, buffer, offset);\n    };\n\n    return decimalLayout;\n};\n","import { Layout, u8 } from '@solana/buffer-layout';\nimport { encodeDecode } from './base';\n\nexport const bool = (property?: string): Layout<boolean> => {\n    const layout = u8(property);\n    const { encode, decode } = encodeDecode(layout);\n\n    const boolLayout = layout as Layout<unknown> as Layout<boolean>;\n\n    boolLayout.decode = (buffer: Buffer, offset: number) => {\n        const src = decode(buffer, offset);\n        return !!src;\n    };\n\n    boolLayout.encode = (bool: boolean, buffer: Buffer, offset: number) => {\n        const src = Number(bool);\n        return encode(src, buffer, offset);\n    };\n\n    return boolLayout;\n};\n","import { blob, Layout } from '@solana/buffer-layout';\nimport { PublicKey } from '@solana/web3.js';\nimport { encodeDecode } from './base';\n\nexport const publicKey = (property?: string): Layout<PublicKey> => {\n    const layout = blob(32, property);\n    const { encode, decode } = encodeDecode(layout);\n\n    const publicKeyLayout = layout as Layout<unknown> as Layout<PublicKey>;\n\n    publicKeyLayout.decode = (buffer: Buffer, offset: number) => {\n        const src = decode(buffer, offset);\n        return new PublicKey(src);\n    };\n\n    publicKeyLayout.encode = (publicKey: PublicKey, buffer: Buffer, offset: number) => {\n        const src = publicKey.toBuffer();\n        return encode(src, buffer, offset);\n    };\n\n    return publicKeyLayout;\n};\n","/** Base class for errors */\nexport abstract class TokenError extends Error {\n    constructor(message?: string) {\n        super(message);\n    }\n}\n\n/** Thrown if an account is not found at the expected address */\nexport class TokenAccountNotFoundError extends TokenError {\n    name = 'TokenAccountNotFoundError';\n}\n\n/** Thrown if a program state account is not a valid Account */\nexport class TokenInvalidAccountError extends TokenError {\n    name = 'TokenInvalidAccountError';\n}\n\n/** Thrown if a program state account does not contain valid data */\nexport class TokenInvalidAccountDataError extends TokenError {\n    name = 'TokenInvalidAccountDataError';\n}\n\n/** Thrown if a program state account is not owned by the expected token program */\nexport class TokenInvalidAccountOwnerError extends TokenError {\n    name = 'TokenInvalidAccountOwnerError';\n}\n\n/** Thrown if the byte length of an program state account doesn't match the expected size */\nexport class TokenInvalidAccountSizeError extends TokenError {\n    name = 'TokenInvalidAccountSizeError';\n}\n\n/** Thrown if the mint of a token account doesn't match the expected mint */\nexport class TokenInvalidMintError extends TokenError {\n    name = 'TokenInvalidMintError';\n}\n\n/** Thrown if the owner of a token account doesn't match the expected owner */\nexport class TokenInvalidOwnerError extends TokenError {\n    name = 'TokenInvalidOwnerError';\n}\n\n/** Thrown if the owner of a token account is a PDA (Program Derived Address) */\nexport class TokenOwnerOffCurveError extends TokenError {\n    name = 'TokenOwnerOffCurveError';\n}\n\n/** Thrown if an instruction's program is invalid */\nexport class TokenInvalidInstructionProgramError extends TokenError {\n    name = 'TokenInvalidInstructionProgramError';\n}\n\n/** Thrown if an instruction's keys are invalid */\nexport class TokenInvalidInstructionKeysError extends TokenError {\n    name = 'TokenInvalidInstructionKeysError';\n}\n\n/** Thrown if an instruction's data is invalid */\nexport class TokenInvalidInstructionDataError extends TokenError {\n    name = 'TokenInvalidInstructionDataError';\n}\n\n/** Thrown if an instruction's type is invalid */\nexport class TokenInvalidInstructionTypeError extends TokenError {\n    name = 'TokenInvalidInstructionTypeError';\n}\n\n/** Thrown if the program does not support the desired instruction */\nexport class TokenUnsupportedInstructionError extends TokenError {\n    name = 'TokenUnsupportedInstructionError';\n}\n\n/** Thrown if the transfer hook extra accounts contains an invalid account index */\nexport class TokenTransferHookAccountNotFound extends TokenError {\n    name = 'TokenTransferHookAccountNotFound';\n}\n\n/** Thrown if the transfer hook extra accounts contains an invalid seed */\nexport class TokenTransferHookInvalidSeed extends TokenError {\n    name = 'TokenTransferHookInvalidSeed';\n}\n\n/** Thrown if account data required by an extra account meta seed config could not be fetched */\nexport class TokenTransferHookAccountDataNotFound extends TokenError {\n    name = 'TokenTransferHookAccountDataNotFound';\n}\n\n/** Thrown if pubkey data extra accounts config is invalid */\nexport class TokenTransferHookInvalidPubkeyData extends TokenError {\n    name = 'TokenTransferHookInvalidPubkeyData';\n}\n\n/** Thrown if pubkey data source is too small for a pubkey */\nexport class TokenTransferHookPubkeyDataTooSmall extends TokenError {\n    name = 'TokenTransferHookPubkeyDataTooSmall';\n}\n","/** Instructions defined by the program */\nexport enum TokenInstruction {\n    InitializeMint = 0,\n    InitializeAccount = 1,\n    InitializeMultisig = 2,\n    Transfer = 3,\n    Approve = 4,\n    Revoke = 5,\n    SetAuthority = 6,\n    MintTo = 7,\n    Burn = 8,\n    CloseAccount = 9,\n    FreezeAccount = 10,\n    ThawAccount = 11,\n    TransferChecked = 12,\n    ApproveChecked = 13,\n    MintToChecked = 14,\n    BurnChecked = 15,\n    InitializeAccount2 = 16,\n    SyncNative = 17,\n    InitializeAccount3 = 18,\n    InitializeMultisig2 = 19,\n    InitializeMint2 = 20,\n    GetAccountDataSize = 21,\n    InitializeImmutableOwner = 22,\n    AmountToUiAmount = 23,\n    UiAmountToAmount = 24,\n    InitializeMintCloseAuthority = 25,\n    TransferFeeExtension = 26,\n    ConfidentialTransferExtension = 27,\n    DefaultAccountStateExtension = 28,\n    Reallocate = 29,\n    MemoTransferExtension = 30,\n    CreateNativeMint = 31,\n    InitializeNonTransferableMint = 32,\n    InterestBearingMintExtension = 33,\n    CpiGuardExtension = 34,\n    InitializePermanentDelegate = 35,\n    TransferHookExtension = 36,\n    // ConfidentialTransferFeeExtension = 37,\n    // WithdrawalExcessLamports = 38,\n    MetadataPointerExtension = 39,\n    GroupPointerExtension = 40,\n    GroupMemberPointerExtension = 41,\n    // ConfidentialMintBurnExtension = 42,\n    ScaledUiAmountExtension = 43,\n    PausableExtension = 44,\n}\n","import { struct, u32, u8 } from '@solana/buffer-layout';\nimport { bool, publicKey, u64 } from '@solana/buffer-layout-utils';\nimport type { AccountInfo, Commitment, Connection } from '@solana/web3.js';\nimport { PublicKey } from '@solana/web3.js';\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from '../constants.js';\nimport {\n    TokenAccountNotFoundError,\n    TokenInvalidAccountOwnerError,\n    TokenInvalidAccountSizeError,\n    TokenInvalidMintError,\n    TokenOwnerOffCurveError,\n} from '../errors.js';\nimport { ACCOUNT_TYPE_SIZE, AccountType } from '../extensions/accountType.js';\nimport type { ExtensionType } from '../extensions/extensionType.js';\nimport { getMintLen } from '../extensions/extensionType.js';\nimport { ACCOUNT_SIZE } from './account.js';\nimport { MULTISIG_SIZE } from './multisig.js';\n\n/** Information about a mint */\nexport interface Mint {\n    /** Address of the mint */\n    address: PublicKey;\n    /**\n     * Optional authority used to mint new tokens. The mint authority may only be provided during mint creation.\n     * If no mint authority is present then the mint has a fixed supply and no further tokens may be minted.\n     */\n    mintAuthority: PublicKey | null;\n    /** Total supply of tokens */\n    supply: bigint;\n    /** Number of base 10 digits to the right of the decimal place */\n    decimals: number;\n    /** Is this mint initialized */\n    isInitialized: boolean;\n    /** Optional authority to freeze token accounts */\n    freezeAuthority: PublicKey | null;\n    /** Additional data for extension */\n    tlvData: Buffer;\n}\n\n/** Mint as stored by the program */\nexport interface RawMint {\n    mintAuthorityOption: 1 | 0;\n    mintAuthority: PublicKey;\n    supply: bigint;\n    decimals: number;\n    isInitialized: boolean;\n    freezeAuthorityOption: 1 | 0;\n    freezeAuthority: PublicKey;\n}\n\n/** Buffer layout for de/serializing a mint */\nexport const MintLayout = struct<RawMint>([\n    u32('mintAuthorityOption'),\n    publicKey('mintAuthority'),\n    u64('supply'),\n    u8('decimals'),\n    bool('isInitialized'),\n    u32('freezeAuthorityOption'),\n    publicKey('freezeAuthority'),\n]);\n\n/** Byte length of a mint */\nexport const MINT_SIZE = MintLayout.span;\n\n/**\n * Retrieve information about a mint\n *\n * @param connection Connection to use\n * @param address    Mint account\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Mint information\n */\nexport async function getMint(\n    connection: Connection,\n    address: PublicKey,\n    commitment?: Commitment,\n    programId = TOKEN_PROGRAM_ID,\n): Promise<Mint> {\n    const info = await connection.getAccountInfo(address, commitment);\n    return unpackMint(address, info, programId);\n}\n\n/**\n * Unpack a mint\n *\n * @param address   Mint account\n * @param info      Mint account data\n * @param programId SPL Token program account\n *\n * @return Unpacked mint\n */\nexport function unpackMint(address: PublicKey, info: AccountInfo<Buffer> | null, programId = TOKEN_PROGRAM_ID): Mint {\n    if (!info) throw new TokenAccountNotFoundError();\n    if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n    if (info.data.length < MINT_SIZE) throw new TokenInvalidAccountSizeError();\n\n    const rawMint = MintLayout.decode(info.data.slice(0, MINT_SIZE));\n    let tlvData = Buffer.alloc(0);\n    if (info.data.length > MINT_SIZE) {\n        if (info.data.length <= ACCOUNT_SIZE) throw new TokenInvalidAccountSizeError();\n        if (info.data.length === MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n        if (info.data[ACCOUNT_SIZE] != AccountType.Mint) throw new TokenInvalidMintError();\n        tlvData = info.data.slice(ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE);\n    }\n\n    return {\n        address,\n        mintAuthority: rawMint.mintAuthorityOption ? rawMint.mintAuthority : null,\n        supply: rawMint.supply,\n        decimals: rawMint.decimals,\n        isInitialized: rawMint.isInitialized,\n        freezeAuthority: rawMint.freezeAuthorityOption ? rawMint.freezeAuthority : null,\n        tlvData,\n    };\n}\n\n/** Get the minimum lamport balance for a mint to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptMint(\n    connection: Connection,\n    commitment?: Commitment,\n): Promise<number> {\n    return await getMinimumBalanceForRentExemptMintWithExtensions(connection, [], commitment);\n}\n\n/** Get the minimum lamport balance for a rent-exempt mint with extensions\n *\n * @param connection Connection to use\n * @param extensions Extension types included in the mint\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptMintWithExtensions(\n    connection: Connection,\n    extensions: ExtensionType[],\n    commitment?: Commitment,\n): Promise<number> {\n    const mintLen = getMintLen(extensions);\n    return await connection.getMinimumBalanceForRentExemption(mintLen, commitment);\n}\n\n/**\n * Async version of getAssociatedTokenAddressSync\n * For backwards compatibility\n *\n * @param mint                     Token mint account\n * @param owner                    Owner of the new account\n * @param allowOwnerOffCurve       Allow the owner account to be a PDA (Program Derived Address)\n * @param programId                SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Promise containing the address of the associated token account\n */\nexport async function getAssociatedTokenAddress(\n    mint: PublicKey,\n    owner: PublicKey,\n    allowOwnerOffCurve = false,\n    programId = TOKEN_PROGRAM_ID,\n    associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID,\n): Promise<PublicKey> {\n    if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new TokenOwnerOffCurveError();\n\n    const [address] = await PublicKey.findProgramAddress(\n        [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n        associatedTokenProgramId,\n    );\n\n    return address;\n}\n\n/**\n * Get the address of the associated token account for a given mint and owner\n *\n * @param mint                     Token mint account\n * @param owner                    Owner of the new account\n * @param allowOwnerOffCurve       Allow the owner account to be a PDA (Program Derived Address)\n * @param programId                SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Address of the associated token account\n */\nexport function getAssociatedTokenAddressSync(\n    mint: PublicKey,\n    owner: PublicKey,\n    allowOwnerOffCurve = false,\n    programId = TOKEN_PROGRAM_ID,\n    associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID,\n): PublicKey {\n    if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new TokenOwnerOffCurveError();\n\n    const [address] = PublicKey.findProgramAddressSync(\n        [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n        associatedTokenProgramId,\n    );\n\n    return address;\n}\n","export enum AccountType {\n    Uninitialized,\n    Mint,\n    Account,\n}\nexport const ACCOUNT_TYPE_SIZE = 1;\n","import { struct, u32, u8 } from '@solana/buffer-layout';\nimport { publicKey, u64 } from '@solana/buffer-layout-utils';\nimport type { AccountInfo, Commitment, Connection, PublicKey } from '@solana/web3.js';\nimport { TOKEN_PROGRAM_ID } from '../constants.js';\nimport {\n    TokenAccountNotFoundError,\n    TokenInvalidAccountError,\n    TokenInvalidAccountOwnerError,\n    TokenInvalidAccountSizeError,\n} from '../errors.js';\nimport { ACCOUNT_TYPE_SIZE, AccountType } from '../extensions/accountType.js';\nimport type { ExtensionType } from '../extensions/extensionType.js';\nimport { getAccountLen } from '../extensions/extensionType.js';\nimport { MULTISIG_SIZE } from './multisig.js';\n\n/** Information about a token account */\nexport interface Account {\n    /** Address of the account */\n    address: PublicKey;\n    /** Mint associated with the account */\n    mint: PublicKey;\n    /** Owner of the account */\n    owner: PublicKey;\n    /** Number of tokens the account holds */\n    amount: bigint;\n    /** Authority that can transfer tokens from the account */\n    delegate: PublicKey | null;\n    /** Number of tokens the delegate is authorized to transfer */\n    delegatedAmount: bigint;\n    /** True if the account is initialized */\n    isInitialized: boolean;\n    /** True if the account is frozen */\n    isFrozen: boolean;\n    /** True if the account is a native token account */\n    isNative: boolean;\n    /**\n     * If the account is a native token account, it must be rent-exempt. The rent-exempt reserve is the amount that must\n     * remain in the balance until the account is closed.\n     */\n    rentExemptReserve: bigint | null;\n    /** Optional authority to close the account */\n    closeAuthority: PublicKey | null;\n    tlvData: Buffer;\n}\n\n/** Token account state as stored by the program */\nexport enum AccountState {\n    Uninitialized = 0,\n    Initialized = 1,\n    Frozen = 2,\n}\n\n/** Token account as stored by the program */\nexport interface RawAccount {\n    mint: PublicKey;\n    owner: PublicKey;\n    amount: bigint;\n    delegateOption: 1 | 0;\n    delegate: PublicKey;\n    state: AccountState;\n    isNativeOption: 1 | 0;\n    isNative: bigint;\n    delegatedAmount: bigint;\n    closeAuthorityOption: 1 | 0;\n    closeAuthority: PublicKey;\n}\n\n/** Buffer layout for de/serializing a token account */\nexport const AccountLayout = struct<RawAccount>([\n    publicKey('mint'),\n    publicKey('owner'),\n    u64('amount'),\n    u32('delegateOption'),\n    publicKey('delegate'),\n    u8('state'),\n    u32('isNativeOption'),\n    u64('isNative'),\n    u64('delegatedAmount'),\n    u32('closeAuthorityOption'),\n    publicKey('closeAuthority'),\n]);\n\n/** Byte length of a token account */\nexport const ACCOUNT_SIZE = AccountLayout.span;\n\n/**\n * Retrieve information about a token account\n *\n * @param connection Connection to use\n * @param address    Token account\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Token account information\n */\nexport async function getAccount(\n    connection: Connection,\n    address: PublicKey,\n    commitment?: Commitment,\n    programId = TOKEN_PROGRAM_ID,\n): Promise<Account> {\n    const info = await connection.getAccountInfo(address, commitment);\n    return unpackAccount(address, info, programId);\n}\n\n/**\n * Retrieve information about multiple token accounts in a single RPC call\n *\n * @param connection Connection to use\n * @param addresses  Token accounts\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Token account information\n */\nexport async function getMultipleAccounts(\n    connection: Connection,\n    addresses: PublicKey[],\n    commitment?: Commitment,\n    programId = TOKEN_PROGRAM_ID,\n): Promise<Account[]> {\n    const infos = await connection.getMultipleAccountsInfo(addresses, commitment);\n    return addresses.map((address, i) => unpackAccount(address, infos[i], programId));\n}\n\n/** Get the minimum lamport balance for a base token account to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccount(\n    connection: Connection,\n    commitment?: Commitment,\n): Promise<number> {\n    return await getMinimumBalanceForRentExemptAccountWithExtensions(connection, [], commitment);\n}\n\n/** Get the minimum lamport balance for a rent-exempt token account with extensions\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccountWithExtensions(\n    connection: Connection,\n    extensions: ExtensionType[],\n    commitment?: Commitment,\n): Promise<number> {\n    const accountLen = getAccountLen(extensions);\n    return await connection.getMinimumBalanceForRentExemption(accountLen, commitment);\n}\n\n/**\n * Unpack a token account\n *\n * @param address   Token account\n * @param info      Token account data\n * @param programId SPL Token program account\n *\n * @return Unpacked token account\n */\nexport function unpackAccount(\n    address: PublicKey,\n    info: AccountInfo<Buffer> | null,\n    programId = TOKEN_PROGRAM_ID,\n): Account {\n    if (!info) throw new TokenAccountNotFoundError();\n    if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n    if (info.data.length < ACCOUNT_SIZE) throw new TokenInvalidAccountSizeError();\n\n    const rawAccount = AccountLayout.decode(info.data.slice(0, ACCOUNT_SIZE));\n    let tlvData = Buffer.alloc(0);\n    if (info.data.length > ACCOUNT_SIZE) {\n        if (info.data.length === MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n        if (info.data[ACCOUNT_SIZE] != AccountType.Account) throw new TokenInvalidAccountError();\n        tlvData = info.data.slice(ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE);\n    }\n\n    return {\n        address,\n        mint: rawAccount.mint,\n        owner: rawAccount.owner,\n        amount: rawAccount.amount,\n        delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\n        delegatedAmount: rawAccount.delegatedAmount,\n        isInitialized: rawAccount.state !== AccountState.Uninitialized,\n        isFrozen: rawAccount.state === AccountState.Frozen,\n        isNative: !!rawAccount.isNativeOption,\n        rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\n        closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\n        tlvData,\n    };\n}\n","import { struct, u8 } from '@solana/buffer-layout';\nimport { bool, publicKey } from '@solana/buffer-layout-utils';\nimport type { AccountInfo, Commitment, Connection, PublicKey } from '@solana/web3.js';\nimport { TOKEN_PROGRAM_ID } from '../constants.js';\nimport { TokenAccountNotFoundError, TokenInvalidAccountOwnerError, TokenInvalidAccountSizeError } from '../errors.js';\n\n/** Information about a multisig */\nexport interface Multisig {\n    /** Address of the multisig */\n    address: PublicKey;\n    /** Number of signers required */\n    m: number;\n    /** Number of possible signers, corresponds to the number of `signers` that are valid */\n    n: number;\n    /** Is this mint initialized */\n    isInitialized: boolean;\n    /** Full set of signers, of which `n` are valid */\n    signer1: PublicKey;\n    signer2: PublicKey;\n    signer3: PublicKey;\n    signer4: PublicKey;\n    signer5: PublicKey;\n    signer6: PublicKey;\n    signer7: PublicKey;\n    signer8: PublicKey;\n    signer9: PublicKey;\n    signer10: PublicKey;\n    signer11: PublicKey;\n}\n\n/** Multisig as stored by the program */\nexport type RawMultisig = Omit<Multisig, 'address'>;\n\n/** Buffer layout for de/serializing a multisig */\nexport const MultisigLayout = struct<RawMultisig>([\n    u8('m'),\n    u8('n'),\n    bool('isInitialized'),\n    publicKey('signer1'),\n    publicKey('signer2'),\n    publicKey('signer3'),\n    publicKey('signer4'),\n    publicKey('signer5'),\n    publicKey('signer6'),\n    publicKey('signer7'),\n    publicKey('signer8'),\n    publicKey('signer9'),\n    publicKey('signer10'),\n    publicKey('signer11'),\n]);\n\n/** Byte length of a multisig */\nexport const MULTISIG_SIZE = MultisigLayout.span;\n\n/**\n * Retrieve information about a multisig\n *\n * @param connection Connection to use\n * @param address    Multisig account\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Multisig information\n */\nexport async function getMultisig(\n    connection: Connection,\n    address: PublicKey,\n    commitment?: Commitment,\n    programId = TOKEN_PROGRAM_ID,\n): Promise<Multisig> {\n    const info = await connection.getAccountInfo(address, commitment);\n    return unpackMultisig(address, info, programId);\n}\n\n/**\n * Unpack a multisig\n *\n * @param address   Multisig account\n * @param info      Multisig account data\n * @param programId SPL Token program account\n *\n * @return Unpacked multisig\n */\nexport function unpackMultisig(\n    address: PublicKey,\n    info: AccountInfo<Buffer> | null,\n    programId = TOKEN_PROGRAM_ID,\n): Multisig {\n    if (!info) throw new TokenAccountNotFoundError();\n    if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n    if (info.data.length != MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n\n    const multisig = MultisigLayout.decode(info.data);\n\n    return { address, ...multisig };\n}\n\n/** Get the minimum lamport balance for a multisig to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptMultisig(\n    connection: Connection,\n    commitment?: Commitment,\n): Promise<number> {\n    return await connection.getMinimumBalanceForRentExemption(MULTISIG_SIZE, commitment);\n}\n","import type { AccountMeta, Signer } from '@solana/web3.js';\nimport { PublicKey } from '@solana/web3.js';\n\n/** @internal */\nexport function addSigners(\n    keys: AccountMeta[],\n    ownerOrAuthority: PublicKey,\n    multiSigners: (Signer | PublicKey)[],\n): AccountMeta[] {\n    if (multiSigners.length) {\n        keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false });\n        for (const signer of multiSigners) {\n            keys.push({\n                pubkey: signer instanceof PublicKey ? signer : signer.publicKey,\n                isSigner: true,\n                isWritable: false,\n            });\n        }\n    } else {\n        keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false });\n    }\n    return keys;\n}\n","import { struct, u8 } from '@solana/buffer-layout';\nimport { u64 } from '@solana/buffer-layout-utils';\nimport type { AccountMeta, PublicKey, Signer } from '@solana/web3.js';\nimport { TransactionInstruction } from '@solana/web3.js';\nimport { TOKEN_PROGRAM_ID } from '../constants.js';\nimport {\n    TokenInvalidInstructionDataError,\n    TokenInvalidInstructionKeysError,\n    TokenInvalidInstructionProgramError,\n    TokenInvalidInstructionTypeError,\n} from '../errors.js';\nimport { addSigners } from './internal.js';\nimport { TokenInstruction } from './types.js';\n\n/** TODO: docs */\nexport interface TransferCheckedInstructionData {\n    instruction: TokenInstruction.TransferChecked;\n    amount: bigint;\n    decimals: number;\n}\n\n/** TODO: docs */\nexport const transferCheckedInstructionData = struct<TransferCheckedInstructionData>([\n    u8('instruction'),\n    u64('amount'),\n    u8('decimals'),\n]);\n\n/**\n * Construct a TransferChecked instruction\n *\n * @param source       Source account\n * @param mint         Mint account\n * @param destination  Destination account\n * @param owner        Owner of the source account\n * @param amount       Number of tokens to transfer\n * @param decimals     Number of decimals in transfer amount\n * @param multiSigners Signing accounts if `owner` is a multisig\n * @param programId    SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createTransferCheckedInstruction(\n    source: PublicKey,\n    mint: PublicKey,\n    destination: PublicKey,\n    owner: PublicKey,\n    amount: number | bigint,\n    decimals: number,\n    multiSigners: (Signer | PublicKey)[] = [],\n    programId = TOKEN_PROGRAM_ID,\n): TransactionInstruction {\n    const keys = addSigners(\n        [\n            { pubkey: source, isSigner: false, isWritable: true },\n            { pubkey: mint, isSigner: false, isWritable: false },\n            { pubkey: destination, isSigner: false, isWritable: true },\n        ],\n        owner,\n        multiSigners,\n    );\n\n    const data = Buffer.alloc(transferCheckedInstructionData.span);\n    transferCheckedInstructionData.encode(\n        {\n            instruction: TokenInstruction.TransferChecked,\n            amount: BigInt(amount),\n            decimals,\n        },\n        data,\n    );\n\n    return new TransactionInstruction({ keys, programId, data });\n}\n\n/** A decoded, valid TransferChecked instruction */\nexport interface DecodedTransferCheckedInstruction {\n    programId: PublicKey;\n    keys: {\n        source: AccountMeta;\n        mint: AccountMeta;\n        destination: AccountMeta;\n        owner: AccountMeta;\n        multiSigners: AccountMeta[];\n    };\n    data: {\n        instruction: TokenInstruction.TransferChecked;\n        amount: bigint;\n        decimals: number;\n    };\n}\n\n/**\n * Decode a TransferChecked instruction and validate it\n *\n * @param instruction Transaction instruction to decode\n * @param programId   SPL Token program account\n *\n * @return Decoded, valid instruction\n */\nexport function decodeTransferCheckedInstruction(\n    instruction: TransactionInstruction,\n    programId = TOKEN_PROGRAM_ID,\n): DecodedTransferCheckedInstruction {\n    if (!instruction.programId.equals(programId)) throw new TokenInvalidInstructionProgramError();\n    if (instruction.data.length !== transferCheckedInstructionData.span) throw new TokenInvalidInstructionDataError();\n\n    const {\n        keys: { source, mint, destination, owner, multiSigners },\n        data,\n    } = decodeTransferCheckedInstructionUnchecked(instruction);\n    if (data.instruction !== TokenInstruction.TransferChecked) throw new TokenInvalidInstructionTypeError();\n    if (!source || !mint || !destination || !owner) throw new TokenInvalidInstructionKeysError();\n\n    // TODO: key checks?\n\n    return {\n        programId,\n        keys: {\n            source,\n            mint,\n            destination,\n            owner,\n            multiSigners,\n        },\n        data,\n    };\n}\n\n/** A decoded, non-validated TransferChecked instruction */\nexport interface DecodedTransferCheckedInstructionUnchecked {\n    programId: PublicKey;\n    keys: {\n        source: AccountMeta | undefined;\n        mint: AccountMeta | undefined;\n        destination: AccountMeta | undefined;\n        owner: AccountMeta | undefined;\n        multiSigners: AccountMeta[];\n    };\n    data: {\n        instruction: number;\n        amount: bigint;\n        decimals: number;\n    };\n}\n\n/**\n * Decode a TransferChecked instruction without validating it\n *\n * @param instruction Transaction instruction to decode\n *\n * @return Decoded, non-validated instruction\n */\nexport function decodeTransferCheckedInstructionUnchecked({\n    programId,\n    keys: [source, mint, destination, owner, ...multiSigners],\n    data,\n}: TransactionInstruction): DecodedTransferCheckedInstructionUnchecked {\n    return {\n        programId,\n        keys: {\n            source,\n            mint,\n            destination,\n            owner,\n            multiSigners,\n        },\n        data: transferCheckedInstructionData.decode(data),\n    };\n}\n","// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n  if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n  const BASE_MAP = new Uint8Array(256)\n  for (let j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255\n  }\n  for (let i = 0; i < ALPHABET.length; i++) {\n    const x = ALPHABET.charAt(i)\n    const xc = x.charCodeAt(0)\n    if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n    BASE_MAP[xc] = i\n  }\n  const BASE = ALPHABET.length\n  const LEADER = ALPHABET.charAt(0)\n  const FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n  const iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n  function encode (source) {\n    // eslint-disable-next-line no-empty\n    if (source instanceof Uint8Array) { } else if (ArrayBuffer.isView(source)) {\n      source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n    } else if (Array.isArray(source)) {\n      source = Uint8Array.from(source)\n    }\n    if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n    if (source.length === 0) { return '' }\n    // Skip & count leading zeroes.\n    let zeroes = 0\n    let length = 0\n    let pbegin = 0\n    const pend = source.length\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++\n      zeroes++\n    }\n    // Allocate enough space in big-endian base58 representation.\n    const size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n    const b58 = new Uint8Array(size)\n    // Process the bytes.\n    while (pbegin !== pend) {\n      let carry = source[pbegin]\n      // Apply \"b58 = b58 * 256 + ch\".\n      let i = 0\n      for (let it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n        carry += (256 * b58[it1]) >>> 0\n        b58[it1] = (carry % BASE) >>> 0\n        carry = (carry / BASE) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      pbegin++\n    }\n    // Skip leading zeroes in base58 result.\n    let it2 = size - length\n    while (it2 !== size && b58[it2] === 0) {\n      it2++\n    }\n    // Translate the result into a string.\n    let str = LEADER.repeat(zeroes)\n    for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n    return str\n  }\n  function decodeUnsafe (source) {\n    if (typeof source !== 'string') { throw new TypeError('Expected String') }\n    if (source.length === 0) { return new Uint8Array() }\n    let psz = 0\n    // Skip and count leading '1's.\n    let zeroes = 0\n    let length = 0\n    while (source[psz] === LEADER) {\n      zeroes++\n      psz++\n    }\n    // Allocate enough space in big-endian base256 representation.\n    const size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n    const b256 = new Uint8Array(size)\n    // Process the characters.\n    while (psz < source.length) {\n      // Find code of next character\n      const charCode = source.charCodeAt(psz)\n      // Base map can not be indexed using char code\n      if (charCode > 255) { return }\n      // Decode character\n      let carry = BASE_MAP[charCode]\n      // Invalid character\n      if (carry === 255) { return }\n      let i = 0\n      for (let it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n        carry += (BASE * b256[it3]) >>> 0\n        b256[it3] = (carry % 256) >>> 0\n        carry = (carry / 256) >>> 0\n      }\n      if (carry !== 0) { throw new Error('Non-zero carry') }\n      length = i\n      psz++\n    }\n    // Skip leading zeroes in b256.\n    let it4 = size - length\n    while (it4 !== size && b256[it4] === 0) {\n      it4++\n    }\n    const vch = new Uint8Array(zeroes + (size - it4))\n    let j = zeroes\n    while (it4 !== size) {\n      vch[j++] = b256[it4++]\n    }\n    return vch\n  }\n  function decode (string) {\n    const buffer = decodeUnsafe(string)\n    if (buffer) { return buffer }\n    throw new Error('Non-base' + BASE + ' character')\n  }\n  return {\n    encode,\n    decodeUnsafe,\n    decode\n  }\n}\nexport default base\n","import basex from 'base-x';\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nexport default basex(ALPHABET);\n","import type { X402PaymentRequirements } from './x402-types';\nimport type { NodeSolanaSigner } from '../types';\nimport {\n  Keypair,\n  PublicKey,\n  Connection,\n  VersionedTransaction,\n  TransactionMessage,\n  ComputeBudgetProgram,\n} from '@solana/web3.js';\nimport {\n  TOKEN_PROGRAM_ID,\n  TOKEN_2022_PROGRAM_ID,\n  getMint,\n  getAssociatedTokenAddressSync,\n  createTransferCheckedInstruction,\n} from '@solana/spl-token';\nimport bs58 from 'bs58';\n\nfunction getDefaultSolanaRpc(network: string): string {\n  return network === 'solana'\n    ? 'https://api.mainnet-beta.solana.com'\n    : 'https://api.devnet.solana.com';\n}\n\n/**\n * Generate a SOL x402 payment header from server-provided requirements using a Node signer.\n * Returns a base64-encoded JSON string suitable for the X-PAYMENT header.\n */\nexport async function generateSolanaX402PaymentFromRequirement(\n  requirement: X402PaymentRequirements,\n  signer: NodeSolanaSigner\n): Promise<string> {\n  const network = requirement.network as 'solana' | 'solana-devnet';\n  const endpoint = signer.rpcUrl || getDefaultSolanaRpc(network);\n  const connection = new Connection(endpoint, 'confirmed');\n\n  const secretKey = bs58.decode(signer.secretKeyBase58);\n  const user = Keypair.fromSecretKey(secretKey);\n\n  const mint = new PublicKey(requirement.asset);\n  const payToOwner = new PublicKey(requirement.payTo);\n  const feePayer = requirement.extra?.feePayer\n    ? new PublicKey(requirement.extra.feePayer)\n    : undefined;\n  if (!feePayer) {\n    throw new Error('SOL requirement missing extra.feePayer');\n  }\n\n  // Detect token program based on mint owner\n  const mintInfo = await connection.getAccountInfo(mint);\n  const programId =\n    mintInfo && 'owner' in mintInfo && (mintInfo as any).owner\n      ? ((mintInfo as any).owner as any).equals(TOKEN_2022_PROGRAM_ID)\n        ? TOKEN_2022_PROGRAM_ID\n        : TOKEN_PROGRAM_ID\n      : TOKEN_PROGRAM_ID;\n\n  const mintState = await getMint(connection, mint, 'confirmed', programId);\n  const decimals = mintState.decimals ?? 6;\n\n  const userAta = getAssociatedTokenAddressSync(\n    mint,\n    user.publicKey,\n    false,\n    programId\n  );\n  const destAta = getAssociatedTokenAddressSync(\n    mint,\n    payToOwner,\n    false,\n    programId\n  );\n\n  const userAtaInfo = await connection.getAccountInfo(userAta);\n  if (!userAtaInfo) {\n    throw new Error('Source ATA missing. Ensure the user holds this token.');\n  }\n\n  const ix: any[] = [];\n  ix.push(ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }));\n  ix.push(ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 1_000 }));\n\n  const amountU64 = BigInt(requirement.maxAmountRequired);\n  ix.push(\n    createTransferCheckedInstruction(\n      userAta,\n      mint,\n      destAta,\n      user.publicKey,\n      amountU64,\n      decimals,\n      [],\n      programId\n    )\n  );\n\n  const { blockhash } = await connection.getLatestBlockhash();\n  const msg = new TransactionMessage({\n    payerKey: feePayer,\n    recentBlockhash: blockhash,\n    instructions: ix,\n  }).compileToV0Message();\n\n  const tx = new VersionedTransaction(msg);\n  tx.sign([user]);\n\n  const serialized = Buffer.from(tx.serialize());\n  const txBase64 = serialized.toString('base64');\n\n  const payload = {\n    x402Version: 1,\n    scheme: 'exact' as const,\n    network,\n    payload: { transaction: txBase64 },\n  };\n\n  const json = JSON.stringify(payload);\n  return Buffer.from(json, 'utf8').toString('base64');\n}\n","/**\n * X402 fetch wrapper - handles automatic payment flow\n */\n\nimport type { Account } from 'viem';\nimport type { DreamsRouterPaymentConfig, SolanaSigner } from '../types';\nimport type { X402PaymentRequirements } from './x402-types';\nimport { PaymentCache } from '../utils/payment-cache';\nimport { generateX402PaymentFromRequirement } from './x402-payment-utils';\nimport { generateSolanaX402PaymentFromRequirement } from './x402-solana-utils';\n\nexport interface X402FetchWrapperOptions {\n  baseFetch?: typeof fetch;\n  payment?: DreamsRouterPaymentConfig;\n  signer?: Account;\n  solanaSigner?: SolanaSigner;\n}\n\nexport class X402FetchWrapper {\n  private cache = new PaymentCache();\n\n  constructor(private options: X402FetchWrapperOptions) {}\n\n  /**\n   * Merge headers from different sources\n   */\n  private mergeHeaders(\n    base: HeadersInit | undefined,\n    extra: Record<string, string>\n  ): Record<string, string> {\n    const out: Record<string, string> = {};\n    if (base instanceof Headers) {\n      base.forEach((v, k) => (out[k] = v));\n    } else if (Array.isArray(base)) {\n      for (const [k, v] of base) out[k] = v;\n    } else if (base) {\n      Object.assign(out, base as Record<string, string>);\n    }\n    Object.assign(out, extra);\n    return out;\n  }\n\n  /**\n   * Parse payment requirements from 402 response\n   */\n  private async parseRequirementFromResponse(\n    res: Response\n  ): Promise<X402PaymentRequirements | null> {\n    const header = res.headers.get('x-payment-required');\n    if (header) {\n      try {\n        return JSON.parse(header) as X402PaymentRequirements;\n      } catch {}\n    }\n\n    return null;\n  }\n\n  /**\n   * Generate x402 payment from requirements\n   */\n  private async generatePayment(\n    requirement: X402PaymentRequirements\n  ): Promise<string | null> {\n    try {\n      if (requirement.network.startsWith('solana')) {\n        if (!this.options.solanaSigner) {\n          throw new Error('Solana signer is required for SOL payments');\n        }\n        return await generateSolanaX402PaymentFromRequirement(\n          requirement,\n          this.options.solanaSigner\n        );\n      } else {\n        if (!this.options.signer) {\n          throw new Error('EVM signer is required for EVM payments');\n        }\n        return await generateX402PaymentFromRequirement(\n          this.options.signer,\n          requirement,\n          { validityDuration: this.options.payment?.validityDuration }\n        );\n      }\n    } catch (err) {\n      console.error('Failed to generate x402 payment:', err);\n      return null;\n    }\n  }\n\n  /**\n   * Convert URL/Request to string for cache key generation\n   */\n  private getUrlString(url: string | URL | Request): string {\n    if (typeof url === 'string') return url;\n    if (url instanceof URL) return url.toString();\n    if (url instanceof Request) return url.url;\n    return String(url);\n  }\n\n  /**\n   * Try to use cached payment requirement for eager payment\n   */\n  private async tryEagerPayment(\n    url: string | URL | Request,\n    init?: RequestInit\n  ): Promise<{ url: string | URL | Request; init?: RequestInit } | null> {\n    if (!this.options.payment || this.options.payment.mode !== 'eager') {\n      return null;\n    }\n\n    const urlString = this.getUrlString(url);\n    const cached = this.cache.get(\n      urlString,\n      init,\n      this.options.payment.network\n    );\n    if (!cached) {\n      return null;\n    }\n\n    const x402Payment = await this.generatePayment(cached);\n    if (!x402Payment) {\n      return null;\n    }\n\n    const headers = this.mergeHeaders(init?.headers, {\n      'x-payment': x402Payment,\n    });\n    return { url, init: { ...init, headers } };\n  }\n\n  /**\n   * Main fetch wrapper that handles x402 flow\n   */\n  async fetch(\n    url: string | URL | Request,\n    init?: RequestInit\n  ): Promise<Response> {\n    const baseFetch = this.options.baseFetch || fetch;\n    let headers = this.mergeHeaders(init?.headers, {});\n\n    // Add preferred network hint if configured\n    if (this.options.payment?.network && !headers['x-payment-network']) {\n      headers['x-payment-network'] = this.options.payment.network;\n    }\n\n    // Try eager payment first\n    const eagerResult = await this.tryEagerPayment(url, { ...init, headers });\n    let firstResponse: Response;\n\n    if (eagerResult) {\n      firstResponse = await baseFetch(eagerResult.url, eagerResult.init);\n    } else {\n      firstResponse = await baseFetch(url, { ...init, headers });\n    }\n\n    // If not 402, return as-is\n    if (firstResponse.status !== 402) {\n      return firstResponse;\n    }\n\n    // Parse payment requirements\n    const requirement = await this.parseRequirementFromResponse(firstResponse);\n    if (!requirement) {\n      return firstResponse; // Can't handle this 402\n    }\n\n    // Generate payment\n    const x402Payment = await this.generatePayment(requirement);\n    if (!x402Payment) {\n      return firstResponse; // Payment generation failed\n    }\n\n    // Cache requirement for future use\n    const urlString = this.getUrlString(url);\n    this.cache.set(\n      urlString,\n      requirement,\n      init,\n      this.options.payment?.network,\n      this.options.payment?.validityDuration\n    );\n\n    // Retry with payment\n    const retryHeaders = this.mergeHeaders(init?.headers, {\n      'x-payment': x402Payment,\n    });\n\n    return baseFetch(url, { ...init, headers: retryHeaders });\n  }\n\n  /**\n   * Clear payment cache\n   */\n  clearCache(): void {\n    this.cache.clear();\n  }\n\n  /**\n   * Get cache size for testing\n   */\n  getCacheSize(): number {\n    return this.cache.size();\n  }\n}\n","import type {\n  OpenRouterChatModelId,\n  OpenRouterChatSettings,\n} from './types/openrouter-chat-settings';\nimport type {\n  OpenRouterCompletionModelId,\n  OpenRouterCompletionSettings,\n} from './types/openrouter-completion-settings';\n\nimport { loadApiKey, withoutTrailingSlash } from '@ai-sdk/provider-utils';\nimport { OpenRouterChatLanguageModel } from './chat';\nimport { OpenRouterCompletionLanguageModel } from './completion';\nimport { X402FetchWrapper } from './wallet/x402-fetch-wrapper';\nimport type { DreamsRouterPaymentConfig, SolanaSigner } from './types';\nimport type { Account } from 'viem';\n\nexport type { OpenRouterCompletionSettings };\n\nexport interface DreamsRouterProvider {\n  (\n    modelId: OpenRouterChatModelId,\n    settings?: OpenRouterCompletionSettings\n  ): OpenRouterCompletionLanguageModel;\n  (\n    modelId: OpenRouterChatModelId,\n    settings?: OpenRouterChatSettings\n  ): OpenRouterChatLanguageModel;\n\n  languageModel(\n    modelId: OpenRouterChatModelId,\n    settings?: OpenRouterCompletionSettings\n  ): OpenRouterCompletionLanguageModel;\n  languageModel(\n    modelId: OpenRouterChatModelId,\n    settings?: OpenRouterChatSettings\n  ): OpenRouterChatLanguageModel;\n\n  /**\nCreates an OpenRouter chat model for text generation.\n   */\n  chat(\n    modelId: OpenRouterChatModelId,\n    settings?: OpenRouterChatSettings\n  ): OpenRouterChatLanguageModel;\n\n  /**\nCreates an OpenRouter completion model for text generation.\n   */\n  completion(\n    modelId: OpenRouterCompletionModelId,\n    settings?: OpenRouterCompletionSettings\n  ): OpenRouterCompletionLanguageModel;\n}\n\nexport interface DreamsRouterProviderSettings {\n  /**\nBase URL for the OpenRouter API calls.\n     */\n  baseURL?: string;\n\n  /**\n@deprecated Use `baseURL` instead.\n     */\n  baseUrl?: string;\n\n  /**\n  API key for authenticating requests. JWT or API key.\n     */\n  apiKey?: string;\n\n  /**\nCustom headers to include in the requests.\n     */\n  headers?: Record<string, string>;\n\n  /**\nOpenRouter compatibility mode. Should be set to `strict` when using the OpenRouter API,\nand `compatible` when using 3rd party providers. In `compatible` mode, newer\ninformation such as streamOptions are not being sent. Defaults to 'compatible'.\n   */\n  compatibility?: 'strict' | 'compatible';\n\n  /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n    */\n  fetch?: typeof fetch;\n\n  /**\nA JSON object to send as the request body to access OpenRouter features & upstream provider features.\n  */\n  extraBody?: Record<string, unknown>;\n\n  /**\n   * Payment configuration for x402 payments. When provided, the SDK will automatically\n   * generate x402 payment signatures for each request.\n   * Note: This is used internally by wallet auth utils. Use createDreamsRouterAuth() for easier setup.\n   */\n  payment?: DreamsRouterPaymentConfig;\n\n  /**\n   * Account for generating x402 payments. Used internally by wallet auth utils.\n   */\n  signer?: Account;\n\n  /**\n   * Solana signer for SOL x402 payments (Node environments only, for now).\n   */\n  solanaSigner?: SolanaSigner;\n}\n\n/**\nCreate a Dreams router provider instance.\n */\nfunction createDreamsRouterBase(\n  options: DreamsRouterProviderSettings = {}\n): DreamsRouterProvider {\n  const baseURL =\n    withoutTrailingSlash(options.baseURL ?? options.baseUrl) ??\n    'https://api-beta.daydreams.systems/v1';\n\n  // we default to compatible, because strict breaks providers like Groq:\n  const compatibility = options.compatibility ?? 'compatible';\n\n  const getHeaders = () => {\n    const headers: Record<string, string> = { ...options.headers };\n\n    // Only add Authorization header if we have an API key\n    if (options.apiKey !== undefined) {\n      headers.Authorization = `Bearer ${loadApiKey({\n        apiKey: options.apiKey,\n        environmentVariableName: 'DREAMSROUTER_API_KEY',\n        description:\n          'Dreams Router. This can be an API key or a session token.',\n      })}`;\n    }\n\n    return headers;\n  };\n\n  // Create x402 fetch wrapper if payment is enabled\n  const x402Wrapper = options.payment\n    ? new X402FetchWrapper({\n        baseFetch: options.fetch,\n        payment: options.payment,\n        signer: options.signer,\n        solanaSigner: options.solanaSigner,\n      })\n    : null;\n\n  const customFetch = x402Wrapper\n    ? (url: string | URL | Request, init?: RequestInit) =>\n        x402Wrapper.fetch(url, init)\n    : options.fetch;\n\n  const createChatModel = (\n    modelId: OpenRouterChatModelId,\n    settings: OpenRouterChatSettings = {}\n  ) =>\n    new OpenRouterChatLanguageModel(modelId, settings, {\n      provider: 'openrouter.chat',\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      compatibility,\n      fetch: customFetch,\n      extraBody: options.extraBody,\n    });\n\n  const createCompletionModel = (\n    modelId: OpenRouterCompletionModelId,\n    settings: OpenRouterCompletionSettings = {}\n  ) =>\n    new OpenRouterCompletionLanguageModel(modelId, settings, {\n      provider: 'openrouter.completion',\n      url: ({ path }) => `${baseURL}${path}`,\n      headers: getHeaders,\n      compatibility,\n      fetch: customFetch,\n      extraBody: options.extraBody,\n    });\n\n  const createLanguageModel = (\n    modelId: OpenRouterChatModelId | OpenRouterCompletionModelId,\n    settings?: OpenRouterChatSettings | OpenRouterCompletionSettings\n  ) => {\n    if (new.target) {\n      throw new Error(\n        'The OpenRouter model function cannot be called with the new keyword.'\n      );\n    }\n\n    if (modelId === 'openai/gpt-3.5-turbo-instruct') {\n      return createCompletionModel(\n        modelId,\n        settings as OpenRouterCompletionSettings\n      );\n    }\n\n    return createChatModel(modelId, settings as OpenRouterChatSettings);\n  };\n\n  const provider = (\n    modelId: OpenRouterChatModelId | OpenRouterCompletionModelId,\n    settings?: OpenRouterChatSettings | OpenRouterCompletionSettings\n  ) => createLanguageModel(modelId, settings);\n\n  provider.languageModel = createLanguageModel;\n  provider.chat = createChatModel;\n  provider.completion = createCompletionModel;\n\n  return provider as DreamsRouterProvider;\n}\n\n// Namespace pattern implementation\ninterface CreateDreamsRouterNamespace {\n  (): DreamsRouterProvider;\n  (options: DreamsRouterProviderSettings): DreamsRouterProvider;\n\n  evm(\n    signer: Account,\n    options?: Omit<DreamsRouterProviderSettings, 'signer' | 'apiKey'> & {\n      network?: 'base' | 'base-sepolia';\n      validityDuration?: number;\n    }\n  ): DreamsRouterProvider;\n\n  solana(\n    solanaSigner: SolanaSigner,\n    options?: Omit<DreamsRouterProviderSettings, 'solanaSigner' | 'apiKey'> & {\n      network?: 'solana' | 'solana-devnet';\n      validityDuration?: number;\n    }\n  ): DreamsRouterProvider;\n}\n\n// Create the main function with namespace methods attached\nconst createDreamsRouterWithNamespace = ((\n  options: DreamsRouterProviderSettings = {}\n) => {\n  return createDreamsRouterBase(options);\n}) as CreateDreamsRouterNamespace;\n\n// Attach namespace methods\ncreateDreamsRouterWithNamespace.evm = (\n  signer: Account,\n  options: Omit<DreamsRouterProviderSettings, 'signer' | 'apiKey'> & {\n    network?: 'base' | 'base-sepolia';\n    validityDuration?: number;\n  } = {}\n): DreamsRouterProvider => {\n  return createDreamsRouterBase({\n    ...options,\n    apiKey: undefined, // No API key required\n    signer,\n    payment: {\n      network: options.network || 'base-sepolia',\n      validityDuration: options.validityDuration || 600,\n      mode: 'lazy',\n    },\n    headers: {\n      ...options.headers,\n      // Don't include Authorization header since we're using wallet payments\n    },\n  });\n};\n\ncreateDreamsRouterWithNamespace.solana = (\n  solanaSigner: SolanaSigner,\n  options: Omit<DreamsRouterProviderSettings, 'solanaSigner' | 'apiKey'> & {\n    network?: 'solana' | 'solana-devnet';\n    validityDuration?: number;\n  } = {}\n): DreamsRouterProvider => {\n  return createDreamsRouterBase({\n    ...options,\n    apiKey: undefined, // No API key required\n    solanaSigner,\n    payment: {\n      network: options.network || 'solana-devnet',\n      validityDuration: options.validityDuration || 600,\n      mode: 'lazy',\n    },\n    headers: {\n      ...options.headers,\n      // Don't include Authorization header since we're using wallet payments\n    },\n  });\n};\n\n// Export the namespace function\nexport { createDreamsRouterWithNamespace as createDreamsRouter };\n\n/**\nDefault Dreams router provider instance. It uses 'strict' compatibility mode.\n */\nexport const dreamsrouter = createDreamsRouterWithNamespace({\n  compatibility: 'strict', // strict for Dreams Router API\n});\n","/**\n * Unified account types for Dreams Router\n * Supports both EVM (viem Account) and Solana signers\n */\n\nimport type { Account } from 'viem';\n\n// Solana account interface (similar to viem's Account)\nexport interface SolanaAccount {\n  /** Account type identifier */\n  type: 'solana';\n  /** Solana public key (base58) */\n  publicKey: string;\n  /** Sign a message */\n  signMessage?: (message: { message: string }) => Promise<string>;\n  /** Sign a transaction */\n  signTransaction?: (transaction: any) => Promise<any>;\n  /** Optional RPC URL for Solana */\n  rpcUrl?: string;\n}\n\n// Remove NodeSolanaAccount - no longer needed\n\n// EVM Account wrapper to add type identification\nexport interface EVMAccount {\n  type: 'evm';\n  address: `0x${string}`;\n  signMessage?: (message: { message: string }) => Promise<`0x${string}`>;\n  signTransaction?: (transaction: any) => Promise<any>;\n  signTypedData?: (typedData: any) => Promise<`0x${string}`>;\n  // Include other essential Account properties\n  [key: string]: any;\n}\n\n// Unified account type\nexport type UnifiedAccount = EVMAccount | SolanaAccount;\n\n/**\n * Type guard to check if account is EVM\n */\nexport function isEVMAccount(account: UnifiedAccount): account is EVMAccount {\n  return account.type === 'evm' || 'address' in account;\n}\n\n/**\n * Type guard to check if account is Solana\n */\nexport function isSolanaAccount(\n  account: UnifiedAccount\n): account is SolanaAccount {\n  return account.type === 'solana' || 'publicKey' in account;\n}\n\n// Remove isNodeSolanaAccount - no longer needed\n\n/**\n * Create an EVM account wrapper\n */\nexport function createEVMAccount(account: Account): EVMAccount {\n  return {\n    ...account,\n    type: 'evm' as const, // Ensure type is overridden\n    address: account.address,\n    signMessage: account.signMessage,\n    signTransaction: account.signTransaction,\n    signTypedData: account.signTypedData,\n  };\n}\n\n/**\n * Create a Solana account for browser environments\n */\nexport function createSolanaAccount(\n  publicKey: string,\n  signMessage?: (message: { message: string }) => Promise<string>\n): SolanaAccount {\n  return {\n    type: 'solana',\n    publicKey,\n    signMessage,\n  };\n}\n\n// Remove createNodeSolanaAccount - no longer needed for backwards compatibility\n\n/**\n * Auto-detect account type and wrap if needed\n */\nexport function wrapAccount(\n  account: Account | SolanaAccount | UnifiedAccount\n): UnifiedAccount {\n  // Check if it's a viem Account (has address)\n  if ('address' in account) {\n    return createEVMAccount(account as Account);\n  }\n\n  // Check if it's a Solana account (has publicKey)\n  if ('publicKey' in account) {\n    return account as SolanaAccount;\n  }\n\n  throw new Error(\n    'Unable to determine account type. Account must be either EVM (viem Account) or Solana account.'\n  );\n}\n\n/**\n * Get account identifier (address for EVM, publicKey for Solana)\n */\nexport function getAccountIdentifier(account: UnifiedAccount): string {\n  if (isEVMAccount(account)) {\n    return account.address;\n  } else if (isSolanaAccount(account)) {\n    return account.publicKey;\n  }\n  throw new Error('Unknown account type');\n}\n\n/**\n * Get preferred network based on account type\n */\nexport function getPreferredNetwork(account: UnifiedAccount): string {\n  if (isEVMAccount(account)) {\n    return 'base-sepolia'; // Default EVM network\n  } else if (isSolanaAccount(account)) {\n    return 'solana-devnet'; // Default Solana network\n  }\n  throw new Error('Unknown account type');\n}\n","/**\n * Dreams Router API Client\n * Provides access to Dreams Router API endpoints with authentication support\n */\n\nexport interface ApiResponse<T = any> {\n  success: boolean;\n  data?: T;\n  user?: User;\n  apiKey?: string;\n  sessionToken?: string;\n  usageHistory?: UsageLog[];\n  statistics?: UsageStats;\n  summary?: UsageSummary;\n  models?: ModelConfig[];\n  stats?: ModelStats;\n  providers?: ModelProvider[];\n  categories?: ModelCategory[];\n  recommendations?: ModelRecommendationResponse;\n  error?: string;\n  amountCredited?: number;\n  newBalance?: number;\n  balance?: number;\n  userId?: string;\n  walletAddress?: string;\n  exists?: boolean;\n  lastSeen?: number;\n  message?: string;\n  instructions?: any;\n}\n\nexport interface User {\n  id: string;\n  walletAddress?: string;\n  balance: number;\n  authMethod: 'api-key' | 'wallet' | 'password' | 'github';\n  createdAt: number;\n  updatedAt: number;\n  name?: string;\n  email?: string;\n  emailVerified?: boolean;\n  githubId?: string;\n  githubUsername?: string;\n  githubLinkedAt?: number | null;\n  lastSeen?: number;\n}\n\nexport interface UsageLog {\n  id: string;\n  userId: string;\n  model: string;\n  promptTokens: number;\n  completionTokens: number;\n  totalTokens: number;\n  costUsd: number;\n  timestamp: number;\n  paymentMethod?: string;\n  provider?: string;\n}\n\nexport interface UsageStats {\n  totalRequests: number;\n  totalTokens: number;\n  totalCost: number;\n  avgTokensPerRequest: number;\n  mostUsedModel: string | null;\n  requestCount: number;\n  timeRange: {\n    start: number;\n    end: number;\n  };\n}\n\nexport interface UsageSummary {\n  totalRequests: number;\n  totalCost: number;\n  totalTokens: number;\n  modelsUsed: string[];\n  paymentMethods: Record<string, { requests: number; cost: number }>;\n  costByModel: Record<string, number>;\n  tokensByModel: Record<string, number>;\n}\n\nexport interface ModelConfig {\n  id: string;\n  name: string;\n  description: string;\n  context_length: number;\n  pricing: {\n    prompt: number;\n    completion: number;\n  };\n  capabilities: string[];\n}\n\nexport interface ModelStats {\n  total_models: number;\n  active_models: number;\n  most_popular: string;\n}\n\nexport interface ModelProvider {\n  id: string;\n  name: string;\n  models: string[];\n}\n\nexport interface ModelCategory {\n  id: string;\n  name: string;\n  description: string;\n  models: string[];\n}\n\nexport interface ModelRecommendationResponse {\n  recommended_models: ModelConfig[];\n  reasoning: string;\n}\n\nexport interface DreamsRouterApiClientOptions {\n  baseURL?: string;\n  apiKey?: string;\n  defaultHeaders?: Record<string, string>;\n}\n\nexport class DreamsRouterApiClient {\n  private baseURL: string;\n  private defaultHeaders: Record<string, string> = {};\n  private onTokenExpired?: () => Promise<string | null>;\n\n  constructor(options: DreamsRouterApiClientOptions = {}) {\n    this.baseURL = options.baseURL || 'https://api-beta.daydreams.systems/v1';\n\n    if (options.apiKey) {\n      this.setApiKey(options.apiKey);\n    }\n\n    if (options.defaultHeaders) {\n      this.defaultHeaders = {\n        ...this.defaultHeaders,\n        ...options.defaultHeaders,\n      };\n    }\n  }\n\n  public setApiKey(apiKey: string) {\n    this.defaultHeaders['Authorization'] = `Bearer ${apiKey}`;\n  }\n\n  public removeApiKey() {\n    delete this.defaultHeaders['Authorization'];\n  }\n\n  public removeSessionToken() {\n    delete this.defaultHeaders['Authorization'];\n  }\n\n  public setTokenExpiredCallback(callback: () => Promise<string | null>) {\n    this.onTokenExpired = callback;\n  }\n\n  private async request<T = any>(\n    endpoint: string,\n    options: RequestInit = {}\n  ): Promise<ApiResponse<T>> {\n    const makeRequest = async (headers = this.defaultHeaders) => {\n      const url = `${this.baseURL}${endpoint}`;\n      const requestHeaders = {\n        'Content-Type': 'application/json',\n        ...headers,\n        ...options.headers,\n      };\n\n      const config: RequestInit = {\n        ...options,\n        headers: requestHeaders,\n      };\n\n      const response = await fetch(url, config);\n\n      if (!response.ok) {\n        const errorText = await response.text();\n        const error = new Error(\n          `HTTP ${response.status}: ${errorText || response.statusText}`\n        );\n        (error as any).status = response.status;\n        (error as any).response = response;\n        (error as any).errorText = errorText;\n        throw error;\n      }\n\n      return response.json();\n    };\n\n    try {\n      return await makeRequest();\n    } catch (error: any) {\n      // Check if this is a JWT token expiration error\n      if (\n        error.status === 401 &&\n        this.onTokenExpired &&\n        this.isJWTTokenExpired(error.errorText)\n      ) {\n        console.log('🔄 JWT token expired, requesting new token...');\n\n        try {\n          const newToken = await this.onTokenExpired();\n          if (newToken) {\n            console.log('✅ Got new JWT token, retrying request...');\n            this.setApiKey(newToken);\n\n            // Retry with new token\n            return await makeRequest({\n              ...this.defaultHeaders,\n              Authorization: `Bearer ${newToken}`,\n            });\n          }\n        } catch (refreshError) {\n          console.error('❌ Failed to refresh token:', refreshError);\n          throw refreshError;\n        }\n      }\n\n      console.error(`API request failed: ${endpoint}`, error);\n      throw error;\n    }\n  }\n\n  private isJWTTokenExpired(errorText: string): boolean {\n    return (\n      errorText.includes('Token expired') ||\n      errorText.includes('jwt expired') ||\n      errorText.includes('Invalid token') ||\n      errorText.includes('Invalid API key or session token')\n    );\n  }\n\n  // Auth endpoints\n  async getProfile(): Promise<ApiResponse<{ user: User }>> {\n    return this.request('/auth/profile');\n  }\n\n  async walletLogin(\n    walletAddress: string,\n    signature: string,\n    message: string\n  ): Promise<ApiResponse<{ user: User; sessionToken: string }>> {\n    return this.request('/auth/wallet-login', {\n      method: 'POST',\n      body: JSON.stringify({ walletAddress, signature, message }),\n    });\n  }\n\n  // Balance endpoints\n  async getWalletBalance(address: string): Promise<\n    ApiResponse<{\n      balance: number;\n      userId?: string;\n      walletAddress?: string;\n      exists?: boolean;\n      lastSeen?: number;\n    }>\n  > {\n    return this.request(`/wallet/balance/${address}`);\n  }\n\n  async processPayment(\n    x402Payment: string\n  ): Promise<ApiResponse<{ amountCredited: number; newBalance: number }>> {\n    return this.request('/payments/process', {\n      method: 'POST',\n      headers: {\n        'X-PAYMENT': x402Payment,\n      },\n    });\n  }\n\n  // Model endpoints\n  async getDetailedModels(): Promise<ApiResponse<{ models: ModelConfig[] }>> {\n    return this.request('/models/detailed');\n  }\n\n  async getModelStats(): Promise<ApiResponse<{ stats: ModelStats }>> {\n    return this.request('/models/stats');\n  }\n\n  async getProviders(): Promise<ApiResponse<{ providers: ModelProvider[] }>> {\n    return this.request('/models/providers');\n  }\n\n  async getModelCategories(): Promise<\n    ApiResponse<{ categories: ModelCategory[] }>\n  > {\n    return this.request('/models/categories');\n  }\n\n  async searchModels(query: string): Promise<ApiResponse> {\n    return this.request(`/models/search?q=${encodeURIComponent(query)}`);\n  }\n\n  async getModelRecommendations(requirements: {\n    budget?: number;\n    needsVision?: boolean;\n    needsFunctions?: boolean;\n    needsStreaming?: boolean;\n    minTokens?: number;\n  }): Promise<ApiResponse<{ recommendations: ModelRecommendationResponse }>> {\n    const params = new URLSearchParams();\n    Object.entries(requirements).forEach(([key, value]) => {\n      if (value !== undefined) {\n        params.set(key, value.toString());\n      }\n    });\n    return this.request(`/models/recommendations?${params}`);\n  }\n}\n\n// Default client instance\nexport const dreamsRouterApiClient = new DreamsRouterApiClient();\n","/**\n * Unified wallet authentication for Dreams Router\n * Supports both EVM and Solana accounts seamlessly\n */\n\nimport type { Account } from 'viem';\nimport type { User } from './dreams-router-api-client.js';\nimport type { DreamsRouterPaymentConfig } from '../types';\nimport type { UnifiedAccount, SolanaAccount } from './unified-account-types';\nimport {\n  wrapAccount,\n  isEVMAccount,\n  isSolanaAccount,\n  getAccountIdentifier,\n  getPreferredNetwork,\n} from './unified-account-types';\n\nimport { DreamsRouterApiClient } from './dreams-router-api-client.js';\nimport { createDreamsRouter } from '../provider';\n\nexport interface UnifiedAuthManager {\n  apiClient: DreamsRouterApiClient;\n  currentSessionToken: string | null;\n  currentUser: User | null;\n  currentAccount: UnifiedAccount | null;\n\n  /**\n   * Sign message and get JWT session token using any supported account type\n   */\n  login(\n    account: Account | SolanaAccount\n  ): Promise<{ sessionToken: string; user: User }>;\n\n  /**\n   * Create Dreams Router provider with current authentication and payments\n   */\n  createDreamsRouter(options?: {\n    payments?: DreamsRouterPaymentConfig;\n    baseURL?: string;\n  }): ReturnType<typeof createDreamsRouter>;\n\n  /**\n   * Get current user profile\n   */\n  getProfile(): Promise<User>;\n\n  /**\n   * Get wallet balance\n   */\n  getBalance(identifier?: string): Promise<number>;\n\n  /**\n   * Logout and clear tokens\n   */\n  logout(): void;\n}\n\nexport interface UnifiedAuthOptions {\n  baseURL?: string;\n  onTokenExpired?: () => Promise<string | null>;\n}\n\nexport function createUnifiedAuthManager(\n  options: UnifiedAuthOptions = {}\n): UnifiedAuthManager {\n  const apiClient = new DreamsRouterApiClient({\n    baseURL: options.baseURL,\n  });\n\n  let currentSessionToken: string | null = null;\n  let currentUser: User | null = null;\n  let currentAccount: UnifiedAccount | null = null;\n\n  // Set up token expiration callback\n  if (options.onTokenExpired) {\n    apiClient.setTokenExpiredCallback(options.onTokenExpired);\n  }\n\n  return {\n    apiClient,\n    get currentSessionToken() {\n      return currentSessionToken;\n    },\n    get currentUser() {\n      return currentUser;\n    },\n    get currentAccount() {\n      return currentAccount;\n    },\n\n    async login(account: Account | SolanaAccount) {\n      // Wrap account to unified type\n      const unifiedAccount = wrapAccount(account);\n      const accountId = getAccountIdentifier(unifiedAccount);\n\n      const timestamp = Date.now();\n      const message = `Sign this message to authenticate with Dreams Router\\n\\nAccount: ${accountId}\\nTimestamp: ${timestamp}`;\n\n      let signature: string;\n\n      if (isEVMAccount(unifiedAccount)) {\n        // EVM signing\n        if (!unifiedAccount.signMessage) {\n          throw new Error(\n            'EVM account does not support message signing. Required for authentication.'\n          );\n        }\n        signature = await unifiedAccount.signMessage({ message });\n      } else if (isSolanaAccount(unifiedAccount)) {\n        // Solana signing\n        if (!unifiedAccount.signMessage) {\n          throw new Error(\n            'Solana account does not support message signing. Required for authentication.'\n          );\n        }\n        signature = await unifiedAccount.signMessage({ message });\n      } else {\n        throw new Error('Unsupported account type for authentication');\n      }\n\n      const response = await apiClient.walletLogin(\n        accountId,\n        signature,\n        message\n      );\n\n      if (response.success && response.sessionToken && response.user) {\n        currentSessionToken = response.sessionToken;\n        currentUser = response.user;\n        currentAccount = unifiedAccount;\n        apiClient.setApiKey(response.sessionToken);\n\n        return {\n          sessionToken: response.sessionToken,\n          user: response.user,\n        };\n      } else {\n        throw new Error(response.error || 'Failed to login with account');\n      }\n    },\n\n    createDreamsRouter(\n      routerOptions: {\n        payments?: DreamsRouterPaymentConfig;\n        baseURL?: string;\n      } = {}\n    ) {\n      if (!currentSessionToken || !currentAccount) {\n        throw new Error(\n          'No session token or account available. Please login first.'\n        );\n      }\n\n      // Determine network preference if not specified\n      const payments = routerOptions.payments || {};\n      if (!payments.network && currentAccount) {\n        payments.network = getPreferredNetwork(currentAccount) as any;\n      }\n\n      const config: any = {\n        apiKey: currentSessionToken,\n        baseURL:\n          routerOptions.baseURL ||\n          options.baseURL ||\n          'https://api-beta.daydreams.systems/v1',\n        payment: payments,\n      };\n\n      // Add appropriate signer based on account type\n      if (isEVMAccount(currentAccount)) {\n        config.signer = currentAccount;\n      } else if (isSolanaAccount(currentAccount)) {\n        // For Solana accounts, we expect them to handle their own signing\n        // The payment system will use the Solana account directly\n        throw new Error(\n          'Solana accounts are not yet fully integrated with the provider. Use EVM accounts for now.'\n        );\n      }\n\n      return createDreamsRouter(config);\n    },\n\n    async getProfile() {\n      if (!currentSessionToken) {\n        throw new Error('No session token available. Please login first.');\n      }\n\n      const response = await apiClient.getProfile();\n\n      if (response.success && response.user) {\n        currentUser = response.user;\n        return response.user;\n      } else {\n        throw new Error(response.error || 'Failed to get profile');\n      }\n    },\n\n    async getBalance(identifier?: string) {\n      const accountId =\n        identifier ||\n        (currentAccount ? getAccountIdentifier(currentAccount) : null);\n      if (!accountId) {\n        throw new Error('No account identifier available');\n      }\n\n      const response = await apiClient.getWalletBalance(accountId);\n\n      if (response.success || response.balance !== undefined) {\n        return response.balance ?? 0;\n      } else {\n        throw new Error(response.error || 'Failed to get wallet balance');\n      }\n    },\n\n    logout() {\n      currentSessionToken = null;\n      currentUser = null;\n      currentAccount = null;\n      apiClient.removeSessionToken();\n      apiClient.removeApiKey();\n    },\n  };\n}\n\n/**\n * Unified Dreams Router authentication - works with any account type\n */\nexport async function createUnifiedAuth(\n  account: Account | SolanaAccount,\n  options: UnifiedAuthOptions & {\n    payments?: DreamsRouterPaymentConfig;\n  } = {}\n) {\n  const authManager = createUnifiedAuthManager(options);\n\n  // Authenticate with the account (EVM or Solana)\n  const { sessionToken, user } = await authManager.login(account);\n\n  // Create Dreams Router provider\n  const dreamsRouter = authManager.createDreamsRouter({\n    payments: options.payments,\n    baseURL: options.baseURL,\n  });\n\n  return {\n    sessionToken,\n    user,\n    dreamsRouter,\n    authManager,\n  };\n}\n\n// Backwards compatibility - re-export with new name\nexport const createDreamsRouterAuth = createUnifiedAuth;\n","export const version = '2.36.0'\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 { 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 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 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","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\ntype TrimOptions = {\n  dir?: 'left' | 'right' | undefined\n}\nexport type TrimReturnType<value extends ByteArray | Hex> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type TrimErrorType = ErrorType\n\nexport function trim<value extends ByteArray | Hex>(\n  hexOrBytes: value,\n  { dir = 'left' }: TrimOptions = {},\n): TrimReturnType<value> {\n  let data: any =\n    typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes\n\n  let sliceLength = 0\n  for (let i = 0; i < data.length - 1; i++) {\n    if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n      sliceLength++\n    else break\n  }\n  data =\n    dir === 'left'\n      ? data.slice(sliceLength)\n      : data.slice(0, data.length - sliceLength)\n\n  if (typeof hexOrBytes === 'string') {\n    if (data.length === 1 && dir === 'right') data = `${data}0`\n    return `0x${\n      data.length % 2 === 1 ? `0${data}` : data\n    }` as TrimReturnType<value>\n  }\n  return data as TrimReturnType<value>\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 ByteArray | Hex> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type PadErrorType = PadHexErrorType | PadBytesErrorType | ErrorType\n\nexport function pad<value extends ByteArray | Hex>(\n  hexOrBytes: value,\n  { dir, size = 32 }: PadOptions = {},\n): PadReturnType<value> {\n  if (typeof hexOrBytes === 'string')\n    return padHex(hexOrBytes, { dir, size }) as PadReturnType<value>\n  return padBytes(hexOrBytes, { dir, size }) as PadReturnType<value>\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 {\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","import {\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> = 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<to>): FromHexReturnType<to> {\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<to>\n  if (to === 'bigint') return hexToBigInt(hex, opts) as FromHexReturnType<to>\n  if (to === 'string') return hexToString(hex, opts) as FromHexReturnType<to>\n  if (to === 'boolean') return hexToBool(hex, opts) as FromHexReturnType<to>\n  return hexToBytes(hex, opts) as FromHexReturnType<to>\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 = HexToBigIntErrorType | 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 = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex: Hex, opts: HexToNumberOpts = {}): number {\n  return Number(hexToBigInt(hex, opts))\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","/**\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<value = unknown> extends Map<string, value> {\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) && value !== undefined) {\n      this.delete(key)\n      super.set(key, value)\n    }\n\n    return value\n  }\n\n  override set(key: string, value: value) {\n    super.set(key, value)\n    if (this.maxSize && this.size > this.maxSize) {\n      const firstKey = this.keys().next().value\n      if (firstKey) this.delete(firstKey)\n    }\n    return this\n  }\n}\n","import { secp256k1 } from '@noble/curves/secp256k1'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { type HexToBigIntErrorType, hexToBigInt } from '../encoding/fromHex.js'\nimport { hexToBytes } from '../encoding/toBytes.js'\nimport type { ToHexErrorType } from '../encoding/toHex.js'\n\ntype To = 'bytes' | 'hex'\n\nexport type SerializeSignatureParameters<to extends To = 'hex'> = Signature & {\n  to?: to | To | undefined\n}\n\nexport type SerializeSignatureReturnType<to extends To = 'hex'> =\n  | (to extends 'hex' ? Hex : never)\n  | (to extends 'bytes' ? ByteArray : never)\n\nexport type SerializeSignatureErrorType =\n  | HexToBigIntErrorType\n  | ToHexErrorType\n  | ErrorType\n\n/**\n * @description Converts a signature into hex format.\n *\n * @param signature The signature to convert.\n * @returns The signature in hex format.\n *\n * @example\n * serializeSignature({\n *   r: '0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf',\n *   s: '0x4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db8',\n *   yParity: 1\n * })\n * // \"0x6e100a352ec6ad1b70802290e18aeed190704973570f3b8ed42cb9808e2ea6bf4a90a229a244495b41890987806fcbd2d5d23fc0dbe5f5256c2613c039d76db81c\"\n */\nexport function serializeSignature<to extends To = 'hex'>({\n  r,\n  s,\n  to = 'hex',\n  v,\n  yParity,\n}: SerializeSignatureParameters<to>): SerializeSignatureReturnType<to> {\n  const yParity_ = (() => {\n    if (yParity === 0 || yParity === 1) return yParity\n    if (v && (v === 27n || v === 28n || v >= 35n)) return v % 2n === 0n ? 1 : 0\n    throw new Error('Invalid `v` or `yParity` value')\n  })()\n  const signature = `0x${new secp256k1.Signature(\n    hexToBigInt(r),\n    hexToBigInt(s),\n  ).toCompactHex()}${yParity_ === 0 ? '1b' : '1c'}` as const\n\n  if (to === 'hex') return signature as SerializeSignatureReturnType<to>\n  return hexToBytes(signature) as SerializeSignatureReturnType<to>\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","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<to extends To> =\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<to extends To = 'hex'>(\n  value: Hex | ByteArray,\n  to_?: to | undefined,\n): Keccak256Hash<to> {\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<to>\n  return toHex(bytes) as Keccak256Hash<to>\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<Address>(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<boolean>(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","// TODO(v3): Rename to `toLocalAccount` + add `source` property to define source (privateKey, mnemonic, hdKey, etc).\n\nimport type { Address } from 'abitype'\n\nimport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../errors/address.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport {\n  type IsAddressErrorType,\n  isAddress,\n} from '../utils/address/isAddress.js'\nimport type {\n  AccountSource,\n  CustomSource,\n  JsonRpcAccount,\n  LocalAccount,\n} from './types.js'\n\ntype GetAccountReturnType<accountSource extends AccountSource> =\n  | (accountSource extends Address ? JsonRpcAccount : never)\n  | (accountSource extends CustomSource ? LocalAccount : never)\n\nexport type ToAccountErrorType =\n  | InvalidAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\n/**\n * @description Creates an Account from a custom signing implementation.\n *\n * @returns A Local Account.\n */\nexport function toAccount<accountSource extends AccountSource>(\n  source: accountSource,\n): GetAccountReturnType<accountSource> {\n  if (typeof source === 'string') {\n    if (!isAddress(source, { strict: false }))\n      throw new InvalidAddressError({ address: source })\n    return {\n      address: source,\n      type: 'json-rpc',\n    } as GetAccountReturnType<accountSource>\n  }\n\n  if (!isAddress(source.address, { strict: false }))\n    throw new InvalidAddressError({ address: source.address })\n  return {\n    address: source.address,\n    nonceManager: source.nonceManager,\n    sign: source.sign,\n    signAuthorization: source.signAuthorization,\n    signMessage: source.signMessage,\n    signTransaction: source.signTransaction,\n    signTypedData: source.signTypedData,\n    source: 'custom',\n    type: 'local',\n  } as GetAccountReturnType<accountSource>\n}\n","import type { Address } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport {\n  type ChecksumAddressErrorType,\n  checksumAddress,\n} from '../../utils/address/getAddress.js'\nimport {\n  type Keccak256ErrorType,\n  keccak256,\n} from '../../utils/hash/keccak256.js'\n\nexport type PublicKeyToAddressErrorType =\n  | ChecksumAddressErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\n/**\n * @description Converts an ECDSA public key to an address.\n *\n * @param publicKey The public key to convert.\n *\n * @returns The address.\n */\nexport function publicKeyToAddress(publicKey: Hex): Address {\n  const address = keccak256(`0x${publicKey.substring(4)}`).substring(26)\n  return checksumAddress(`0x${address}`) as Address\n}\n","// TODO(v3): Convert to sync.\n\nimport { secp256k1 } from '@noble/curves/secp256k1'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, Signature } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'\nimport {\n  type HexToBytesErrorType,\n  hexToBytes,\n} from '../../utils/encoding/toBytes.js'\nimport {\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../../utils/encoding/toHex.js'\nimport { serializeSignature } from '../../utils/signature/serializeSignature.js'\n\ntype To = 'object' | 'bytes' | 'hex'\n\nexport type SignParameters<to extends To = 'object'> = {\n  hash: Hex\n  privateKey: Hex\n  to?: to | To | undefined\n}\n\nexport type SignReturnType<to extends To = 'object'> =\n  | (to extends 'object' ? Signature : never)\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type SignErrorType =\n  | HexToBytesErrorType\n  | IsHexErrorType\n  | NumberToHexErrorType\n  | ErrorType\n\nlet extraEntropy: Hex | boolean = false\n\n/**\n * Sets extra entropy for signing functions.\n */\nexport function setSignEntropy(entropy: true | Hex) {\n  if (!entropy) throw new Error('must be a `true` or a hex value.')\n  extraEntropy = entropy\n}\n\n/**\n * @description Signs a hash with a given private key.\n *\n * @param hash The hash to sign.\n * @param privateKey The private key to sign with.\n *\n * @returns The signature.\n */\nexport async function sign<to extends To = 'object'>({\n  hash,\n  privateKey,\n  to = 'object',\n}: SignParameters<to>): Promise<SignReturnType<to>> {\n  const { r, s, recovery } = secp256k1.sign(\n    hash.slice(2),\n    privateKey.slice(2),\n    {\n      lowS: true,\n      extraEntropy: isHex(extraEntropy, { strict: false })\n        ? hexToBytes(extraEntropy)\n        : extraEntropy,\n    },\n  )\n  const signature = {\n    r: numberToHex(r, { size: 32 }),\n    s: numberToHex(s, { size: 32 }),\n    v: recovery ? 28n : 27n,\n    yParity: recovery,\n  }\n  return (() => {\n    if (to === 'bytes' || to === 'hex')\n      return serializeSignature({ ...signature, to })\n    return signature\n  })() as SignReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nexport type ConcatReturnType<value extends Hex | ByteArray> = value extends Hex\n  ? Hex\n  : ByteArray\n\nexport type ConcatErrorType =\n  | ConcatBytesErrorType\n  | ConcatHexErrorType\n  | ErrorType\n\nexport function concat<value extends Hex | ByteArray>(\n  values: readonly value[],\n): ConcatReturnType<value> {\n  if (typeof values[0] === 'string')\n    return concatHex(values as readonly Hex[]) as ConcatReturnType<value>\n  return concatBytes(values as readonly ByteArray[]) as ConcatReturnType<value>\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 { BaseError } from './base.js'\n\nexport type NegativeOffsetErrorType = NegativeOffsetError & {\n  name: 'NegativeOffsetError'\n}\nexport class NegativeOffsetError extends BaseError {\n  constructor({ offset }: { offset: number }) {\n    super(`Offset \\`${offset}\\` cannot be negative.`, {\n      name: 'NegativeOffsetError',\n    })\n  }\n}\n\nexport type PositionOutOfBoundsErrorType = PositionOutOfBoundsError & {\n  name: 'PositionOutOfBoundsError'\n}\nexport class PositionOutOfBoundsError extends BaseError {\n  constructor({ length, position }: { length: number; position: number }) {\n    super(\n      `Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`,\n      { name: 'PositionOutOfBoundsError' },\n    )\n  }\n}\n\nexport type RecursiveReadLimitExceededErrorType =\n  RecursiveReadLimitExceededError & {\n    name: 'RecursiveReadLimitExceededError'\n  }\nexport class RecursiveReadLimitExceededError extends BaseError {\n  constructor({ count, limit }: { count: number; limit: number }) {\n    super(\n      `Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`,\n      { name: 'RecursiveReadLimitExceededError' },\n    )\n  }\n}\n","import {\n  NegativeOffsetError,\n  type NegativeOffsetErrorType,\n  PositionOutOfBoundsError,\n  type PositionOutOfBoundsErrorType,\n  RecursiveReadLimitExceededError,\n  type RecursiveReadLimitExceededErrorType,\n} from '../errors/cursor.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { ByteArray } from '../types/misc.js'\n\nexport type Cursor = {\n  bytes: ByteArray\n  dataView: DataView\n  position: number\n  positionReadCount: Map<number, number>\n  recursiveReadCount: number\n  recursiveReadLimit: number\n  remaining: number\n  assertReadLimit(position?: number): void\n  assertPosition(position: number): void\n  decrementPosition(offset: number): void\n  getReadCount(position?: number): number\n  incrementPosition(offset: number): void\n  inspectByte(position?: number): ByteArray[number]\n  inspectBytes(length: number, position?: number): ByteArray\n  inspectUint8(position?: number): number\n  inspectUint16(position?: number): number\n  inspectUint24(position?: number): number\n  inspectUint32(position?: number): number\n  pushByte(byte: ByteArray[number]): void\n  pushBytes(bytes: ByteArray): void\n  pushUint8(value: number): void\n  pushUint16(value: number): void\n  pushUint24(value: number): void\n  pushUint32(value: number): void\n  readByte(): ByteArray[number]\n  readBytes(length: number, size?: number): ByteArray\n  readUint8(): number\n  readUint16(): number\n  readUint24(): number\n  readUint32(): number\n  setPosition(position: number): () => void\n  _touch(): void\n}\n\ntype CursorErrorType =\n  | CursorAssertPositionErrorType\n  | CursorDecrementPositionErrorType\n  | CursorIncrementPositionErrorType\n  | ErrorType\n\ntype CursorAssertPositionErrorType = PositionOutOfBoundsErrorType | ErrorType\n\ntype CursorDecrementPositionErrorType = NegativeOffsetErrorType | ErrorType\n\ntype CursorIncrementPositionErrorType = NegativeOffsetErrorType | ErrorType\n\ntype StaticCursorErrorType =\n  | NegativeOffsetErrorType\n  | RecursiveReadLimitExceededErrorType\n\nconst staticCursor: Cursor = {\n  bytes: new Uint8Array(),\n  dataView: new DataView(new ArrayBuffer(0)),\n  position: 0,\n  positionReadCount: new Map(),\n  recursiveReadCount: 0,\n  recursiveReadLimit: Number.POSITIVE_INFINITY,\n  assertReadLimit() {\n    if (this.recursiveReadCount >= this.recursiveReadLimit)\n      throw new RecursiveReadLimitExceededError({\n        count: this.recursiveReadCount + 1,\n        limit: this.recursiveReadLimit,\n      })\n  },\n  assertPosition(position) {\n    if (position < 0 || position > this.bytes.length - 1)\n      throw new PositionOutOfBoundsError({\n        length: this.bytes.length,\n        position,\n      })\n  },\n  decrementPosition(offset) {\n    if (offset < 0) throw new NegativeOffsetError({ offset })\n    const position = this.position - offset\n    this.assertPosition(position)\n    this.position = position\n  },\n  getReadCount(position) {\n    return this.positionReadCount.get(position || this.position) || 0\n  },\n  incrementPosition(offset) {\n    if (offset < 0) throw new NegativeOffsetError({ offset })\n    const position = this.position + offset\n    this.assertPosition(position)\n    this.position = position\n  },\n  inspectByte(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position)\n    return this.bytes[position]\n  },\n  inspectBytes(length, position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + length - 1)\n    return this.bytes.subarray(position, position + length)\n  },\n  inspectUint8(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position)\n    return this.bytes[position]\n  },\n  inspectUint16(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 1)\n    return this.dataView.getUint16(position)\n  },\n  inspectUint24(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 2)\n    return (\n      (this.dataView.getUint16(position) << 8) +\n      this.dataView.getUint8(position + 2)\n    )\n  },\n  inspectUint32(position_) {\n    const position = position_ ?? this.position\n    this.assertPosition(position + 3)\n    return this.dataView.getUint32(position)\n  },\n  pushByte(byte: ByteArray[number]) {\n    this.assertPosition(this.position)\n    this.bytes[this.position] = byte\n    this.position++\n  },\n  pushBytes(bytes: ByteArray) {\n    this.assertPosition(this.position + bytes.length - 1)\n    this.bytes.set(bytes, this.position)\n    this.position += bytes.length\n  },\n  pushUint8(value: number) {\n    this.assertPosition(this.position)\n    this.bytes[this.position] = value\n    this.position++\n  },\n  pushUint16(value: number) {\n    this.assertPosition(this.position + 1)\n    this.dataView.setUint16(this.position, value)\n    this.position += 2\n  },\n  pushUint24(value: number) {\n    this.assertPosition(this.position + 2)\n    this.dataView.setUint16(this.position, value >> 8)\n    this.dataView.setUint8(this.position + 2, value & ~4294967040)\n    this.position += 3\n  },\n  pushUint32(value: number) {\n    this.assertPosition(this.position + 3)\n    this.dataView.setUint32(this.position, value)\n    this.position += 4\n  },\n  readByte() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectByte()\n    this.position++\n    return value\n  },\n  readBytes(length, size) {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectBytes(length)\n    this.position += size ?? length\n    return value\n  },\n  readUint8() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint8()\n    this.position += 1\n    return value\n  },\n  readUint16() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint16()\n    this.position += 2\n    return value\n  },\n  readUint24() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint24()\n    this.position += 3\n    return value\n  },\n  readUint32() {\n    this.assertReadLimit()\n    this._touch()\n    const value = this.inspectUint32()\n    this.position += 4\n    return value\n  },\n  get remaining() {\n    return this.bytes.length - this.position\n  },\n  setPosition(position) {\n    const oldPosition = this.position\n    this.assertPosition(position)\n    this.position = position\n    return () => (this.position = oldPosition)\n  },\n  _touch() {\n    if (this.recursiveReadLimit === Number.POSITIVE_INFINITY) return\n    const count = this.getReadCount()\n    this.positionReadCount.set(this.position, count + 1)\n    if (count > 0) this.recursiveReadCount++\n  },\n}\n\ntype CursorConfig = { recursiveReadLimit?: number | undefined }\n\nexport type CreateCursorErrorType =\n  | CursorErrorType\n  | StaticCursorErrorType\n  | ErrorType\n\nexport function createCursor(\n  bytes: ByteArray,\n  { recursiveReadLimit = 8_192 }: CursorConfig = {},\n): Cursor {\n  const cursor: Cursor = Object.create(staticCursor)\n  cursor.bytes = bytes\n  cursor.dataView = new DataView(\n    bytes.buffer,\n    bytes.byteOffset,\n    bytes.byteLength,\n  )\n  cursor.positionReadCount = new Map()\n  cursor.recursiveReadLimit = recursiveReadLimit\n  return cursor\n}\n","import { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport {\n  type CreateCursorErrorType,\n  type Cursor,\n  createCursor,\n} from '../cursor.js'\n\nimport { type HexToBytesErrorType, hexToBytes } from './toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from './toHex.js'\n\nexport type RecursiveArray<T> = T | readonly RecursiveArray<T>[]\n\ntype To = 'hex' | 'bytes'\n\ntype Encodable = {\n  length: number\n  encode(cursor: Cursor): void\n}\n\nexport type ToRlpReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type ToRlpErrorType =\n  | CreateCursorErrorType\n  | BytesToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\nexport function toRlp<to extends To = 'hex'>(\n  bytes: RecursiveArray<ByteArray> | RecursiveArray<Hex>,\n  to: to | To | undefined = 'hex',\n): ToRlpReturnType<to> {\n  const encodable = getEncodable(bytes)\n  const cursor = createCursor(new Uint8Array(encodable.length))\n  encodable.encode(cursor)\n\n  if (to === 'hex') return bytesToHex(cursor.bytes) as ToRlpReturnType<to>\n  return cursor.bytes as ToRlpReturnType<to>\n}\n\nexport type BytesToRlpErrorType = ToRlpErrorType | ErrorType\n\nexport function bytesToRlp<to extends To = 'bytes'>(\n  bytes: RecursiveArray<ByteArray>,\n  to: to | To | undefined = 'bytes',\n): ToRlpReturnType<to> {\n  return toRlp(bytes, to)\n}\n\nexport type HexToRlpErrorType = ToRlpErrorType | ErrorType\n\nexport function hexToRlp<to extends To = 'hex'>(\n  hex: RecursiveArray<Hex>,\n  to: to | To | undefined = 'hex',\n): ToRlpReturnType<to> {\n  return toRlp(hex, to)\n}\n\nfunction getEncodable(\n  bytes: RecursiveArray<ByteArray> | RecursiveArray<Hex>,\n): Encodable {\n  if (Array.isArray(bytes))\n    return getEncodableList(bytes.map((x) => getEncodable(x)))\n  return getEncodableBytes(bytes as any)\n}\n\nfunction getEncodableList(list: Encodable[]): Encodable {\n  const bodyLength = list.reduce((acc, x) => acc + x.length, 0)\n\n  const sizeOfBodyLength = getSizeOfLength(bodyLength)\n  const length = (() => {\n    if (bodyLength <= 55) return 1 + bodyLength\n    return 1 + sizeOfBodyLength + bodyLength\n  })()\n\n  return {\n    length,\n    encode(cursor: Cursor) {\n      if (bodyLength <= 55) {\n        cursor.pushByte(0xc0 + bodyLength)\n      } else {\n        cursor.pushByte(0xc0 + 55 + sizeOfBodyLength)\n        if (sizeOfBodyLength === 1) cursor.pushUint8(bodyLength)\n        else if (sizeOfBodyLength === 2) cursor.pushUint16(bodyLength)\n        else if (sizeOfBodyLength === 3) cursor.pushUint24(bodyLength)\n        else cursor.pushUint32(bodyLength)\n      }\n      for (const { encode } of list) {\n        encode(cursor)\n      }\n    },\n  }\n}\n\nfunction getEncodableBytes(bytesOrHex: ByteArray | Hex): Encodable {\n  const bytes =\n    typeof bytesOrHex === 'string' ? hexToBytes(bytesOrHex) : bytesOrHex\n\n  const sizeOfBytesLength = getSizeOfLength(bytes.length)\n  const length = (() => {\n    if (bytes.length === 1 && bytes[0] < 0x80) return 1\n    if (bytes.length <= 55) return 1 + bytes.length\n    return 1 + sizeOfBytesLength + bytes.length\n  })()\n\n  return {\n    length,\n    encode(cursor: Cursor) {\n      if (bytes.length === 1 && bytes[0] < 0x80) {\n        cursor.pushBytes(bytes)\n      } else if (bytes.length <= 55) {\n        cursor.pushByte(0x80 + bytes.length)\n        cursor.pushBytes(bytes)\n      } else {\n        cursor.pushByte(0x80 + 55 + sizeOfBytesLength)\n        if (sizeOfBytesLength === 1) cursor.pushUint8(bytes.length)\n        else if (sizeOfBytesLength === 2) cursor.pushUint16(bytes.length)\n        else if (sizeOfBytesLength === 3) cursor.pushUint24(bytes.length)\n        else cursor.pushUint32(bytes.length)\n        cursor.pushBytes(bytes)\n      }\n    },\n  }\n}\n\nfunction getSizeOfLength(length: number) {\n  if (length < 2 ** 8) return 1\n  if (length < 2 ** 16) return 2\n  if (length < 2 ** 24) return 3\n  if (length < 2 ** 32) return 4\n  throw new BaseError('Length is too large.')\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { AuthorizationRequest } from '../../types/authorization.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type NumberToHexErrorType, numberToHex } from '../encoding/toHex.js'\nimport { type ToRlpErrorType, toRlp } from '../encoding/toRlp.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type HashAuthorizationParameters<to extends To> =\n  AuthorizationRequest & {\n    /** Output format. @default \"hex\" */\n    to?: to | To | undefined\n  }\n\nexport type HashAuthorizationReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type HashAuthorizationErrorType =\n  | Keccak256ErrorType\n  | ConcatHexErrorType\n  | ToRlpErrorType\n  | NumberToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Computes an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport function hashAuthorization<to extends To = 'hex'>(\n  parameters: HashAuthorizationParameters<to>,\n): HashAuthorizationReturnType<to> {\n  const { chainId, nonce, to } = parameters\n  const address = parameters.contractAddress ?? parameters.address\n  const hash = keccak256(\n    concatHex([\n      '0x05',\n      toRlp([\n        chainId ? numberToHex(chainId) : '0x',\n        address,\n        nonce ? numberToHex(nonce) : '0x',\n      ]),\n    ]),\n  )\n  if (to === 'bytes') return hexToBytes(hash) as HashAuthorizationReturnType<to>\n  return hash as HashAuthorizationReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type {\n  AuthorizationRequest,\n  SignedAuthorization,\n} from '../../types/authorization.js'\nimport type { Hex, Signature } from '../../types/misc.js'\nimport type { Prettify } from '../../types/utils.js'\nimport {\n  type HashAuthorizationErrorType,\n  hashAuthorization,\n} from '../../utils/authorization/hashAuthorization.js'\nimport {\n  type SignErrorType,\n  type SignParameters,\n  type SignReturnType,\n  sign,\n} from './sign.js'\n\ntype To = 'object' | 'bytes' | 'hex'\n\nexport type SignAuthorizationParameters<to extends To = 'object'> =\n  AuthorizationRequest & {\n    /** The private key to sign with. */\n    privateKey: Hex\n    to?: SignParameters<to>['to'] | undefined\n  }\n\nexport type SignAuthorizationReturnType<to extends To = 'object'> = Prettify<\n  to extends 'object' ? SignedAuthorization : SignReturnType<to>\n>\n\nexport type SignAuthorizationErrorType =\n  | SignErrorType\n  | HashAuthorizationErrorType\n  | ErrorType\n\n/**\n * Signs an Authorization hash in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.\n */\nexport async function signAuthorization<to extends To = 'object'>(\n  parameters: SignAuthorizationParameters<to>,\n): Promise<SignAuthorizationReturnType<to>> {\n  const { chainId, nonce, privateKey, to = 'object' } = parameters\n  const address = parameters.contractAddress ?? parameters.address\n  const signature = await sign({\n    hash: hashAuthorization({ address, chainId, nonce }),\n    privateKey,\n    to,\n  })\n  if (to === 'object')\n    return {\n      address,\n      chainId,\n      nonce,\n      ...(signature as Signature),\n    } as any\n  return signature as any\n}\n","export const presignMessagePrefix = '\\x19Ethereum Signed Message:\\n'\n","import { presignMessagePrefix } from '../../constants/strings.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport { type ConcatErrorType, concat } from '../data/concat.js'\nimport { size } from '../data/size.js'\nimport {\n  type BytesToHexErrorType,\n  bytesToHex,\n  type StringToHexErrorType,\n  stringToHex,\n} from '../encoding/toHex.js'\n\nexport type ToPrefixedMessageErrorType =\n  | ConcatErrorType\n  | StringToHexErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\nexport function toPrefixedMessage(message_: SignableMessage): Hex {\n  const message = (() => {\n    if (typeof message_ === 'string') return stringToHex(message_)\n    if (typeof message_.raw === 'string') return message_.raw\n    return bytesToHex(message_.raw)\n  })()\n  const prefix = stringToHex(`${presignMessagePrefix}${size(message)}`)\n  return concat([prefix, message])\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport { toPrefixedMessage } from './toPrefixedMessage.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type HashMessageReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type HashMessageErrorType = Keccak256ErrorType | ErrorType\n\nexport function hashMessage<to extends To = 'hex'>(\n  message: SignableMessage,\n  to_?: to | undefined,\n): HashMessageReturnType<to> {\n  return keccak256(toPrefixedMessage(message), to_)\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex, SignableMessage } from '../../types/misc.js'\nimport {\n  type HashMessageErrorType,\n  hashMessage,\n} from '../../utils/signature/hashMessage.js'\n\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignMessageParameters = {\n  /** The message to sign. */\n  message: SignableMessage\n  /** The private key to sign with. */\n  privateKey: Hex\n}\n\nexport type SignMessageReturnType = Hex\n\nexport type SignMessageErrorType =\n  | SignErrorType\n  | HashMessageErrorType\n  | ErrorType\n\n/**\n * @description Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signMessage({\n  message,\n  privateKey,\n}: SignMessageParameters): Promise<SignMessageReturnType> {\n  return await sign({ hash: hashMessage(message), privateKey, to: 'hex' })\n}\n","export const etherUnits = {\n  gwei: 9,\n  wei: 18,\n}\nexport const gweiUnits = {\n  ether: -9,\n  wei: 9,\n}\nexport const weiUnits = {\n  ether: -18,\n  gwei: -9,\n}\n","import type { ErrorType } from '../../errors/utils.js'\n\nexport type FormatUnitsErrorType = ErrorType\n\n/**\n *  Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value: bigint, decimals: number) {\n  let display = value.toString()\n\n  const negative = display.startsWith('-')\n  if (negative) display = display.slice(1)\n\n  display = display.padStart(decimals, '0')\n\n  let [integer, fraction] = [\n    display.slice(0, display.length - decimals),\n    display.slice(display.length - decimals),\n  ]\n  fraction = fraction.replace(/(0+)$/, '')\n  return `${negative ? '-' : ''}${integer || '0'}${\n    fraction ? `.${fraction}` : ''\n  }`\n}\n","import { gweiUnits } from '../../constants/unit.js'\n\nimport { type FormatUnitsErrorType, formatUnits } from './formatUnits.js'\n\nexport type FormatGweiErrorType = FormatUnitsErrorType\n\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei: bigint, unit: 'wei' = 'wei') {\n  return formatUnits(wei, gweiUnits[unit])\n}\n","import type { Account } from '../accounts/types.js'\nimport type { SendTransactionParameters } from '../actions/wallet/sendTransaction.js'\nimport type { BlockTag } from '../types/block.js'\nimport type { Chain } from '../types/chain.js'\nimport type { Hash, Hex } from '../types/misc.js'\nimport type { TransactionType } from '../types/transaction.js'\nimport { formatEther } from '../utils/unit/formatEther.js'\nimport { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\n\nexport function prettyPrint(\n  args: Record<string, bigint | number | string | undefined | false | unknown>,\n) {\n  const entries = Object.entries(args)\n    .map(([key, value]) => {\n      if (value === undefined || value === false) return null\n      return [key, value]\n    })\n    .filter(Boolean) as [string, string][]\n  const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0)\n  return entries\n    .map(([key, value]) => `  ${`${key}:`.padEnd(maxLength + 1)}  ${value}`)\n    .join('\\n')\n}\n\nexport type FeeConflictErrorType = FeeConflictError & {\n  name: 'FeeConflictError'\n}\nexport class FeeConflictError extends BaseError {\n  constructor() {\n    super(\n      [\n        'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n        'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n      ].join('\\n'),\n      { name: 'FeeConflictError' },\n    )\n  }\n}\n\nexport type InvalidLegacyVErrorType = InvalidLegacyVError & {\n  name: 'InvalidLegacyVError'\n}\nexport class InvalidLegacyVError extends BaseError {\n  constructor({ v }: { v: bigint }) {\n    super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`, {\n      name: 'InvalidLegacyVError',\n    })\n  }\n}\n\nexport type InvalidSerializableTransactionErrorType =\n  InvalidSerializableTransactionError & {\n    name: 'InvalidSerializableTransactionError'\n  }\nexport class InvalidSerializableTransactionError extends BaseError {\n  constructor({ transaction }: { transaction: Record<string, unknown> }) {\n    super('Cannot infer a transaction type from provided transaction.', {\n      metaMessages: [\n        'Provided Transaction:',\n        '{',\n        prettyPrint(transaction),\n        '}',\n        '',\n        'To infer the type, either provide:',\n        '- a `type` to the Transaction, or',\n        '- an EIP-1559 Transaction with `maxFeePerGas`, or',\n        '- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',\n        '- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or',\n        '- an EIP-7702 Transaction with `authorizationList`, or',\n        '- a Legacy Transaction with `gasPrice`',\n      ],\n      name: 'InvalidSerializableTransactionError',\n    })\n  }\n}\n\nexport type InvalidSerializedTransactionTypeErrorType =\n  InvalidSerializedTransactionTypeError & {\n    name: 'InvalidSerializedTransactionTypeError'\n  }\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n  serializedType: Hex\n\n  constructor({ serializedType }: { serializedType: Hex }) {\n    super(`Serialized transaction type \"${serializedType}\" is invalid.`, {\n      name: 'InvalidSerializedTransactionType',\n    })\n\n    this.serializedType = serializedType\n  }\n}\n\nexport type InvalidSerializedTransactionErrorType =\n  InvalidSerializedTransactionError & {\n    name: 'InvalidSerializedTransactionError'\n  }\nexport class InvalidSerializedTransactionError extends BaseError {\n  serializedTransaction: Hex\n  type: TransactionType\n\n  constructor({\n    attributes,\n    serializedTransaction,\n    type,\n  }: {\n    attributes: Record<string, unknown>\n    serializedTransaction: Hex\n    type: TransactionType\n  }) {\n    const missing = Object.entries(attributes)\n      .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n      .filter(Boolean)\n    super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n      metaMessages: [\n        `Serialized Transaction: \"${serializedTransaction}\"`,\n        missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n      ].filter(Boolean),\n      name: 'InvalidSerializedTransactionError',\n    })\n\n    this.serializedTransaction = serializedTransaction\n    this.type = type\n  }\n}\n\nexport type InvalidStorageKeySizeErrorType = InvalidStorageKeySizeError & {\n  name: 'InvalidStorageKeySizeError'\n}\nexport class InvalidStorageKeySizeError extends BaseError {\n  constructor({ storageKey }: { storageKey: Hex }) {\n    super(\n      `Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor(\n        (storageKey.length - 2) / 2,\n      )} bytes.`,\n      { name: 'InvalidStorageKeySizeError' },\n    )\n  }\n}\n\nexport type TransactionExecutionErrorType = TransactionExecutionError & {\n  name: 'TransactionExecutionError'\n}\nexport class TransactionExecutionError extends BaseError {\n  override cause: BaseError\n\n  constructor(\n    cause: BaseError,\n    {\n      account,\n      docsPath,\n      chain,\n      data,\n      gas,\n      gasPrice,\n      maxFeePerGas,\n      maxPriorityFeePerGas,\n      nonce,\n      to,\n      value,\n    }: Omit<SendTransactionParameters, 'account' | 'chain'> & {\n      account: Account | null\n      chain?: Chain | undefined\n      docsPath?: string | undefined\n    },\n  ) {\n    const prettyArgs = prettyPrint({\n      chain: chain && `${chain?.name} (id: ${chain?.id})`,\n      from: account?.address,\n      to,\n      value:\n        typeof value !== 'undefined' &&\n        `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n      data,\n      gas,\n      gasPrice:\n        typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n      maxFeePerGas:\n        typeof maxFeePerGas !== 'undefined' &&\n        `${formatGwei(maxFeePerGas)} gwei`,\n      maxPriorityFeePerGas:\n        typeof maxPriorityFeePerGas !== 'undefined' &&\n        `${formatGwei(maxPriorityFeePerGas)} gwei`,\n      nonce,\n    })\n\n    super(cause.shortMessage, {\n      cause,\n      docsPath,\n      metaMessages: [\n        ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n        'Request Arguments:',\n        prettyArgs,\n      ].filter(Boolean) as string[],\n      name: 'TransactionExecutionError',\n    })\n    this.cause = cause\n  }\n}\n\nexport type TransactionNotFoundErrorType = TransactionNotFoundError & {\n  name: 'TransactionNotFoundError'\n}\nexport class TransactionNotFoundError extends BaseError {\n  constructor({\n    blockHash,\n    blockNumber,\n    blockTag,\n    hash,\n    index,\n  }: {\n    blockHash?: Hash | undefined\n    blockNumber?: bigint | undefined\n    blockTag?: BlockTag | undefined\n    hash?: Hash | undefined\n    index?: number | undefined\n  }) {\n    let identifier = 'Transaction'\n    if (blockTag && index !== undefined)\n      identifier = `Transaction at block time \"${blockTag}\" at index \"${index}\"`\n    if (blockHash && index !== undefined)\n      identifier = `Transaction at block hash \"${blockHash}\" at index \"${index}\"`\n    if (blockNumber && index !== undefined)\n      identifier = `Transaction at block number \"${blockNumber}\" at index \"${index}\"`\n    if (hash) identifier = `Transaction with hash \"${hash}\"`\n    super(`${identifier} could not be found.`, {\n      name: 'TransactionNotFoundError',\n    })\n  }\n}\n\nexport type TransactionReceiptNotFoundErrorType =\n  TransactionReceiptNotFoundError & {\n    name: 'TransactionReceiptNotFoundError'\n  }\nexport class TransactionReceiptNotFoundError extends BaseError {\n  constructor({ hash }: { hash: Hash }) {\n    super(\n      `Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`,\n      {\n        name: 'TransactionReceiptNotFoundError',\n      },\n    )\n  }\n}\n\nexport type WaitForTransactionReceiptTimeoutErrorType =\n  WaitForTransactionReceiptTimeoutError & {\n    name: 'WaitForTransactionReceiptTimeoutError'\n  }\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n  constructor({ hash }: { hash: Hash }) {\n    super(\n      `Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`,\n      { name: 'WaitForTransactionReceiptTimeoutError' },\n    )\n  }\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type {\n  AuthorizationList,\n  SerializedAuthorizationList,\n} from '../../types/authorization.js'\nimport { toHex } from '../encoding/toHex.js'\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js'\n\nexport type SerializeAuthorizationListReturnType = SerializedAuthorizationList\n\nexport type SerializeAuthorizationListErrorType = ErrorType\n\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(\n  authorizationList?: AuthorizationList<number, true> | undefined,\n): SerializeAuthorizationListReturnType {\n  if (!authorizationList || authorizationList.length === 0) return []\n\n  const serializedAuthorizationList = []\n  for (const authorization of authorizationList) {\n    const { chainId, nonce, ...signature } = authorization\n    const contractAddress = authorization.address\n    serializedAuthorizationList.push([\n      chainId ? toHex(chainId) : '0x',\n      contractAddress,\n      nonce ? toHex(nonce) : '0x',\n      ...toYParitySignatureArray({}, signature),\n    ])\n  }\n\n  return serializedAuthorizationList as {} as SerializeAuthorizationListReturnType\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type BlobsToCommitmentsParameters<\n  blobs extends readonly ByteArray[] | readonly Hex[] =\n    | readonly ByteArray[]\n    | readonly Hex[],\n  to extends To | undefined = undefined,\n> = {\n  /** Blobs to transform into commitments. */\n  blobs: blobs | readonly ByteArray[] | readonly Hex[]\n  /** KZG implementation. */\n  kzg: Pick<Kzg, 'blobToKzgCommitment'>\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type BlobsToCommitmentsReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type BlobsToCommitmentsErrorType =\n  | HexToBytesErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments<\n  const blobs extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: BlobsToCommitmentsParameters<blobs, to>,\n): BlobsToCommitmentsReturnType<to> {\n  const { kzg } = parameters\n\n  const to =\n    parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes')\n  const blobs = (\n    typeof parameters.blobs[0] === 'string'\n      ? parameters.blobs.map((x) => hexToBytes(x as any))\n      : parameters.blobs\n  ) as ByteArray[]\n\n  const commitments: ByteArray[] = []\n  for (const blob of blobs)\n    commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)))\n\n  return (to === 'bytes'\n    ? commitments\n    : commitments.map((x) =>\n        bytesToHex(x),\n      )) as {} as BlobsToCommitmentsReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type blobsToProofsParameters<\n  blobs extends readonly ByteArray[] | readonly Hex[],\n  commitments extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n  ///\n  _blobsType =\n    | (blobs extends readonly Hex[] ? readonly Hex[] : never)\n    | (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),\n> = {\n  /** Blobs to transform into proofs. */\n  blobs: blobs\n  /** Commitments for the blobs. */\n  commitments: commitments &\n    (commitments extends _blobsType\n      ? {}\n      : `commitments must be the same type as blobs`)\n  /** KZG implementation. */\n  kzg: Pick<Kzg, 'computeBlobKzgProof'>\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type blobsToProofsReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray[] : never)\n  | (to extends 'hex' ? Hex[] : never)\n\nexport type blobsToProofsErrorType =\n  | BytesToHexErrorType\n  | HexToBytesErrorType\n  | ErrorType\n\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs<\n  const blobs extends readonly ByteArray[] | readonly Hex[],\n  const commitments extends readonly ByteArray[] | readonly Hex[],\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: blobsToProofsParameters<blobs, commitments, to>,\n): blobsToProofsReturnType<to> {\n  const { kzg } = parameters\n\n  const to =\n    parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes')\n\n  const blobs = (\n    typeof parameters.blobs[0] === 'string'\n      ? parameters.blobs.map((x) => hexToBytes(x as any))\n      : parameters.blobs\n  ) as ByteArray[]\n  const commitments = (\n    typeof parameters.commitments[0] === 'string'\n      ? parameters.commitments.map((x) => hexToBytes(x as any))\n      : parameters.commitments\n  ) as ByteArray[]\n\n  const proofs: ByteArray[] = []\n  for (let i = 0; i < blobs.length; i++) {\n    const blob = blobs[i]\n    const commitment = commitments[i]\n    proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)))\n  }\n\n  return (to === 'bytes'\n    ? proofs\n    : proofs.map((x) => bytesToHex(x))) as {} as blobsToProofsReturnType<to>\n}\n","import { sha256 as noble_sha256 } from '@noble/hashes/sha256'\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 Sha256Hash<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type Sha256ErrorType =\n  | IsHexErrorType\n  | ToBytesErrorType\n  | ToHexErrorType\n  | ErrorType\n\nexport function sha256<to extends To = 'hex'>(\n  value: Hex | ByteArray,\n  to_?: to | undefined,\n): Sha256Hash<to> {\n  const to = to_ || 'hex'\n  const bytes = noble_sha256(\n    isHex(value, { strict: false }) ? toBytes(value) : value,\n  )\n  if (to === 'bytes') return bytes as Sha256Hash<to>\n  return toHex(bytes) as Sha256Hash<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\nimport { type Sha256ErrorType, sha256 } from '../hash/sha256.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type CommitmentToVersionedHashParameters<\n  commitment extends Uint8Array | Hex = Uint8Array | Hex,\n  to extends To | undefined = undefined,\n> = {\n  /** Commitment from blob. */\n  commitment: commitment | Uint8Array | Hex\n  /** Return type. */\n  to?: to | To | undefined\n  /** Version to tag onto the hash. */\n  version?: number | undefined\n}\n\nexport type CommitmentToVersionedHashReturnType<to extends To> =\n  | (to extends 'bytes' ? ByteArray : never)\n  | (to extends 'hex' ? Hex : never)\n\nexport type CommitmentToVersionedHashErrorType =\n  | Sha256ErrorType\n  | BytesToHexErrorType\n  | ErrorType\n\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentToVersionedHash,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash<\n  const commitment extends Hex | ByteArray,\n  to extends To =\n    | (commitment extends Hex ? 'hex' : never)\n    | (commitment extends ByteArray ? 'bytes' : never),\n>(\n  parameters: CommitmentToVersionedHashParameters<commitment, to>,\n): CommitmentToVersionedHashReturnType<to> {\n  const { commitment, version = 1 } = parameters\n  const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes')\n\n  const versionedHash = sha256(commitment, 'bytes')\n  versionedHash.set([version], 0)\n  return (\n    to === 'bytes' ? versionedHash : bytesToHex(versionedHash)\n  ) as CommitmentToVersionedHashReturnType<to>\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport {\n  type CommitmentToVersionedHashErrorType,\n  commitmentToVersionedHash,\n} from './commitmentToVersionedHash.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type CommitmentsToVersionedHashesParameters<\n  commitments extends readonly Uint8Array[] | readonly Hex[] =\n    | readonly Uint8Array[]\n    | readonly Hex[],\n  to extends To | undefined = undefined,\n> = {\n  /** Commitments from blobs. */\n  commitments: commitments | readonly Uint8Array[] | readonly Hex[]\n  /** Return type. */\n  to?: to | To | undefined\n  /** Version to tag onto the hashes. */\n  version?: number | undefined\n}\n\nexport type CommitmentsToVersionedHashesReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type CommitmentsToVersionedHashesErrorType =\n  | CommitmentToVersionedHashErrorType\n  | ErrorType\n\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   commitmentsToVersionedHashes,\n *   toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes<\n  const commitments extends readonly Uint8Array[] | readonly Hex[],\n  to extends To =\n    | (commitments extends readonly Hex[] ? 'hex' : never)\n    | (commitments extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: CommitmentsToVersionedHashesParameters<commitments, to>,\n): CommitmentsToVersionedHashesReturnType<to> {\n  const { commitments, version } = parameters\n\n  const to =\n    parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes')\n\n  const hashes: Uint8Array[] | Hex[] = []\n  for (const commitment of commitments) {\n    hashes.push(\n      commitmentToVersionedHash({\n        commitment,\n        to,\n        version,\n      }) as any,\n    )\n  }\n  return hashes as any\n}\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6\n\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32\n\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096\n\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob\n\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction =\n  bytesPerBlob * blobsPerTransaction -\n  // terminator byte (0x80).\n  1 -\n  // zero byte (0x00) appended to each field element.\n  1 * fieldElementsPerBlob * blobsPerTransaction\n","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n\nexport const versionedHashVersionKzg = 1\n","import { versionedHashVersionKzg } from '../constants/kzg.js'\nimport type { Hash } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport type BlobSizeTooLargeErrorType = BlobSizeTooLargeError & {\n  name: 'BlobSizeTooLargeError'\n}\nexport class BlobSizeTooLargeError extends BaseError {\n  constructor({ maxSize, size }: { maxSize: number; size: number }) {\n    super('Blob size is too large.', {\n      metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n      name: 'BlobSizeTooLargeError',\n    })\n  }\n}\n\nexport type EmptyBlobErrorType = EmptyBlobError & {\n  name: 'EmptyBlobError'\n}\nexport class EmptyBlobError extends BaseError {\n  constructor() {\n    super('Blob data must not be empty.', { name: 'EmptyBlobError' })\n  }\n}\n\nexport type InvalidVersionedHashSizeErrorType =\n  InvalidVersionedHashSizeError & {\n    name: 'InvalidVersionedHashSizeError'\n  }\nexport class InvalidVersionedHashSizeError extends BaseError {\n  constructor({\n    hash,\n    size,\n  }: {\n    hash: Hash\n    size: number\n  }) {\n    super(`Versioned hash \"${hash}\" size is invalid.`, {\n      metaMessages: ['Expected: 32', `Received: ${size}`],\n      name: 'InvalidVersionedHashSizeError',\n    })\n  }\n}\n\nexport type InvalidVersionedHashVersionErrorType =\n  InvalidVersionedHashVersionError & {\n    name: 'InvalidVersionedHashVersionError'\n  }\nexport class InvalidVersionedHashVersionError extends BaseError {\n  constructor({\n    hash,\n    version,\n  }: {\n    hash: Hash\n    version: number\n  }) {\n    super(`Versioned hash \"${hash}\" version is invalid.`, {\n      metaMessages: [\n        `Expected: ${versionedHashVersionKzg}`,\n        `Received: ${version}`,\n      ],\n      name: 'InvalidVersionedHashVersionError',\n    })\n  }\n}\n","import {\n  bytesPerBlob,\n  bytesPerFieldElement,\n  fieldElementsPerBlob,\n  maxBytesPerTransaction,\n} from '../../constants/blob.js'\nimport {\n  BlobSizeTooLargeError,\n  type BlobSizeTooLargeErrorType,\n  EmptyBlobError,\n  type EmptyBlobErrorType,\n} from '../../errors/blob.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type CreateCursorErrorType, createCursor } from '../cursor.js'\nimport { type SizeErrorType, size } from '../data/size.js'\nimport { type HexToBytesErrorType, hexToBytes } from '../encoding/toBytes.js'\nimport { type BytesToHexErrorType, bytesToHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type ToBlobsParameters<\n  data extends Hex | ByteArray = Hex | ByteArray,\n  to extends To | undefined = undefined,\n> = {\n  /** Data to transform to a blob. */\n  data: data | Hex | ByteArray\n  /** Return type. */\n  to?: to | To | undefined\n}\n\nexport type ToBlobsReturnType<to extends To> =\n  | (to extends 'bytes' ? readonly ByteArray[] : never)\n  | (to extends 'hex' ? readonly Hex[] : never)\n\nexport type ToBlobsErrorType =\n  | BlobSizeTooLargeErrorType\n  | BytesToHexErrorType\n  | CreateCursorErrorType\n  | EmptyBlobErrorType\n  | HexToBytesErrorType\n  | SizeErrorType\n  | ErrorType\n\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs<\n  const data extends Hex | ByteArray,\n  to extends To =\n    | (data extends Hex ? 'hex' : never)\n    | (data extends ByteArray ? 'bytes' : never),\n>(parameters: ToBlobsParameters<data, to>): ToBlobsReturnType<to> {\n  const to =\n    parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes')\n  const data = (\n    typeof parameters.data === 'string'\n      ? hexToBytes(parameters.data)\n      : parameters.data\n  ) as ByteArray\n\n  const size_ = size(data)\n  if (!size_) throw new EmptyBlobError()\n  if (size_ > maxBytesPerTransaction)\n    throw new BlobSizeTooLargeError({\n      maxSize: maxBytesPerTransaction,\n      size: size_,\n    })\n\n  const blobs = []\n\n  let active = true\n  let position = 0\n  while (active) {\n    const blob = createCursor(new Uint8Array(bytesPerBlob))\n\n    let size = 0\n    while (size < fieldElementsPerBlob) {\n      const bytes = data.slice(position, position + (bytesPerFieldElement - 1))\n\n      // Push a zero byte so the field element doesn't overflow the BLS modulus.\n      blob.pushByte(0x00)\n\n      // Push the current segment of data bytes.\n      blob.pushBytes(bytes)\n\n      // If we detect that the current segment of data bytes is less than 31 bytes,\n      // we can stop processing and push a terminator byte to indicate the end of the blob.\n      if (bytes.length < 31) {\n        blob.pushByte(0x80)\n        active = false\n        break\n      }\n\n      size++\n      position += 31\n    }\n\n    blobs.push(blob)\n  }\n\n  return (\n    to === 'bytes'\n      ? blobs.map((x) => x.bytes)\n      : blobs.map((x) => bytesToHex(x.bytes))\n  ) as any\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { BlobSidecars } from '../../types/eip4844.js'\nimport type { Kzg } from '../../types/kzg.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type BlobsToCommitmentsErrorType,\n  blobsToCommitments,\n} from './blobsToCommitments.js'\nimport { blobsToProofs, type blobsToProofsErrorType } from './blobsToProofs.js'\nimport { type ToBlobsErrorType, toBlobs } from './toBlobs.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type ToBlobSidecarsParameters<\n  data extends Hex | ByteArray | undefined = undefined,\n  blobs extends readonly Hex[] | readonly ByteArray[] | undefined = undefined,\n  to extends To =\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n  ///\n  _blobsType =\n    | (blobs extends readonly Hex[] ? readonly Hex[] : never)\n    | (blobs extends readonly ByteArray[] ? readonly ByteArray[] : never),\n> = {\n  /** Return type. */\n  to?: to | To | undefined\n} & OneOf<\n  | {\n      /** Data to transform into blobs. */\n      data: data | Hex | ByteArray\n      /** KZG implementation. */\n      kzg: Kzg\n    }\n  | {\n      /** Blobs. */\n      blobs: blobs | readonly Hex[] | readonly ByteArray[]\n      /** Commitment for each blob. */\n      commitments: _blobsType | readonly Hex[] | readonly ByteArray[]\n      /** Proof for each blob. */\n      proofs: _blobsType | readonly Hex[] | readonly ByteArray[]\n    }\n>\n\nexport type ToBlobSidecarsReturnType<to extends To> =\n  | (to extends 'bytes' ? BlobSidecars<ByteArray> : never)\n  | (to extends 'hex' ? BlobSidecars<Hex> : never)\n\nexport type ToBlobSidecarsErrorType =\n  | BlobsToCommitmentsErrorType\n  | ToBlobsErrorType\n  | blobsToProofsErrorType\n  | ErrorType\n\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n *   blobsToCommitments,\n *   toBlobs,\n *   blobsToProofs,\n *   toBlobSidecars,\n *   stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars<\n  const data extends Hex | ByteArray | undefined = undefined,\n  const blobs extends\n    | readonly Hex[]\n    | readonly ByteArray[]\n    | undefined = undefined,\n  to extends To =\n    | (data extends Hex ? 'hex' : never)\n    | (data extends ByteArray ? 'bytes' : never)\n    | (blobs extends readonly Hex[] ? 'hex' : never)\n    | (blobs extends readonly ByteArray[] ? 'bytes' : never),\n>(\n  parameters: ToBlobSidecarsParameters<data, blobs, to>,\n): ToBlobSidecarsReturnType<to> {\n  const { data, kzg, to } = parameters\n  const blobs = parameters.blobs ?? toBlobs({ data: data!, to })\n  const commitments =\n    parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg!, to })\n  const proofs =\n    parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg!, to })\n\n  const sidecars: BlobSidecars = []\n  for (let i = 0; i < blobs.length; i++)\n    sidecars.push({\n      blob: blobs[i],\n      commitment: commitments[i],\n      proof: proofs[i],\n    })\n\n  return sidecars as ToBlobSidecarsReturnType<to>\n}\n","export const maxInt8 = 2n ** (8n - 1n) - 1n\nexport const maxInt16 = 2n ** (16n - 1n) - 1n\nexport const maxInt24 = 2n ** (24n - 1n) - 1n\nexport const maxInt32 = 2n ** (32n - 1n) - 1n\nexport const maxInt40 = 2n ** (40n - 1n) - 1n\nexport const maxInt48 = 2n ** (48n - 1n) - 1n\nexport const maxInt56 = 2n ** (56n - 1n) - 1n\nexport const maxInt64 = 2n ** (64n - 1n) - 1n\nexport const maxInt72 = 2n ** (72n - 1n) - 1n\nexport const maxInt80 = 2n ** (80n - 1n) - 1n\nexport const maxInt88 = 2n ** (88n - 1n) - 1n\nexport const maxInt96 = 2n ** (96n - 1n) - 1n\nexport const maxInt104 = 2n ** (104n - 1n) - 1n\nexport const maxInt112 = 2n ** (112n - 1n) - 1n\nexport const maxInt120 = 2n ** (120n - 1n) - 1n\nexport const maxInt128 = 2n ** (128n - 1n) - 1n\nexport const maxInt136 = 2n ** (136n - 1n) - 1n\nexport const maxInt144 = 2n ** (144n - 1n) - 1n\nexport const maxInt152 = 2n ** (152n - 1n) - 1n\nexport const maxInt160 = 2n ** (160n - 1n) - 1n\nexport const maxInt168 = 2n ** (168n - 1n) - 1n\nexport const maxInt176 = 2n ** (176n - 1n) - 1n\nexport const maxInt184 = 2n ** (184n - 1n) - 1n\nexport const maxInt192 = 2n ** (192n - 1n) - 1n\nexport const maxInt200 = 2n ** (200n - 1n) - 1n\nexport const maxInt208 = 2n ** (208n - 1n) - 1n\nexport const maxInt216 = 2n ** (216n - 1n) - 1n\nexport const maxInt224 = 2n ** (224n - 1n) - 1n\nexport const maxInt232 = 2n ** (232n - 1n) - 1n\nexport const maxInt240 = 2n ** (240n - 1n) - 1n\nexport const maxInt248 = 2n ** (248n - 1n) - 1n\nexport const maxInt256 = 2n ** (256n - 1n) - 1n\n\nexport const minInt8 = -(2n ** (8n - 1n))\nexport const minInt16 = -(2n ** (16n - 1n))\nexport const minInt24 = -(2n ** (24n - 1n))\nexport const minInt32 = -(2n ** (32n - 1n))\nexport const minInt40 = -(2n ** (40n - 1n))\nexport const minInt48 = -(2n ** (48n - 1n))\nexport const minInt56 = -(2n ** (56n - 1n))\nexport const minInt64 = -(2n ** (64n - 1n))\nexport const minInt72 = -(2n ** (72n - 1n))\nexport const minInt80 = -(2n ** (80n - 1n))\nexport const minInt88 = -(2n ** (88n - 1n))\nexport const minInt96 = -(2n ** (96n - 1n))\nexport const minInt104 = -(2n ** (104n - 1n))\nexport const minInt112 = -(2n ** (112n - 1n))\nexport const minInt120 = -(2n ** (120n - 1n))\nexport const minInt128 = -(2n ** (128n - 1n))\nexport const minInt136 = -(2n ** (136n - 1n))\nexport const minInt144 = -(2n ** (144n - 1n))\nexport const minInt152 = -(2n ** (152n - 1n))\nexport const minInt160 = -(2n ** (160n - 1n))\nexport const minInt168 = -(2n ** (168n - 1n))\nexport const minInt176 = -(2n ** (176n - 1n))\nexport const minInt184 = -(2n ** (184n - 1n))\nexport const minInt192 = -(2n ** (192n - 1n))\nexport const minInt200 = -(2n ** (200n - 1n))\nexport const minInt208 = -(2n ** (208n - 1n))\nexport const minInt216 = -(2n ** (216n - 1n))\nexport const minInt224 = -(2n ** (224n - 1n))\nexport const minInt232 = -(2n ** (232n - 1n))\nexport const minInt240 = -(2n ** (240n - 1n))\nexport const minInt248 = -(2n ** (248n - 1n))\nexport const minInt256 = -(2n ** (256n - 1n))\n\nexport const maxUint8 = 2n ** 8n - 1n\nexport const maxUint16 = 2n ** 16n - 1n\nexport const maxUint24 = 2n ** 24n - 1n\nexport const maxUint32 = 2n ** 32n - 1n\nexport const maxUint40 = 2n ** 40n - 1n\nexport const maxUint48 = 2n ** 48n - 1n\nexport const maxUint56 = 2n ** 56n - 1n\nexport const maxUint64 = 2n ** 64n - 1n\nexport const maxUint72 = 2n ** 72n - 1n\nexport const maxUint80 = 2n ** 80n - 1n\nexport const maxUint88 = 2n ** 88n - 1n\nexport const maxUint96 = 2n ** 96n - 1n\nexport const maxUint104 = 2n ** 104n - 1n\nexport const maxUint112 = 2n ** 112n - 1n\nexport const maxUint120 = 2n ** 120n - 1n\nexport const maxUint128 = 2n ** 128n - 1n\nexport const maxUint136 = 2n ** 136n - 1n\nexport const maxUint144 = 2n ** 144n - 1n\nexport const maxUint152 = 2n ** 152n - 1n\nexport const maxUint160 = 2n ** 160n - 1n\nexport const maxUint168 = 2n ** 168n - 1n\nexport const maxUint176 = 2n ** 176n - 1n\nexport const maxUint184 = 2n ** 184n - 1n\nexport const maxUint192 = 2n ** 192n - 1n\nexport const maxUint200 = 2n ** 200n - 1n\nexport const maxUint208 = 2n ** 208n - 1n\nexport const maxUint216 = 2n ** 216n - 1n\nexport const maxUint224 = 2n ** 224n - 1n\nexport const maxUint232 = 2n ** 232n - 1n\nexport const maxUint240 = 2n ** 240n - 1n\nexport const maxUint248 = 2n ** 248n - 1n\nexport const maxUint256 = 2n ** 256n - 1n\n","import type { Chain } from '../types/chain.js'\n\nimport { BaseError } from './base.js'\n\nexport type ChainDoesNotSupportContractErrorType =\n  ChainDoesNotSupportContract & {\n    name: 'ChainDoesNotSupportContract'\n  }\nexport class ChainDoesNotSupportContract extends BaseError {\n  constructor({\n    blockNumber,\n    chain,\n    contract,\n  }: {\n    blockNumber?: bigint | undefined\n    chain: Chain\n    contract: { name: string; blockCreated?: number | undefined }\n  }) {\n    super(\n      `Chain \"${chain.name}\" does not support contract \"${contract.name}\".`,\n      {\n        metaMessages: [\n          'This could be due to any of the following:',\n          ...(blockNumber &&\n          contract.blockCreated &&\n          contract.blockCreated > blockNumber\n            ? [\n                `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n              ]\n            : [\n                `- The chain does not have the contract \"${contract.name}\" configured.`,\n              ]),\n        ],\n        name: 'ChainDoesNotSupportContract',\n      },\n    )\n  }\n}\n\nexport type ChainMismatchErrorType = ChainMismatchError & {\n  name: 'ChainMismatchError'\n}\nexport class ChainMismatchError extends BaseError {\n  constructor({\n    chain,\n    currentChainId,\n  }: {\n    chain: Chain\n    currentChainId: number\n  }) {\n    super(\n      `The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`,\n      {\n        metaMessages: [\n          `Current Chain ID:  ${currentChainId}`,\n          `Expected Chain ID: ${chain.id} – ${chain.name}`,\n        ],\n        name: 'ChainMismatchError',\n      },\n    )\n  }\n}\n\nexport type ChainNotFoundErrorType = ChainNotFoundError & {\n  name: 'ChainNotFoundError'\n}\nexport class ChainNotFoundError extends BaseError {\n  constructor() {\n    super(\n      [\n        'No chain was provided to the request.',\n        'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n      ].join('\\n'),\n      {\n        name: 'ChainNotFoundError',\n      },\n    )\n  }\n}\n\nexport type ClientChainNotConfiguredErrorType =\n  ClientChainNotConfiguredError & {\n    name: 'ClientChainNotConfiguredError'\n  }\nexport class ClientChainNotConfiguredError extends BaseError {\n  constructor() {\n    super('No chain was provided to the Client.', {\n      name: 'ClientChainNotConfiguredError',\n    })\n  }\n}\n\nexport type InvalidChainIdErrorType = InvalidChainIdError & {\n  name: 'InvalidChainIdError'\n}\nexport class InvalidChainIdError extends BaseError {\n  constructor({ chainId }: { chainId?: number | undefined }) {\n    super(\n      typeof chainId === 'number'\n        ? `Chain ID \"${chainId}\" is invalid.`\n        : 'Chain ID is invalid.',\n      { name: 'InvalidChainIdError' },\n    )\n  }\n}\n","import { formatGwei } from '../utils/unit/formatGwei.js'\n\nimport { BaseError } from './base.js'\n\n/**\n * geth:    https://github.com/ethereum/go-ethereum/blob/master/core/error.go\n *          https://github.com/ethereum/go-ethereum/blob/master/core/types/transaction.go#L34-L41\n *\n * erigon:  https://github.com/ledgerwatch/erigon/blob/master/core/error.go\n *          https://github.com/ledgerwatch/erigon/blob/master/core/types/transaction.go#L41-L46\n *\n * anvil:   https://github.com/foundry-rs/foundry/blob/master/anvil/src/eth/error.rs#L108\n */\nexport type ExecutionRevertedErrorType = ExecutionRevertedError & {\n  code: 3\n  name: 'ExecutionRevertedError'\n}\nexport class ExecutionRevertedError extends BaseError {\n  static code = 3\n  static nodeMessage = /execution reverted/\n\n  constructor({\n    cause,\n    message,\n  }: { cause?: BaseError | undefined; message?: string | undefined } = {}) {\n    const reason = message\n      ?.replace('execution reverted: ', '')\n      ?.replace('execution reverted', '')\n    super(\n      `Execution reverted ${\n        reason ? `with reason: ${reason}` : 'for an unknown reason'\n      }.`,\n      {\n        cause,\n        name: 'ExecutionRevertedError',\n      },\n    )\n  }\n}\n\nexport type FeeCapTooHighErrorType = FeeCapTooHighError & {\n  name: 'FeeCapTooHighError'\n}\nexport class FeeCapTooHighError extends BaseError {\n  static nodeMessage =\n    /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n  constructor({\n    cause,\n    maxFeePerGas,\n  }: {\n    cause?: BaseError | undefined\n    maxFeePerGas?: bigint | undefined\n  } = {}) {\n    super(\n      `The fee cap (\\`maxFeePerGas\\`${\n        maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''\n      }) cannot be higher than the maximum allowed value (2^256-1).`,\n      {\n        cause,\n        name: 'FeeCapTooHighError',\n      },\n    )\n  }\n}\n\nexport type FeeCapTooLowErrorType = FeeCapTooLowError & {\n  name: 'FeeCapTooLowError'\n}\nexport class FeeCapTooLowError extends BaseError {\n  static nodeMessage =\n    /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n  constructor({\n    cause,\n    maxFeePerGas,\n  }: {\n    cause?: BaseError | undefined\n    maxFeePerGas?: bigint | undefined\n  } = {}) {\n    super(\n      `The fee cap (\\`maxFeePerGas\\`${\n        maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''\n      } gwei) cannot be lower than the block base fee.`,\n      {\n        cause,\n        name: 'FeeCapTooLowError',\n      },\n    )\n  }\n}\n\nexport type NonceTooHighErrorType = NonceTooHighError & {\n  name: 'NonceTooHighError'\n}\nexport class NonceTooHighError extends BaseError {\n  static nodeMessage = /nonce too high/\n  constructor({\n    cause,\n    nonce,\n  }: { cause?: BaseError | undefined; nonce?: number | undefined } = {}) {\n    super(\n      `Nonce provided for the transaction ${\n        nonce ? `(${nonce}) ` : ''\n      }is higher than the next one expected.`,\n      { cause, name: 'NonceTooHighError' },\n    )\n  }\n}\n\nexport type NonceTooLowErrorType = NonceTooLowError & {\n  name: 'NonceTooLowError'\n}\nexport class NonceTooLowError extends BaseError {\n  static nodeMessage =\n    /nonce too low|transaction already imported|already known/\n  constructor({\n    cause,\n    nonce,\n  }: { cause?: BaseError | undefined; nonce?: number | undefined } = {}) {\n    super(\n      [\n        `Nonce provided for the transaction ${\n          nonce ? `(${nonce}) ` : ''\n        }is lower than the current nonce of the account.`,\n        'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n      ].join('\\n'),\n      { cause, name: 'NonceTooLowError' },\n    )\n  }\n}\n\nexport type NonceMaxValueErrorType = NonceMaxValueError & {\n  name: 'NonceMaxValueError'\n}\nexport class NonceMaxValueError extends BaseError {\n  static nodeMessage = /nonce has max value/\n  constructor({\n    cause,\n    nonce,\n  }: { cause?: BaseError | undefined; nonce?: number | undefined } = {}) {\n    super(\n      `Nonce provided for the transaction ${\n        nonce ? `(${nonce}) ` : ''\n      }exceeds the maximum allowed nonce.`,\n      { cause, name: 'NonceMaxValueError' },\n    )\n  }\n}\n\nexport type InsufficientFundsErrorType = InsufficientFundsError & {\n  name: 'InsufficientFundsError'\n}\nexport class InsufficientFundsError extends BaseError {\n  static nodeMessage =\n    /insufficient funds|exceeds transaction sender account balance/\n  constructor({ cause }: { cause?: BaseError | undefined } = {}) {\n    super(\n      [\n        'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n      ].join('\\n'),\n      {\n        cause,\n        metaMessages: [\n          'This error could arise when the account does not have enough funds to:',\n          ' - pay for the total gas fee,',\n          ' - pay for the value to send.',\n          ' ',\n          'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n          ' - `gas` is the amount of gas needed for transaction to execute,',\n          ' - `gas fee` is the gas fee,',\n          ' - `value` is the amount of ether to send to the recipient.',\n        ],\n        name: 'InsufficientFundsError',\n      },\n    )\n  }\n}\n\nexport type IntrinsicGasTooHighErrorType = IntrinsicGasTooHighError & {\n  name: 'IntrinsicGasTooHighError'\n}\nexport class IntrinsicGasTooHighError extends BaseError {\n  static nodeMessage = /intrinsic gas too high|gas limit reached/\n  constructor({\n    cause,\n    gas,\n  }: { cause?: BaseError | undefined; gas?: bigint | undefined } = {}) {\n    super(\n      `The amount of gas ${\n        gas ? `(${gas}) ` : ''\n      }provided for the transaction exceeds the limit allowed for the block.`,\n      {\n        cause,\n        name: 'IntrinsicGasTooHighError',\n      },\n    )\n  }\n}\n\nexport type IntrinsicGasTooLowErrorType = IntrinsicGasTooLowError & {\n  name: 'IntrinsicGasTooLowError'\n}\nexport class IntrinsicGasTooLowError extends BaseError {\n  static nodeMessage = /intrinsic gas too low/\n  constructor({\n    cause,\n    gas,\n  }: { cause?: BaseError | undefined; gas?: bigint | undefined } = {}) {\n    super(\n      `The amount of gas ${\n        gas ? `(${gas}) ` : ''\n      }provided for the transaction is too low.`,\n      {\n        cause,\n        name: 'IntrinsicGasTooLowError',\n      },\n    )\n  }\n}\n\nexport type TransactionTypeNotSupportedErrorType =\n  TransactionTypeNotSupportedError & {\n    name: 'TransactionTypeNotSupportedError'\n  }\nexport class TransactionTypeNotSupportedError extends BaseError {\n  static nodeMessage = /transaction type not valid/\n  constructor({ cause }: { cause?: BaseError | undefined }) {\n    super('The transaction type is not supported for this chain.', {\n      cause,\n      name: 'TransactionTypeNotSupportedError',\n    })\n  }\n}\n\nexport type TipAboveFeeCapErrorType = TipAboveFeeCapError & {\n  name: 'TipAboveFeeCapError'\n}\nexport class TipAboveFeeCapError extends BaseError {\n  static nodeMessage =\n    /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n  constructor({\n    cause,\n    maxPriorityFeePerGas,\n    maxFeePerGas,\n  }: {\n    cause?: BaseError | undefined\n    maxPriorityFeePerGas?: bigint | undefined\n    maxFeePerGas?: bigint | undefined\n  } = {}) {\n    super(\n      [\n        `The provided tip (\\`maxPriorityFeePerGas\\`${\n          maxPriorityFeePerGas\n            ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n            : ''\n        }) cannot be higher than the fee cap (\\`maxFeePerGas\\`${\n          maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''\n        }).`,\n      ].join('\\n'),\n      {\n        cause,\n        name: 'TipAboveFeeCapError',\n      },\n    )\n  }\n}\n\nexport type UnknownNodeErrorType = UnknownNodeError & {\n  name: 'UnknownNodeError'\n}\nexport class UnknownNodeError extends BaseError {\n  constructor({ cause }: { cause?: BaseError | undefined }) {\n    super(`An error occurred while executing: ${cause?.shortMessage}`, {\n      cause,\n      name: 'UnknownNodeError',\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 ByteArray | Hex> = 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<value extends ByteArray | Hex>(\n  value: value,\n  start?: number | undefined,\n  end?: number | undefined,\n  { strict }: { strict?: boolean | undefined } = {},\n): SliceReturnType<value> {\n  if (isHex(value, { strict: false }))\n    return sliceHex(value as Hex, start, end, {\n      strict,\n    }) as SliceReturnType<value>\n  return sliceBytes(value as ByteArray, start, end, {\n    strict,\n  }) as SliceReturnType<value>\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","import { versionedHashVersionKzg } from '../../constants/kzg.js'\nimport { maxUint256 } from '../../constants/number.js'\nimport {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport { BaseError, type BaseErrorType } from '../../errors/base.js'\nimport {\n  EmptyBlobError,\n  type EmptyBlobErrorType,\n  InvalidVersionedHashSizeError,\n  type InvalidVersionedHashSizeErrorType,\n  InvalidVersionedHashVersionError,\n  type InvalidVersionedHashVersionErrorType,\n} from '../../errors/blob.js'\nimport {\n  InvalidChainIdError,\n  type InvalidChainIdErrorType,\n} from '../../errors/chain.js'\nimport {\n  FeeCapTooHighError,\n  type FeeCapTooHighErrorType,\n  TipAboveFeeCapError,\n  type TipAboveFeeCapErrorType,\n} from '../../errors/node.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  TransactionSerializableEIP1559,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableLegacy,\n} from '../../types/transaction.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport { size } from '../data/size.js'\nimport { slice } from '../data/slice.js'\nimport { hexToNumber } from '../encoding/fromHex.js'\n\nexport type AssertTransactionEIP7702ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | ErrorType\n\nexport function assertTransactionEIP7702(\n  transaction: TransactionSerializableEIP7702,\n) {\n  const { authorizationList } = transaction\n  if (authorizationList) {\n    for (const authorization of authorizationList) {\n      const { chainId } = authorization\n      const address = authorization.address\n      if (!isAddress(address)) throw new InvalidAddressError({ address })\n      if (chainId < 0) throw new InvalidChainIdError({ chainId })\n    }\n  }\n  assertTransactionEIP1559(transaction as {} as TransactionSerializableEIP1559)\n}\n\nexport type AssertTransactionEIP4844ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | EmptyBlobErrorType\n  | InvalidVersionedHashSizeErrorType\n  | InvalidVersionedHashVersionErrorType\n  | ErrorType\n\nexport function assertTransactionEIP4844(\n  transaction: TransactionSerializableEIP4844,\n) {\n  const { blobVersionedHashes } = transaction\n  if (blobVersionedHashes) {\n    if (blobVersionedHashes.length === 0) throw new EmptyBlobError()\n    for (const hash of blobVersionedHashes) {\n      const size_ = size(hash)\n      const version = hexToNumber(slice(hash, 0, 1))\n      if (size_ !== 32)\n        throw new InvalidVersionedHashSizeError({ hash, size: size_ })\n      if (version !== versionedHashVersionKzg)\n        throw new InvalidVersionedHashVersionError({\n          hash,\n          version,\n        })\n    }\n  }\n  assertTransactionEIP1559(transaction as {} as TransactionSerializableEIP1559)\n}\n\nexport type AssertTransactionEIP1559ErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | TipAboveFeeCapErrorType\n  | ErrorType\n\nexport function assertTransactionEIP1559(\n  transaction: TransactionSerializableEIP1559,\n) {\n  const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction\n  if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (maxFeePerGas && maxFeePerGas > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas })\n  if (\n    maxPriorityFeePerGas &&\n    maxFeePerGas &&\n    maxPriorityFeePerGas > maxFeePerGas\n  )\n    throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas })\n}\n\nexport type AssertTransactionEIP2930ErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | ErrorType\n\nexport function assertTransactionEIP2930(\n  transaction: TransactionSerializableEIP2930,\n) {\n  const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n    transaction\n  if (chainId <= 0) throw new InvalidChainIdError({ chainId })\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (maxPriorityFeePerGas || maxFeePerGas)\n    throw new BaseError(\n      '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.',\n    )\n  if (gasPrice && gasPrice > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n}\n\nexport type AssertTransactionLegacyErrorType =\n  | BaseErrorType\n  | IsAddressErrorType\n  | InvalidAddressErrorType\n  | InvalidChainIdErrorType\n  | FeeCapTooHighErrorType\n  | ErrorType\n\nexport function assertTransactionLegacy(\n  transaction: TransactionSerializableLegacy,\n) {\n  const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } =\n    transaction\n  if (to && !isAddress(to)) throw new InvalidAddressError({ address: to })\n  if (typeof chainId !== 'undefined' && chainId <= 0)\n    throw new InvalidChainIdError({ chainId })\n  if (maxPriorityFeePerGas || maxFeePerGas)\n    throw new BaseError(\n      '`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.',\n    )\n  if (gasPrice && gasPrice > maxUint256)\n    throw new FeeCapTooHighError({ maxFeePerGas: gasPrice })\n}\n","import {\n  InvalidSerializableTransactionError,\n  type InvalidSerializableTransactionErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  FeeValuesEIP1559,\n  FeeValuesEIP4844,\n  FeeValuesLegacy,\n} from '../../index.js'\nimport type {\n  TransactionRequestGeneric,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableGeneric,\n} from '../../types/transaction.js'\nimport type { Assign, ExactPartial, IsNever, OneOf } from '../../types/utils.js'\n\nexport type GetTransactionType<\n  transaction extends OneOf<\n    TransactionSerializableGeneric | TransactionRequestGeneric\n  > = TransactionSerializableGeneric,\n  result =\n    | (transaction extends LegacyProperties ? 'legacy' : never)\n    | (transaction extends EIP1559Properties ? 'eip1559' : never)\n    | (transaction extends EIP2930Properties ? 'eip2930' : never)\n    | (transaction extends EIP4844Properties ? 'eip4844' : never)\n    | (transaction extends EIP7702Properties ? 'eip7702' : never)\n    | (transaction['type'] extends TransactionSerializableGeneric['type']\n        ? Extract<transaction['type'], string>\n        : never),\n> = IsNever<keyof transaction> extends true\n  ? string\n  : IsNever<result> extends false\n    ? result\n    : string\n\nexport type GetTransactionTypeErrorType =\n  | InvalidSerializableTransactionErrorType\n  | ErrorType\n\nexport function getTransactionType<\n  const transaction extends OneOf<\n    TransactionSerializableGeneric | TransactionRequestGeneric\n  >,\n>(transaction: transaction): GetTransactionType<transaction> {\n  if (transaction.type)\n    return transaction.type as GetTransactionType<transaction>\n\n  if (typeof transaction.authorizationList !== 'undefined')\n    return 'eip7702' as any\n\n  if (\n    typeof transaction.blobs !== 'undefined' ||\n    typeof transaction.blobVersionedHashes !== 'undefined' ||\n    typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n    typeof transaction.sidecars !== 'undefined'\n  )\n    return 'eip4844' as any\n\n  if (\n    typeof transaction.maxFeePerGas !== 'undefined' ||\n    typeof transaction.maxPriorityFeePerGas !== 'undefined'\n  ) {\n    return 'eip1559' as any\n  }\n\n  if (typeof transaction.gasPrice !== 'undefined') {\n    if (typeof transaction.accessList !== 'undefined') return 'eip2930' as any\n    return 'legacy' as any\n  }\n\n  throw new InvalidSerializableTransactionError({ transaction })\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////\n// Types\n\ntype BaseProperties = {\n  accessList?: undefined\n  authorizationList?: undefined\n  blobs?: undefined\n  blobVersionedHashes?: undefined\n  gasPrice?: undefined\n  maxFeePerBlobGas?: undefined\n  maxFeePerGas?: undefined\n  maxPriorityFeePerGas?: undefined\n  sidecars?: undefined\n}\n\ntype LegacyProperties = Assign<BaseProperties, FeeValuesLegacy>\ntype EIP1559Properties = Assign<\n  BaseProperties,\n  OneOf<\n    | {\n        maxFeePerGas: FeeValuesEIP1559['maxFeePerGas']\n      }\n    | {\n        maxPriorityFeePerGas: FeeValuesEIP1559['maxPriorityFeePerGas']\n      },\n    FeeValuesEIP1559\n  > & {\n    accessList?: TransactionSerializableEIP2930['accessList'] | undefined\n  }\n>\ntype EIP2930Properties = Assign<\n  ExactPartial<LegacyProperties>,\n  {\n    accessList: TransactionSerializableEIP2930['accessList']\n  }\n>\ntype EIP4844Properties = Assign<\n  ExactPartial<EIP1559Properties>,\n  ExactPartial<FeeValuesEIP4844> &\n    OneOf<\n      | {\n          blobs: TransactionSerializableEIP4844['blobs']\n        }\n      | {\n          blobVersionedHashes: TransactionSerializableEIP4844['blobVersionedHashes']\n        }\n      | {\n          sidecars: TransactionSerializableEIP4844['sidecars']\n        },\n      TransactionSerializableEIP4844\n    >\n>\ntype EIP7702Properties = Assign<\n  ExactPartial<EIP1559Properties>,\n  {\n    authorizationList: TransactionSerializableEIP7702['authorizationList']\n  }\n>\n","import {\n  InvalidAddressError,\n  type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport {\n  InvalidStorageKeySizeError,\n  type InvalidStorageKeySizeErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { AccessList } from '../../types/transaction.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport type { RecursiveArray } from '../encoding/toRlp.js'\n\nexport type SerializeAccessListErrorType =\n  | InvalidStorageKeySizeErrorType\n  | InvalidAddressErrorType\n  | IsAddressErrorType\n  | ErrorType\n\n/*\n * Serialize an  EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(\n  accessList?: AccessList | undefined,\n): RecursiveArray<Hex> {\n  if (!accessList || accessList.length === 0) return []\n\n  const serializedAccessList = []\n  for (let i = 0; i < accessList.length; i++) {\n    const { address, storageKeys } = accessList[i]\n\n    for (let j = 0; j < storageKeys.length; j++) {\n      if (storageKeys[j].length - 2 !== 64) {\n        throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] })\n      }\n    }\n\n    if (!isAddress(address, { strict: false })) {\n      throw new InvalidAddressError({ address })\n    }\n\n    serializedAccessList.push([address, storageKeys])\n  }\n  return serializedAccessList\n}\n","import {\n  InvalidLegacyVError,\n  type InvalidLegacyVErrorType,\n} from '../../errors/transaction.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type {\n  ByteArray,\n  Hex,\n  Signature,\n  SignatureLegacy,\n} from '../../types/misc.js'\nimport type {\n  TransactionSerializable,\n  TransactionSerializableEIP1559,\n  TransactionSerializableEIP2930,\n  TransactionSerializableEIP4844,\n  TransactionSerializableEIP7702,\n  TransactionSerializableGeneric,\n  TransactionSerializableLegacy,\n  TransactionSerialized,\n  TransactionSerializedEIP1559,\n  TransactionSerializedEIP2930,\n  TransactionSerializedEIP4844,\n  TransactionSerializedEIP7702,\n  TransactionSerializedLegacy,\n  TransactionType,\n} from '../../types/transaction.js'\nimport type { OneOf } from '../../types/utils.js'\nimport {\n  type SerializeAuthorizationListErrorType,\n  serializeAuthorizationList,\n} from '../authorization/serializeAuthorizationList.js'\nimport {\n  type BlobsToCommitmentsErrorType,\n  blobsToCommitments,\n} from '../blob/blobsToCommitments.js'\nimport {\n  blobsToProofs,\n  type blobsToProofsErrorType,\n} from '../blob/blobsToProofs.js'\nimport {\n  type CommitmentsToVersionedHashesErrorType,\n  commitmentsToVersionedHashes,\n} from '../blob/commitmentsToVersionedHashes.js'\nimport {\n  type ToBlobSidecarsErrorType,\n  toBlobSidecars,\n} from '../blob/toBlobSidecars.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport { trim } from '../data/trim.js'\nimport {\n  bytesToHex,\n  type NumberToHexErrorType,\n  numberToHex,\n} from '../encoding/toHex.js'\nimport { type ToRlpErrorType, toRlp } from '../encoding/toRlp.js'\n\nimport {\n  type AssertTransactionEIP1559ErrorType,\n  type AssertTransactionEIP2930ErrorType,\n  type AssertTransactionEIP4844ErrorType,\n  type AssertTransactionEIP7702ErrorType,\n  type AssertTransactionLegacyErrorType,\n  assertTransactionEIP1559,\n  assertTransactionEIP2930,\n  assertTransactionEIP4844,\n  assertTransactionEIP7702,\n  assertTransactionLegacy,\n} from './assertTransaction.js'\nimport {\n  type GetTransactionType,\n  type GetTransactionTypeErrorType,\n  getTransactionType,\n} from './getTransactionType.js'\nimport {\n  type SerializeAccessListErrorType,\n  serializeAccessList,\n} from './serializeAccessList.js'\n\nexport type SerializedTransactionReturnType<\n  transaction extends TransactionSerializable = TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = GetTransactionType<transaction>,\n> = TransactionSerialized<_transactionType>\n\nexport type SerializeTransactionFn<\n  transaction extends TransactionSerializableGeneric = TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = never,\n> = typeof serializeTransaction<\n  OneOf<TransactionSerializable | transaction>,\n  _transactionType\n>\n\nexport type SerializeTransactionErrorType =\n  | GetTransactionTypeErrorType\n  | SerializeTransactionEIP1559ErrorType\n  | SerializeTransactionEIP2930ErrorType\n  | SerializeTransactionEIP4844ErrorType\n  | SerializeTransactionEIP7702ErrorType\n  | SerializeTransactionLegacyErrorType\n  | ErrorType\n\nexport function serializeTransaction<\n  const transaction extends TransactionSerializable,\n  ///\n  _transactionType extends TransactionType = GetTransactionType<transaction>,\n>(\n  transaction: transaction,\n  signature?: Signature | undefined,\n): SerializedTransactionReturnType<transaction, _transactionType> {\n  const type = getTransactionType(transaction) as GetTransactionType\n\n  if (type === 'eip1559')\n    return serializeTransactionEIP1559(\n      transaction as TransactionSerializableEIP1559,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip2930')\n    return serializeTransactionEIP2930(\n      transaction as TransactionSerializableEIP2930,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip4844')\n    return serializeTransactionEIP4844(\n      transaction as TransactionSerializableEIP4844,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  if (type === 'eip7702')\n    return serializeTransactionEIP7702(\n      transaction as TransactionSerializableEIP7702,\n      signature,\n    ) as SerializedTransactionReturnType<transaction>\n\n  return serializeTransactionLegacy(\n    transaction as TransactionSerializableLegacy,\n    signature as SignatureLegacy,\n  ) as SerializedTransactionReturnType<transaction>\n}\n\ntype SerializeTransactionEIP7702ErrorType =\n  | AssertTransactionEIP7702ErrorType\n  | SerializeAuthorizationListErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP7702(\n  transaction: TransactionSerializableEIP7702,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP7702 {\n  const {\n    authorizationList,\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP7702(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n  const serializedAuthorizationList =\n    serializeAuthorizationList(authorizationList)\n\n  return concatHex([\n    '0x04',\n    toRlp([\n      numberToHex(chainId),\n      nonce ? numberToHex(nonce) : '0x',\n      maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n      maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n      gas ? numberToHex(gas) : '0x',\n      to ?? '0x',\n      value ? numberToHex(value) : '0x',\n      data ?? '0x',\n      serializedAccessList,\n      serializedAuthorizationList,\n      ...toYParitySignatureArray(transaction, signature),\n    ]),\n  ]) as TransactionSerializedEIP7702\n}\n\ntype SerializeTransactionEIP4844ErrorType =\n  | AssertTransactionEIP4844ErrorType\n  | BlobsToCommitmentsErrorType\n  | CommitmentsToVersionedHashesErrorType\n  | blobsToProofsErrorType\n  | ToBlobSidecarsErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP4844(\n  transaction: TransactionSerializableEIP4844,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP4844 {\n  const {\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerBlobGas,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP4844(transaction)\n\n  let blobVersionedHashes = transaction.blobVersionedHashes\n  let sidecars = transaction.sidecars\n  // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n  if (\n    transaction.blobs &&\n    (typeof blobVersionedHashes === 'undefined' ||\n      typeof sidecars === 'undefined')\n  ) {\n    const blobs = (\n      typeof transaction.blobs[0] === 'string'\n        ? transaction.blobs\n        : (transaction.blobs as ByteArray[]).map((x) => bytesToHex(x))\n    ) as Hex[]\n    const kzg = transaction.kzg!\n    const commitments = blobsToCommitments({\n      blobs,\n      kzg,\n    })\n\n    if (typeof blobVersionedHashes === 'undefined')\n      blobVersionedHashes = commitmentsToVersionedHashes({\n        commitments,\n      })\n    if (typeof sidecars === 'undefined') {\n      const proofs = blobsToProofs({ blobs, commitments, kzg })\n      sidecars = toBlobSidecars({ blobs, commitments, proofs })\n    }\n  }\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n    maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n    blobVersionedHashes ?? [],\n    ...toYParitySignatureArray(transaction, signature),\n  ] as const\n\n  const blobs: Hex[] = []\n  const commitments: Hex[] = []\n  const proofs: Hex[] = []\n  if (sidecars)\n    for (let i = 0; i < sidecars.length; i++) {\n      const { blob, commitment, proof } = sidecars[i]\n      blobs.push(blob)\n      commitments.push(commitment)\n      proofs.push(proof)\n    }\n\n  return concatHex([\n    '0x03',\n    sidecars\n      ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n        toRlp([serializedTransaction, blobs, commitments, proofs])\n      : // If sidecars are disabled, standard envelope is used:\n        toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP4844\n}\n\ntype SerializeTransactionEIP1559ErrorType =\n  | AssertTransactionEIP1559ErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP1559(\n  transaction: TransactionSerializableEIP1559,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP1559 {\n  const {\n    chainId,\n    gas,\n    nonce,\n    to,\n    value,\n    maxFeePerGas,\n    maxPriorityFeePerGas,\n    accessList,\n    data,\n  } = transaction\n\n  assertTransactionEIP1559(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n    maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    ...toYParitySignatureArray(transaction, signature),\n  ]\n\n  return concatHex([\n    '0x02',\n    toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP1559\n}\n\ntype SerializeTransactionEIP2930ErrorType =\n  | AssertTransactionEIP2930ErrorType\n  | ConcatHexErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | SerializeAccessListErrorType\n  | ErrorType\n\nfunction serializeTransactionEIP2930(\n  transaction: TransactionSerializableEIP2930,\n  signature?: Signature | undefined,\n): TransactionSerializedEIP2930 {\n  const { chainId, gas, data, nonce, to, value, accessList, gasPrice } =\n    transaction\n\n  assertTransactionEIP2930(transaction)\n\n  const serializedAccessList = serializeAccessList(accessList)\n\n  const serializedTransaction = [\n    numberToHex(chainId),\n    nonce ? numberToHex(nonce) : '0x',\n    gasPrice ? numberToHex(gasPrice) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n    serializedAccessList,\n    ...toYParitySignatureArray(transaction, signature),\n  ]\n\n  return concatHex([\n    '0x01',\n    toRlp(serializedTransaction),\n  ]) as TransactionSerializedEIP2930\n}\n\ntype SerializeTransactionLegacyErrorType =\n  | AssertTransactionLegacyErrorType\n  | InvalidLegacyVErrorType\n  | NumberToHexErrorType\n  | ToRlpErrorType\n  | ErrorType\n\nfunction serializeTransactionLegacy(\n  transaction: TransactionSerializableLegacy,\n  signature?: SignatureLegacy | undefined,\n): TransactionSerializedLegacy {\n  const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction\n\n  assertTransactionLegacy(transaction)\n\n  let serializedTransaction = [\n    nonce ? numberToHex(nonce) : '0x',\n    gasPrice ? numberToHex(gasPrice) : '0x',\n    gas ? numberToHex(gas) : '0x',\n    to ?? '0x',\n    value ? numberToHex(value) : '0x',\n    data ?? '0x',\n  ]\n\n  if (signature) {\n    const v = (() => {\n      // EIP-155 (inferred chainId)\n      if (signature.v >= 35n) {\n        const inferredChainId = (signature.v - 35n) / 2n\n        if (inferredChainId > 0) return signature.v\n        return 27n + (signature.v === 35n ? 0n : 1n)\n      }\n\n      // EIP-155 (explicit chainId)\n      if (chainId > 0)\n        return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)\n\n      // Pre-EIP-155 (no chainId)\n      const v = 27n + (signature.v === 27n ? 0n : 1n)\n      if (signature.v !== v) throw new InvalidLegacyVError({ v: signature.v })\n      return v\n    })()\n\n    const r = trim(signature.r)\n    const s = trim(signature.s)\n\n    serializedTransaction = [\n      ...serializedTransaction,\n      numberToHex(v),\n      r === '0x00' ? '0x' : r,\n      s === '0x00' ? '0x' : s,\n    ]\n  } else if (chainId > 0) {\n    serializedTransaction = [\n      ...serializedTransaction,\n      numberToHex(chainId),\n      '0x',\n      '0x',\n    ]\n  }\n\n  return toRlp(serializedTransaction) as TransactionSerializedLegacy\n}\n\nexport function toYParitySignatureArray(\n  transaction: TransactionSerializableGeneric,\n  signature_?: Signature | undefined,\n) {\n  const signature = signature_ ?? transaction\n  const { v, yParity } = signature\n\n  if (typeof signature.r === 'undefined') return []\n  if (typeof signature.s === 'undefined') return []\n  if (typeof v === 'undefined' && typeof yParity === 'undefined') return []\n\n  const r = trim(signature.r)\n  const s = trim(signature.s)\n\n  const yParity_ = (() => {\n    if (typeof yParity === 'number') return yParity ? numberToHex(1) : '0x'\n    if (v === 0n) return '0x'\n    if (v === 1n) return numberToHex(1)\n\n    return v === 27n ? '0x' : numberToHex(1)\n  })()\n\n  return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s]\n}\n","import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type {\n  TransactionSerializable,\n  TransactionSerialized,\n} from '../../types/transaction.js'\nimport {\n  type Keccak256ErrorType,\n  keccak256,\n} from '../../utils/hash/keccak256.js'\nimport type { GetTransactionType } from '../../utils/transaction/getTransactionType.js'\nimport {\n  type SerializeTransactionFn,\n  serializeTransaction,\n} from '../../utils/transaction/serializeTransaction.js'\n\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignTransactionParameters<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n> = {\n  privateKey: Hex\n  transaction: transaction\n  serializer?: serializer | undefined\n}\n\nexport type SignTransactionReturnType<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n> = TransactionSerialized<GetTransactionType<transaction>>\n\nexport type SignTransactionErrorType =\n  | Keccak256ErrorType\n  | SignErrorType\n  | ErrorType\n\nexport async function signTransaction<\n  serializer extends\n    SerializeTransactionFn<TransactionSerializable> = SerializeTransactionFn<TransactionSerializable>,\n  transaction extends Parameters<serializer>[0] = Parameters<serializer>[0],\n>(\n  parameters: SignTransactionParameters<serializer, transaction>,\n): Promise<SignTransactionReturnType<serializer, transaction>> {\n  const {\n    privateKey,\n    transaction,\n    serializer = serializeTransaction,\n  } = parameters\n\n  const signableTransaction = (() => {\n    // For EIP-4844 Transactions, we want to sign the transaction payload body (tx_payload_body) without the sidecars (ie. without the network wrapper).\n    // See: https://github.com/ethereum/EIPs/blob/e00f4daa66bd56e2dbd5f1d36d09fd613811a48b/EIPS/eip-4844.md#networking\n    if (transaction.type === 'eip4844')\n      return {\n        ...transaction,\n        sidecars: false,\n      }\n    return transaction\n  })()\n\n  const signature = await sign({\n    hash: keccak256(serializer(signableTransaction)),\n    privateKey,\n  })\n  return serializer(transaction, signature) as SignTransactionReturnType<\n    serializer,\n    transaction\n  >\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() {\n    super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n      name: 'AbiDecodingZeroDataError',\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(signature: Hex, { docsPath }: { docsPath: string }) {\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://openchain.xyz/signatures?query=${signature}.`,\n      ].join('\\n'),\n      {\n        docsPath,\n        name: 'AbiErrorSignatureNotFoundError',\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://openchain.xyz/signatures?query=${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://openchain.xyz/signatures?query=${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","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/\n\n// `bytes<M>`: 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<M>`: (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  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 ConcatErrorType, concat } 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<params>\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  const data = encodeParams(preparedParams)\n  if (data.length === 0) return '0x'\n  return data\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype PreparedParam = { dynamic: boolean; encoded: Hex }\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\ntype Tuple = AbiParameterToPrimitiveType<TupleAbiParameter>\n\ntype PrepareParamsErrorType = PrepareParamErrorType | ErrorType\n\nfunction prepareParams<const params extends readonly AbiParameter[]>({\n  params,\n  values,\n}: {\n  params: params\n  values: AbiParametersToPrimitiveTypes<params>\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<const param extends AbiParameter>({\n  param,\n  value,\n}: {\n  param: param\n  value: AbiParameterToPrimitiveType<param>\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  return concat([...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  | ConcatErrorType\n  | EncodeParamsErrorType\n  | InvalidArrayErrorType\n  | NumberToHexErrorType\n  // TODO: Add back once circular type reference is resolved\n  // | PrepareParamErrorType\n  | ErrorType\n\nfunction encodeArray<const param extends AbiParameter>(\n  value: AbiParameterToPrimitiveType<param>,\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  let dynamicChild = false\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: preparedParams.length > 0 ? concat([length, data]) : length,\n      }\n    }\n    if (dynamicChild) return { dynamic: true, encoded: data }\n  }\n  return {\n    dynamic: false,\n    encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n  }\n}\n\ntype EncodeBytesErrorType =\n  | AbiEncodingBytesSizeMismatchErrorType\n  | ConcatErrorType\n  | PadHexErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nfunction encodeBytes<const param extends AbiParameter>(\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: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\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  | ConcatErrorType\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: concat([\n      padHex(numberToHex(size(hexValue), { size: 32 })),\n      ...parts,\n    ]),\n  }\n}\n\ntype EncodeTupleErrorType =\n  | ConcatErrorType\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<param>,\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      : concat(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","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","import type { TypedData } from 'abitype'\n\nimport { stringify } from '../utils/stringify.js'\nimport { BaseError } from './base.js'\n\nexport type InvalidDomainErrorType = InvalidDomainError & {\n  name: 'InvalidDomainError'\n}\nexport class InvalidDomainError extends BaseError {\n  constructor({ domain }: { domain: unknown }) {\n    super(`Invalid domain \"${stringify(domain)}\".`, {\n      metaMessages: ['Must be a valid EIP-712 domain.'],\n    })\n  }\n}\n\nexport type InvalidPrimaryTypeErrorType = InvalidPrimaryTypeError & {\n  name: 'InvalidPrimaryTypeError'\n}\nexport class InvalidPrimaryTypeError extends BaseError {\n  constructor({\n    primaryType,\n    types,\n  }: { primaryType: string; types: TypedData | Record<string, unknown> }) {\n    super(\n      `Invalid primary type \\`${primaryType}\\` must be one of \\`${JSON.stringify(Object.keys(types))}\\`.`,\n      {\n        docsPath: '/api/glossary/Errors#typeddatainvalidprimarytypeerror',\n        metaMessages: ['Check that the primary type is a key in `types`.'],\n      },\n    )\n  }\n}\n\nexport type InvalidStructTypeErrorType = InvalidStructTypeError & {\n  name: 'InvalidStructTypeError'\n}\nexport class InvalidStructTypeError extends BaseError {\n  constructor({ type }: { type: string }) {\n    super(`Struct type \"${type}\" is invalid.`, {\n      metaMessages: ['Struct type must not be a Solidity type.'],\n      name: 'InvalidStructTypeError',\n    })\n  }\n}\n","import type { TypedData, TypedDataDomain, TypedDataParameter } from 'abitype'\n\nimport { BytesSizeMismatchError } from '../errors/abi.js'\nimport { InvalidAddressError } from '../errors/address.js'\nimport {\n  InvalidDomainError,\n  InvalidPrimaryTypeError,\n  InvalidStructTypeError,\n} from '../errors/typedData.js'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Hex } from '../types/misc.js'\nimport type { TypedDataDefinition } from '../types/typedData.js'\nimport { type IsAddressErrorType, isAddress } from './address/isAddress.js'\nimport { type SizeErrorType, size } from './data/size.js'\nimport { type NumberToHexErrorType, numberToHex } from './encoding/toHex.js'\nimport { bytesRegex, integerRegex } from './regex.js'\nimport {\n  type HashDomainErrorType,\n  hashDomain,\n} from './signature/hashTypedData.js'\nimport { stringify } from './stringify.js'\n\nexport type SerializeTypedDataErrorType =\n  | HashDomainErrorType\n  | IsAddressErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nexport function serializeTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(parameters: TypedDataDefinition<typedData, primaryType>) {\n  const {\n    domain: domain_,\n    message: message_,\n    primaryType,\n    types,\n  } = parameters as unknown as TypedDataDefinition\n\n  const normalizeData = (\n    struct: readonly TypedDataParameter[],\n    data_: Record<string, unknown>,\n  ) => {\n    const data = { ...data_ }\n    for (const param of struct) {\n      const { name, type } = param\n      if (type === 'address') data[name] = (data[name] as string).toLowerCase()\n    }\n    return data\n  }\n\n  const domain = (() => {\n    if (!types.EIP712Domain) return {}\n    if (!domain_) return {}\n    return normalizeData(types.EIP712Domain, domain_)\n  })()\n\n  const message = (() => {\n    if (primaryType === 'EIP712Domain') return undefined\n    return normalizeData(types[primaryType], message_)\n  })()\n\n  return stringify({ domain, message, primaryType, types })\n}\n\nexport type ValidateTypedDataErrorType =\n  | HashDomainErrorType\n  | IsAddressErrorType\n  | NumberToHexErrorType\n  | SizeErrorType\n  | ErrorType\n\nexport function validateTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(parameters: TypedDataDefinition<typedData, primaryType>) {\n  const { domain, message, primaryType, types } =\n    parameters as unknown as TypedDataDefinition\n\n  const validateData = (\n    struct: readonly TypedDataParameter[],\n    data: Record<string, unknown>,\n  ) => {\n    for (const param of struct) {\n      const { name, type } = param\n      const value = data[name]\n\n      const integerMatch = type.match(integerRegex)\n      if (\n        integerMatch &&\n        (typeof value === 'number' || typeof value === 'bigint')\n      ) {\n        const [_type, base, size_] = integerMatch\n        // If number cannot be cast to a sized hex value, it is out of range\n        // and will throw.\n        numberToHex(value, {\n          signed: base === 'int',\n          size: Number.parseInt(size_, 10) / 8,\n        })\n      }\n\n      if (type === 'address' && typeof value === 'string' && !isAddress(value))\n        throw new InvalidAddressError({ address: value })\n\n      const bytesMatch = type.match(bytesRegex)\n      if (bytesMatch) {\n        const [_type, size_] = bytesMatch\n        if (size_ && size(value as Hex) !== Number.parseInt(size_, 10))\n          throw new BytesSizeMismatchError({\n            expectedSize: Number.parseInt(size_, 10),\n            givenSize: size(value as Hex),\n          })\n      }\n\n      const struct = types[type]\n      if (struct) {\n        validateReference(type)\n        validateData(struct, value as Record<string, unknown>)\n      }\n    }\n  }\n\n  // Validate domain types.\n  if (types.EIP712Domain && domain) {\n    if (typeof domain !== 'object') throw new InvalidDomainError({ domain })\n    validateData(types.EIP712Domain, domain)\n  }\n\n  // Validate message types.\n  if (primaryType !== 'EIP712Domain') {\n    if (types[primaryType]) validateData(types[primaryType], message)\n    else throw new InvalidPrimaryTypeError({ primaryType, types })\n  }\n}\n\nexport type GetTypesForEIP712DomainErrorType = ErrorType\n\nexport function getTypesForEIP712Domain({\n  domain,\n}: {\n  domain?: TypedDataDomain | undefined\n}): TypedDataParameter[] {\n  return [\n    typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n    domain?.version && { name: 'version', type: 'string' },\n    (typeof domain?.chainId === 'number' ||\n      typeof domain?.chainId === 'bigint') && {\n      name: 'chainId',\n      type: 'uint256',\n    },\n    domain?.verifyingContract && {\n      name: 'verifyingContract',\n      type: 'address',\n    },\n    domain?.salt && { name: 'salt', type: 'bytes32' },\n  ].filter(Boolean) as TypedDataParameter[]\n}\n\nexport type DomainSeparatorErrorType =\n  | GetTypesForEIP712DomainErrorType\n  | HashDomainErrorType\n  | ErrorType\n\nexport function domainSeparator({ domain }: { domain: TypedDataDomain }): Hex {\n  return hashDomain({\n    domain,\n    types: {\n      EIP712Domain: getTypesForEIP712Domain({ domain }),\n    },\n  })\n}\n\n/** @internal */\nfunction validateReference(type: string) {\n  // Struct type must not be a Solidity type.\n  if (\n    type === 'address' ||\n    type === 'bool' ||\n    type === 'string' ||\n    type.startsWith('bytes') ||\n    type.startsWith('uint') ||\n    type.startsWith('int')\n  )\n    throw new InvalidStructTypeError({ type })\n}\n","// Implementation forked and adapted from https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-typed-data.ts\n\nimport type { AbiParameter, TypedData, TypedDataDomain } from 'abitype'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport {\n  type EncodeAbiParametersErrorType,\n  encodeAbiParameters,\n} from '../abi/encodeAbiParameters.js'\nimport { concat } from '../data/concat.js'\nimport { type ToHexErrorType, toHex } from '../encoding/toHex.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport {\n  type GetTypesForEIP712DomainErrorType,\n  getTypesForEIP712Domain,\n  type ValidateTypedDataErrorType,\n  validateTypedData,\n} from '../typedData.js'\n\ntype MessageTypeProperty = {\n  name: string\n  type: string\n}\n\nexport type HashTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n> = TypedDataDefinition<typedData, primaryType>\n\nexport type HashTypedDataReturnType = Hex\n\nexport type HashTypedDataErrorType =\n  | GetTypesForEIP712DomainErrorType\n  | HashDomainErrorType\n  | HashStructErrorType\n  | ValidateTypedDataErrorType\n  | ErrorType\n\nexport function hashTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(\n  parameters: HashTypedDataParameters<typedData, primaryType>,\n): HashTypedDataReturnType {\n  const {\n    domain = {},\n    message,\n    primaryType,\n  } = parameters as HashTypedDataParameters\n  const types = {\n    EIP712Domain: getTypesForEIP712Domain({ domain }),\n    ...parameters.types,\n  }\n\n  // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n  // as we can't statically check this with TypeScript.\n  validateTypedData({\n    domain,\n    message,\n    primaryType,\n    types,\n  })\n\n  const parts: Hex[] = ['0x1901']\n  if (domain)\n    parts.push(\n      hashDomain({\n        domain,\n        types: types as Record<string, MessageTypeProperty[]>,\n      }),\n    )\n\n  if (primaryType !== 'EIP712Domain')\n    parts.push(\n      hashStruct({\n        data: message,\n        primaryType,\n        types: types as Record<string, MessageTypeProperty[]>,\n      }),\n    )\n\n  return keccak256(concat(parts))\n}\n\nexport type HashDomainErrorType = HashStructErrorType | ErrorType\n\nexport function hashDomain({\n  domain,\n  types,\n}: {\n  domain: TypedDataDomain\n  types: Record<string, MessageTypeProperty[]>\n}) {\n  return hashStruct({\n    data: domain,\n    primaryType: 'EIP712Domain',\n    types,\n  })\n}\n\nexport type HashStructErrorType =\n  | EncodeDataErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\nexport function hashStruct({\n  data,\n  primaryType,\n  types,\n}: {\n  data: Record<string, unknown>\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encoded = encodeData({\n    data,\n    primaryType,\n    types,\n  })\n  return keccak256(encoded)\n}\n\ntype EncodeDataErrorType =\n  | EncodeAbiParametersErrorType\n  | EncodeFieldErrorType\n  | HashTypeErrorType\n  | ErrorType\n\nfunction encodeData({\n  data,\n  primaryType,\n  types,\n}: {\n  data: Record<string, unknown>\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encodedTypes: AbiParameter[] = [{ type: 'bytes32' }]\n  const encodedValues: unknown[] = [hashType({ primaryType, types })]\n\n  for (const field of types[primaryType]) {\n    const [type, value] = encodeField({\n      types,\n      name: field.name,\n      type: field.type,\n      value: data[field.name],\n    })\n    encodedTypes.push(type)\n    encodedValues.push(value)\n  }\n\n  return encodeAbiParameters(encodedTypes, encodedValues)\n}\n\ntype HashTypeErrorType =\n  | ToHexErrorType\n  | EncodeTypeErrorType\n  | Keccak256ErrorType\n  | ErrorType\n\nfunction hashType({\n  primaryType,\n  types,\n}: {\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  const encodedHashType = toHex(encodeType({ primaryType, types }))\n  return keccak256(encodedHashType)\n}\n\ntype EncodeTypeErrorType = FindTypeDependenciesErrorType\n\nexport function encodeType({\n  primaryType,\n  types,\n}: {\n  primaryType: string\n  types: Record<string, readonly MessageTypeProperty[]>\n}) {\n  let result = ''\n  const unsortedDeps = findTypeDependencies({ primaryType, types })\n  unsortedDeps.delete(primaryType)\n\n  const deps = [primaryType, ...Array.from(unsortedDeps).sort()]\n  for (const type of deps) {\n    result += `${type}(${types[type]\n      .map(({ name, type: t }) => `${t} ${name}`)\n      .join(',')})`\n  }\n\n  return result\n}\n\ntype FindTypeDependenciesErrorType = ErrorType\n\nfunction findTypeDependencies(\n  {\n    primaryType: primaryType_,\n    types,\n  }: {\n    primaryType: string\n    types: Record<string, readonly MessageTypeProperty[]>\n  },\n  results: Set<string> = new Set(),\n): Set<string> {\n  const match = primaryType_.match(/^\\w*/u)\n  const primaryType = match?.[0]!\n  if (results.has(primaryType) || types[primaryType] === undefined) {\n    return results\n  }\n\n  results.add(primaryType)\n\n  for (const field of types[primaryType]) {\n    findTypeDependencies({ primaryType: field.type, types }, results)\n  }\n  return results\n}\n\ntype EncodeFieldErrorType =\n  | Keccak256ErrorType\n  | EncodeAbiParametersErrorType\n  | ToHexErrorType\n  | ErrorType\n\nfunction encodeField({\n  types,\n  name,\n  type,\n  value,\n}: {\n  types: Record<string, readonly MessageTypeProperty[]>\n  name: string\n  type: string\n  value: any\n}): [type: AbiParameter, value: any] {\n  if (types[type] !== undefined) {\n    return [\n      { type: 'bytes32' },\n      keccak256(encodeData({ data: value, primaryType: type, types })),\n    ]\n  }\n\n  if (type === 'bytes') {\n    const prepend = value.length % 2 ? '0' : ''\n    value = `0x${prepend + value.slice(2)}`\n    return [{ type: 'bytes32' }, keccak256(value)]\n  }\n\n  if (type === 'string') return [{ type: 'bytes32' }, keccak256(toHex(value))]\n\n  if (type.lastIndexOf(']') === type.length - 1) {\n    const parsedType = type.slice(0, type.lastIndexOf('['))\n    const typeValuePairs = (value as [AbiParameter, any][]).map((item) =>\n      encodeField({\n        name,\n        type: parsedType,\n        types,\n        value: item,\n      }),\n    )\n    return [\n      { type: 'bytes32' },\n      keccak256(\n        encodeAbiParameters(\n          typeValuePairs.map(([t]) => t),\n          typeValuePairs.map(([, v]) => v),\n        ),\n      ),\n    ]\n  }\n\n  return [{ type }, value]\n}\n","import type { TypedData } from 'abitype'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport type { TypedDataDefinition } from '../../types/typedData.js'\nimport {\n  type HashTypedDataErrorType,\n  hashTypedData,\n} from '../../utils/signature/hashTypedData.js'\nimport { type SignErrorType, sign } from './sign.js'\n\nexport type SignTypedDataParameters<\n  typedData extends TypedData | Record<string, unknown> = TypedData,\n  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,\n> = TypedDataDefinition<typedData, primaryType> & {\n  /** The private key to sign with. */\n  privateKey: Hex\n}\n\nexport type SignTypedDataReturnType = Hex\n\nexport type SignTypedDataErrorType =\n  | HashTypedDataErrorType\n  | SignErrorType\n  | ErrorType\n\n/**\n * @description Signs typed data and calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191):\n * `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * @returns The signature.\n */\nexport async function signTypedData<\n  const typedData extends TypedData | Record<string, unknown>,\n  primaryType extends keyof typedData | 'EIP712Domain',\n>(\n  parameters: SignTypedDataParameters<typedData, primaryType>,\n): Promise<SignTypedDataReturnType> {\n  const { privateKey, ...typedData } =\n    parameters as unknown as SignTypedDataParameters\n  return await sign({\n    hash: hashTypedData(typedData),\n    privateKey,\n    to: 'hex',\n  })\n}\n","import { secp256k1 } from '@noble/curves/secp256k1'\nimport type { ErrorType } from '../errors/utils.js'\nimport type { Hex } from '../types/misc.js'\nimport { type ToHexErrorType, toHex } from '../utils/encoding/toHex.js'\nimport type { NonceManager } from '../utils/nonceManager.js'\nimport { type ToAccountErrorType, toAccount } from './toAccount.js'\nimport type { PrivateKeyAccount } from './types.js'\nimport {\n  type PublicKeyToAddressErrorType,\n  publicKeyToAddress,\n} from './utils/publicKeyToAddress.js'\nimport { type SignErrorType, sign } from './utils/sign.js'\nimport { signAuthorization } from './utils/signAuthorization.js'\nimport { type SignMessageErrorType, signMessage } from './utils/signMessage.js'\nimport {\n  type SignTransactionErrorType,\n  signTransaction,\n} from './utils/signTransaction.js'\nimport {\n  type SignTypedDataErrorType,\n  signTypedData,\n} from './utils/signTypedData.js'\n\nexport type PrivateKeyToAccountOptions = {\n  nonceManager?: NonceManager | undefined\n}\n\nexport type PrivateKeyToAccountErrorType =\n  | ToAccountErrorType\n  | ToHexErrorType\n  | PublicKeyToAddressErrorType\n  | SignErrorType\n  | SignMessageErrorType\n  | SignTransactionErrorType\n  | SignTypedDataErrorType\n  | ErrorType\n\n/**\n * @description Creates an Account from a private key.\n *\n * @returns A Private Key Account.\n */\nexport function privateKeyToAccount(\n  privateKey: Hex,\n  options: PrivateKeyToAccountOptions = {},\n): PrivateKeyAccount {\n  const { nonceManager } = options\n  const publicKey = toHex(secp256k1.getPublicKey(privateKey.slice(2), false))\n  const address = publicKeyToAddress(publicKey)\n\n  const account = toAccount({\n    address,\n    nonceManager,\n    async sign({ hash }) {\n      return sign({ hash, privateKey, to: 'hex' })\n    },\n    async signAuthorization(authorization) {\n      return signAuthorization({ ...authorization, privateKey })\n    },\n    async signMessage({ message }) {\n      return signMessage({ message, privateKey })\n    },\n    async signTransaction(transaction, { serializer } = {}) {\n      return signTransaction({ privateKey, transaction, serializer })\n    },\n    async signTypedData(typedData) {\n      return signTypedData({ ...typedData, privateKey } as any)\n    },\n  })\n\n  return {\n    ...account,\n    publicKey,\n    source: 'privateKey',\n  } as PrivateKeyAccount\n}\n","/**\n * Helper functions for creating accounts easily\n */\n\nimport { privateKeyToAccount } from 'viem/accounts';\nimport { \n  createEVMAccount, \n  createSolanaAccount,\n  type EVMAccount, \n  type SolanaAccount \n} from './unified-account-types';\n\n/**\n * Create an EVM account from private key\n * @param privateKey - 0x prefixed hex private key\n * @returns EVMAccount ready for Dreams Router auth\n */\nexport function createEVMAccountFromPrivateKey(privateKey: `0x${string}`): EVMAccount {\n  const account = privateKeyToAccount(privateKey);\n  return createEVMAccount(account);\n}\n\n/**\n * Create a Solana account from public key\n * @param publicKey - Base58 encoded public key\n * @param signMessage - Optional signing function\n * @returns SolanaAccount ready for Dreams Router auth\n */\nexport function createSolanaAccountFromPublicKey(\n  publicKey: string, \n  signMessage?: (message: { message: string }) => Promise<string>\n): SolanaAccount {\n  return createSolanaAccount(publicKey, signMessage);\n}\n\n/**\n * Auto-detect and create account from private key (EVM only now)\n * @param privateKey - Hex (0x...) private key\n * @returns EVM account type\n */\nexport function createAccountFromPrivateKey(\n  privateKey: string\n): EVMAccount {\n  if (privateKey.startsWith('0x')) {\n    // EVM private key\n    return createEVMAccountFromPrivateKey(privateKey as `0x${string}`);\n  } else {\n    throw new Error('Only EVM private keys (0x...) are supported. Use createSolanaAccountFromPublicKey for Solana.');\n  }\n}\n\n// Re-export for convenience\nexport { createEVMAccount, createSolanaAccount } from './unified-account-types';","/**\n * Separated authentication functions for Dreams Router\n * Clean separation of concerns: createEVMAuth() and createSolanaAuth()\n * Internal plumbing remains generic\n */\n\nimport type { Account } from 'viem';\nimport { privateKeyToAccount } from 'viem/accounts';\nimport type { User } from './dreams-router-api-client.js';\nimport type { DreamsRouterPaymentConfig } from '../types';\nimport { createDreamsRouter } from '../provider';\nimport { createSolanaAccount } from './unified-account-types';\n\nimport {\n  createUnifiedAuthManager,\n  type UnifiedAuthOptions,\n} from './unified-wallet-auth';\n\n// Common auth result interface\nexport interface AuthResult {\n  sessionToken: string;\n  user: User;\n  dreamsRouter: ReturnType<typeof createDreamsRouter>;\n  authManager: ReturnType<typeof createUnifiedAuthManager>;\n}\n\n// EVM-specific options\nexport interface EVMAuthOptions extends UnifiedAuthOptions {\n  payments?: DreamsRouterPaymentConfig & {\n    network?:\n      | 'base-sepolia'\n      | 'base'\n      | 'avalanche-fuji'\n      | 'avalanche'\n      | 'iotex';\n  };\n}\n\n// Solana-specific options\nexport interface SolanaAuthOptions extends UnifiedAuthOptions {\n  payments?: DreamsRouterPaymentConfig & {\n    network?: 'solana' | 'solana-devnet';\n    rpcUrl?: string;\n  };\n}\n\n/**\n * Create Dreams Router authentication for EVM accounts\n * Works with any EVM-compatible chain (Ethereum, Base, etc.)\n */\nexport async function createEVMAuth(\n  account: Account,\n  options: EVMAuthOptions = {}\n): Promise<AuthResult> {\n  const authManager = createUnifiedAuthManager(options);\n\n  // Authenticate using generic manager (pass original account)\n  const { sessionToken, user } = await authManager.login(account);\n\n  // Set default network for EVM if not specified\n  const payments = options.payments || {};\n  if (!payments.network) {\n    payments.network = 'base-sepolia' as const;\n  }\n\n  // Create Dreams Router provider\n  const dreamsRouter = authManager.createDreamsRouter({\n    payments,\n    baseURL: options.baseURL,\n  });\n\n  return {\n    sessionToken,\n    user,\n    dreamsRouter,\n    authManager,\n  };\n}\n\n/**\n * Create Dreams Router authentication for Solana accounts\n * Works with mainnet and devnet\n */\nexport async function createSolanaAuth(\n  publicKey: string,\n  signMessage: (message: { message: string }) => Promise<string>,\n  options: SolanaAuthOptions = {}\n): Promise<AuthResult> {\n  const authManager = createUnifiedAuthManager(options);\n\n  // Create Solana account\n  const solanaAccount = createSolanaAccount(publicKey, signMessage);\n\n  // Authenticate using generic manager\n  const { sessionToken, user } = await authManager.login(solanaAccount);\n\n  // Set default network for Solana if not specified\n  const payments = options.payments || {};\n  if (!payments.network) {\n    payments.network = 'solana-devnet' as const;\n  }\n\n  // Create Dreams Router provider\n  const dreamsRouter = authManager.createDreamsRouter({\n    payments,\n    baseURL: options.baseURL,\n  });\n\n  return {\n    sessionToken,\n    user,\n    dreamsRouter,\n    authManager,\n  };\n}\n\n/**\n * Helper: Create EVM auth from private key string\n */\nexport async function createEVMAuthFromPrivateKey(\n  privateKey: `0x${string}`,\n  options: EVMAuthOptions = {}\n): Promise<AuthResult> {\n  const account = privateKeyToAccount(privateKey);\n  return createEVMAuth(account, options);\n}\n\n/**\n * Helper: Create Solana auth from public key\n */\nexport async function createSolanaAuthFromPublicKey(\n  publicKey: string,\n  signMessage: (message: { message: string }) => Promise<string>,\n  options: SolanaAuthOptions = {}\n): Promise<AuthResult> {\n  return createSolanaAuth(publicKey, signMessage, options);\n}\n","/**\n * Wallet authentication utilities for Dreams Router\n * Combines API client with AI SDK for seamless wallet authentication\n */\n\nimport type { Account } from 'viem';\nimport type { User } from './dreams-router-api-client.js';\nimport type { DreamsRouterPaymentConfig, SolanaSigner } from '../types';\n\nimport { DreamsRouterApiClient } from './dreams-router-api-client.js';\nimport { createDreamsRouter } from '../provider';\n\nexport interface WalletAuthManager {\n  apiClient: DreamsRouterApiClient;\n  currentSessionToken: string | null;\n  currentUser: User | null;\n  currentAccount: Account | null;\n\n  /**\n   * Sign message and get JWT session token using an account\n   */\n  walletLogin(account: Account): Promise<{ sessionToken: string; user: User }>;\n\n  /**\n   * Create Dreams Router provider with current authentication and optional payments\n   */\n  createDreamsRouter(options?: {\n    payments?: DreamsRouterPaymentConfig;\n    solanaSigner?: SolanaSigner;\n  }): ReturnType<typeof createDreamsRouter>;\n\n  /**\n   * Get current user profile\n   */\n  getProfile(): Promise<User>;\n\n  /**\n   * Get wallet balance\n   */\n  getBalance(address: string): Promise<number>;\n\n  /**\n   * Logout and clear tokens\n   */\n  logout(): void;\n}\n\nexport interface WalletAuthManagerOptions {\n  baseURL?: string;\n  onTokenExpired?: () => Promise<string | null>;\n}\n\nexport function createWalletAuthManager(\n  options: WalletAuthManagerOptions = {}\n): WalletAuthManager {\n  const apiClient = new DreamsRouterApiClient({\n    baseURL: options.baseURL,\n  });\n\n  let currentSessionToken: string | null = null;\n  let currentUser: User | null = null;\n  let currentAccount: Account | null = null;\n\n  // Set up token expiration callback\n  if (options.onTokenExpired) {\n    apiClient.setTokenExpiredCallback(options.onTokenExpired);\n  }\n\n  return {\n    apiClient,\n    get currentSessionToken() {\n      return currentSessionToken;\n    },\n    get currentUser() {\n      return currentUser;\n    },\n    get currentAccount() {\n      return currentAccount;\n    },\n\n    async walletLogin(account: Account) {\n      const timestamp = Date.now();\n      const message = `Sign this message to authenticate with Dreams Router\\n\\nWallet: ${account.address}\\nTimestamp: ${timestamp}`;\n\n      if (!account.signMessage) {\n        throw new Error(\n          'Account does not support message signing. Required for authentication.'\n        );\n      }\n      const signature = await account.signMessage({ message });\n\n      const response = await apiClient.walletLogin(\n        account.address,\n        signature,\n        message\n      );\n\n      if (response.success && response.sessionToken && response.user) {\n        currentSessionToken = response.sessionToken;\n        currentUser = response.user;\n        currentAccount = account;\n        apiClient.setApiKey(response.sessionToken);\n\n        return {\n          sessionToken: response.sessionToken,\n          user: response.user,\n        };\n      } else {\n        throw new Error(response.error || 'Failed to login with wallet');\n      }\n    },\n\n    createDreamsRouter(\n      routerOptions: {\n        payments?: DreamsRouterPaymentConfig;\n        solanaSigner?: SolanaSigner;\n      } = {}\n    ) {\n      if (!currentSessionToken) {\n        throw new Error('No session token available. Please login first.');\n      }\n\n      return createDreamsRouter({\n        apiKey: currentSessionToken,\n        baseURL: options.baseURL || 'https://api-beta.daydreams.systems/v1',\n        payment: routerOptions.payments,\n        signer: currentAccount || undefined,\n        solanaSigner: routerOptions.solanaSigner,\n      });\n    },\n\n    async getProfile() {\n      if (!currentSessionToken) {\n        throw new Error('No session token available. Please login first.');\n      }\n\n      const response = await apiClient.getProfile();\n\n      if (response.success && response.user) {\n        currentUser = response.user;\n        return response.user;\n      } else {\n        throw new Error(response.error || 'Failed to get profile');\n      }\n    },\n\n    async getBalance(address: string) {\n      const response = await apiClient.getWalletBalance(address);\n\n      if (response.success || response.balance !== undefined) {\n        return response.balance ?? 0;\n      } else {\n        throw new Error(response.error || 'Failed to get wallet balance');\n      }\n    },\n\n    logout() {\n      currentSessionToken = null;\n      currentUser = null;\n      currentAccount = null;\n      apiClient.removeSessionToken();\n      apiClient.removeApiKey();\n    },\n  };\n}\n\n/**\n * Dreams Router authentication with automatic AI SDK integration\n */\nexport async function createDreamsRouterAuth(\n  account: Account,\n  options: WalletAuthManagerOptions & {\n    payments?: DreamsRouterPaymentConfig;\n    solanaSigner?: SolanaSigner;\n  } = {}\n) {\n  const authManager = createWalletAuthManager(options);\n\n  // Get JWT token\n  const { sessionToken, user } = await authManager.walletLogin(account);\n\n  // Create Dreams Router provider\n  const dreamsRouter = authManager.createDreamsRouter({\n    payments: options.payments,\n    solanaSigner: options.solanaSigner,\n  });\n\n  return {\n    sessionToken,\n    user,\n    dreamsRouter,\n    authManager,\n  };\n}\n"],"mappings":"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UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,aAAY,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,SAAS,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,YAAY,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,YAAY,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,0BAAyB,CAAC,IAAG,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,YAAY,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,YAAY,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,YAAY,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,aAAY,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,KAAI,GAAG,GAAE,OAAO,GAAE,CAAC,CAAC,KAAK,GAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,GAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAS,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,KAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,OAAO,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,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AE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,G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C,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAA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,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,YAAY,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,IAAI,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,MAAK,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,G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UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,OAAM,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,MAAM,IAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,OAAM,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,IAAG,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,MAAK,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,IAAG,KAAI,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,IAAG,KAAI,MAAK,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,MAAK,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,MAAK,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAG,IAAG,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,IAAG,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,MAAM,IAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,MAAM,IAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAI,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,IAAG,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,MAAK,MAAK,IAAI,CAAC,GAAE,CA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,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,MAAK,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAS,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,0BAAyB,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC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AE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,MAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,YAAY,GAAE,CAAC,CAAC,OAAM,KAAK,GAAE,OAAO,GAAE,CAAC,CAAC,OAAM,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAS,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,QAAO,QAAO,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,MAAO,IAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAG,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAI,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,IAAG,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,0BAAyB,CAAC,IAAG,KAAI,EAAE,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GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,OAAM,OAAM,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,OAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,SAAQ,CAAC,GAAE,KAAK,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,OAAO,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,IAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,OAAO,KAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,GAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,KAAK,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,UAAS,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,GAAE,CAAC,CAAC,QAAO,MAAM,GAAE,YAAY,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CN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;MACA;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;MACA,EAAE,SAAS,MAAM,cAAc,WAAW,MAAM,MAAM,MAAM,UAAU;MACtE;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;MACA;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;MACA;QACE,SAAS;QACT,cAAc;QACd,MAAM;QACN,MAAM;MACR;IACF;IACA,MAAM;IACN,MAAM;EACR;EACA,EAAE,WAAW,OAAO,QAAQ,CAAC,GAAG,MAAM,SAAS,MAAM,QAAQ;EAC7D;IACE,WAAW;IACX,QAAQ;MACN;QACE,SAAS;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","names":["module","exports","assert","BN","number","base","Buffer","string","index","mod","clone","size","toBuffer","allocate","comb10MulTo","transform","mask","isOdd","name","prime","buffer","Buffer","size","base","ALPHABET","BASE","encode","size","i","j","decode","string","buffer","ALPHABET","inRange","string","Stream","TextDecoder","decode","TextEncoder","encode","offset","mod","buffer","array","string","error","name","serialize","map","deserialize","deserializeUnchecked","offset","name","Class","buffer","span","union","Boolean","Blob","crypto","validate","uuid","stringify","offset","uuid","offset","parse","uuid","stringToBytes","name","version","offset","URL","crypto","offset","crypto","version","uuid","uuid","version","uuid","err","require_lib","sign","string","error","buffer","string","url","ipv4","number","domain","base","res","tuple","integer","url","base","URL","url","EventEmitter","name","path","i","file","toBigIntLE","toBigIntBE","toBufferLE","buffer","toBufferBE","_AISDKError","name","error","marker","symbol","_a","url","_a","symbol","name","marker","_a","symbol","name","marker","_a","symbol","name","marker","_a","symbol","name","marker","_TypeValidationError","error","offset","error","_default","base64","base64url","bigint","boolean","_catch","cidrv4","cidrv6","core_exports","cuid","cuid2","date","e164","email","emoji","_enum","guid","hostname","ipv4","ipv6","ksuid","nanoid","_null","nullish","number","parse","parseAsync","safeParse","safeParseAsync","string","symbol","ulid","_undefined","uuid","_void","xid","core_exports","_emoji","_null","_undefined","name","initializer","_a","array","set","object","_a","mask","Class","config","error","issue","_a","_b","_a","version","time","timeRegex","_a","_a","inst","size","_b","result","_a","_a","checks","isAborted","result","_","url","inst","base64","index","isObject","allowsEval","r","results","map","left","right","keyResult","valueResult","output","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","type","parsedType","issue","error","_a","parsedType","issue","error","_a","issue","parsedType","error","_a","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","parsedType","error","_a","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","parsedType","error","_a","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","error","_a","parsedType","issue","_a","Class","_emoji","_undefined","_null","size","Class","_a","issue","_a","_a","json","file","_b","_c","_d","_e","id","schema","params","gen","date","datetime","duration","time","datetime","date","time","duration","initializer","issue","issues","parse","parseAsync","safeParse","safeParseAsync","_a","def","parse","safeParse","parseAsync","safeParseAsync","check","_default","_catch","_emoji","datetime","date","time","duration","string","email","guid","uuid","emoji","nanoid","cuid","cuid2","ulid","xid","ksuid","ipv4","ipv6","cidrv4","cidrv6","base64","base64url","e164","hostname","number","boolean","bigint","symbol","_undefined","_null","_void","date","_enum","mask","size","issue","_a","output","nullish","_default","_catch","string","number","boolean","_null","map","ZodFirstPartyTypeKind","bigint","boolean","date","number","string","string","number","boolean","bigint","date","size","error","url","record","_parse","validate","TypeValidationError","validator","error","getOriginalFetch","url","fetch","url","fetch","getOriginalFetch","error","APICallError","url","APICallError","url","APICallError","btoa","atob","array","btoa","url","d","url","_a","base64","_a","_b","_c","url","content","config","_a","index","toolCall","config","_a","url","cached","_a","config","version","external_exports","NEVER","ZodType","ZodAny","ZodArray","ZodBigInt","ZodBoolean","ZodCatch","ZodDate","ZodDefault","ZodDiscriminatedUnion","ZodEnum","ZodError","ZodFirstPartyTypeKind","ZodIntersection","ZodIssueCode","ZodLazy","ZodLiteral","ZodMap","ZodNaN","ZodNever","ZodNull","ZodNullable","ZodNumber","ZodObject","ZodOptional","ZodPromise","ZodReadonly","ZodRecord","ZodSet","ZodString","ZodSymbol","ZodTuple","ZodUndefined","ZodUnion","ZodUnknown","ZodVoid","custom","en_default","getErrorMap","getParsedType","setErrorMap","util","assertIs","assertNever","object","joinValues","array","objectUtil","getParsedType","ZodIssueCode","json","ZodError","issue","error","issue","ZodIssueCode","en_default","en_default","setErrorMap","map","getErrorMap","map","getErrorMap","issue","en_default","errorUtil","error","ZodError","errorMap","_a","ZodType","getParsedType","check","ZodIssueCode","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","ZodIntersection","transform","ZodDefault","ZodCatch","ZodReadonly","version","isValidJWT","jwt","base64","ZodString","_ZodString","parsedType","ctx","floatSafeRemainder","ZodNumber","ZodBigInt","ZodBoolean","ZodDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","result","ZodObject","ZodTuple","issue","index","mask","issues","type","ZodLazy","ZodLiteral","ZodEnum","ZodDiscriminatedUnion","mergeValues","ZodRecord","ZodMap","ZodSet","elements","size","getErrorMap","en_default","processed","base","preprocess","ZodOptional","ZodType","parsedType","type","ZodFirstPartyTypeKind","ZodNullable","ZodDefault","ZodCatch","result","ZodError","ZodNaN","ZodIssueCode","ZodReadonly","custom","check","ZodAny","_a","r","_b","ZodObject","ZodFirstPartyTypeKind","custom","ZodString","ZodNumber","ZodNaN","ZodBigInt","ZodBoolean","ZodDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","ZodUnknown","ZodNever","ZodVoid","ZodArray","ZodObject","ZodUnion","ZodDiscriminatedUnion","ZodIntersection","ZodTuple","ZodRecord","ZodMap","ZodSet","ZodLazy","ZodLiteral","ZodEnum","ZodPromise","ZodOptional","ZodNullable","NEVER","name","type","_a","abi","formatAbiItem","signature","_a","abi","abi","docsPath","error","err","publicKey","signature","secp256k1","yParityOrV","recoveryBit","publicKey","signature","encode","_a","signature","docsPath","_a","_a","docsPath","cause","_a","_a","_a","_a","type","_b","_c","base","_a","blob","_a","blob","sha256","sha256","_a","version","sha256","_a","version","size","version","_a","blob","size","_a","type","getBlock","getChainId","chainId","block","_a","estimateGas_rpc","_a","block","request","rpcStateOverride","value","estimate","_a","abi","error","docsPath","_a","abi","signature","formatAbiItem","name","abi","_a","abiItem","eventName","index","value","input","event","abi","_a","abi","error","_a","abi","error","listeners","cleanup","_a","time","_a","poll","cacheKey","promise","filter","filter","abi","filter","_a","transport","eventName","args","error","docsPath","type","_a","docsPath","cause","_a","type","error","e","_a","abi","error","shouldRetry","error","version","call","error","promise","chainId","receipts","status","_a","version","statusCode","promise","result","error","size","_a","name","type","config","extend","base","key","_a","name","offset","name","base64Regex","error","custom","res","record","name","record","name","record","name","name","_a","event","name","version","error","_a","filter","_a","version","signature","type","blobs","commitments","proofs","blob","v","_a","signature","promiseCache","promise","_a","uid","error","url","_a","_b","_c","body","response","domain","type","struct","name","type","domain","base","type","domain","type","name","parsedType","signature","signature","signature","index","_a","_a","_a","contracts","abi","error","success","result","_a","block","call","abi","result","error","keccak256","LruMap","size","LruMap","assert","InvalidAddressError","checksum","keccak256","validate","assert","InvalidAddressError","BaseError","signature","BaseError","validate","index","from","abi","name","abiItem","slice","index","signature","keccak256","fromString","BaseError","type","bytesRegex","integerRegex","maxUint256","checksumAddress","_a","type","size","integerRegex","concat","checksum","assert","length","BytesSizeMismatchError","BaseError","fromString","slice","index","encode","checksumAddress","type","concat","encodePacked","assert","fromString","integerRegex","size","bytesRegex","BytesSizeMismatchError","BaseError","type","BytesSizeMismatchError","size","encode","_a","concat","from","encodeData","fromAbi","getSelector","encode","concat","from","fromAbi","abi","name","getSelector","encode","from","encodeData","call","_a","signature","_a","signature","error","_a","signature","_a","signature","domain","_a","transport","error","_a","promise","error","from","_a","block","transport","error","filter","_a","transport","event","args","error","filter","_a","error","_a","domain","time","_a","domain","signature","time","isValid","name","name","url","_a","abi","_a","chainId","_a","_a","formatters","domain","name","name","type","uid","url","config","name","_a","wait","body","error","_a","serializeTransaction","signature","from","sourceId","signature","signAuthorization","_a","signature","signMessage","signTransaction","signature","signTypedData","_a","publicKey","signAuthorization","signMessage","signTransaction","signTypedData","external_exports","z","__export","config","z","signAuthorization","from","name","version","signature","__require","__export","evm_exports","name","version","_a","config","signature","config","signature","error","_a","url","hexToNumber","bytesToHex","hexToBytes","hexToBytes","object","map","_0n","_1n","_0n","number","_1n","Fp","map","Fp","_1n","_0n","_1n","_1n","_0n","_1n","mask","window","offset","base","transform","wbits","type","_0n","Fp","Fn","_0n","_1n","_2n","_8n","Fp","Fn","uvRatio","isValid","p","bytesToHex","BASE","randomBytes","adjustScalarBytes","domain","getPublicKey","sign","verify","publicKey","error","_size","size","eddsa","_0n","_1n","_2n","_3n","_5n","_8n","v3","number","_1n","mod","isValid","_0n","getErrorMessage","_a","getErrorMessage","encoder","offset","encoder","SolanaError","offset","SolanaError","config","offset","config","combineCodec","cached","_a","isObject","struct","type","coerce","mask","isObject","validator","assert","validate","tuple","error","name","validator","any","array","boolean","Class","literal","never","nullable","struct","number","optional","struct","record","isObject","string","tuple","never","isObject","union","error","unknown","coerce","struct","http","TYPE","size","buffer","type","blob","error","name","clone","instance","map","Headers","index","URL","whatwgUrl","Request","agent","isDomainOrSubdomain","isSameProtocol","fetch","url","abort","abortAndFinalize","import_index","EventEmitter","_a","error","_2n","_0n","_1n","int","seq","_3n","_4n","Fn","error","Fp","endo","bytesToHex","Fp","Fn","error","publicKey","getPublicKey","randomBytes","hmac","number","_1n","size","r","s","hexToBytes","_2n","bytesToHex","_0n","extraEntropy","sign","isHex","verify","signature","is","recoverPublicKey","Fp","Fn","create","_2n","_3n","secp256k1","generatePrivateKey","ed25519","utils","randomPrivateKey","generateKeypair","privateScalar","publicKey","getPublicKey","secretKey","Uint8Array","set","isOnCurve","ExtendedPoint","fromHex","sign","message","slice","verify","toBuffer","arr","Buffer","isBuffer","from","buffer","byteOffset","byteLength","Struct","constructor","properties","Object","assign","encode","serialize","SOLANA_SCHEMA","decode","data","deserialize","decodeUnchecked","deserializeUnchecked","SOLANA_SCHEMA","Map","MAX_SEED_LENGTH","PUBLIC_KEY_LENGTH","isPublicKeyData","value","_bn","undefined","uniquePublicKeyCounter","PublicKey","Struct","constructor","decoded","bs58","decode","length","Error","BN","byteLength","unique","key","toBuffer","equals","publicKey","eq","toBase58","encode","toBytes","toJSON","buf","Uint8Array","buffer","byteOffset","b","toArrayLike","Buffer","zeroPad","alloc","copy","Symbol","toStringTag","toString","createWithSeed","fromPublicKey","seed","programId","concat","from","publicKeyBytes","sha256","createProgramAddressSync","seeds","forEach","TypeError","isOnCurve","createProgramAddress","findProgramAddressSync","nonce","address","seedsWithNonce","err","findProgramAddress","pubkeyData","pubkey","_PublicKey","default","set","kind","fields","BPF_LOADER_DEPRECATED_PROGRAM_ID","PublicKey","PACKET_DATA_SIZE","VERSION_PREFIX_MASK","SIGNATURE_LENGTH_IN_BYTES","TransactionExpiredBlockheightExceededError","Error","constructor","signature","Object","defineProperty","prototype","value","TransactionExpiredTimeoutError","timeoutSeconds","toFixed","TransactionExpiredNonceInvalidError","MessageAccountKeys","staticAccountKeys","accountKeysFromLookups","keySegments","push","writable","readonly","get","index","keySegment","length","flat","compileInstructions","instructions","U8_MAX","keyIndexMap","Map","forEach","key","set","toBase58","findKeyIndex","keyIndex","undefined","map","instruction","programIdIndex","programId","accountKeyIndexes","keys","meta","pubkey","data","publicKey","property","blob","rustString","rsl","struct","u32","offset","_decode","decode","bind","_encode","encode","rslShim","b","toString","str","chars","Buffer","from","alloc","span","authorized","lockup","ns64","voteInit","u8","voteAuthorizeWithSeedArgs","getAlloc","type","fields","getItemAlloc","item","field","Array","isArray","elementLayout","layout","decodeLength","bytes","len","size","elem","shift","encodeLength","rem_len","assert","condition","message","CompiledKeys","payer","keyMetaMap","compile","getOrInsertDefault","address","keyMeta","isSigner","isWritable","isInvoked","payerKeyMeta","ix","accountMeta","getMessageComponents","mapEntries","entries","writableSigners","filter","readonlySigners","writableNonSigners","readonlyNonSigners","header","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","payerAddress","extractTableLookup","lookupTable","writableIndexes","drainedWritableKeys","drainKeysFoundInLookupTable","state","addresses","readonlyIndexes","drainedReadonlyKeys","accountKey","lookupTableEntries","keyMetaFilter","lookupTableIndexes","drainedKeys","lookupTableIndex","findIndex","entry","equals","delete","END_OF_BUFFER_ERROR_MESSAGE","guardedShift","byteArray","guardedSplice","args","start","splice","Message","accountKeys","recentBlockhash","indexToProgramIds","account","version","compiledInstructions","accounts","bs58","addressTableLookups","getAccountKeys","compiledKeys","payerKey","isAccountSigner","isAccountWritable","numSignedAccounts","unsignedAccountIndex","numUnsignedAccounts","numWritableUnsignedAccounts","numWritableSignedAccounts","isProgramId","has","programIds","values","nonProgramIds","_","serialize","numKeys","keyCount","shortvec","keyIndicesCount","dataCount","keyIndices","dataLength","instructionCount","instructionBuffer","copy","instructionBufferLength","instructionLayout","seq","slice","signDataLayout","Layout","transaction","toBuffer","toBytes","signData","buffer","accountCount","i","PUBLIC_KEY_LENGTH","dataSlice","messageArgs","MessageV0","numAccountKeysFromLookups","count","lookup","addressLookupTableAccounts","resolveAddressTableLookups","numStaticAccountKeys","lookupAccountKeysIndex","numWritableLookupAccountKeys","reduce","tableLookup","tableAccount","find","lookupTableAccounts","extractResult","addressTableLookup","encodedStaticAccountKeysLength","serializedInstructions","serializeInstructions","encodedInstructionsLength","serializedAddressTableLookups","serializeAddressTableLookups","encodedAddressTableLookupsLength","messageLayout","serializedMessage","Uint8Array","MESSAGE_VERSION_0_PREFIX","serializedMessageLength","prefix","staticAccountKeysLength","instructionsLength","addressTableLookupsLength","serializedLength","encodedAccountKeyIndexesLength","encodedDataLength","encodedWritableIndexesLength","encodedReadonlyIndexesLength","addressTableLookupLayout","deserialize","maskedPrefix","accountKeyIndexesLength","addressTableLookupsCount","writableIndexesLength","readonlyIndexesLength","VersionedMessage","deserializeMessageVersion","TransactionStatus","DEFAULT_SIGNATURE","fill","TransactionInstruction","opts","toJSON","Transaction","signatures","feePayer","lastValidBlockHeight","nonceInfo","minNonceContextSlot","_message","_json","hasOwnProperty","call","minContextSlot","blockhash","nonce","nonceInstruction","signers","add","items","concat","compileMessage","JSON","stringify","console","warn","accountMetas","includes","uniqueMetas","pubkeyString","uniqueIndex","x","sort","y","options","localeMatcher","usage","sensitivity","ignorePunctuation","numeric","caseFirst","localeCompare","feePayerIndex","payerMeta","unshift","signedKeys","unsignedKeys","indexOf","invariant","_compile","valid","every","pair","serializeMessage","getEstimatedFee","connection","getFeeForMessage","setSigners","seen","Set","sign","uniqueSigners","signer","_partialSign","partialSign","secretKey","_addSignature","addSignature","sigpair","verifySignatures","requireAllSignatures","signatureErrors","_getMessageSignednessErrors","errors","missing","verify","invalid","config","assign","sigErrors","errorMessage","p","join","_serialize","signatureCount","transactionLength","wireTransaction","keyObj","populate","sigPubkeyPair","some","TransactionMessage","decompile","compiledIx","compileToLegacyMessage","compileToV0Message","VersionedTransaction","defaultSignatures","encodedSignaturesLength","transactionLayout","serializedTransaction","serializedTransactionLength","signaturesLength","messageData","signerPubkeys","signerIndex","byteLength","NUM_TICKS_PER_SECOND","DEFAULT_TICKS_PER_SLOT","NUM_SLOTS_PER_SECOND","MS_PER_SLOT","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","SendTransactionError","action","transactionMessage","logs","maybeLogsOutput","guideText","a","transactionLogs","transactionError","cachedLogs","getLogs","Promise","resolve","reject","getTransaction","then","tx","logMessages","catch","SolanaJSONRPCError","Error","constructor","code","message","data","customMessage","name","sendAndConfirmTransaction","connection","transaction","signers","options","sendOptions","skipPreflight","preflightCommitment","commitment","maxRetries","minContextSlot","signature","sendTransaction","status","recentBlockhash","lastValidBlockHeight","confirmTransaction","abortSignal","blockhash","value","minNonceContextSlot","nonceInfo","nonceInstruction","nonceAccountPubkey","keys","pubkey","nonceValue","nonce","console","warn","err","SendTransactionError","action","transactionMessage","JSON","stringify","sleep","ms","Promise","resolve","setTimeout","encodeData","type","fields","allocLength","layout","span","Layout","Buffer","alloc","layoutFields","Object","assign","instruction","index","encode","FeeCalculatorLayout","nu64","NonceAccountLayout","struct","u32","Layout","NONCE_ACCOUNT_LENGTH","span","NonceAccount","constructor","args","authorizedPubkey","nonce","feeCalculator","fromAccountData","buffer","nonceAccount","decode","toBuffer","PublicKey","toString","u64","property","layout","blob","bind","encode","bigIntLayout","codec","getU64Codec","offset","src","bigInt","SYSTEM_INSTRUCTION_LAYOUTS","Object","freeze","Create","index","layout","struct","u32","ns64","Layout","Assign","Transfer","u64","CreateWithSeed","AdvanceNonceAccount","WithdrawNonceAccount","InitializeNonceAccount","AuthorizeNonceAccount","Allocate","AllocateWithSeed","AssignWithSeed","TransferWithSeed","UpgradeNonceAccount","SystemProgram","constructor","createAccount","params","type","data","encodeData","lamports","space","programId","toBuffer","TransactionInstruction","keys","pubkey","fromPubkey","isSigner","isWritable","newAccountPubkey","transfer","BigInt","seed","basePubkey","toPubkey","assign","base","accountPubkey","createAccountWithSeed","equals","push","createNonceAccount","transaction","Transaction","add","noncePubkey","NONCE_ACCOUNT_LENGTH","initParams","authorizedPubkey","nonceInitialize","authorized","instructionData","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","nonceAdvance","nonceWithdraw","nonceAuthorize","newAuthorizedPubkey","allocate","PublicKey","CHUNK_SIZE","PACKET_DATA_SIZE","Loader","getMinNumSignatures","dataLength","Math","ceil","chunkSize","load","connection","payer","program","balanceNeeded","getMinimumBalanceForRentExemption","length","programInfo","getAccountInfo","publicKey","executable","console","error","owner","sendAndConfirmTransaction","commitment","dataLayout","seq","u8","offset","array","transactions","bytes","slice","Buffer","alloc","encode","instruction","bytesLength","bytesLengthPadding","_rpcEndpoint","includes","REQUESTS_PER_SECOND","sleep","Promise","all","span","deployCommitment","finalizeSignature","sendTransaction","preflightCommitment","context","value","confirmTransaction","signature","lastValidBlockHeight","blockhash","recentBlockhash","err","Error","JSON","stringify","currentSlot","getSlot","slot","resolve","setTimeout","round","MS_PER_SLOT","BPF_LOADER_PROGRAM_ID","type","parse","ms","name","util","require$$1","require$$0","require$$2","Agent","agent","error","agentkeepaliveModule","stringify","fastStableStringify","MINIMUM_SLOT_PER_EPOCH","trailingZeros","n","nextPowerOfTwo","EpochSchedule","constructor","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpoch","slot","getEpochAndSlotIndex","epoch","epochLen","getSlotsInEpoch","slotIndex","normalSlotIndex","normalEpochIndex","Math","floor","getFirstSlotInEpoch","pow","getLastSlotInEpoch","globalThis","fetch","input","init","processedInput","slice","default","RpcWebSocketClient","CommonClient","address","options","generate_request_id","webSocketFactory","url","rpc","createRpc","autoconnect","max_reconnects","reconnect","reconnect_interval","underlyingSocket","socket","call","args","readyState","_a","Promise","reject","Error","notify","decodeData","data","decoded","layout","decode","err","typeIndex","index","LOOKUP_TABLE_META_SIZE","AddressLookupTableAccount","key","state","isActive","U64_MAX","BigInt","deactivationSlot","deserialize","accountData","meta","LookupTableMetaLayout","serializedAddressesLen","length","assert","numSerializedAddresses","addresses","struct","seq","Layout","lastExtendedSlot","lastExtendedSlotStartIndex","lastExtendedStartIndex","authority","PublicKey","undefined","map","u32","u64","nu64","u8","offset","URL_RE","makeWebsocketUrl","endpoint","matches","match","TypeError","_","hostish","portWithColon","rest","protocol","startsWith","startPort","parseInt","websocketPort","PublicKeyFromString","coerce","instance","string","value","RawAccountDataResult","tuple","literal","BufferFromRawAccountData","Buffer","from","BLOCKHASH_CACHE_TIMEOUT_MS","assertEndpointUrl","putativeUrl","test","extractCommitmentFromConfig","commitmentOrConfig","commitment","config","specifiedCommitment","specifiedConfig","applyDefaultMemcmpEncodingToFilters","filters","filter","memcmp","encoding","createRpcResult","result","union","pick","jsonrpc","id","code","unknown","message","optional","any","UnknownRpcResult","jsonRpcResult","schema","create","jsonRpcResultAndContext","context","number","notificationResultAndContext","versionedMessageFromResponse","version","response","MessageV0","header","staticAccountKeys","accountKeys","accountKey","recentBlockhash","compiledInstructions","instructions","ix","programIdIndex","accountKeyIndexes","accounts","bs58","addressTableLookups","Message","GetInflationGovernorResult","foundation","foundationTerm","initial","taper","terminal","GetInflationRewardResult","array","nullable","effectiveSlot","amount","postBalance","commission","GetRecentPrioritizationFeesResult","prioritizationFee","GetInflationRateResult","total","validator","GetEpochInfoResult","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","GetEpochScheduleResult","boolean","GetLeaderScheduleResult","record","TransactionErrorResult","SignatureStatusResult","SignatureReceivedResult","VersionResult","ParsedInstructionStruct","program","programId","parsed","PartiallyDecodedInstructionStruct","SimulatedTransactionResponseStruct","logs","executable","owner","lamports","rentEpoch","unitsConsumed","returnData","innerInstructions","BlockProductionResponseStruct","byIdentity","range","firstSlot","lastSlot","createRpcClient","httpHeaders","customFetch","fetchMiddleware","disableRetryOnRateLimit","httpAgent","fetchImpl","agentOptions","freeSocketTimeout","keepAlive","maxSockets","HttpsKeepAliveAgent","HttpKeepAliveAgent","isHttps","NodeHttpsAgent","fetchWithMiddleware","info","modifiedFetchArgs","resolve","modifiedInfo","modifiedInit","clientBrowser","RpcClient","request","callback","method","body","headers","Object","assign","COMMON_HTTP_HEADERS","too_many_requests_retries","res","waitTime","status","console","statusText","sleep","text","ok","createRpcRequest","client","createRpcBatchRequest","requests","batch","params","methodName","GetInflationGovernorRpcResult","GetInflationRateRpcResult","GetRecentPrioritizationFeesRpcResult","GetEpochInfoRpcResult","GetEpochScheduleRpcResult","GetLeaderScheduleRpcResult","SlotRpcResult","GetSupplyRpcResult","circulating","nonCirculating","nonCirculatingAccounts","TokenAmountResult","uiAmount","decimals","uiAmountString","GetTokenLargestAccountsResult","GetTokenAccountsByOwner","pubkey","account","ParsedAccountDataResult","space","GetParsedTokenAccountsByOwner","GetLargestAccountsRpcResult","AccountInfoResult","KeyedAccountInfoResult","ParsedOrRawAccountData","Array","isArray","ParsedAccountInfoResult","KeyedParsedAccountInfoResult","StakeActivationResult","active","inactive","GetConfirmedSignaturesForAddress2RpcResult","signature","memo","blockTime","GetSignaturesForAddressRpcResult","AccountNotificationResult","subscription","ProgramAccountInfoResult","ProgramAccountNotificationResult","SlotInfoResult","parent","root","SlotNotificationResult","SlotUpdateResult","timestamp","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotUpdateNotificationResult","SignatureNotificationResult","RootNotificationResult","ContactInfoResult","gossip","tpu","VoteAccountInfoResult","votePubkey","nodePubkey","activatedStake","epochVoteAccount","epochCredits","lastVote","rootSlot","GetVoteAccounts","current","delinquent","ConfirmationStatus","SignatureStatusResponse","confirmations","confirmationStatus","GetSignatureStatusesRpcResult","GetMinimumBalanceForRentExemptionRpcResult","AddressTableLookupStruct","writableIndexes","readonlyIndexes","ConfirmedTransactionResult","signatures","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","AnnotatedAccountKey","signer","writable","source","ConfirmedTransactionAccountsModeResult","ParsedInstructionResult","RawInstructionResult","InstructionResult","UnknownInstructionResult","ParsedOrRawInstruction","ParsedConfirmedTransactionResult","TokenBalanceResult","accountIndex","mint","uiTokenAmount","LoadedAddressesResult","readonly","ConfirmedTransactionMetaResult","fee","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","loadedAddresses","computeUnitsConsumed","costUnits","ParsedConfirmedTransactionMetaResult","TransactionVersionStruct","RewardsResult","rewardType","GetBlockRpcResult","blockhash","previousBlockhash","parentSlot","transactions","transaction","rewards","GetNoneModeBlockRpcResult","GetAccountsModeBlockRpcResult","GetParsedBlockRpcResult","GetParsedAccountsModeBlockRpcResult","GetParsedNoneModeBlockRpcResult","GetConfirmedBlockRpcResult","GetBlockSignaturesRpcResult","GetTransactionRpcResult","GetParsedTransactionRpcResult","GetLatestBlockhashRpcResult","lastValidBlockHeight","IsBlockhashValidRpcResult","PerfSampleResult","numTransactions","numSlots","samplePeriodSecs","GetRecentPerformanceSamplesRpcResult","GetFeeCalculatorRpcResult","feeCalculator","lamportsPerSignature","RequestAirdropRpcResult","SendTransactionRpcResult","LogsResult","LogsNotificationResult","process","Connection","_commitment","_confirmTransactionInitialTimeout","_rpcEndpoint","_rpcWsEndpoint","_rpcClient","_rpcRequest","_rpcBatchRequest","_rpcWebSocket","_rpcWebSocketConnected","_rpcWebSocketHeartbeat","_rpcWebSocketIdleTimeout","_rpcWebSocketGeneration","_disableBlockhashCaching","_pollingBlockhash","_blockhashInfo","latestBlockhash","lastFetch","transactionSignatures","simulatedSignatures","_nextClientSubscriptionId","_subscriptionDisposeFunctionsByClientSubscriptionId","_subscriptionHashByClientSubscriptionId","_subscriptionStateChangeCallbacksByHash","_subscriptionCallbacksByServerSubscriptionId","_subscriptionsByHash","_subscriptionsAutoDisposedByRpc","Set","getBlockHeight","requestPromises","_buildArgs","requestHash","unsafeRes","SolanaJSONRPCError","wsEndpoint","confirmTransactionInitialTimeout","Infinity","on","_wsOnOpen","bind","_wsOnError","_wsOnClose","_wsOnAccountNotification","_wsOnProgramAccountNotification","_wsOnSlotNotification","_wsOnSlotUpdatesNotification","_wsOnSignatureNotification","_wsOnRootNotification","_wsOnLogsNotification","rpcEndpoint","getBalanceAndContext","publicKey","toBase58","getBalance","then","x","catch","e","getBlockTime","getMinimumLedgerSlot","getFirstAvailableBlock","getSupply","configArg","getTokenSupply","tokenMintAddress","getTokenAccountBalance","tokenAddress","getTokenAccountsByOwner","ownerAddress","_args","push","getParsedTokenAccountsByOwner","getLargestAccounts","arg","getTokenLargestAccounts","mintAddress","getAccountInfoAndContext","getParsedAccountInfo","getAccountInfo","getMultipleParsedAccounts","publicKeys","rawConfig","keys","getMultipleAccountsInfoAndContext","getMultipleAccountsInfo","getStakeActivation","getProgramAccounts","configOrCommitment","configWithoutEncoding","baseSchema","withContext","getParsedProgramAccounts","confirmTransaction","strategy","rawSignature","abortSignal","aborted","reason","decodedSignature","confirmTransactionUsingLegacyTimeoutStrategy","confirmTransactionUsingBlockHeightExceedanceStrategy","confirmTransactionUsingDurableNonceStrategy","getCancellationPromise","signal","addEventListener","getTransactionConfirmationPromise","signatureSubscriptionId","disposeSignatureSubscriptionStateChangeObserver","done","confirmationPromise","onSignature","__type","TransactionStatus","PROCESSED","subscriptionSetupPromise","resolveSubscriptionSetup","_onSubscriptionStateChange","nextState","getSignatureStatus","abortConfirmation","removeSignatureListener","expiryPromise","checkBlockHeight","_e","currentBlockHeight","BLOCKHEIGHT_EXCEEDED","cancellationPromise","outcome","race","TransactionExpiredBlockheightExceededError","minContextSlot","nonceAccountPubkey","nonceValue","currentNonceValue","lastCheckedSlot","getCurrentNonceValue","nonceAccount","getNonceAndContext","nonce","NONCE_INVALID","slotInWhichNonceDidAdvance","signatureStatus","commitmentForStatus","TransactionExpiredNonceInvalidError","timeoutId","timeoutMs","setTimeout","TIMED_OUT","TransactionExpiredTimeoutError","clearTimeout","getClusterNodes","getVoteAccounts","getSlot","getSlotLeader","getSlotLeaders","startSlot","limit","values","getSignatureStatuses","getTransactionCount","getTotalSupply","excludeNonCirculatingAccountsList","getInflationGovernor","getInflationReward","getInflationRate","getEpochInfo","getEpochSchedule","epochSchedule","getLeaderSchedule","getMinimumBalanceForRentExemption","dataLength","warn","getRecentBlockhashAndContext","getLatestBlockhashAndContext","toJSON","getRecentPerformanceSamples","getFeeCalculatorForBlockhash","getFeeForMessage","wireMessage","toBuffer","serialize","toString","getRecentPrioritizationFees","lockedWritableAccounts","getRecentBlockhash","getLatestBlockhash","isBlockhashValid","getVersion","getGenesisHash","getBlock","_buildArgsAtLeastConfirmed","transactionDetails","getParsedBlock","getBlockProduction","extra","c","getTransaction","getParsedTransaction","getParsedTransactions","getTransactions","getConfirmedBlock","block","Transaction","populate","getBlocks","endSlot","getBlockSignatures","getConfirmedBlockSignatures","getConfirmedTransaction","getParsedConfirmedTransaction","getParsedConfirmedTransactions","getConfirmedSignaturesForAddress","firstAvailableBlock","until","includes","highestConfirmedRoot","before","confirmedSignatureInfo","getConfirmedSignaturesForAddress2","getSignaturesForAddress","getAddressLookupTable","accountInfo","NonceAccount","fromAccountData","getNonce","requestAirdrop","to","_blockhashWithExpiryBlockHeight","disableCache","timeSinceFetch","Date","now","expired","_pollNewBlockhash","startTime","cachedLatestBlockhash","cachedBlockhash","i","MS_PER_SLOT","getStakeMinimumDelegation","simulateTransaction","transactionOrMessage","configOrSigners","includeAccounts","versionedTx","wireTransaction","encodedTransaction","originalTx","feePayer","nonceInfo","_message","_json","signers","sign","_compile","signData","_serialize","nonProgramIds","sigVerify","traceIndent","logTrace","join","SendTransactionError","action","transactionMessage","sendTransaction","signersOrOptions","sendRawTransaction","rawTransaction","sendEncodedTransaction","skipPreflight","preflightCommitment","maxRetries","setInterval","_updateSubscriptions","Number","MAX_SAFE_INTEGER","clearInterval","entries","forEach","hash","_setSubscription","nextSubscription","prevState","stateChangeCallbacks","cb","clientSubscriptionId","add","delete","size","close","log","connect","activeWebSocketGeneration","isCurrentConnectionStillActive","all","callbacks","serverSubscriptionId","unsubscribeMethod","has","_handleServerNotification","callbackArgs","notification","_makeSubscription","subscriptionConfig","existingSubscription","onAccountChange","removeAccountChangeListener","_unsubscribeClientSubscription","accountId","onProgramAccountChange","maybeFilters","removeProgramAccountChangeListener","onLogs","mentions","removeOnLogsListener","onSlotChange","removeSlotChangeListener","onSlotUpdate","removeSlotUpdateListener","subscriptionName","dispose","override","_err","onSignatureWithOptions","onRootChange","removeRootChangeListener","Keypair","keypair","_keypair","generateKeypair","generate","fromSecretKey","secretKey","byteLength","skipValidation","privateScalar","computedPublicKey","getPublicKey","ii","fromSeed","seed","Uint8Array","set","LOOKUP_TABLE_INSTRUCTION_LAYOUTS","freeze","CreateLookupTable","bigintLayout","FreezeLookupTable","ExtendLookupTable","DeactivateLookupTable","CloseLookupTable","AddressLookupTableProgram","constructor","createLookupTable","params","lookupTableAddress","bumpSeed","PublicKey","findProgramAddressSync","authority","toBuffer","getU64Encoder","encode","recentSlot","programId","type","LOOKUP_TABLE_INSTRUCTION_LAYOUTS","CreateLookupTable","data","encodeData","BigInt","keys","pubkey","isSigner","isWritable","payer","SystemProgram","TransactionInstruction","freezeLookupTable","FreezeLookupTable","lookupTable","extendLookupTable","ExtendLookupTable","addresses","map","addr","toBytes","push","deactivateLookupTable","DeactivateLookupTable","closeLookupTable","CloseLookupTable","recipient","COMPUTE_BUDGET_INSTRUCTION_LAYOUTS","Object","freeze","RequestUnits","index","layout","struct","u8","u32","RequestHeapFrame","SetComputeUnitLimit","SetComputeUnitPrice","u64","ComputeBudgetProgram","constructor","requestUnits","params","type","data","encodeData","TransactionInstruction","keys","programId","requestHeapFrame","setComputeUnitLimit","setComputeUnitPrice","microLamports","BigInt","PublicKey","PRIVATE_KEY_BYTES","PUBLIC_KEY_BYTES","SIGNATURE_BYTES","ED25519_INSTRUCTION_LAYOUT","u16","Ed25519Program","createInstructionWithPublicKey","publicKey","message","signature","instructionIndex","assert","length","publicKeyOffset","span","signatureOffset","messageDataOffset","numSignatures","instructionData","Buffer","alloc","encode","padding","signatureInstructionIndex","publicKeyInstructionIndex","messageDataSize","messageInstructionIndex","fill","createInstructionWithPrivateKey","privateKey","keypair","Keypair","fromSecretKey","toBytes","sign","secretKey","error","Error","ecdsaSign","msgHash","privKey","secp256k1","toCompactRawBytes","recovery","utils","isValidPrivateKey","publicKeyCreate","getPublicKey","ETHEREUM_ADDRESS_BYTES","SIGNATURE_OFFSETS_SERIALIZED_SIZE","SECP256K1_INSTRUCTION_LAYOUT","blob","Secp256k1Program","publicKeyToEthAddress","from","keccak_256","toBuffer","slice","recoveryId","createInstructionWithEthAddress","ethAddress","rawAddress","startsWith","substr","dataStart","ethAddressOffset","ethAddressInstructionIndex","pkey","messageHash","STAKE_CONFIG_ID","Lockup","constructor","unixTimestamp","epoch","custodian","_Lockup","default","PublicKey","STAKE_INSTRUCTION_LAYOUTS","Object","freeze","Initialize","index","layout","struct","u32","Layout","Authorize","Delegate","Split","ns64","Withdraw","Deactivate","Merge","AuthorizeWithSeed","StakeAuthorizationLayout","Staker","Withdrawer","StakeProgram","constructor","initialize","params","stakePubkey","authorized","lockup","maybeLockup","Lockup","default","type","data","encodeData","staker","toBuffer","withdrawer","unixTimestamp","epoch","custodian","instructionData","keys","pubkey","isSigner","isWritable","SYSVAR_RENT_PUBKEY","programId","TransactionInstruction","createAccountWithSeed","transaction","Transaction","add","SystemProgram","fromPubkey","newAccountPubkey","basePubkey","seed","lamports","space","createAccount","delegate","authorizedPubkey","votePubkey","SYSVAR_CLOCK_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","STAKE_CONFIG_ID","authorize","newAuthorizedPubkey","stakeAuthorizationType","custodianPubkey","newAuthorized","push","authorizeWithSeed","authorityBase","authoritySeed","authorityOwner","splitInstruction","splitStakePubkey","split","rentExemptReserve","splitWithSeed","allocate","accountPubkey","transfer","toPubkey","merge","sourceStakePubKey","withdraw","deactivate","PublicKey","VOTE_INSTRUCTION_LAYOUTS","Object","freeze","InitializeAccount","index","layout","struct","u32","Layout","Authorize","Withdraw","ns64","UpdateValidatorIdentity","AuthorizeWithSeed","VoteAuthorizationLayout","Voter","Withdrawer","VoteProgram","constructor","initializeAccount","params","votePubkey","nodePubkey","voteInit","type","data","encodeData","toBuffer","authorizedVoter","authorizedWithdrawer","commission","instructionData","keys","pubkey","isSigner","isWritable","SYSVAR_RENT_PUBKEY","SYSVAR_CLOCK_PUBKEY","programId","TransactionInstruction","createAccount","transaction","Transaction","add","SystemProgram","fromPubkey","newAccountPubkey","lamports","space","authorize","authorizedPubkey","newAuthorizedPubkey","voteAuthorizationType","newAuthorized","authorizeWithSeed","currentAuthorityDerivedKeyBasePubkey","currentAuthorityDerivedKeyOwnerPubkey","currentAuthorityDerivedKeySeed","voteAuthorizeWithSeedArgs","withdraw","authorizedWithdrawerPubkey","toPubkey","safeWithdraw","currentVoteAccountBalance","rentExemptMinimum","Error","updateValidatorIdentity","PublicKey","VALIDATOR_INFO_KEY","InfoString","pick","name","string","website","optional","details","iconUrl","keybaseUsername","VOTE_PROGRAM_ID","PublicKey","VoteAccountLayout","struct","Layout","u8","nu64","seq","u32","offset","decode","encode","import_buffer_layout","encode","decode","buffer","offset","bigInt","u64","clone","BigNumber","ALPHABET","sign","base","compare","format","name","import_buffer_layout","encode","decode","buffer","offset","bool","import_buffer_layout","publicKey","encode","decode","buffer","offset","TokenInstruction","import_buffer_layout","AccountType","import_buffer_layout","import_buffer_layout","publicKey","AccountState","publicKey","u64","import_buffer_layout","u64","publicKey","u64","base","ALPHABET","BASE","encode","size","decode","string","buffer","esm_default","_a","esm_default","json","base","_a","url","cached","_a","getHeaders","url","publicKey","signMessage","url","config","error","signature","signature","config","_a","version","docsPath","version","BaseError","_a","docsPath","version","IntegerOutOfRangeError","BaseError","size","BaseError","isHex","size","isHex","trim","BaseError","offset","size","type","size","toHex","numberToHex","stringToHex","boolToHex","bytesToHex","string","size","IntegerOutOfRangeError","encoder","toBytes","isHex","hexToBytes","stringToBytes","index","BaseError","numberToHex","size","hexToBigInt","size","hexToNumber","hexToBigInt","LruMap","size","serializeSignature","signature","hexToBigInt","hexToBytes","InvalidAddressError","BaseError","keccak256","isHex","toBytes","toHex","LruMap","checksumAddress","keccak256","stringToBytes","addressRegex","LruMap","isAddress","cacheKey","checksumAddress","toAccount","isAddress","InvalidAddressError","publicKeyToAddress","publicKey","keccak256","checksumAddress","extraEntropy","sign","isHex","extraEntropy","hexToBytes","signature","numberToHex","serializeSignature","concat","concatHex","concatBytes","offset","BaseError","offset","PositionOutOfBoundsError","PositionOutOfBoundsError","offset","size","createCursor","toRlp","getEncodable","createCursor","bytesToHex","getEncodable","getEncodableList","getEncodableBytes","getSizeOfLength","encode","hexToBytes","BaseError","hashAuthorization","_a","keccak256","concatHex","toRlp","numberToHex","hexToBytes","signAuthorization","_a","signature","sign","hashAuthorization","presignMessagePrefix","toPrefixedMessage","stringToHex","bytesToHex","presignMessagePrefix","size","concat","hashMessage","keccak256","toPrefixedMessage","signMessage","sign","hashMessage","integer","formatGwei","prettyPrint","InvalidLegacyVError","BaseError","InvalidSerializableTransactionError","prettyPrint","InvalidStorageKeySizeError","BaseError","serializeAuthorizationList","_a","signature","toHex","toYParitySignatureArray","blobsToCommitments","_a","hexToBytes","blob","bytesToHex","blobsToProofs","_a","hexToBytes","blob","bytesToHex","sha256","isHex","toBytes","toHex","commitmentToVersionedHash","_a","version","sha256","bytesToHex","commitmentsToVersionedHashes","_a","version","commitmentToVersionedHash","blobsPerTransaction","bytesPerFieldElement","fieldElementsPerBlob","bytesPerBlob","maxBytesPerTransaction","versionedHashVersionKzg","BlobSizeTooLargeError","BaseError","size","EmptyBlobError","InvalidVersionedHashSizeError","InvalidVersionedHashVersionError","version","versionedHashVersionKzg","toBlobs","_a","hexToBytes","size","EmptyBlobError","maxBytesPerTransaction","BlobSizeTooLargeError","blob","createCursor","bytesPerBlob","fieldElementsPerBlob","bytesPerFieldElement","bytesToHex","toBlobSidecars","_a","toBlobs","blobsToCommitments","blobsToProofs","maxInt8","maxInt16","maxInt24","maxInt32","maxInt40","maxInt48","maxInt56","maxInt64","maxInt72","maxInt80","maxInt88","maxInt96","maxInt104","maxInt112","maxInt120","maxInt128","maxInt136","maxInt144","maxInt152","maxInt160","maxInt168","maxInt176","maxInt184","maxInt192","maxInt200","maxInt208","maxInt216","maxInt224","maxInt232","maxInt240","maxInt248","maxInt256","minInt8","minInt16","minInt24","minInt32","minInt40","minInt48","minInt56","minInt64","minInt72","minInt80","minInt88","minInt96","minInt104","minInt112","minInt120","minInt128","minInt136","minInt144","minInt152","minInt160","minInt168","minInt176","minInt184","minInt192","minInt200","minInt208","minInt216","minInt224","minInt232","minInt240","minInt248","minInt256","maxUint8","maxUint16","maxUint24","maxUint32","maxUint40","maxUint48","maxUint56","maxUint64","maxUint72","maxUint80","maxUint88","maxUint96","maxUint104","maxUint112","maxUint120","maxUint128","maxUint136","maxUint144","maxUint152","maxUint160","maxUint168","maxUint176","maxUint184","maxUint192","maxUint200","maxUint208","maxUint216","maxUint224","maxUint232","maxUint240","maxUint248","maxUint256","InvalidChainIdError","BaseError","BaseError","_a","FeeCapTooHighError","formatGwei","TipAboveFeeCapError","slice","isHex","sliceHex","size","assertTransactionEIP7702","isAddress","InvalidAddressError","InvalidChainIdError","assertTransactionEIP1559","assertTransactionEIP4844","EmptyBlobError","size","version","hexToNumber","slice","InvalidVersionedHashSizeError","versionedHashVersionKzg","InvalidVersionedHashVersionError","maxUint256","FeeCapTooHighError","TipAboveFeeCapError","assertTransactionEIP2930","BaseError","assertTransactionLegacy","getTransactionType","InvalidSerializableTransactionError","serializeAccessList","InvalidStorageKeySizeError","isAddress","InvalidAddressError","serializeTransaction","signature","type","getTransactionType","serializeTransactionEIP1559","serializeTransactionEIP2930","serializeTransactionEIP4844","serializeTransactionEIP7702","serializeTransactionLegacy","assertTransactionEIP7702","serializeAccessList","serializeAuthorizationList","concatHex","toRlp","numberToHex","toYParitySignatureArray","assertTransactionEIP4844","blobs","bytesToHex","commitments","blobsToCommitments","commitmentsToVersionedHashes","proofs","blobsToProofs","toBlobSidecars","blob","assertTransactionEIP1559","assertTransactionEIP2930","assertTransactionLegacy","v","InvalidLegacyVError","trim","signTransaction","serializeTransaction","signature","sign","keccak256","BaseError","type","size","BytesSizeMismatchError","BaseError","BaseError","type","docsPath","InvalidArrayError","BaseError","bytesRegex","integerRegex","encodeAbiParameters","_a","getArrayComponents","type","encodeArray","encodeTuple","encodeAddress","size","integerRegex","encodeNumber","encodeBytes","encodeString","numberToHex","concat","isAddress","InvalidAddressError","InvalidArrayError","length","BaseError","boolToHex","IntegerOutOfRangeError","stringToHex","slice","index","stringify","value","InvalidDomainError","BaseError","domain","stringify","InvalidPrimaryTypeError","InvalidStructTypeError","type","validateTypedData","domain","struct","name","type","integerRegex","base","numberToHex","isAddress","InvalidAddressError","bytesRegex","size","BytesSizeMismatchError","validateReference","InvalidDomainError","InvalidPrimaryTypeError","getTypesForEIP712Domain","validateReference","type","InvalidStructTypeError","hashTypedData","domain","getTypesForEIP712Domain","validateTypedData","hashDomain","hashStruct","keccak256","concat","encodeData","hashType","type","encodeField","encodeAbiParameters","toHex","encodeType","findTypeDependencies","name","parsedType","signTypedData","_a","sign","hashTypedData","privateKeyToAccount","publicKey","toHex","publicKeyToAddress","toAccount","sign","signAuthorization","signMessage","signTransaction","signTypedData","privateKeyToAccount","publicKey","signMessage","publicKey","signMessage","privateKeyToAccount","signature","_a"]}